java ssl握手日志 was_java-间歇性SSL握手错误

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

我们有一台Weblogic服务器试图通过LDAPS建立到Active Directory的SSL连接,底层的SSL实现是JSSE.

在某些时候,它可以工作.通常在重新启动Weblogic后几个小时.

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

[ACTIVE] ExecuteThread: ’10’ for queue: ‘weblogic.kernel.Default

(self-tuning)’, handling exception: 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)’, Exception sending alert:

java.net.SocketException: Broken pipe

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

>通过OpenSSL连接并加载证书-每次都可以正常运行

>通过安全的ldapsearch连接并加载已加载的证书-每次都可以正常运行

>通过自定义测试Java客户端进行连接-每次都能正常运行

>使用Wireshark和私钥解密SSL握手.

我用Wireshark注意到“糟糕的”握手,是在客户端发送更改密码规范后,“完成”消息AD不会以实物形式答复.更重要的是,Wireshark无法解密SSL握手,失败的原因是:

ssl_decrypt_pre_master_secret wrong pre_master_secret length (109,

expected 48) dissect_ssl3_handshake can’t decrypt pre master secret

注意:当SSL握手正常运行时,Wireshark SSL解密可以正常运行.

我看不到SSL握手的好坏,直到AD服务器无响应为止.

在这一点上,我感到很困惑……我真的很难理解为什么在某些时候会失败,而其余的工作都会继续,在这一点上,我真的只是希望就可能发生的事情提出一些建议.

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

Event ID: 36888 The following fatal alert was raised: 20. The state of

the internal error is 960.

经过一番研究,我设法找到了对应的SSL错误“ BAD_RECORD_MAC”.

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

谢谢!

更新:

我已经比较了好的情况和坏的情况,两种情况下的密码规范都相同:TLS_RSA_WITH_AES_128_CBC_SHA.我还比较了客户端和服务器端的数据包,除非存在正常的以太网和IP协议差异,否则它们似乎都是相同的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值