Warm tip: This article is reproduced from serverfault.com, please click

其他-在Wireshark中使用密码TLS_ECDHE_RSA解码ssl数据包

(Decoding ssl packets with cipher TLS_ECDHE_RSA in wireshark)

发布于 2021-03-09 22:11:37

我正在尝试使用Wireshark在数据包捕获中解码ssl数据包。当服务器在TLS握手期间选择的密码是TLS_RSA_WITH_AES_AES_256_CBC_SHA256时,我能够使用服务器密钥成功解码数据包。我只在编辑->首选项->协议-中提到服务器ip / port / protocol(http)/server.key > ssl。但是,当使用的密码是TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256时,它不起作用。我使用的是Wireshark版本2.0.2。还有其他解码方式吗?

Questioner
user3049437
Viewed
144
the-wabbit 2017-08-18 22:24:33

你问题的答案是

否,因为有ECDHE_RSA。

现在让我们看看为什么会这样。让我们详细了解整个密码套件规范TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS-协议
  • ECDHE_RSA-身份验证和密钥交换算法
  • WITH_AES_128-加密/解密算法
  • GCM-用于加扰数据的模式,因此可以与算法安全地使用
  • SHA256-消息验证码算法

密钥交换算法指定如何交换批量加密/解密密码的密钥。关于ECDHE_RSA中使用Diffie-Hellman密钥交换,有一些特殊之处:

DHE_RSA提供了一个称为Perfect Forward Secrecy(完美转发保密)的名称,它具有以下属性的浮夸名称:如果你的服务器遭到了彻底的黑客攻击,则攻击者可以获得服务器私钥的副本,那么他也将能够解密过去的TLS会话(由他记录),如果这些会话使用RSA,而如果这些会话使用DHE_RSA,则他将无法执行此操作。

从安全性答案中被盗

换句话说,使用(EC)DHE,即使你具有服务器的私钥,也无法从TLS密文对话中检索用于加密和解密的AES密钥。

当仅依靠RSA进行密钥交换时,情况有所不同:在此操作模式下,要使用的大容量密码由客户端生成,并使用服务器的公钥进行RSA加密并发送到服务器。如果窃听的第三方拥有服务器的私钥,则它可以简单地解密密钥交换的RSA密文,获取大密码并解密其他内容。这正是Wireshark为你解码TLS流时所做的事情。

因此,对于基于RSA的密钥交换有效的方法,对于基于DHE的密钥交换无效的方法。