TLS扩展主密钥 - 计算会话哈希

时间:2016-04-22 15:08:28

标签: ssl openssl

我有使用openssl库手动解析ssl / http流量的工具。它在大多数情况下工作正常,但是客户端/服务器使用扩展主密钥扩展时失败。

在握手的最后阶段发生了失败,其中执行了非常重要的测试编​​写数据。

据我所知,对于此扩展的正确工作,我需要使用特定的TLS字段(客户端问候,服务器问候,密钥交换)正确填充握手缓冲区,然后应该根据握手缓冲区的哈希生成主密钥。

不幸的是,这对我不起作用。

所以我的问题 - 应该对包装进行哈希以产生正确的主密钥?

对任何评论都会感激不尽。 谢谢。

PS:我从github下载了openssl的实用版本,其中实现了此功能。

openssl s_server / s_client使用corespond扩展,我可以在Wireshark中看到它,并且能够使用服务器pem文件解码流量。

1 个答案:

答案 0 :(得分:1)

您需要执行以下操作来生成会话哈希

1)按照到达顺序附加除加密握手之外的所有握手信息,请不要将记录标题包含在握手中。仅邮件和邮件标题

2)基于哈希,简单地说,    散列算法因Cipher Suite和Protocal Version而异    TLS1和TLS1.1混合了SHA1和MD5(每个16位)    TLS1.2主要是基于密码套件的SHA256或SHA384。