web-dev-qa-db-ja.com

「マルチプロトコルユニファイドHello」とは何ですか。それを無効/有効にするとどのような影響がありますか?

この記事 は、TLSの古いバージョンを無効にする方法を説明していますが、無効にするほかに、「マルチプロトコルUnified Hello」も無効になっています。

# Disable Multi-Protocol Unified Hello
md 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server' -Force
New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server' -name Enabled -value 0 -PropertyType 'DWord' -Force

私はその用語を検索しましたが、これを無効にする他のレジストリ編集以外には何も見つかりませんでした。

マルチプロトコルHelloとは何ですか。また、なぜ/いつそれを無効/有効にする必要がありますか?

5

確かではありませんが、コンテキストと平凡な名前に対するMSの傾向を考えると、couldはSSLv2 /後の互換性です。

SSLv3がリリースされたとき(かなり前)、SSLv2とは異なるメッセージ形式が使用されていたため、v3 ClientHelloをv2サーバーに送信してもまったく機能しませんでした。代わりに、v2を送信するのが一般的でしたformatクライアントがv3プロトコルと暗号を好むことを示すフラグを含むClientHello。 v3対応のサーバーがv3 ServerHelloで応答し、v3が続行します。 v2のみのサーバーはv3フラグを無視し、v2で応答し、v2が続行します。 TLS 1、1.1、および1.2(内部ではSSL 3.1、3.2、3.3と番号が付けられています)は、メッセージ形式を十分に近く保ち、これが機能し続け、ほとんどの場合、v3以降のプロトコル間でネゴシエーションを行いました。 OpenSSLはこれを「SSLv23メソッド」と呼んでおり、v3以降のみに切り替えた約2年前まではデフォルトのままでした。 Javaそれを 'SSLv2Hello'と呼びましたが、実際にはv2の選択を受け入れません。

SSLv2の使用は長い間悪い選択であり、2011年のRFC 6176はついに正式に「禁止」しましたが、一部の(多くの)ソフトウェアは、let-sleeping-dogs-lieとjust-inの組み合わせからそれをサポートしています。 -case-you-never-know、それにSCHANNELが含まれているので、v2の残りの部分を無効にする手順を実行することはおそらく良いことです。

3