「悪いインターネット」に「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 選んだわけじゃないだろうけどね。