5

現在、非同期 (IOCP) ベースのサーバーで SChannel を使用しています。ほとんどの機能は正常に動作していますが、再ネゴシエーションに問題があります。具体的には、ピア A がピア B に再ネゴシエーションの要求を送信し、ピア B が TLS1NO RENEGOTIATIONアラートで応答した場合、ピア A はどのように続行しますか? 応答を受け取った時点で無効なコンテキストがあるようで、SEC_I_NO_RENEGOTIATIONこれによりストリームを使用し続けることができなくなります...

更新しましたさらにテストを行ったところ、無効なコンテキストではないようですがSEC_E_ENCRYPT_FAILURE、次の暗号化呼び出しから得られます...

再交渉の要求は実際に拒否できますか? それともNO RENEGOTIATIONアラートは、接続が役に立たないことを意味する単に有益なエラー メッセージですか? もしそうなら、なぜ「エラー」ではなく「警告」とコメントされているのですか?? いいえ; TLS RFC (5246) は、再ネゴシエーション アラートの後で続行できるかどうかを決定するのはピア次第であると明確に述べています...

更新されました...を使用してTLSアラートを送信しても違いはありません...ApplyControlToken() or if I send it using EncryptMessage() with SECQOP_WRAP_OOB_DATA

4

2 に答える 2

1

Intel AMT ベースのハードウェアについては、この問題についてしばらく前に発行された HOTFIX がありました。基本的に、ルート証明書は証明書全体をキャッシュするのではなく、SHA-1 ハッシュとして保存されていました。SSPI は、ルートを除くすべての証明書を渡します。ルートが信頼チェーンの検証のためにこの証明書を持っていることを期待しています。完全なルートが存在しない場合、SSPI は再ネゴシエートを強制していました。

この修正プログラムは、Intel AMT がインストールされている Windows 2003 システムで schannel を更新します。

この KB を確認してください: http://support.microsoft.com/kb/942841

于 2009-09-21T18:50:27.183 に答える