.NET を使用して HTTPS をサポートする Web サーバーを作成しましたSslStream。
残念ながら、ssllabs.com は私の実装について次のメッセージを出力します。
このサーバーは安全でない再ネゴシエーションをサポートしているため、MITM 攻撃に対して脆弱です。
これは、脆弱性に関する興味深いブログ エントリへのリンクです。
.NET で再ネゴシエーションを無効にするにはどうすればよいSslStreamですか?
.NET を使用して HTTPS をサポートする Web サーバーを作成しましたSslStream。
残念ながら、ssllabs.com は私の実装について次のメッセージを出力します。
このサーバーは安全でない再ネゴシエーションをサポートしているため、MITM 攻撃に対して脆弱です。
これは、脆弱性に関する興味深いブログ エントリへのリンクです。
.NET で再ネゴシエーションを無効にするにはどうすればよいSslStreamですか?
SslStream は内部で SChannel.dll を使用します。レジストリを変更することで、使用可能なアルゴリズムを構成できます。
http://support.microsoft.com/kb/245030
特に、次のスクリーンショットで強調表示されている 2 つのエントリは、TLS 再ネゴシエーションを許可しません。

これらは と と呼ばれAllowInsecureRenegoClients、AllowInsecureRenegoServers両方とも DWORD 値であり、両方とも 0 に設定され、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL.
どうやら、安全でない TLS/SSL 再ネゴシエーションも無効にするためにインストールできるホットフィックスがあるようです (Windows XP/Windows2003 サーバーにのみ適用可能):
window2012 の場合、「AllowInsecureRenegoClients」と「AllowInsecureRenegoServers」が 0 に設定されていると機能しません。
AllowInsecureRenegoClients」を 0 に、「DisableRenegoOnServer」を 1 に変更し、動作しています。