IE11 は TLS_FALLBACK_SCSV を送信しない

へー、そうなんだという内容です。

上記にあるレジストリは Win8.1 + IE11 では効きませんでした。
SSL ハンドシェイクを行う際、Client Hello にて TLS_FALLBACK_SCSV を送信すると Cipher Suites に {0x56,0x00} が
追加されるので

Cipher Suites: Unknown (0x5600)

があれば、TLS_FALLBACK_SCSV を送信していることがわかるのですが、IE11 では送信していませんでした。
IE は独自実装でフォールバックをしているのかなと思いきや、SChannel が独自に実装しているっぽい。

Microsoft connect サイトを見たら

Internet Explorer should send TLS_FALLBACK_SCSV
https://connect.microsoft.com/IE/feedback/details/1002874/internet-explorer-should-send-tls-fallback-scsv

を見つけたのですが、TLS_FALLBACK_SCSV はやらんと言ってますな。

もう一つ、ついでに

RFC5746 の ClientHello では renegotiation_info Extenstion が空であるか、TLS_EMPTY_RENEGOTIATION_INFO_SCSV として Signaling Cipher Suite Value (SCSV) を指定しなければ
ならない。

とある。では、IE はどのようにして Signaling Cipher Suite Value (SCSV) を指定しているのかというと、
IE11 に限らず、IE は renegotiation_info Extenstion を使ってた。(IE8 以降でパケット採って確認してみた)

IE11_SSLTLSHandShake

renegotiation_info というのは TLS 拡張で、SSL ハンドシェイク中の Client Hello と Server Hello の body の
extensions に付いてきます。初回ハンドシェイクの場合、ここには 00 が入ります。
(拡張の実際の中身は ff 01 00 01 00: “ff01” = 拡張タイプ、”0001” = 拡張の長さ、”00” = 1byte 分の 0 が入る)

IE11_SSLTLSHandShake2

クライアント
自身で renegotiation_info Extenstion  を送信した後、ServerHello を受信したら、サーバーが renegotiation_info Extenstion があるかをチェックする必要があり、あれば、secure_renegotiation = TRUE に、なければ
secure_renegotiation = FALSE に設定する。
secure_renegotiation = TRUE の場合には、再ネゴシエーションを行う際に renegotiation_info Extenstion を
使い、特定の情報を送信する。
secure_renegotiation = FALSE の場合には、再ネゴシエーションを中止する。
サーバー
Client Hello にて TLS_EMPTY_RENEGOTIATION_INFO_SCSV もしくは renegotiation_info Extenstion  があるかを
チェックして、どちらかがあれば secure_renegotiation = TRUE に設定する。
どちらも無ければ secure_renegotiation = FALSE に設定して、実装によってはハンドシェイクを中止させる。

面倒なのは、TLS_EMPTY_RENEGOTIATION_INFO_SCSV と renegotiation_info Extenstion  は両方一度に使うのは
ダメらしい。なんか、大変だね。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。