.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 に変更し、動作しています。