この投稿の主題
外部公開のWindows Server 2019への脆弱性診断で検出された
SWEET32 64ビットブロックのTLS暗号に対する誕生日攻撃(CVE-2016-2183)
への対応として、「TLS_RSA_WITH_3DES_EDE_CBC_SHA」を無効化します。
ハマりポイント
(※Windows Server(2019 試用版)日本語環境にて)
WindowsのUIから自動生成された文字列(後述手順の④)が、不正な文字列になっている。
(具体的には半角カンマで区切る必要がある文字列が、全角カンマで区切られて生成される)
この状態で保存・設定してしまうと暗号スイート全てが無効になり、
脆弱性に対処するどころか暗号化通信が一切できなくなってしまう。
対応にあたって
基本的には以下、 @shanneism さんの投稿が参考になりました。
Windows 2012 Server で利用可能なCipherSuite を設定する
以下、確認用のツールとしてNARTACのIIS Cryptoを利用していますが、
本設定にあたっては必要なツールではありません。
IIS Cryptoはインストール不要で、ダブルクリックして実行することで利用できます。
今回の原因に気づくキッカケになったツールではあるので、検証環境などでは利用をお勧めします。
対応手順
それでは、設定手順をまとめていきます。
①検索で「gpedit.msc」と入力、ローカルグループポリシーエディタを起動する
②コンピュータの構成で「管理用テンプレート」→「ネットワーク」→「SSL構成設定」と選択し、
右側ペインの「SSL暗号の順位」を開く
⑤メモ帳などエディタにペーストし、 全角の「、」を半角「,」に全置換 する
(これを行わないと、有効な設定になりません)
⑥「TLS_RSA_WITH_3DES_EDE_CBC_SHA,」を検索して削除する
(以下キャプチャでは、空文字に置換している)
⑦上記まで編集した文字列をすべてコピーし、以下赤枠の文字列を上書きする
上記作業後にIIS Cryptoで確認すると、
「TLS_RSA_WITH_3DES_EDE_CBC_SHA」のチェックが外れていることが確認できる。
ちなみに、⑤を行わないと全体で一つの暗号スイートとして表示される。
が、当然有効な文字列ではないようで、全ての暗号スイートのチェックが外れた状態となる。
(httpsでの通信が失敗するようになります)
⑧Windowsを再起動する
3DES暗号の無効化作業は以上で完了です。
脆弱性診断でも検出されなくなり、無事0件となりました。
懸念
本設定によりリモートデスクトップ接続ができなくなるWindowsがあるとの文献があります。
Windows 10で脆弱な暗号を削除すると、発信RDPが破損する
この暗号を無効にすると、RDP from多くのWindowsステーションへのこのコンピューターが機能しなくなります(一部の2008 R2および2012 R2サーバーでは機能します)
私が対応した環境(Windows Server 2019)下ではリモートデスクトップ接続もできています。
本設定により不都合が生じる場合は、③の画面で「未構成」を選択することで元に戻すことができます。