其他分享
首页 > 其他分享> > tls1.2 handshake中extension的解析

tls1.2 handshake中extension的解析

作者:互联网

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