3

SSLに問題があり、私は99%ですが、これは通常の証明書トラストストアのメリーゴーランドではありません。

LDAPSを介してActiveDirectoryへのSSL接続を確立しようとしているWeblogicサーバーがあります。基礎となる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 = expected_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 send alert:java.net.SocketException:Broken pipe

これまでのところ、私はそれを理解/複製するために次のことを試みました:

  • 証明書がロードされた状態でOpenSSLを介して接続する-毎回正常に動作します
  • 証明書がロードされた状態で安全なldapsearchを介して接続する-毎回正常に動作する
  • カスタムテストJavaクライアントを介した接続-毎回正常に動作します
  • Wiresharkと秘密鍵を使用してSSLハンドシェイクを復号化します。

「悪い」ハンドシェイクについてWiresharkで気付いたのは、クライアントがChange Cipher Specを送信した後、FinishedメッセージADが現物で応答しないことです。さらに、WiresharkはSSLハンドシェイクを復号化できず、次のように失敗します。

ssl_decrypt_pre_master_secret間違ったpre_master_secretの長さ(109、予想される48)dissect_ssl3_handshakeはpremastersecretを復号化できません

注:SSLハンドシェイクが完全に機能する場合、WiresharkSSL復号化は完全に機能します。

ADサーバーが応答しなくなるまで、SSLハンドシェイクの良し悪しに大きな違いは見られません。

この時点で私は困惑しています...なぜこれがしばらくの間失敗し、残りは機能するのかを理解するのに本当に苦労しています。この時点で私は本当に何が起こっているのかについていくつかの提案を望んでいます。

そうそう、ほとんど忘れてしまった。ActiveDirectoryイベントログにエラーがあります。

イベント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ハンドシェイクが完全に機能する場合、WiresharkSSL復号化は完全に機能します。

悪い場合には暗号スイートが異なるというヒントを私に与えます。秘密鍵を持っている場合でも、wiresharkはDHEによって生成された鍵を介して接続を復号化できないことに注意してください。
したがって、暗号スイートが悪い場合と良い場合(RSAとDHEなど)で実際に異なるかどうかを調査する必要があります。
さらに、これを説明すると、問題は再ネゴシエーション中に発生するようです。おそらく、再ネゴシエーションが無効になっていて、有効にできますか?安全ではないと見なされており、一般的にサーバーで構成できます

于 2012-08-14T20:29:27.277 に答える