TLS全称是Transport Layer Security,是用来替代SSL的,是一种密码协议,用来提供计算机之间交互的安全通信。主要用于https通信,也用于email,即使通信等。
TLS握手
TLS握手通常分为2种方式,一种是基本的握手(具体可参照下图),另一种是客户端服务端握手(因为这种用的少,就不细讲)
通过上图可知,我们这里说的TLS握手主要讲的是最基本的TLS握手,即只使用服务器的证书来进行加密,具体步骤如下:
1.客户端与服务器之间通过3次握手建立连接
2.协商阶段
a. client发送一个ClientHello消息给server,这个消息包含了client支持的最高的TLS协议版本,一个随机数,当前client支持的密码组列表和建议的压缩算法
b.server发送一个ServerHello消息给client,这个消息包含了TLS协议版本,一个服务器随机数,根据客户端支持的密码组列表最终选择的密码和最终选择的压缩算法。
c.server发送Certificate(证书)消息
d.server发送ServerKeyExchange消息
e.server发送ServerHelloDone消息,表明握手协商已经完成
f.client发送ClientKeyExchange消息,这个消息包含了PreMasterSecret(这个值是根据server发送的Certificate里面的p