HTTPS的TSL握手流程是什么 HTTPS的TSL握手流程解析
HTTPS的TSL握手流程是什么
全面的为大家介绍HTTPS的TSL握手流程是什么方面的讲解,下面小编为您详细解答
传统的 TLS 握手基本都是使用 RSA 算法来实现密钥交换的,在将 TLS 证书部署服务端时,证书文件其实就是服务端的公钥,会在 TLS 握手阶段传递给客户端,而服务端的私钥则一直留在服务端,一定要确保私钥不能被窃取。
在 RSA 密钥协商算法中,客户端会生成随机密钥,并使用服务端的公钥加密后再传给服务端。
根据非对称加密算法,公钥加密的消息仅能通过私钥解密,这样服务端解密后,双方就得到了相同的密钥,再用它加密应用消息。
我用 Wireshark 工具抓了用 RSA 密钥交换的 TLS 握手过程,你可以从下面看到,一共经历了四次握手:


TLS 第一次握手
首先,由客户端向服务器发起加密通信请求,也就是 ClientHello 请求。
在这一步,客户端主要向服务器发送以下信息:
(1)客户端支持的 TLS 协议版本,如 TLS 1.2 版本。
(2)客户端生产的随机数(Client Random),后面用于生成「会话秘钥」条件之一。
(3)客户端支持的密码套件列表,如 RSA 加密算法。
TLS 第二次握手
服务器收到客户端请求后,向客户端发出响应,也就是 SeverHello。服务器回应的内容有如下内容:
(1)确认 TLS 协议版本,如果浏览器不支持,则关闭加密通信。
(2)服务器生产的随机数(Server Random),也是后面用于生产「会话秘钥」条件之一。
(3)确认的密码套件列表,如 RSA 加密算法。(4)服务器的数字证书。
TLS 第三次握手
客户端收到服务器的回应之后,首先通过浏览器或者操作系统中的 CA 公钥,确认服务器的数字证书的真实性。
如果证书没有问题,客户端会从数字证书中取出服务器的公钥,然后使用它加密报文,向服务器发送如下信息:
(1)一个随机数(pre-master key)。该随机数会被服务器公钥加密。
(2)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。
(3)客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供服务端校验。
上面第一项的随机数是整个握手阶段的第三个随机数,会发给服务端,所以这个随机数客户端和服务端都是一样的。
服务器和客户端有了这三个随机数(Client Random、Server Random、pre-master key),接着就用双方协商的加密算法,各自生成本次通信的「会话秘钥」
相关阅读
-
建一个网站需要什么技术 有关建立自己的网站平台
跟大家分享建一个网站需要什么技术和有关建立自己的网站平台的方法内容,很不错的方法小知识,建议收藏哦! 随着互联网高速发展,网站的功能无可取代,网站已经成了每个企业的标配,
-
常见负载均衡策略有哪些
全面为您解析常见负载均衡策略有哪些IT技巧方面的经验,如有不对的地方欢迎指正! 轮询法 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实
-
javascript的dom操作
全面的为大家介绍javascript的dom操作的内容,具体详情如下: 1、DOM介绍 概念 Document Object Model ,文档对象模型 将标记语言的各个组成部分封装为对应的对象: Document:整个文档对象 Element:元
-
深入浅出:MySQL数据库全面解析
今天带来的IT技巧小经验的相关介绍,具体介绍如下: MySQL是一个广泛使用的关系型数据库管理系统,由瑞典MySQL AB公司开发,现在属于Oracle公司。 从小型个人网站到大型企业级应用,MySQL的应


![[]byte与string的两种转换方式和底层实现](https://www.itdai.com/uploads/allimg/240325/20242A050-2-lp.jpg)