WindowsのレジストリでSSL 2.0、SSL 3.0を無効にする方法

最終更新日

前の記事 SSL 3.0の脆弱性、FirefoxとIEでの対策の続きです。

レジストリエディターから設定 (Windows)

OS(Windows)でSSL 2.0、SSL 3.0を無効にさせます。これだけで安心せずに、ソフト側でも無効にしておいた方がいいでしょう。(理由は次の章を参照)

  1. レジストリエディターを起動する。
  2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocolsを開く。
  3. その配下にある、次の名前キーをクリック。
    (なければ右クリック→新規→キー で作成する)

    • SSL 2.0\Client
    • SSL 3.0\Client
    • SSL 2.0\Server(サーバーの場合)
    • SSL 3.0\Server(サーバーの場合)
  4. それぞれの右側の画面に、

    • DisabledByDefault 1
    • Enabled 0

    と表示されていればokです。
    数字が違っていれば変更します。
    項目がなければ、右クリック→新規作成→DWORD値で作成します。

レジストリエディター SSL・TLSの項目

SSL 2.0\Client以外のキーはなかったので、自分で作成しました。

Protocolsの下に「SSL 3.0」、その下に「Client」というふうに、キーを作成していきます。

サーバーではないPCは、Clientのみ追加でいいと思います。

Windows10 ビルド10586以降では、SSL 2.0・SSL 3.0がデフォルトで無効になっています。それよりも前のビルドについては不明のため、念のため設定を確認してください。

[参考]

How to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll
http://support.microsoft.com/kb/245030/en-us

日本語訳(機械翻訳)
特定の暗号化アルゴリズムおよび Schannel.dll のプロトコルの使用を制限する方法
http://support.microsoft.com/kb/245030/ja

レジストリで無効にしても、効果のないソフトがある。

TLS 1.0でテストしました。

設定

  • グループポリシーで有効 (必然的にIEも有効)
  • Firefoxで有効
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.0\Client
    Enabled 0 (=無効)

操作

IEとFirefoxで、TLS 1.1以降に未対応のhttpsページに接続。

結果

  • IE →「表示できません」
  • Firefox → 正常に表示

サードパーティ製のソフト等が独自でプロトコルをサポートしている場合には、レジストリ操作の影響はないのかもしれません。

SSL・TLSの有効または無効の設定の優先順位

(一部のソフト) > レジストリのEnabled=0 > グループポリシー > インターネットオプション

←← 優先 ←←

DisabledByDefault=1とEnabled=0

Windows7や8などのレジストリには、

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Client

に、(DWORD値) DisabledByDefault 値 1 ……デフォルトでは無効という意味
という項目があります。(XPの場合、デフォルトでは存在しませんでした)

このDisabledByDefaultの値よりも、グループポリシーやソフト等での設定が優先されます。DisabledByDefault=1があったとしても、Enabled=0を追加する必要がありそうです。

また、DisabledByDefaultとEnabledの設定が矛盾した場合は、Enabledでの設定が優先されていました。

関連記事