3

我们有 SSL 问题,我 99% 这不是您通常的证书信任存储旋转木马。

我们有一个 Weblogic 服务器试图通过 LDAPS 与 Active Directory 建立 SSL 连接,底层 SSL 实现是 JSSE。

有时,它有效。通常在重新启动 Weblogic 后几个小时。

之后我们开始收到 SSL 握手错误,打开 SSL 调试,我们看到:

[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)', 处理异常: java.net.SocketException: Connection reset [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel .Default (self-tuning)', SEND TLSv1 ALERT: fatal, description = unexpected_message [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)', WRITE: TLSv1 Alert, length = 32 [ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)', 异常发送警报: java.net.SocketException: Broken pipe

到目前为止,我已经尝试了以下方法来理解/复制它:

  • 通过 OpenSSL 连接并加载证书 - 每次都可以正常工作
  • 通过加载证书的安全 ldapsearch 连接 - 每次都可以正常工作
  • 通过自定义测试 Java 客户端连接 - 每次都可以正常工作
  • 使用 Wireshark 和私钥解密 SSL 握手。

我注意到 Wireshark 的“糟糕”握手是在客户端发送 Change Cipher Spec 后,完成的消息 AD 不会以实物形式回复。更重要的是,Wireshark 无法解密 SSL 握手,失败:

ssl_decrypt_pre_master_secret 错误 pre_master_secret 长度(109,预期 48) dissect_ssl3_handshake 无法解密 pre master secret

注意 当 SSL 握手完美运行时,Wireshark SSL 解密也能完美运行。

我看不到 SSL 握手的好坏有任何显着差异,直到 AD 服务器没有响应。

在这一点上,我被难住了......我真的很难理解为什么这会在某些时候失败并在剩下的时间里工作,在这一点上,我真的只是希望对可能发生的事情提出一些建议。

哦,是的,差点忘了。Active Directory 事件日志中有错误:

事件 ID:36888 引发了以下致命警报:20。内部错误的状态为 960。

经过一番研究,我设法发现对应于 SSL“BAD_RECORD_MAC”错误。

在这一点上我唯一的理论是,由于某种原因,错误的公钥被用于加密握手......我看不出为什么服务器(和 Wireshark)无法解密完成的消息。

谢谢!

更新:

我比较了坏情况和好情况,两种情况下的密码规范是相同的:TLS_RSA_WITH_AES_128_CBC_SHA。我还比较了来自客户端和服务器端的数据包,除了正常的以太网和 IP 协议差异外,它们看起来都是相同的。

4

2 回答 2

5

因此,经过大量的研究、实验和灵魂探索。我们最终将此问题追溯到我们用来连接外部系统的第三方库。在初始化时,它会将自身添加为 JSSE 默认提供者之前的安全提供者。我不知道为什么这会继续破坏所有后续的 SSL 连接......但确实如此。

谢谢你的帮助。

于 2012-09-17T08:38:47.363 回答
1

据我了解,您的问题是间歇性的。也就是说,您可以通过 SSL 连接到 AD,但有时您会注意到此错误。所以我猜证书问题错误LDAPS不是你的问题。

根据您的描述,我只能想到以下几点:
首先,您在这里没有提供太多实际细节,而是您的评论:

注意 当 SSL 握手完美运行时,Wireshark SSL 解密也能完美运行。

给我一个提示,密码套件在坏情况下是不同的。请注意,即使您拥有私钥,wireshark 也无法通过 DHE 生成的密钥解密连接。
因此,如果密码套件在坏情况和好情况下确实不同(例如 RSA 与 DHE),您应该查看您的调查。
此外,按照您描述的方式,问题似乎发生在重新谈判期间。也许重新协商被禁用,您可以启用它?它被认为是不安全的,一般可以在服务器中配置

于 2012-08-14T20:29:27.277 回答