日本の大銀行の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 選んだわけじゃないだろうけどね。

ZenFone2 Laserで「みちびき」は捕まえられるのか

欧州の衛星測位システムの「ガリレオ」が12月15日からサービスインしたらしい。ガリレオは一応「全地球測位システム」なので日本でも利用できる。ガリレオは米国のGPSと較べて測位が速く精度が高いのが一応売りということになっているので利用できるようになるのが楽しみだが、ガリレオに対応する衛星ナビゲーションシステム用のレシーバー(チップ)とソフトウエアの対応が必須。Androidでは対応チップ搭載で且つOSが7.0 Nougat(ヌガー)以上で利用可能という認識でいるが合ってるかな?
そうだとしたらAndroid6.0止まりの「がとらぼ」の中の人はガリレオは使えない。

そういえば、日本の衛星ナビゲーションシステムの「みちびき」は使えるんだっけ?ということで確認。こちらは現在出回っているAndroidならバージョンは特に気にしなくて良いが、対応チップ搭載は必須。つまりGPS対応のスマートフォンであっても機種によって「みちびき」を使える使えないが発生する。機種のカタログを見る際はQZSS(Quasi-Zenith Satellite System)に対応していることを確認する。
でも、現在は「みちびき」の衛星は1機しか上がってないので「みちびき」だけでは位置を特定できない。複数のGPS衛星と組み合わせて使うことになる。だから「みちびき」の対応有無を重視して機種を選定するというのは意味がない。

「みちびき」は準天頂衛星(QZS)というくらいなので日本で空を見上げた時に真上近くの場所に居ることになっているが、日本は赤道からだいぶ離れているので静止衛星として常時日本上空に留まることができない。そこで非対称の8の字を描くように日本とオーストラリアの間を行ったり来たりする。衛星が数台あれば常に1機以上が日本上空に居るようにできるだろうけど1機しかないので日本の真上には1日に8時間程度しかいない。なお、衛星がオーストラリアの上空に行っても地球からはかなり離れている(地球に最接近時で32000km = 地面から衛星まで地球2個以上が入る距離)ので日本から見て地平線より下になるわけではない。開けた場所であれば常に空に見えるところに居る。要するに真上近くに8時間、残り16時間は斜め上空といった感じ。
既に運用されている1機に追加して一応2017年に3機が上がり、8の字を描く準天頂衛星が3機と静止衛星(3号機)1機の計4機体制になる予定。2023年には7機体制も予定されている。

みちびき 4
「みちびき」は地球からの距離が近地点で約32,000km、遠地点で約40,000km。地球の直径が12,742kmということなので、近くて地球2.5個分、遠くて3.1個分くらいのところをまわっていることになる。画像はhttp://www.lizard-tail.com/isana/tle/misc/what_is_tle.htmlさんのところで国際宇宙ステーションのISSの軌道の3Dマップを表示したものから拝借しています。赤い線が「みちびき」の軌道つもりだが、これは「がとらぼ」の中の人が地球との距離の参考用に勝手に作ったものなので正しい軌道ではない。地球の表面近くを通る緑の線がISS。ISSは地表から400km程度ということなのでそれと比べると「みちびき」はかなり地球から離れたところにあるのがわかる。また、月までの平均距離384,400kmと比べると「みちびき」は月までの10分の1に届かないというのも解る。地球から離れていると思っても月までに比べると全然近いということになる。
ちなみに先のリンクのページには「みちびき」の軌道もあるので上の画像のように「がとらぼ」の中の人が作った軌道よりそちらを見る方が良いかも。

みちびきは国の衛星なので内閣府がウェブサイトで情報を提供している。そこでGNSS ViewでAndroid用、iOS用のアプリが提供されている。ついでにWeb版というのがあるのでアプリが無くてもブラウザで衛星の位置を見ることができる。

みちびき 1
GNSS Viewのウェブ版で現在時刻の測位衛星の位置を見てみる。
円の中心が空の真上、円周が地平線、上が北。かなりいっぱいの測位衛星が居る。

  • 水色の● :   米国のGPS(GPS)
  • 緑色の● :   ロシアのGLONASS(GLO)
  • 紺色の● :   欧州のガリレオ(GAL)
  • ピンクの● :   日本の「みちびき」(GZS)
  • 橙色の● :   中国の「北斗-2(BeiDou,コンパス)」(BDS)
  • 黄色の■ :   日本の衛星航法補強システムのSBAS(SBS)
  • 橙色の■ :   中国の「北斗-2(BeiDou,コンパス)」の静止衛星
  • ピンクの■ :   日本の「みちびき」の静止衛星 (未打ち上げ)

色は関係なく■にはGEOと書いてあるので静止衛星を示しているみたい。
だから、黄色の■のSBASはおそらく「ひまわり」などの運輸多目的衛星を示すと思われる。(未確認)

みちびき 2
余計なのは外して「みちびき」1号機だけにする。ピンク色の193がそれ。円のほぼ中心なのでちょうど真上あたりにいるのがわかる。

みちびき 3
ZenFone2 Laser ZE550KLにGPS Testのアプリを入れて試してみた。
このアプリは国別の衛星補足個数表示があるので解りやすい。(円のすぐ下)
GPSが7個、グロナスが6個、北斗が5個でみちびきが0個、そしてそこに居る筈の円の中心に193(または1)が表示されていないので結果としてはZE550KLは「みちびき」非対応。逆に期待していなかった中国の北斗に対応している。
あと、衛星測位システムだけは降り注ぐ電波を一方的に受信するだけなので機内モードにしていても使える。

あれっ?ZE550KLはQZSS対応って書いてなかったっけ。ZenFone2 (ZE551ML)と情報ごっちゃになってるのかな。それとも、ハードウェアは対応しているけど日本版ファームウェアしか対応していないってことかな?ハードウエアが非対応だった

ZE550KLのSoCはSnapdragon 615だけど、スペックを見るとZQSSには非対応みたい。ZE500KLのSnapdragon 410のスペックも同様。

みちびきの送信信号

L1C/A衛星測位サービス1575.42MHz
L1C衛星測位サービス1575.42MHz
L1Sサブメータ級測位補強サービス
災害・危機管理通報サービス
1575.42MHz
L1SbSBAS配信サービス1575.42MHz
L2C衛星測位サービス1227.60MHz
L5衛星測位サービス1176.45MHz
L5S測位技術実証サービス1176.45MHz
L6センチメータ級測位補強サービス1278.75MHz
Sバンド衛星安否確認サービス2GHz帯
内閣府 みちびき(準天頂衛星システム:QZSS)公式サイトより

2017年前半までに販売されているスマートフォンで「みちびき対応」とされている機種は(おそらく)全てL1C/Aだけの対応なので「みちびき」のウリである測位精度改善はほぼ無い筈。ビルの谷間でも少しだけ衛星を捕まえやすい程度。だから、通り1本違う場所を示すことも十分ありえるレベル。
できたらスマートフォンでもサブメーター級のL1Sには対応して貰いたいところだけど、補強情報を受信するのにバッテリー消費が大きくなる問題があるそうな。あと、みちびき2機以上またはみちびき+GPS1機以上が見える場所にいないとダメらしい。
センチメーター級(L6信号)は測量機器向けっぽいのでスマートフォンでは今後も利用できる機種は出ないかと。専用受信機(とアンテナ)が要るので小型化しにくいし、計測に大きなタイムラグもあるようなのでスマホ向けじゃない感じ。

関連記事:
Up