SSL/TLS协议详解(四)——TLS握手协议
目录
客户端发送Hello报文的内容
客户端版本
客户端的随机数
会话id(Session id)
压缩数据
扩展名
服务器接收Hello报文
编辑
服务器接收Hello报文的内容
服务器版本
服务器的随机数
密码套件
会话id(Session id)
压缩数据
服务器证书的信息
服务器端密钥交换
如何计算Pre-Master Secret
客户端密钥交换
消息验证代码(MAC)和TLS数据完整性
MAC密钥和IV密钥
生成测试数据
验证磋商
在这篇文章中,将会探索整个SSL/TLS握手过程,在此之前,先简述下最后这块内容的关键要点:
- TLS适用于对称密钥
- 对称密钥可以通过安全密钥交换算法共享
- 如果请求被截获,密钥交换可能会被欺骗
- 使用数字签名进行身份验证
- 证书颁发机构和信任链。
大多数现代浏览器都存有与Web服务器的最后一次连接的记录,如果最后一次连接是通过https进行的,那么下次浏览器将自动启动https请求而无需等待服务器。
TLS握手分为以下几个步骤:
- 客户端发送Hello报文
- 服务器接收Hello报文
- 共享证书和服务器密钥交换
- 更改密码规范
- 加密握手
客户端发送Hello报文
从这里开始,我将会重点讨论图片中标记为蓝色的主题,Client发送的Hello报文如下图所