Firefox と IE7の SSLv3

自分の PC で Gyao が見られなかった、正確には、「Play」をクリックした直後の認証(というか、クッキーの確認?)をしてるサーバ( https://reg2.gyao.jp/ )に接続できなかった、のでちょっと調べてみた。

実は答えは分かっていて、SSL のハンドシェイクが失敗してるから。

SSL_Alert.png

というのも、使ってるPCでは「特定の暗号化アルゴリズムと Schannel.dll の特定の暗号化プロトコルの使用を制限する方法」を参考に MD5 の使用を制限してるから、MD5 必須なサイトが見られなくなってる。(あとは single DES、RC2、RC4 128bit 未満 も無効にしてある。RC4 も無効にしたいところだけど、そうするとわりと多くのサイトが見られなくなる。)
レジストリの設定はこう。
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56]
"Enabled"=dword:00000000
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]
"Enabled"=dword:00000000
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 128/128]
"Enabled"=dword:00000000
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128]
"Enabled"=dword:00000000
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128]
"Enabled"=dword:00000000
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5]
"Enabled"=dword:00000000
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"Enabled"=dword:00000000
[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
上のようにレジストリで設定すると、SSLv3 の時に IE が出す「サポートする暗号スイート」は次のようになる。

IE_Cipher_Suites.png

ちなみに Firefox は自分で暗号スイートを実装してるので上のレジストリの設定とは無関係。(about:config したあと、フィルタで security.ssl3 とすると、各暗号スイートの有効・無効を設定できる。IE と違って、個々の暗号アルゴリズムの有効・無効ではなく、組み合わせ単位での設定になる。)

Firfox_Cipher_Specs.png

ここで不思議なのが、Wireshark で見ると Firefox の SSLv3 が SSLv2 と表示されてるところ。SSLv2 は(デフォルトで)無効になってるから使われるはずはないんだけど…。

FX_IE_SSLv3.png

SSLv3 の実装の方針に SSLv2 互換の実装とかがあるのかしら?

posted by say · 2007年12月23日 12:17 · memo