2012-08-14 164 views
3

我們有一個SSL問題,我99%,這不是你通常的證書信任存儲區旋轉木馬。間歇性SSL握手錯誤

我們有一個Weblogic服務器試圖通過LDAPS與Active Directory建立SSL連接,底層SSL實現是JSSE。

有些時候,它的工作原理。通常在重新啓動Weblogic幾個小時後。

在這之後,我們開始越來越SSL握手錯誤,與SSL調試打開,我們看到:

[活動] ExecuteThread: '10' 的隊列:「weblogic.kernel.Default (自整定) '處理異常:java.net.SocketException: Connection reset [ACTIVE] ExecuteThread:'10'for隊列: 'weblogic.kernel.Default(self-tuning)',SEND TLSv1 ALERT:fatal, description = unexpected_message [ ACTIVE] ExecuteThread:'10'for 隊列:'weblogic.kernel.Default(self-tuning)',WRITE:TLSv1 Alert, length = 32 [ACTIVE] ExecuteThread:'10 「隊列: ‘weblogic.kernel.Default(自整定)’,異常發送報警: java.net.SocketException異常:殘破的管道

到目前爲止,我曾嘗試以下理解/複製它:

  • 通過OpenSSL的連接與加載的證書 - 工程確定每次
  • 通過與裝載證書安全ldapsearch的連接 - 每次
  • 通過自定義測試Java客戶端連接工程確定 - 每次工作確定
  • 使用Wireshark和私鑰解密SSL握手。

我注意到Wireshark的「壞」手搖是在客戶端發送更改密碼規格後,完成的消息AD不會以實物回覆。更何況,Wireshark的不能解密SSL握手,與失敗:

ssl_decrypt_pre_master_secret錯誤pre_master_secret長度(109, 預計48)dissect_ssl3_handshake無法解密預主祕密

注Wireshark的SSL解密完美的作品當SSL握手完美工作時。

直到AD服務器沒有響應的時候,我纔看到好的和不好的SSL握手的任何顯着差異。

在這一點上,我很困難...我真的很難理解爲什麼這會在一段時間內失敗,剩下的工作,在這一點上,我真的只是希望有什麼建議正在繼續。

哦,是的,差點忘了。有在Active Directory事件日誌中的錯誤:

事件ID:36888以下致命警報是由:20的 國家內部誤差爲960。

其中,經過一些研究,我設法發現對應於SSL「BAD_RECORD_MAC」錯誤。

我現在唯一的理論是,由於某種原因,錯誤的公鑰被用於加密握手...我看不到爲什麼服務器(和Wireshark)將無法解密完成的消息。

謝謝!

更新:

我比較壞的和良好的情況下,在這兩種情況下的密碼規格是一樣的:TLS_RSA_WITH_AES_128_CBC_SHA。我還比較了來自客戶端和服務器端的數據包,除了正常的以太網和IP協議差異外,它們看起來都是相同的。

+0

這很難從提供的數據中診斷出來。我建議從證書子系統和網絡嗅探並行(例如wireshark或類似的)獲得一些日誌記錄。這會幫助... – 2012-08-23 20:47:32

回答

4

因此經過大量的研究,實驗和靈魂搜索。我們最終將這個問題追蹤到了我們用來連接到外部系統的第三方庫。初始化時,它將自己添加爲JSSE默認提供程序之前的安全提供程序。我不知道爲什麼這會繼續打破所有後續的SSL連接......但它確實如此。

感謝您的幫助。

0

從我的理解,你有間歇性的問題。那就是你可以通過SSL連接到AD,但偶爾你會注意到這個錯誤。所以我認爲證書問題Error LDAPS不是你的問題。

從你的描述我只能想到以下幾點:
首先你沒有給這裏很多實際的細節,但您的評論:

注Wireshark的SSL解密完美的作品時,SSL握手 作品完美。

給我一個暗示,在不好的情況下,密碼套件是不同的。請注意,無論您是否擁有私鑰,wireshark都無法通過DHE生成的密鑰解密連接。
所以你應該看看你的調查,如果密碼組在不好的和好的情況下確實是不同的(例如RSA與DHE)。
此外,您描述這種方式,似乎問題發生在重新談判。也許重新談判被禁用,你可以啓用它?它一直被認爲是不安全的,並且可以在服務器中進行配置

+0

我知道缺乏細節,但我必須小心。我會看到我能做些什麼。雖然我只是感謝任何建議。 – wayneb 2012-08-14 20:36:28

+0

我應該澄清一下什麼是間歇的。通常,重新啓動Weblogic後,它可以正常工作幾個小時。似乎沒有固定的時間框架,但難以確定。在某個時候,它會停止工作,並且通常會一直處於故障狀態,直到有人重啓服務器。 – wayneb 2012-08-14 20:40:57