ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

tls1.2 handshake中extension的解析

2020-03-16 11:37:00  阅读:310  来源: 互联网

标签:handshake extension tls1.2 TLS1.2 算法 签名 hello 客户端


TLS1.2 handshake中extension的解析

前段时间抓包分析TLS1.2协议,发现TLS1.2中在client hello中会有很多extension,如下图所示,图中红色框图中部分为extension。
client hello
由于本人主要对算法感兴趣,因此主要是对Extension 中的signature_algorithms进行解析,该字段的展开如下图所示:
signature algorithm
服务器在收到client hello后,对其中的extension 进行解析,然后选定一个(选择原则应该是主要考虑安全性,这个只是猜测,具体原则未知),在后面签名的时候会使用选择的算法进行使用。
这里需要注意的是,从抓包来看,sever hello中extension部分并不包含对signature algorithm的回复,如下图所示:
server hello
server hello中为什么回复了这三个参数,目前还没有深入研究,但是在接着的server key exchange包中使用了签名算法,并且对算法进行了说明,如下图所示:
server key exchange
上图中红色框图部分,即为签名算法和签名结果。server选择了安全性较高的sha512,可以推断安全是选择算法的重要因素之一。

仔细想一下,确实不需要在hello中协定好签名算法,为了减少交互,服务端只需从客户端支持的算法中选择一个使用就好。而且这样也更灵活,即使由于其它原因需要更改签名算法,也不需要去通知客户端,只要是客户端支持的算法列表中的算法,客户端都可以解析,这种松耦合的设计,更利于协议的稳定性。

补充一下:
TLS1.2的RFC中写道,如果client 没有发送extension的话,服务端应该如何来选择签名算法,主要是依据协商的算法套件,采用密钥交换的公钥算法作为签名算法,摘要算法用sha1,原文如下:
come from RFC5248

标签:handshake,extension,tls1.2,TLS1.2,算法,签名,hello,客户端
来源: https://blog.csdn.net/s493197604/article/details/104893867

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有