【Windows】SSL/TLS 通信の脆弱性のあるアルゴリズムの無効化手順

PKI

クレジットカードや個人情報を入力する Web サイトでは、インターネット上で安全に通信ができるように SSL/TLS のプロトコルで暗号化されています。

SSL/TLS の暗号化された通信において、DES や 3DES、RC4 など脆弱性があるアルゴリズムが利用されていると危険です。

Windows OS では SSL/TLS 通信の処理は Schannel.dll というモジュールで行われており、そのモジュールにて脆弱性のあるアルゴリズムを無効化すれば SSL/TLS 通信において利用されなくなります。

今回は Schannel.dll にて脆弱性のある各アルゴリズムを無効化する手順を紹介します。

 

MD5 の無効化

MD5 のハッシュアルゴリズムは脆弱性が確認されており、無効化することが推奨されています。
Schannel.dll で MD5 を無効化する手順は以下の通りです。

1) 管理者権限をもつユーザーでログオンします。
2) [ファイル名を指定して実行] を開き、regedit と入力してレジストリ エディターを開きます。
3) 以下のレジストリを設定します。

レジストリ キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5
値の種類: REG_DWORD
値の名前: Enabled
値のデータ: 0

 

DES の無効化

DES の共通鍵暗号のアルゴリズムは脆弱性が確認されており、無効化することが推奨されています。
Schannel.dll で DES を無効化するには、以下の手順でレジストリを設定します。

1) 管理者権限をもつユーザーでログオンします。
2) [ファイル名を指定して実行] を開き、regedit と入力してレジストリ エディターを開きます。
3) 以下のレジストリを設定します。

レジストリ キー : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56
値の種類 : REG_DWORD
値の名前 : Enabled
値のデータ : 0

 

3DES の無効化

3DES の共通鍵暗号のアルゴリズムは脆弱性が確認されており、無効化することが推奨されています。
Schannel.dll で 3DES を無効化する手順は以下の通りです。

1) 管理者権限をもつユーザーでログオンします。
2) [ファイル名を指定して実行] を開き、regedit と入力してレジストリ エディターを開きます。
3) 以下のレジストリを設定します。

レジストリ キー : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168
値の種類 : REG_DWORD
値の名前 : Enabled

値のデータ : 0

 

RC4 の無効化

RC4 の共通鍵暗号のアルゴリズムは脆弱性が確認されており、無効化することが推奨されています。
Schannel.dll で RC4 を無効化するには、以下の手順でレジストリを 3 つ設定します。

1) 管理者権限をもつユーザーでログオンします。
2) [ファイル名を指定して実行] を開き、regedit と入力してレジストリ エディターを開きます。
3) 以下のレジストリを設定します。

レジストリ キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128
値の種類: REG_DWORD
値の名前: Enabled
値: 0

レジストリ キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128
値の種類: REG_DWORD
値の名前: Enabled
値: 0

レジストリ キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128
値の種類: REG_DWORD
値の名前: Enabled
値: 0

 

SSL 3.0 の無効化

SSL 3.0 のプロトコル バージョンは脆弱性が確認されており、無効化することが推奨されています。
Schannel.dll で SSL 3.0 を無効化するには、以下の手順でレジストリを設定します。

1) 管理者権限をもつユーザーでログオンします。
2) [ファイル名を指定して実行] を開き、regedit と入力してレジストリ エディターを開きます。
3) 以下のレジストリを設定します。

キー①:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server
値の種類: REG_DWORD
値の名前: Enabled
値: 0

 

キー②:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client
値の種類: REG_DWORD
値の名前: Enabled
値: 0

※ レジストリ キーとして Client と Server の 2 つありますが、“Client” は SSL 通信のクライアントとして動作するときの設定、“Server” はサーバー側として動作するときの設定となります。

 

TLS 1.0 の無効化

TLS 1.0 のプロトコル バージョンは脆弱性が確認されており、無効化することが推奨されています。
Schannel.dll で TLS 1.0 を無効化するには、以下の手順でレジストリを設定します。

1) 管理者権限をもつユーザーでログオンします。
2) [ファイル名を指定して実行] を開き、regedit と入力してレジストリ エディターを開きます。
3) 以下のレジストリを設定します。

キー①:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server
値の種類: REG_DWORD
値の名前: Enabled
値: 0

 

キー②:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client
値の種類: REG_DWORD
値の名前: Enabled
値: 0

※ レジストリ キーとして Client と Server の 2 つありますが、“Client” は SSL 通信のクライアントとして動作するときの設定、“Server” はサーバー側として動作するときの設定となります。