(2)TLS 握手协议
TLS 捏手协议又细分为:握手协议( Handshake Protocol)、变更密码规
格协议( Change CipherSpec Protocol)、警告协议( Alter Protocol)和应
用数据协议( Aplicationdata Protocol)。
TLS Record protocol
SSL 记录协议为 SSL 连接提供两个服务
1. Confidentialit
2. Message Integrity
首先,消息被分制成多个较短的片段( fragment),然后分别对每个片
段进行压缩具体所采用的压缩算法通过前面的揠手协议确定。实际使用中,
很少采用压维操作。
接下来,经过压的片段会被加上消息认证码,目的是为了保证消息完整性
和数据源发认证。这里利用了 MAC 的功能。时,为了防止重放攻击,在计算
消息认证码时,还加上了片段的編号。这一步操作所需的算法和密钥同样是
在握手协议阶段协商获得包括:哈函缴算法、消息认证码所使用的共享密钥
然后,经过压缩的片段拼上消息认证码作为输入,通过对称加密算法进行
加密如果加密使用 CBC 模式,所需的初始化向量(I)通过主密钥( master
secret)生成具体所采用的对称加密算法和共享密钥也是通过前面的捏手协
议确定。
最后,上面所得的密文加上记录协议头,则构成了记录协议报文,交由下
层的 TCP 协议发送。
在 TCP 协议栈中,每层协议都体现为封装上层协议,即:给上层协议报文
添加个头部和尾部(根据具体协议而言).相应地,TLS 记录层协议也会给上
层协议的报添加一个头部,即 TLS Record header。
TLS HandShake protocol
握手协议的工作原理:握手协议是 TLS 握手协议的一个子协议,用于在
客户端和服务器之间协商产生用记录协议中所要使用的密码算法和共享密
钥,基于证书的认证操作也在这个协议中完成。
握手协议实现如下功能:
(1)客户端和服务器端协商 TLS 协议版本号和一个密码套件
(2)认证对端身份(可选,htp3 中一般只认证服务器的身份)
(3)使用密钥协商算法协商共享的 master secret
具体流程如下
(1)交换 Hello 消息,协商出箅法,交换 random 值,检查 session
resumption.
(2)交换必要的密码学参效,来允许 client 和 server 协商出
premaster secret
(3)交换证书和密码学参数,让 client 和 server 做认证,证明自己
的身份
(4)从 premaster secret 和交换的 random 值,生成出 master secret
(5)把 Security Parameters 提供给 record 层。