服务器认证阶段:
1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
3)客服根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
用户认证阶段:
在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。
一,什么是TLS?
传输层安全性协议 ,它的前身是安全套接层 (Secure Sockets Layer,缩写作 SSL),是一个被应用程序用来在网络中安全通信的 通讯协议,防止电子邮件、网页、消息以及其他协议被篡改或是窃听。
是用来替代SSL的,是一种密码协议,用来提供计算机之间交互的安全通信。主要用于https通信,也用于email,即使通信等。
SSL 即安全套接字层,它在 OSI 七层网络模型中处于第五层,SSL 在 1999 年被 IETF(互联网工程组)更名为 TLS ,即传输安全层,直到现在,TLS 一共出现过三个版本,1.1、1.2 和 1.3 ,目前最广泛使用的是 1.2,所以接下来的探讨都是基于 TLS 1.2 的版本上的。
所有现代浏览器都支持 TLS 协议,它们都要求服务器提供一个有效的数字证书来确认身份以建立安全连接。如果客户端和服务器都能提供自己的数字证书,则它们可以互相认证。
二,TLS1.2 和 TLS 1.3 的区别
在 TLS 1.2 的握手中,一般是需要 4 次握手,先要通过 Client Hello (第 1 次握手)和 Server Hello(第 2 次握手) 消息协商出后续使用的加密算法,再互相交换公钥(第 3 和 第 4 次握手),然后计算出最终的会话密钥,下图的左边部分就是 TLS 1.2 的握手过程:
上图的右边部分就是TLS 1.3
的握手过程,可以发现TLS 1.3 把 Hello 和公钥交换这两个消息合并成了一个消息,于是这样就减少到只需 1 RTT 就能完成 TLS 握手。
三,TLS握手协议过程
握手协议是TLS握手协议的一部分,负载生成共享密钥以及交换证书。其中,生成共享密钥是为了进行密码通信,交换证书是为了通信双方相互进行认证。
握手协议这一名称中的“握手”,是服务器和客户端在密码通信之间交换一些必要信息这一过程比喻。
由于握手协议的信息交换是在没有加密的情况下进行的(即使用“不加密”这一密码套件),也就是说,在这一协议中所收发的所有数据都可能被窃听者窃听,因此在这一过程中必须使用公钥密码或DH密钥交换。
服务器认证阶段
1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
3)客服根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
用户认证阶段
在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。