とある銀行のインターネットバンキングシステムにセキュリティ上の問題あり

最近、ある銀行で講座を開いた。わけがない。私ごときが金融業界の方にレクチャーできることなんてない、こともないが、そんなオファーが来るはずがない。ということで正しくは、口座を開いた、だ。口座を開くにあたって、いわゆるインターネットバンキングシステムが具備されていることも条件として考慮した。本来ならば、セキュリティの強度まで確認してから契約すべきなのかもしれないが、まあそのへんは常識的な強度は備わっているだろう、という「詳しいことは専門家 (この場合、銀行さん) にお任せ」というスタンスの私である。

で、使ってみたのだが、セキュリティ上の問題があった。フィッシング対策と銘打ってある機能が、逆にフィッシング被害を引き起しかねない、というもの。

そのインターネットバンキングシステムでの認証は、ログイン ID とパスワードによるものになっている。さらに初めてログインした際に、「秘密の画像」を登録させるようになっており、この画像が表示されていることをもってフィッシングサイトではないとわかる、という仕組みになっている。なるほど。利用者にとって「私しか知らないはずの画像が表示されている」ことで、悪意のある者が作った本物そっくりの偽サイト、すなわちフィッシングサイトではないことがわかる、ということだ。一般の利用者に「URL を確認せよ」と言っても難しいところがあるが、「画像を見て判断せよ」というのは簡単な話だ。当サイトの「セキュリティ Q & A」でも、フィッシングという用語を用い、偽のログインページにパスワードを入れないために (1) URL を確認すること、(2) 秘密の画像を確認すること、と書いてある。秘密の画像が、自分で設定したものではなかったら偽ログインページだということだ。

しかし、である。実際に使ってみたところ、まず最初がログイン ID だけを入力する画面になっている。ここでログイン ID を入力すると、次にパスワードを入力する画面になる。その画面に秘密の画像が表示されるのである。WEB アプリケーションを 1 年も作っている人ならば、この時点で何が問題かわかったことだろう。いや、わからない人がいるからこそ、このようなインターネットバンキングシステムができてしまうのだ。最初のログイン ID を入力する画面で、適当なログイン ID を入力すると、それに対応した秘密の画像が得られるわけである。私が A さんのログイン ID を知っていたとすると、A さんのログイン ID を入力することで、A さんしか知らないはずの秘密の画像を知ることができてしまう。ちょっとプログラムを書けば、ランダムに作りだした多量のログイン ID を入力することで、多量の「有効なログイン ID と秘密の画像の対」を得ることは容易だ。こうして得たデータを使えば、きちんとそれぞれの人に対応した秘密の画像を表示するフィッシングサイトが作成できる。

「秘密の画像が表示されれば偽サイトでないことが確認できます」と謳っているが、秘密の画像がちゃんと表示される偽サイトを作るのは簡単であり、本気でパスワードを盗もうとしている人であれば、当然それくらいの細工はする。したがって、「秘密の画像が表示されれば偽サイトでないことが確認できます」と謳うことは無意味であるどころか、危険な偽サイトであっても本物と信じてしまうことを助長する、危険な行為である。無論、Q & A に書いてあったように URL を確認すれば偽サイトが偽サイトであることがわかるわけだが、秘密の画像の無意味さ、危険度が軽減されるわけではない。

このようなセキュリティ上の問題があることを広く利用者の人に知ってもらい、また、WEB アプリケーションの設計者に知ってもらうため、このようなブログエントリを書くことにした。のだが、こんな辺境ブログに書いたところで、実際に使っているインターネットバンキングシステムのセキュリティ上の問題が解決するわけではない。そこでそのインターネットバンキングシステムのサポートセンターに電話して、ここに書いたようなセキュリティ上の問題について説明してみた。オペレータのかたは「すぐには解決できないかもしれませんが、そのような問題があることをシステム担当のほうに伝えます」と言ってくださった。型通りの対応をしただけで本当は何もしないんだろう、と疑ってかかることもできるが、ここは素直に受け取っておくべきだろう。オペレータのかたは、秘密の画像について、フィッシング対策のものではなくて、「自分が間違ったログイン ID を入力してしまったことに気づくことができる仕組み」だと理解しているような口振りだった。もちろん、そのような仕組みはフィッシング対策にはならないし、Q & A でフィッシング対策と明記されている説明とも食い違うのだが、皮肉なことに、間違っているのは Q & A のほうで、オペレータのかたの理解が正しいのだ。つまり、秘密の画像は単に、利用者が誤ったログイン ID を入力してしまった場合にすぐ気付く仕組みにすぎないのだ。私が指摘した問題に対して、この銀行がとれるもっとも簡単な対策は、Q & A やパンフレットの説明から秘密の画像がフィッシング対策であるという記述をなくすことだ。


それにしても、どうしてこのようなダメな仕様、設計が通ってしまうのだろうか。ログイン ID が有効な場合にパスワードを入力させる、という二段構えの構成自体がセキュリティ上よろしくないというのも、キホンのニの字である。キの字までもいかない。