如何从浏览器的SSL / TLS会话出口高手秘诀是什么?(How to export master

2019-07-20 08:22发布

我想在Windows中打开浏览器,进入到HTTPS站点,并同时使用Wireshark捕获数据包执行一系列操作。 然后我想使用加密的数据包捕获,查看解密的HTTP流量。 我知道很多方法可以做到这一点(见下表),如果你放弃浏览器,可以访问服务器,或添加MITM,但这些工作的,当你所规定的限制的情况。 这里是我的典型方法:

服务器:在那里我有服务器私钥,使用Wireshark内置的SSL解密网站。

MITM:一个SSL代理服务器(例如,打嗝套件)将允许解密的流量观看,但这需要使用比什么是由服务器使用不同的证书和密钥对。

浏览器:OpenSSL的的s_client.First可以连接,提出请求,并导出主密钥,但是这并不能显示相关网页或运行JavaScript来计算后续请求参数。

有没有从“正常”的浏览器导出主密钥,这样我可以用它来解密后的浏览器会话的数据包捕获的方法吗?

例如,存储在磁盘上的SSL / TLS状态,当浏览器被关闭? 如果是的话,我将如何访问它? 它是在内存存取浏览器运行时(如果有的话我将如何找到它)?

或者,是由操作系统(Windows)存储所有SSL状态的数据,而不是直接访问?

另外,有一种方法强制浏览器使用特定的主密钥(和类似的会话ID等任何其他相关联的SSL状态数据),用于特定的HTTPS连接? 如果是的话,我可以设置使用的s_client.First SSL会话,然后将关键数据传送到浏览器并打开在同一会话的新连接。 这将实现通过不同的手段同样的目标。

Answer 1:

对于使用NSS库浏览器(如火狐),您可以设置SSLKEYLOGFILE 环境变量 ,这将导致NSS保存必要的秘密。 然后,您可以直接使用使用Wireshark该文件。 有被发现的详细信息在这里 。



文章来源: How to export master secret from browser SSL/TLS session?