日本の大銀行のSSL対応状況

悪いインターネット」に「SSL接続確認」という確認ツールを作ってみた。既にある Qualys SSL Labs の確認ツールの真似事で大幅劣化版ではあるが、結果が出るまでにあまり待たなくて済むし暗号スイート名が OpenSSL のそれなので OpenSSL を使っているホストなら設定確認に使いやすい(筈)。

そこで、動作確認の一部として日本の都市銀行+ゆうちょ銀行のオンラインバンキングのログイン画面を表示するホストを見てみた。(銀行番号順)

以下の「使用中のプロトコル」「使用中の暗号スイート」は実際に接続して何が使用されているかというもの。

0001 みずほ銀行

web.ib.mizuhobank.co.jp

受付 プロトコル	暗号スイート名		Kx	Au	Enc		Mac
優先 TLSv1.0 AES256-SHA (0x00,0x35)	RSA	RSA	AES(256)	SHA-1
受入 TLSv1.0 AES128-SHA (0x00,0x2F)	RSA	RSA	AES(128)	SHA-1
受入 TLSv1.0 DES-CBC3-SHA (0x00,0x0A)	RSA	RSA	3DES(168)	SHA-1
受入 TLSv1.0 RC4-SHA (0x00,0x05)	RSA	RSA	RC4(128)	SHA-1
受入 TLSv1.0 RC4-MD5 (0x00,0x04)	RSA	RSA	RC4(128)	MD5

使用中のプロトコル : TLSv1
使用中の暗号スイート : AES256-SHA

いい感じにうまいところを取ってると思うけど、互換性を考えても RC4 は流石にもう外すべきでは?

0005 三菱東京UFJ銀行

entry11.bk.mufg.jp

受付 プロトコル	暗号スイート名				Kx		Au	Enc		Mac
優先 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 (0xC0,0x30)	ECDH	P-256	RSA	AESGCM(256)	AEAD
受入 TLSv1.2 ECDHE-RSA-AES256-SHA384 (0xC0,0x28)	ECDH	P-256	RSA	AES(256)	SHA384
受入 TLSv1.2 ECDHE-RSA-AES256-SHA (0xC0,0x14)		ECDH	P-256	RSA	AES(256)	SHA-1
受入 TLSv1.2 DHE-RSA-AES256-GCM-SHA384 (0x00,0x9F)	DH		RSA	AESGCM(256)	AEAD
受入 TLSv1.2 DHE-RSA-AES256-SHA256 (0x00,0x6B)		DH		RSA	AES(256)	SHA256
受入 TLSv1.2 DHE-RSA-AES256-SHA (0x00,0x39)		DH		RSA	AES(256)	SHA-1
受入 TLSv1.2 DHE-RSA-CAMELLIA256-SHA (0x00,0x88)	DH		RSA	Camellia(256)	SHA-1
受入 TLSv1.2 AES256-GCM-SHA384 (0x00,0x9D)		RSA		RSA	AESGCM(256)	AEAD
受入 TLSv1.2 AES256-SHA256 (0x00,0x3D)			RSA		RSA	AES(256)	SHA256
受入 TLSv1.2 AES256-SHA (0x00,0x35)			RSA		RSA	AES(256)	SHA-1
受入 TLSv1.2 CAMELLIA256-SHA (0x00,0x84)		RSA		RSA	Camellia(256)	SHA-1
受入 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 (0xC0,0x2F)	ECDH	P-256	RSA	AESGCM(128)	AEAD
受入 TLSv1.2 ECDHE-RSA-AES128-SHA256 (0xC0,0x27)	ECDH	P-256	RSA	AES(128)	SHA256
受入 TLSv1.2 ECDHE-RSA-AES128-SHA (0xC0,0x13)		ECDH	P-256	RSA	AES(128)	SHA-1
受入 TLSv1.2 DHE-RSA-AES128-GCM-SHA256 (0x00,0x9E)	DH		RSA	AESGCM(128)	AEAD
受入 TLSv1.2 DHE-RSA-AES128-SHA256 (0x00,0x67)		DH		RSA	AES(128)	SHA256
受入 TLSv1.2 DHE-RSA-AES128-SHA (0x00,0x33)		DH		RSA	AES(128)	SHA-1
受入 TLSv1.2 DHE-RSA-CAMELLIA128-SHA (0x00,0x45)	DH		RSA	Camellia(128)	SHA-1
受入 TLSv1.2 AES128-GCM-SHA256 (0x00,0x9C)		RSA		RSA	AESGCM(128)	AEAD
受入 TLSv1.2 AES128-SHA256 (0x00,0x3C)			RSA		RSA	AES(128)	SHA256
受入 TLSv1.2 AES128-SHA (0x00,0x2F)			RSA		RSA	AES(128)	SHA-1
受入 TLSv1.2 CAMELLIA128-SHA (0x00,0x41)		RSA		RSA	Camellia(128)	SHA-1
受入 TLSv1.2 ECDHE-RSA-DES-CBC3-SHA (0xC0,0x12)		ECDH	P-256	RSA	3DES(168)	SHA-1
受入 TLSv1.2 EDH-RSA-DES-CBC3-SHA (0x00,0x16)		DH		RSA	3DES(168)	SHA-1
受入 TLSv1.2 DES-CBC3-SHA (0x00,0x0A)			RSA		RSA	3DES(168)	SHA-1
優先 TLSv1.1 ECDHE-RSA-AES256-SHA (0xC0,0x14)		ECDH	P-256	RSA	AES(256)	SHA-1
受入 TLSv1.1 DHE-RSA-AES256-SHA (0x00,0x39)		DH		RSA	AES(256)	SHA-1
受入 TLSv1.1 DHE-RSA-CAMELLIA256-SHA (0x00,0x88)	DH		RSA	Camellia(256)	SHA-1
受入 TLSv1.1 AES256-SHA (0x00,0x35)			RSA		RSA	AES(256)	SHA-1
受入 TLSv1.1 CAMELLIA256-SHA (0x00,0x84)		RSA		RSA	Camellia(256)	SHA-1
受入 TLSv1.1 ECDHE-RSA-AES128-SHA (0xC0,0x13)		ECDH	P-256	RSA	AES(128)	SHA-1
受入 TLSv1.1 DHE-RSA-AES128-SHA (0x00,0x33)		DH		RSA	AES(128)	SHA-1
受入 TLSv1.1 DHE-RSA-CAMELLIA128-SHA (0x00,0x45)	DH		RSA	Camellia(128)	SHA-1
受入 TLSv1.1 AES128-SHA (0x00,0x2F)			RSA		RSA	AES(128)	SHA-1
受入 TLSv1.1 CAMELLIA128-SHA (0x00,0x41)		RSA		RSA	Camellia(128)	SHA-1
受入 TLSv1.1 ECDHE-RSA-DES-CBC3-SHA (0xC0,0x12)		ECDH	P-256	RSA	3DES(168)	SHA-1
受入 TLSv1.1 EDH-RSA-DES-CBC3-SHA (0x00,0x16)		DH		RSA	3DES(168)	SHA-1
受入 TLSv1.1 DES-CBC3-SHA (0x00,0x0A)			RSA		RSA	3DES(168)	SHA-1
優先 TLSv1.0 ECDHE-RSA-AES256-SHA (0xC0,0x14)		ECDH	P-256	RSA	AES(256)	SHA-1
受入 TLSv1.0 DHE-RSA-AES256-SHA (0x00,0x39)		DH		RSA	AES(256)	SHA-1
受入 TLSv1.0 DHE-RSA-CAMELLIA256-SHA (0x00,0x88)	DH		RSA	Camellia(256)	SHA-1
受入 TLSv1.0 AES256-SHA (0x00,0x35)			RSA		RSA	AES(256)	SHA-1
受入 TLSv1.0 CAMELLIA256-SHA (0x00,0x84)		RSA		RSA	Camellia(256)	SHA-1
受入 TLSv1.0 ECDHE-RSA-AES128-SHA (0xC0,0x13)		ECDH	P-256	RSA	AES(128)	SHA-1
受入 TLSv1.0 DHE-RSA-AES128-SHA (0x00,0x33)		DH		RSA	AES(128)	SHA-1
受入 TLSv1.0 DHE-RSA-CAMELLIA128-SHA (0x00,0x45)	DH		RSA	Camellia(128)	SHA-1
受入 TLSv1.0 AES128-SHA (0x00,0x2F)			RSA		RSA	AES(128)	SHA-1
受入 TLSv1.0 CAMELLIA128-SHA (0x00,0x41)		RSA		RSA	Camellia(128)	SHA-1
受入 TLSv1.0 ECDHE-RSA-DES-CBC3-SHA (0xC0,0x12)		ECDH	P-256	RSA	3DES(168)	SHA-1
受入 TLSv1.0 EDH-RSA-DES-CBC3-SHA (0x00,0x16)		DH		RSA	3DES(168)	SHA-1
受入 TLSv1.0 DES-CBC3-SHA (0x00,0x0A)			RSA		RSA	3DES(168)	SHA-1

使用中のプロトコル : TLSv1.2
使用中の暗号スイート : ECDHE-RSA-AES256-GCM-SHA384

新しいのから古いブラウザまでいろいろ気を使っているのかもしれないけど方向性が見えない。オンラインバンキングは利用が多いということで重さの面で Camellia は入れなくていいんじゃないかな。 Camellia の開発が三菱電機だからおつきあいで外せない?

0009 三井住友銀行

direct.smbc.co.jp

受付 プロトコル	暗号スイート名		Kx	Au	Enc		Mac
優先 TLSv1.0 RC4-SHA (0x00,0x05)	RSA	RSA	RC4(128)	SHA-1
受入 TLSv1.0 AES128-SHA (0x00,0x2F)	RSA	RSA	AES(128)	SHA-1
受入 TLSv1.0 AES256-SHA (0x00,0x35)	RSA	RSA	AES(256)	SHA-1
受入 TLSv1.0 DES-CBC3-SHA (0x00,0x0A)	RSA	RSA	3DES(168)	SHA-1
優先 SSLv3 RC4-SHA (0x00,0x05)		RSA	RSA	RC4(128)	SHA-1
受入 SSLv3 AES128-SHA (0x00,0x2F)	RSA	RSA	AES(128)	SHA-1
受入 SSLv3 AES256-SHA (0x00,0x35)	RSA	RSA	AES(256)	SHA-1
受入 SSLv3 DES-CBC3-SHA (0x00,0x0A)	RSA	RSA	3DES(168)	SHA-1

使用中のプロトコル : TLSv1
使用中の暗号スイート : RC4-SHA

いまどき SSLv3 が利用可能になっているのも気になるが、それよりも Preferred が RC4-SHA なのはどういうつもりか。(偉そうな書き方でスンマセン)
おそらく大昔に CVE-2011-3389 (BEAST) 対策のつもりで RC4-SHA を Preferred にしたのだと思うが、オンラインバンキングのホストで、もう2016年も終わろうとしている頃に流石にこれはないと思う。解読されちゃう?

0010 りそな銀行

ib.resonabank.co.jp
0017 埼玉りそな銀行
ib.saitamaresona.co.jp

受付 プロトコル	暗号スイート名		Kx	Au	Enc		Mac
優先 TLSv1.2 AES256-SHA256 (0x00,0x3D)	RSA	RSA	AES(256)	SHA256
受入 TLSv1.2 AES256-SHA (0x00,0x35)	RSA	RSA	AES(256)	SHA-1
受入 TLSv1.2 DES-CBC3-SHA (0x00,0x0A)	RSA	RSA	3DES(168)	SHA-1
受入 TLSv1.2 AES128-SHA256 (0x00,0x3C)	RSA	RSA	AES(128)	SHA256
受入 TLSv1.2 AES128-SHA (0x00,0x2F)	RSA	RSA	AES(128)	SHA-1
受入 TLSv1.2 RC4-SHA (0x00,0x05)	RSA	RSA	RC4(128)	SHA-1
優先 TLSv1.1 AES256-SHA (0x00,0x35)	RSA	RSA	AES(256)	SHA-1
受入 TLSv1.1 DES-CBC3-SHA (0x00,0x0A)	RSA	RSA	3DES(168)	SHA-1
受入 TLSv1.1 AES128-SHA (0x00,0x2F)	RSA	RSA	AES(128)	SHA-1
受入 TLSv1.1 RC4-SHA (0x00,0x05)	RSA	RSA	RC4(128)	SHA-1
優先 TLSv1.0 AES256-SHA (0x00,0x35)	RSA	RSA	AES(256)	SHA-1
受入 TLSv1.0 DES-CBC3-SHA (0x00,0x0A)	RSA	RSA	3DES(168)	SHA-1
受入 TLSv1.0 AES128-SHA (0x00,0x2F)	RSA	RSA	AES(128)	SHA-1
受入 TLSv1.0 RC4-SHA (0x00,0x05)	RSA	RSA	RC4(128)	SHA-1

使用中のプロトコル : TLSv1.2
使用中の暗号スイート : AES256-SHA256

RC4 含めておそらく考え方としてはみずほ銀行さんと同じなのでしょうね。
TLSv1.2 まで対応しているあたりは Good.

9900 ゆうちょ銀行

direct.jp-bank.japanpost.jp

受付 プロトコル	暗号スイート名		Kx	Au	Enc		Mac
優先 TLSv1.0 AES256-SHA (0x00,0x35)	RSA	RSA	AES(256)	SHA-1
受入 TLSv1.0 AES128-SHA (0x00,0x2F)	RSA	RSA	AES(128)	SHA-1
受入 TLSv1.0 DES-CBC3-SHA (0x00,0x0A)	RSA	RSA	3DES(168)	SHA-1
優先 SSLv3   AES256-SHA (0x00,0x35)	RSA	RSA	AES(256)	SHA-1
受入 SSLv3   AES128-SHA (0x00,0x2F)	RSA	RSA	AES(128)	SHA-1
受入 SSLv3   DES-CBC3-SHA (0x00,0x0A)	RSA	RSA	3DES(168)	SHA-1

使用中のプロトコル : TLSv1
使用中の暗号スイート : AES256-SHA

ここまで暗号スイートを厳選してるのに何故かいまどき SSLv3 が利用可能になっているのは何かの間違いでしょう?
まさか iモードブラウザ1.0 に対応するためなんて言わないよね。

おまけ

暗号化アルゴリズム別処理速度比較
暗号化のアルゴリズム別の処理速度をグラフにしてみた。あくまでも個人のオンボロPC上で OpenSSL のベンチマークを動かした結果なので全ての環境に於いてこれと同等の結果を得られるわけではない。 AES-NI の有無でもかなり変わるだろうし。とりあえず数値よりグラフの棒の長さで比べることを目的としている。16,64,256,1024,8192 バイトはブロックサイズで、これを連続処理している。(ブロックサイズが極端に小さいと効率が悪い)

%  openssl speed rc4 des-cbc des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc camellia-128-cbc camellia-256-cbc

なお、 des-cbc は普通の DES, des-ded3 は 3DES (Triple DES), camellia は上の1銀行で出てきちゃったので追加した。

いまさら使えないけど RC4 は軽くて速いねぇ。といっても、3倍程度だけど。9番の銀行さんもそれで RC4 選んだわけじゃないだろうけどね。