Web browser の TLS cipher suites を比較してみる
Windows の TLS chipher suites の順序を変更する方法
上記の続き。
Windows 7 以降の OS では TLS 1.2 が利用できるようになりました。
Internet Explorer の [インターネット オプション] の [詳細設定] - [セキュリティ] - [TLS 1.2 の使用] がその設定です。既定では無効になっています。
ただ、上記で [TLS 1.2 の使用] を有効化しても、それだけでは TLS 1.2 は利用されません。TLS 1.2 を利用するためには [システム暗号化: 暗号化、ハッシュ、署名のための FIPS 140 準拠暗号化アルゴリズムを使う] policy を有効化する必要があります。こちらも既定では無効です。
[グループポリシー エディター] で [Windows の設定] - [セキュリティの設定] - [ローカル ポリシー] - [セキュリティ オプション] で [システム暗号化: 暗号化、ハッシュ、署名のための FIPS 140 準拠暗号化アルゴリズムを使う] を有効化します。
有効化したら gpupdate.exe を利用し policy を即時適用します。
>gpupdate.exe /force
ポリシーを最新の情報に更新しています...
ユーザー ポリシーの更新が正常に完了しました。
コンピューター ポリシーの更新が正常に完了しました。
これで適用されました。IE の設定も含めて再起動は一切必要ありません。
以上の設定を施すと Client Hello で送信される Version が TLS 1.2 に cipher suites は下記のように変わります。
Internet Explorer 8 (TLS 1.2, TLS 1.1, TLS 1.0, SSL 3.0 有効)
TLS_RSA_WITH_AES_128_CBC_SHA256 |
TLS_RSA_WITH_AES_128_CBC_SHA |
TLS_RSA_WITH_AES_256_CBC_SHA256 |
TLS_RSA_WITH_AES_256_CBC_SHA |
TLS_RSA_WITH_3DES_EDE_CBC_SHA |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 |
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA |
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 |
TLS_DHE_DSS_WITH_AES_128_CBC_SHA |
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 |
TLS_DHE_DSS_WITH_AES_256_CBC_SHA |
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA |
FIPS 140 準拠 policy を有効化したことにより RC4 が使えなくなっていますね。 この状況では SSL で接続できない Web site が出てくるかもしれないですね。また、FIPS 140 準拠 policy は SSL / TLS に限らず、Windows CNG (Crypto Next Generatin) API の動作に影響するため、適用にあたっては最新の注意が必要になるでしょう。
同じ API を利用している Chrome, Opera は TLS 1.2 を有効化する設定項目が見当たらないため、Version は常に TLS 1.0 を送信し、TLS 1.1 および TLS 1.2 で追加された cipher suites は利用できません。ただ、FIPS 140 準拠 policy の影響は受けるので RC4 が利用できなくなります。