二段階認証の意味を問う 「7pay事件」を教訓に見直したい認証のハナシ
ほとんどの人が日常的に行っている、ログイン、サインインなどの認証作業。認証で利用したパスワードが漏えいして第三者からの不正アクセスを受けたりするなど、認証をめぐるセキュリティの問題は後を絶ちません。こうした課題を解決するには、サービス提供者側だけで対策するだけでなく、サービスの利用者も正しい知識を持っておくことが必要でしょう。
本連載記事では、認証の仕組みや課題、周辺の情報について、できるだけ分かりやすくお伝えしていきます。
前回記事の最後に次回も生体認証について説明すると予告しましたが、今回は7月初旬に発生したモバイル決済サービス「7pay」不正利用事件を取り上げたいと思います。この事件で注目を浴びた「二段階認証」を起点に、本人認証の基本と注意点を見直していきます。
●「7pay」不正利用事件の流れ
7月1日にサービスを開始した7payですが、サービス開始の翌日にはユーザーからコールセンターに不正利用の旨が報告されました。現在は新規登録と、決済に使う「7payマネー」のチャージを停止しています。
セブン&アイ・ホールディングスは16日、1574人が被害に遭い、3240万688円の不正利用を確認したと発表しました(11日午後5時時点)。
セブン-イレブンアプリへの不正ログインの原因は何だったのでしょうか。原稿執筆時点では、はっきりとした理由は公表されていません。各紙の報道やSNSで推測されている原因の中で、認証に関連する内容は以下の通りです。
・リスト型攻撃
・パスワード再設定機能の不備
・オープンID連携の不備
これらの攻撃や不備の内容を教訓に、私たちが気を付けるべきことをまとめてみました。
●リスト型攻撃
リスト型攻撃は、過去に漏えいしたパスワードのリストを利用して、不正ログインを試みる攻撃です。サービスごとに異なるパスワードを使うことで、あるサービスでパスワードが漏えいしたとしても、他のサービスでの不正利用を防げます。しかし、今回の事件ではこの対策をしていた利用者も被害に遭ったという報告がありました。
・「7pay「組織的攻撃の可能性」専用パスワードでも被害」(NHK NEWS WEB)
とはいえ、リスト型攻撃の対策をすることは無駄ではないでしょう。しかし「サービスごとに別のパスワードを使うべき」という注意喚起は至るところで行われているものの、まだ浸透しきっていません。そこで今回の事件で注目を集めた「二段階認証」が対策として登場するのです。二段階認証の詳細は後ほど説明します。
●パスワードリセットに不備
パスワード再設定機能の不備は、7payでも使用するセブン&アイグループの共通アカウント「7iD」にありました。
パスワード認証を採用している大抵のサービスでは、利用者がパスワードを忘れてしまった場合に、ログインをせずにパスワードを再設定できる機能があります。登録済みのメールアドレスや電話番号に、パスワード再設定用ページのURLを載せたメールやSMSを送り、そこから新たなパスワードを設定させるのです。
7iDでは、あらかじめ登録したメールアドレス以外のアドレスを使ってパスワードを再設定できるようになっていました(現在は対応済)。パスワード再設定のメール送信に必要な情報は、「生年月日」「電話番号」「会員ID」(最初に登録したメールアドレス)で、これらの情報を知っている第三者なら、自分のメールアドレスにパスワード再設定メールを送り、任意のパスワードを設定できたのです。
・「7payクレジットカード不正利用:第三者乗っ取りがあり得る致命的な2つの弱点」(Yahoo!ニュース、三上洋)
通常、少なくともお金を扱うような重要なサービスでは、パスワード再設定機能をこのような仕様にすることはあり得ません。こうした設計のサービスの利用は控えることをお勧めします。
この機会にパスワード再設定機能の存在から分かる認証の知識と注意点をご紹介します。パスワード再設定機能があるサービスの認証は、実はパスワード認証ではなく、メール認証なのです。メールを見ることができれば、パスワードを自由に変更できるからです。
強引に解釈すれば、本来はメールで認証すればよいところを、「メールをわざわざ参照させるのは利便性が下がるから」とか、「パスワードだけで再設定ができなかったころの慣習が残っているから」という理由によってパスワードで代用しているといえます。
したがって、パスワード認証の利用者はパスワードだけでなく「メールを閲覧できる環境」も守らなくてはいけません。メールサービスは大抵の場合、アクセスするためにパスワードを使います。(※1)このメールサービスにアクセスするパスワードこそ、強力(ランダム性が大きい)で他のサービスでは使っていないものにしておくべきです。メールを使うPCにも強力なログインパスワードを設定し、スマホにも必ずロックを掛けましょう。
※1:パスワードでアクセスできるメールサービスを利用している場合は、知識要素を利用した認証(知識認証)といえます。認証要素については過去記事を参照。
●オープンID連携の不備
オープンIDは、サービス間でIDを共有するために定められた規格です。1つのIDで複数のサイトにログインできる仕組みで、皆さんも新規サービス登録画面にGoogleやFacebook、Yahoo!JAPANなどのロゴが表示されたボタンが設置されているのを見たことがあるでしょう。
そのボタンから、オープンIDに対応するIDを発行する「オープンIDプロバイダ」のサービスにログインすることで、新規サービスにログインしたり、名前や住所、生年月日といった必要項目の入力負担を減らしたりすることができます。
セブン&アイは7月11日、セブン-イレブンアプリなど同グループが提供するアプリで、オープンIDでのログインを停止しました。オープンIDの連携部分で不備があった可能性があります。
・[独自記事]7pay不正利用問題、「7iD」に潜んでいた脆弱性の一端が判明」(日経 xTECH)
Webで利用できる「オムニ7」のサイトでの7iDへのログインは、まだオープンIDを利用できる状態です。オープンIDとの連携部分に不備があったのだとしたら、それは各アプリとの連携部分のみなのか、それとも7iD全体との連携部分なのか。これもまだはっきりとしていません。もし7iD全体との連携に不備があるなら、各アプリを使用していなくても、7iDに登録している情報が7payのサービス開始前から漏えいしている可能性があります。
オープンIDを利用して認証する際には、フィッシングサイトに注意しましょう。各サービスの認証用ボタンを押して表示されたページが、フィッシング用のページであることに気付かずにIDとパスワードを入力してしまうと、その情報が盗まれてしまいます。「SMS認証があるから大丈夫」と思っていても、1回目の入力でフィッシングページを表示し、ID&パスワードを入力させて情報を詐取した後に、正規のページを表示し、通常の認証をさせるフィッシングも報告されています。
有名なサービスのサイトであれば、サイトが乗っ取られていない限り、このようなことは発生しないと思いますが、新しいサービスや「○○診断」のような、ちょっとしたテストやゲームを楽しむサービスなどを利用する際には気を付けたほうがいいでしょう。
●「二段階認証」とは?
7月7日のセブン&アイの緊急記者会見を機に、二段階認証が一気に話題になりました。一部報道で、「サービスを利用開始するときにSMSやメールで送られるメッセージに書かれたパスコードを入力したり、URLをタップしたりする作業」自体を二段階認証だと紹介していたようですが、これは誤りです。
この作業は、IDや連絡先として登録している電話番号やメールアドレスが、本当に本人が使用しているものなのかの確認であって、認証ではありません。この作業をしてアカウントを登録した後、パスワード認証のみでログインできるサービスはいくらでもあります。そういったサービスは「二段階認証を導入している」とはいえません。
この作業を行ってアカウント登録した上で、ログインや一部の機能を使用する際に、パスワード認証に加えてSMSやメールのメッセージでも認証を行えば、それは二段階認証です。
上記の例では「パスワード+SMSもしくはメール」で説明しましたが、もちろんこの組み合わせでなくても構いません。例えば「パスワード+事前登録してある特定の端末」などがあり得ます。1段階目と2段階目で認証要素が異なる二要素認証の方が、より強固です。
スマホアプリにおける2段階目の認証にSMS認証を採用することが今のトレンドです。その理由は、スマホ利用者の大半は電話番号を持っており、SMSを利用できるからでしょう。
●モバイル決済サービスにおける認証の位置づけ
ところで、モバイル決済サービスでの認証はどこで行われるものなのでしょうか。実際に店舗で決済する際に、毎回パスワードを入力したり、SMSを確認したり、その両方を行うのは利便性の面から現実的ではありません。(※2)
アカウント登録時に、スマホにインストールしたアプリとサービスのサーバ上のアカウントをひも付け、アプリとサーバを接続し続けるのが現在の現実的な仕様です。スマホの機種変更や、何らかの理由でアプリを再インストールする際に、以前使っていたアカウントのみ認証するという流れになります。
※2:店舗での決済の際には、アカウントにひも付けされたアプリがインストールされたスマホの所持(所有物要素)と、生体認証やパスコード入力によるスマホのロック解除(生体要素か知識要素)の2要素で認証しているといえます。あくまでも、スマホのロックをきちんと設定している必要があります
セブン&アイが7月5日に発表した「二段階認証の導入」は、どのようなものになるのでしょうか。公式発表がないので、以下はあくまで筆者の想像です。
7payは、セブン-イレブンアプリから7iDのアカウントにログインして使用します。7iDへのログインにはIDとパスワードが必要です。ただし、パスワード再設定にはメールを使います。これを1段階目として、2段階目にSMSを利用するのです。この構成ですと、「パスワードもしくはメール+SMS」という二段階・二要素認証になります。
7iDはPCなどのブラウザでも使えるWebサービスでも使われているので、このようなメールの確認も含めた二段階・二要素認証の構成になるだろうと想像しました。他のモバイル決済サービスの場合、「パスワード+SMS」の組み合わせが多いようです。
この構成だと、パスワードの再設定にSMSを使っている場合、実際にはSMSのみの認証といえます。認証時の手順は2段階ですが、認証要素としてはSMSしか使っていません。だからといって一概にセキュリティが十分ではないとはいいませんが、SMS認証が破られると、無防備になることは留意しておきましょう。
SMS認証は、電話番号にひも付くSIMカードが認証要素です。したがって、SIMカードを抜き出して、別のスマホに差し替えれば、そのスマホで電話番号に届くSMSが受け取れます。
ただし、パスワード再設定用のSMSメッセージを送信する際に、生年月日など赤の他人は知り得ないであろう個人情報の入力も必要になっていれば、スマホを紛失しても不正利用される可能性は大幅に下がります。とはいえ、何らかの手段で個人情報を知られてしまうこともあると思います。モバイル決済サービスを利用していて、スマホを紛失してしまった場合は、早急にSIMカードを無効化する手続きをしましょう。
・SMS認証の仕組みと危険性、「TOTP」とは? 「所有物認証」のハナシ
●「認証の置き換え」を意識してみよう
先ほど、7payは既にパスワード認証(実際にはメール認証)を行っている7iDとひも付けるため二段階認証になる、と予想しました。他のモバイル決済サービスでは、事実上はSMS認証のみの場合があります。利用者の方は、ひも付いているSIMカードの管理に注意しましょう。実は、海外ではSMS認証の脆弱性が指摘されています(※3)が、これは利用者側では注意しきれない問題です。
SMS認証は「SIMカードの所有」を要素とした認証です。そのSIMカードを所有しているのが本人だということは、どう担保しているのでしょうか。それは、そのSIMカードを提供している通信事業者との契約です。契約時には運転免許証などで身分証明をしたかと思います。では、その身分証明書を発行したのは・・・・・・とさかのぼっていくと、その身分証明書の発行機関との手続きが認証の根本となるわけです。
となると、身分証明書を偽造されるとSIMカードを乗っ取られる可能性があります。とはいえ、一般人であれば偽造されることまでは心配しないでいいでしょう。しかし海外では、身分証明書の偽造や、通信事業者の本人確認の不徹底による電話番号の乗っ取りが発生しているようです。
※3:米国立標準技術研究所(NIST)の認証に関するガイドライン「NIST Special Publication 800-63B」参照
この「SIMカード→身分証明書」のような「認証の置き換え」は他でも行われています。
前述しましたが、パスワード認証は「パスワード再設定をメールで行える場合はメール認証からの置き換え」になりますし、メール認証は「メールサービスに接続するパスワードからの置き換え」と表現できます。パスワードを発行することで、さらに置き換えが発生しています。
iPhoneのTouch IDやFace IDは、パスコードを生体認証に置き換えています。パスワードを手帳にメモしたり、パスワード管理アプリに記憶させたりするのも、知識から所有物への置き換えといえます。
大抵のサービスは、過去の例にならって認証システムを作っているのではないでしょうか。過去に問題がなかったため採用されている方法であっても、今回の7pay事件のように穴があったり、認証システム側の技術の陳腐化や、不正利用側の技術の進歩で問題が発生する場合もあります。
自分の資産や重大な個人情報を扱うようなサービスを使い始める際には、この「認証の置き換え」も意識して、サービスの内容を確認することをお勧めします。また、事件が発生した場合には「認証の置き換え」の各段階を整理して、どこかに穴がなかったかを精査しましょう。
セブン&アイは、セキュリティ対策強化のためのプロジェクト組織を発足し、7月中に不正利用の発生原因の特定と、セキュリティ強化策を取りまとめるようなので、まずは発表を待ちたいと思います。
次回は、前回の生体認証の続きに戻って、生体認証におけるデータの登録・保管についてと、生体認証の中でも導入が進んでいる顔認証について書く予定です。