7

我正在尝试在我的 Web 服务器上调试 SSL 加密警报。我不确定问题出在哪里,事情似乎正在运行,但我在 Wireshark 中看到了许多我认为不应该存在的 TLSv1 加密警报。

TLSv1 警报协议 ( http://en.wikipedia.org/wiki/Transport_Layer_Security#Alert_protocol ) 提供了错误代码来指示什么是错误的,不幸的是这个代码是加密的。

Wireshark 允许通过在 SSL 首选项页面中提供私钥(我拥有)来解密 SSL。但是,由于会话是使用 Ephemeral RSA 设置的(Sharkfest'09 http://sharkfest.wireshark.org/sharkfest.12/presentations/MB-1_SSL_Troubleshooting_with%20_Wireshark_Software.pdf第 59 页),这对我不起作用。

我想知道如何阅读此警报代码。以下任何一项都会让我到达那里:
a)让 Wireshark 使用 Ephemeral RSA 解密 SSL
b)避免使用 Ephemeral RSA,以便 Wireshark 可以解密
c)强制 SSL 使用空加密,这样我就可以阅读代码来调试它

4

1 回答 1

1

b) 避免使用 Ephemeral RSA,以便 Wireshark 可以解密

如果您的 Web 服务器是 Apache,请尝试以下操作:

httpd.conf

SSLProtocol +all -SSLv2 -SSLv3
SSLCipherSuite -kEECDH:-kEDH:+kRSA:+HIGH:+MEDIUM:-LOW:-EXP

c) 强制 SSL 使用空加密,这样我就可以阅读代码来调试它

这可能有点棘手,但请尝试移到eNULL列表的前面。eNULL可能会被客户拒绝,但值得一试。我怀疑它会被拒绝,因为客户端不允许密码(或者aNULL,就此而言)。

如果客户端确实有eNULL,它仍然可能不会被使用。服务器通常尊重客户端的密码,因此除非客户端请求eNull,否则您将不得不在服务器配置上找到一个覆盖。

于 2013-10-15T12:30:11.080 回答