Linux -- 进阶 Web服务器 搭建基于 HTTPS 协议的静态网站( HTTPS 安全加密机制详解)

news2025/2/28 2:43:08

HTTPS安全加密机制
             

 过程图示 : 

  ===>>>       

                    

过程  :  

                                      1 )   客户端( 通常是浏览器 ) 向服务器发送加密通信的请求,然后连接

                                             到服务端的 443 端口,这被叫做 ClientHello 请求 ( 请求加密通讯的

                                             请求加密信息就叫做 Hello 不是一个字符串,这是一个动作 )

                                             

                                             客户端主要向服务器提供以下信息 :  

                                                             *    支持的协议版本,比如 TLS 1.0 版 

                                                             *    支持的加密方法,比如 RSA 公钥加密 

                                                             *    支持的压缩方法 

                                     

                                      2 ) 服务端回应 ( ServerHello ) 接收到信息之后给予客户端响应握手信

                                              息,服务器的回应包含以下内容 : 

                                              ( 第二步,那就是 服务器要回应客户端要求建立连接的请求,并

                                                   把服务器自己的证书 发给 客户端 。 来证明自己不是仿冒的,是

                                                   官方的)

                                                           

                                                            *  确认使用的加密通信协议版本,比如 TLS 1.0 版本。 如

                                                               果 浏览器与服务器支持的版本不一致,服务器关闭加密通

                                                               信。 

                                                            *  一个服务器生成的随机数 , 稍后用于生成 “ 会话密钥 ”

                                                            *  确认使用的加密方法,这个加密算法一定是 client 发送给

                                                               server  加密算法的子集,比如 RSA 公钥加密。

                                                            *  服务器证书 :    可以自己制作,也可以向组织申请。 

                                                               

                                                                区别就是自己颁发的证书需要客户端验证通过,才可以继

                                                                续访问,而使用受信任的公司申请的证书则不会弹出提示

                                                                页面,传送的证书其实就是公钥,只是包含了很多信息,

                                                                如证书的颁发机构,过期时间,服务端的公钥,第三方证

                                                                书认证( CA - 即 安全认证中心,是个机构 )的签名等。   

                                                             *  除此之外,如果服务器需要使用双向认证,就会再包含一

                                                                项请求,要求客户端提供 “ 客户端证书 ”。 比如,金融机

                                                                构往往只允许认证客户连入自己的网络,就会向正式客户

                                                                提供 USB 密钥,里面就包含了一张客户端证书 。 

这个证书是服务器自己做的嘛,自己生成的嘛 ?? 

===>>> 

其实,还不是的。 

就是你想证明你自己是你,还不行,你不能证明自己是自己; 

举个例子,你想想,你的身份证是谁颁发的~?? 

哈哈, 得由官方来证明, 官方就是 :  公信力的部门,就是 CA - 安全认证中心 

                    

                                    3 )    客户端回应 : 客户端收到服务器回应以后进行证书解析,首先会验

                                                                   证证书是否有效,比如 颁发机构,过期时间等等,如

                                                                   果发现异常,则会弹出一个警告框,提示证书存在问题 

                                                                   如果没有问题,那就生成一个随机数3( 预主密钥),

                                                                   接下来是通过随机值1,随机值2和随机值3组装 会话密

                                                                  钥。  然后通过服务器端证书的公钥加密会话密钥,传送

                                                                   加密信息,内容如下 : 

那客户端收到服务端发送的 证书 后,

首先进行的就是 证书的验证

主要的就是检查两个有效  ( 还有其它的,主要是下面俩,但是只要有一个出问题,那就会弹出弹窗,就不行 ~!)

第一 :  颁发者是否有效,万一,有人冒充 CA 咋办 ?? 是吧 ?? 

第二 :  检查下颁发时间是否过期了 ,就是看下证书是否在有效期呢 ~!~!

                                                                                                                           

                                                        *    一个随机数 C 。 该随机数用服务器公钥加密,防止被窃听

                                                        *   编码改变通知,表示随后的信息都将用双方商定的加密方法

                                                            和密钥发送。

                                                        *   客户端握手结束通知,表示客户端的握手阶段已经结束。 

                                                             这一项同时也是前面发送的所有内容的 HASH 值,用来供

                                                             服务器校验。        

                           4  )   服务器的最后回应 :        

                                                           服务器收到客户端的第三个随机数 预主密钥 之后,计算生成

                                                           本次会话所用的 “ 会话密钥 ” ( 对称密钥 ) 。 

                                                           然后,向客户端最后发送下面信息 : 

                                                           *         编码改变通知,表示随后的信息都将双方商定的加密

                                                                     方法和密钥发送。 

                                                           *         服务器握手结束通知,表示服务器的握手阶段已经结

                                                                     束。 这一项同时也是前面发送的所有内容的 HASH 值

                                                                     用来供客户端校验。        

                              至此,整个握手阶段全部结束。 接下来,客户端与服务器进入加密通信,就完

                              全是使用普通的 HTTP 协议,只不过会用   “ 会话密钥 ” 加密内容。                                        

                                              

大致分为三个阶段 : 

                      *    1 )   2)  认证服务器 :  浏览器内置一个受信任的 CA 机构列表,并保存了这

                                                                   些 CA 机构的证书。 

                                                                    第一阶段会提供 经 CA 机构认证颁发的服务器证书,

                                                                    如果认证该服务器证书的 CA 机构,存在于浏览器的

                                                                    受信任 CA 机构列表中,并且服务器证书中的信息与当

                                                                     前正在访问的网站( 域名 ) 一致,那么,浏览器就认

                                                                     为服务端是可信的,并从服务器证书中取得服务器公

                                                                     钥,用于后续流程。

                                                                    否则,浏览器将提示用户,根据用户的选择,决定是否

                                                                    继续。 

                                                                     当然,我们可以管理这个受信任 CA  机构列表,添加

                                                                     我们想要信任的 CA 机构,或者 移除我们不信任的 CA

                                                                     机构。

                       *   3)   4 )      协商会话密钥 : 客户端在认证完服务器,获得服务器的公钥之后, 利

                                                                       用该公钥与服务器进行加密通信,协商出两个会话密

                                                                       钥,分别是用于加密客户端往服务端发送数据的客户

                                                                       端会话密钥,用于加密服务端往客户端发送数据的服

                                                                       务端会话密钥。 

                                                                       在已有服务器公钥,可以加密通讯的前提下,还要协

                                                                       商两个对称密钥的原因,是因为非对称加密相对复杂

                                                                        度更高,在数据传输过程中,使用对称加密,可以节

                                                                        省计算资源。 另外,会话密钥是随机生成,每次协

                                                                        商都会有不一样的结果,所以安全性也比较高。 

                     *    加密通讯 :       此时,客户端服务器双方都有了本次通讯的会话密钥,之后传输

                                                      的所有 Http 数据,都会通过会话密钥加密。 这样网路上的其它

                                                      用户,将很难窃取和篡改客户端和服务端之间传输的数据,从而

                                                      保证了数据的私密性和完整性。

                 对上示过程进行总结 :   

                                            首先  服务器 向客户端 提交 HTTPS  的连接申请,

                                             然后 服务端发送客户端证书,来证明 服务端的官方真实性,

                                             客户端 收到 服务端的证书之后,会把证书拿到本机存储的受信

                                             任颁发者列表里面检查是不是官方发的,验证下证书的真实性。

                                             客户端认可证书后,客户端和服务端就会 协商 将来发送明文时加密的

                                             密钥、算法、位数等一系列问题;

                                             客户端,服务端 协商成功后,就可以进行通讯了 ~!!

                

 那提出一个问题,上述整个流程中,用了几种加密算法呀 ?? 

              ===>>> 

              答案是 :  两种 

               这两类 分别是  对称加密 和 非对称加密 两种 加密算法 。 

                                                      

                                                      就是你要验证服务器的真实性,就得用公钥加密算法( 非对称

                                                      加密 )就是 有公钥 有私钥 。 

                                                      但是 ,只要真实性验证成功后,剩下的交流 (  你发给我 ,我

                                                      发给你,就是 客户端 和 服务端 两个相互交流) 这个之间的信

                                                      息不是还得加密嘛,这个加密算法就得 必须用 对称加密 。

                                                      因为,对称加密有个最大优点就是 速度快 ~!!! 

               ===>>>  

 再总结, HTTPS 一共用了两种加密方式 : 

                         

                         第一  :  公钥加密算法 又称为非对称加密算法,

                                        主要是用来验证服务端的网站真实性的~!!

                       

                        第二  :  HTTPS  客户端 和 服务端 两个之间的信息交流

                                       主要是 对称加密算法 以此来保证 数据的安全性的 ~!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/581745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

string常见接口的使用(基于c++标准库中的STL)

前言 string是c中常见的容器,它是用来管理字符的,它在物理上是可以动态增长的线性表,对于了解它的使用,以及常见的接口使用对于我们日常开发和使用是很有必要的,所以接下来让我们一起来了解一下string常见的接口吧&…

Linux Samba远程代码执行漏洞(CVE-2017-7494)漏洞复现

概述 1.该漏洞CVE-2017-7494又被称为Linux版的永恒之蓝 2.主要是利用smb上的反弹shell漏洞,进行远程代码执行 3.samba 3.5.0 到4.6.4/4.5.10/4.4.14的中间版本、docker 漏洞原理 1.远程命令执行 Samba允许连接一个远程的命名管道,并且在连接前会调用…

chatgpt赋能python:Python中两数取大——实现与应用

Python中两数取大——实现与应用 在Python编程中,经常需要对数值进行比较运算。而其中一种比较运算就是取两个数的最大值。Python提供了简单而有效的方法来实现这个功能。在本文中,我们将介绍Python中两个数取大的方法,并探讨其在实际应用中…

(转载)基于遗传算法的LQR控制器优化设计(matlab实现)

以下内容大部分来源于《MATLAB智能算法30个案例分析》,仅为学习交流所用。 5.1 理论基础 5.1.1 LQR控制 假设线性时不变系统的状态方程模型为 可以引入最优控制的性能指标,即设计一个输入量u,使得 为最小。其中,Q和R分别为状态变量和输…

研究人员发现新的 ICS 恶意软件工具包旨在导致电力中断

在过去几年中,国家支持的攻击者一直在提高攻击电网等关键基础设施以造成严重破坏的能力。 这个武器库的新成员是一个恶意软件工具包,它似乎是由一家俄罗斯网络安全公司为红队演习开发的。 该恶意软件被 Mandiant 的研究人员称为 COSMICENERGY&#xff…

资源配额(ResourceQuota) 资源限制(LimitRange)

资源配额 ResourceQuota 资源配额 ResourceQuota:限制命名空间总容量。 当多个团队、多个用户共享使用K8s集群时,会出现不均匀资源使用,默认情况下先到先得,这时可以通过ResourceQuota来对命名空间资源使用总量做限制,…

当 BLIP-2 遇上 Diffusion!可控图像生成的最优解,图像主题、风格任意切换,指哪改哪

夕小瑶科技说 原创 作者 | 智商掉了一地、ZenMoore 关于 P 图,本懒人想说的简直太多了,之前想换个背景总会把主体抠成毛边,随着最近越来越多的强大图像或多模态工具的诞生,人们在图像创作方面的技术实力越来越强大。比如&#x…

chatgpt赋能python:Python中cwd的介绍与使用

Python中cwd的介绍与使用 在Python编程中,经常需要获取当前工作目录(current working directory,缩写为cwd),以便进行文件操作、路径拼接等操作。本文将介绍如何使用Python中的os模块和pathlib模块获取和修改cwd&…

整型在内存中的存储,整型最大值最小值的推导,以及大小端的介绍

整数在内存中的存储 我们知道C语言有以下基本的整型类型&#xff1a; char //字符型 short //短整型 int //整型 long //长整型 long long //更长的整型我们可以用操作符sizeof和在<limits.h>头文件下&#xff0c;可以查看到各基本数据类型的所占字节的大小以及整形所…

【笔记整理】常见聚类算法

【笔记整理】常见聚类算法 文章目录 【笔记整理】常见聚类算法一、均值偏移 - Mean-shift&#xff08;★★★★&#xff09;1、概述 & 图解&#xff08;“偏心”&#xff09;2、公式 & 步骤1&#xff09;基本公式&#xff08;“偏移量更新圆心”&#xff09;2&#xff…

chatgpt赋能python:Python两数相加代码:基础知识和实现方法

Python两数相加代码&#xff1a;基础知识和实现方法 简介 Python是一门高级编程语言&#xff0c;以其简洁、易读的语法和强大的库而被广泛应用于数据分析、机器学习、Web开发等领域。在这篇文章中&#xff0c;我们将介绍如何使用Python编写一个简单的两数相加代码&#xff0c…

约瑟夫环的线性解法

参考:https://www.luogu.com.cn/problem/P8671 参考:https://zhuanlan.zhihu.com/p/121159246 参考:https://blog.csdn.net/doge__/article/details/82429348 #include <bits/stdc.h> using namespace std; int n,k,s; int main(){cin>>n>>k;for(int i2;i&…

chatgpt赋能python:Python中的importmath

Python中的import math Python是一种高级编程语言&#xff0c;有众多强大的功能库可供使用。其中一个非常常用的功能库就是math。math库提供了许多用于进行数学运算的函数。在本文中&#xff0c;我们将介绍Python中的import math。 什么是import math&#xff1f; 在Python中…

chatgpt赋能python:Python中Decode函数详解:什么是Decode函数,它有什么作用?

Python中Decode函数详解&#xff1a;什么是Decode函数&#xff0c;它有什么作用&#xff1f; 介绍Decode函数 在Python编程中&#xff0c;我们经常需要处理文本数据。数据的处理可能涉及到不同的编码格式&#xff0c;比如ASCII、UTF-8、GBK等等。而Decode函数就是Python中用于…

安装并新建windows下wxwroks7.0 bootrom工程

双击steup.exe 直接next 直接next 选择typical&#xff0c;然后next I accept 安装完成finish 现在双击Workbench 4&#xff0c;新建vxworks7.0工程&#xff0c;会出现下面的情况&#xff0c;因为没有licence 安装licence&#xff0c;将zwrsLicense-vx7-perm.lic粘贴到安装目…

chatgpt赋能python:Python中的Dash框架:数据可视化新选择

Python中的Dash框架&#xff1a;数据可视化新选择 随着大数据时代的到来&#xff0c;数据可视化成为日益重要的一环。Python早已成为数据科学家和工程师的首选语言之一&#xff0c;然而如何将数据转化为可视化图表呢&#xff1f;这时候&#xff0c;Dash框架应运而生。 什么是…

AHB-to-APB Bridge——08burst_test(rdy、nrdy、slverr、tight)、地址

-------------- burst_test:与single_test不同的是&#xff0c;需要在run_phase中使用fork join 让AHB侧和APB侧同时工作&#xff08;不能等AHB都发完APB才工作&#xff09;&#xff1b;num_apb_seq为APB已传输的个数&#xff0c;当APB侧传输数据的个数&#xff0c;大于或等于A…

dbn_svm电池容量soc预测,深度信念网络DBN+支持向量机SVM的电池容量SOC预测

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) LSTM长短期神经网络的原理 DBN+SVM的时间序列电容预测 基本结构 主要参数 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,本文用DBN提取特征,用SVM分类,…

chatgpt赋能python:Python中0.0和0的相同性探究

Python中0.0和0的相同性探究 Python是一种动态且解释型的编程语言&#xff0c;被广泛应用于编写Web应用程序、数据分析、人工智能等领域。当我们在Python中进行数值比较时&#xff0c;可能会遇到这样一个问题&#xff1a;0.0和0是否相同&#xff1f;本文将会进行探究&#xff…

【Python】一个简单的小程序,实现批量修改图片格式(附完整代码及程序)

程序下载地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1ser7iEMRS54syvwl1cck1Q?pwdjr66 提取码&#xff1a;jr66 一、完整代码 如果想要测试代码&#xff0c;记得在使用前先保证已经安装了Python的PIL模块 import os from tkinter import Tk, Button, messa…