TLS/SSL 协议详解 (19) Encrypted handshake message
来源:互联网 发布:sql server 2005 sp2 编辑:程序博客网 时间:2024/05/29 10:51
其实这个报文的目的就是告诉对端自己在整个握手过程中收到了什么数据,发送了什么数据。来保证中间没人篡改报文。
计算方法也比较简单,将之前所有的握手数据(包括接受、发送),计算md运算,然后计算prf,然后就是使用协商好的对称密钥进行加密了。
MD运算:
md算法根据协议、算法不同,计算方式不一样。
(1)对于TLS1.2,摘要算法是sha256,即md_result = sha256(all_handshake);
(2)对于TLS1.0 1.1,摘要算法是md5和sha1结果的拼接,即 md_result = md5(all_handshake) + sha1(all_handshake)。
(3)特殊情况:如果加密套件中指定了sha384算法,例如RSA_WITH_AES256_CBC_SHA384加密套件,则无论协商使用tls哪个版本,都用sha384,即md_result = sha384(all_handshake)。
PRF运算:
计算完摘要后,客户端按这种格式:“client finished”+ md_result,作为prf的输入。Prf的输出指定为12字节。12字节的数据前填充4字节message头部信息,就可以送入对称加密流程进行加密了。
PRF运算有机会单讲,其实就是P_HASH运算,P_HASH就是不断hmac运算,直到计算出预定指定长度的值为止。
具体TLS1.0 1.1 和TLS1.2的PRF算法略不同。
我们将prf解密后,可以看到如下格式:
14 代表 finished 类型的message, 00 00 0c 三字节表示后续的prf长度,是12字节。也就是说对称加密的的输入就是
14 00 00 0c + 12字节prf。
- TLS/SSL 协议详解 (19) Encrypted handshake message
- SSL/TLS 协议详解
- SSL/TLS 协议详解
- SSL/TLS 协议详解
- SSL/TLS协议详解
- SSL/TLS 协议详解
- SSL/TLS 协议详解
- SSL/TLS 协议详解
- SSL/TLS 协议详解
- SSL/TLS Handshake 握手 连接
- 【SSL/TLS】TLS Stack and HandShake detail
- TLS/SSL 协议详解 (8) 协议简介
- 【计网】SSL/TLS 协议详解
- TLS/SSL 协议详解(1) 前言
- TLS/SSL 协议详解 (9) Client hello
- TLS/SSL 协议详解(10) server hello
- TLS/SSL 协议详解(11) Server Certificate
- TLS/SSL 协议详解(13) certificate request
- 前端框架Vue、angular、React的优点和缺点
- VMware下安装centOS6.6
- 钉钉开发之PC端钉钉打开微应用为空白页问题
- modelsim 保存仿真结果(波形文件)
- Android电池充电显示数据
- TLS/SSL 协议详解 (19) Encrypted handshake message
- SSL P2714 游戏
- 负载均衡SLB高可用的四个层次
- golang tcp 客户端
- Markdown 11种基本语法
- Java文件IO学习笔记(五)-删除文件夹和文件
- git 添加远程库报错 fatal:remote origin already exists
- springboot中配置druid允许一次执行多条sql
- UVa 10374