如何解密服务使用wireshark服务SSL流量?

时间:2016-09-07 20:44:23

标签: java tomcat ssl https wireshark

使用fiddler会导致某些应用程序在我的Windows机器上停止正常工作。我想使用wireshark解密我的tomcat和远程服务器之间的所有ssl流量。所有流量都是https。

我能够设置环境变量SSLKEYLOGFILE并解密浏览器生成的所有SSL流量。但这不适用于服务呼叫服务。有权访问tomcat的私钥,因为被称为前向保密的东西不再有用(我对此并不了解)。从我读到的访问会话密钥是最简单的wireshark解密方式。

如果有人可以回答以下任何一个问题,我的问题就可以解决了。

1>有没有办法让tomcat 8将会话密钥吐出到文件中,以便wireshark可以使用它来解密SSL流量。我正在使用java 8。

2>是否有一个工具不通过代理重定向流量,但能够解密我的机器上的SSL流量?

2 个答案:

答案 0 :(得分:2)

如果你有:

,你可以这样做
  1. 服务器的私钥(仅限RSA)
  2. 您可以限制用于TLS握手的密码套件
  3. 步骤:

    1. 抓住服务器的私钥并将其交给Wireshark。
      1. 转到Wireshark的首选项|协议| SSL
      2. 点击“RSA密钥列表”旁边的“编辑...”
      3. 将您的RSA私钥添加到wireshark可用的密钥列表
    2. 配置您的客户端以限制TLS密码套件,以便没有ECDHEDHE密码套件可用。可接受的密码套件示例包括SSL_RSA_WITH_3DES_EDE_CBC_SHATLS_RSA_WITH_AES_128_CBC_SHA256
    3. 您必须限制密码套件的原因是因为这些天,TLS将使用短暂的密钥交换算法(DHE!)。这就是完美前瞻性保密(PFS)的作用。你必须打破PFS,以便使用受损的RSA密钥(你通过使用Wireshark监听它“妥协”)来嗅探对话。

      好消息是,您不必乱用客户端或服务器就像使用Web浏览器那样删除临时密钥。坏消息是您必须将服务器密钥暴露给另一台主机(运行Wireshark的工作站),您必须降低对话的安全性。但这仅用于测试,对吧? ;)

答案 1 :(得分:2)

您可以使用extract-ssl-secrets工具从任何Java应用程序中提取Wireshark所需的密钥。

如果它不能立即使用,请参见troubleshooting section