ワンタイムパスワードはフィッシング詐欺の完璧な対策にはならない
証券会社の対策にも課題がありました。決済・金融のサービスでは2要素認証が一般的になりましたが、証券会社ではこれが一部サービスでの利用にとどまり、ログイン時の義務化もされていませんでした。
例えば楽天証券は、ログイン時に複数の絵文字の選択画面を表示し、事前に登録したメールに送られる絵文字と一致したものを選ぶ、という追加認証を提供しています。これは、「画面に表示された複数のイラストの中に、メールで送られたイラストと同じものがあるかどうか」という認証です。
-
楽天証券の絵文字認証の例。メールでは4種類の絵文字と数字が送られ、一致するものを選ぶという仕組みです
この認証方式が採用されたのは、イラストが1,000種類ほどあれば、フィッシングサイトが勝手に掲示した絵文字+数字とメールで送られた絵文字+数字が一致する確率はとても低いため、フィッシングサイトに騙されにくくなる……という意図があったのでしょうか(選択できる絵文字がなければ、その時点でフィッシングサイトと判断してアクセスを取りやめることができる)。
しかし偽物サイトに「同じ絵文字がなければ再読み込みボタンを押す」のようなメッセージが表示されたら、同じ絵文字が出るまで再読み込みをする人も出てくるかもしれません(それで攻撃が成功する確率も低そうですが)。筆者は技術検証まではしていませんが、後述するリアルタイムフィッシングと同じように公式の画面表示を中継することでも攻撃ができそうです。
いずれにせよ、絵文字入力になった時点で、フィッシングサイトであればすでにIDとパスワードが盗まれているので、わざわざ普通のワンタイムパスワード(TOTP)とは異なる絵文字認証を導入する理由はあまりないように思えます。
他の証券会社もさほど変わらず、ようやくTOTPの2要素認証を導入し始めているという程度です。これは、ログイン時などにIDとパスワードを入力させた上で、さらに追加の認証として、あらかじめ登録したメールアドレスや携帯番号にメッセージを送信し、そこに記載された6~8ケタの数字をサイトに入力させるというものです。
TOTPはさまざまなサービスで広く使われています。今回の乗っ取り攻撃においても、ログイン時や取引時にTOTPを設定していれば、不正取引の多くを防げていたかもしれません。ただ、2要素認証の導入を決めた証券会社もまだ全てが導入完了したわけではなく、利用者の中には(2要素認証が導入されているにもかかわらず)いまだに設定をしていないので被害に遭ってしまったという人もいそうです。
ただ、証券各社が導入しようとしているTOTPによる2要素認証は、フィッシング詐欺に関しては脆弱さが残る仕組みです。例えばサイトでIDとパスワードを入力したうえで、メールやSMSで送られてきた数字をそのままサイトに入力したとしても、入力したのがフィッシングサイトである可能性があります。
これはリアルタイムフィッシングと呼ばれる手法で、偽サイトに入力されたTOTPを犯罪者が盗んで正規サイトにその数字などを入力し、即座に不正ログインするわけです。
このリアルタイムフィッシングの手法が登場したことで、TOTPは厳密に言うとフィッシング詐欺の対策にはならなくなりました。どちらかというとTOTPはリスト型攻撃のようにパスワードが漏洩している場合に有効な対策で、全ての攻撃を防げるわけではないのです。
「取引パスワード」のように入力欄を増やしても一緒です。フィッシングサイトに入力欄を増やして、その入力データを盗み取った上でそのまま本物のサイトに送信すれば、本物サイトでは正しいパスワードが入力したと判断されてログインや取引ができてしまうからです。
ブラウザに内蔵されていたりサードパーティーから提供されていたりするパスワードマネージャーは、通常はサイトのURLを記憶しておき、同じURLであればそこに保存されているパスワードを自動入力するという機能を備えています。つまり、フィッシングサイトのように見た目は同じだけどURLが異なるという偽サイトでは、自動入力が動作しません。そこで自動入力がされなければフィッシングサイトだと分かるわけです。
-
パスワード入力欄に表示されるChromeに内蔵されたGoogleパスワードマネージャー。URLのドメイン部とセットで記録されているので、これが一致しないと表示されません(認証情報自体は暗号化されて保存されています)
パスワードマネージャーの自動入力を使っていない人は、フィッシング詐欺に引っかかっていないとは言い切れないし、引っかかっていてもおかしくない、そう考えて対策した方がいいでしょう。
逆に言えば、パスワードマネージャーの自動入力に対応しない公式サイトはフィッシングサイトに対して脆弱で、ユーザーを危険にさらしていることになります。
実のところ、確実にパスワードマネージャーを使っているならば、フィッシング詐欺対策としての2要素認証は必ずしも必要ありません。ただ、フィッシング以外の攻撃がありうるので、やはり2要素認証が利用できるにこしたことはありません。
パスワードマネージャーの自動入力をした上で、送られてきたTOTPをそのまま入力するなら、比較的安全にログインできます。
ここでもう一つの問題があります。それはTOTPはUI/UXとしてあまり使い勝手が良くないという点。課題の1つに、TOTPがいつでも即時送られてくるわけではないという点があり、いざログインしようとして数分間待たされることがあります。そうでなくても、メールやSMSに切り替えて数字を覚えて(コピーして)、また入力欄に戻って入力するというのは手間がかかります。
アプリベースのTOTPもあります。これは専用の認証アプリを使い、一定時間で切り替わる数字を入力することでログインします。送信を待つ必要がないため、自分のタイミングで入力できますが、リアルタイムフィッシングへの弱点は変わりません。スマートフォンアプリを立ち上げて数字を覚えるかコピーして、ログイン画面に戻って入力するという手間もあります。