7pay騒動から二段階認証について改めて理解する
2019年7月1日にリリースされた、セブン&アイグループで利用できるスマートフォン決済サービス「7pay」の不正アクセス騒動は、結局7pay自体が2019年9月で終了する、という幕引きとなりました。
この事件について「7payはセキュリティが低い」「開発体制がなっていない」「二段階認証に対応していない」などと責めても仕方がありません。大切なのは、この事件から何を学ぶかではないでしょうか。以下では、今回大きく着目された「二段階認証」について解説します。
二段階認証とは
この記事内では「二段階認証」という言葉が多数でてきますが、ここでいう「二段階認証」は、「2つの認証要素を含む認証方式」を指しています。正しくは「二要素認証 (2FA, Two-Factor Authentication)」と呼ぶべきですが、「二段階認証」という呼称が一般的であるため、「二段階認証」と記載しています。
情報セキュリティにおける「二段階認証」とは、2つ以上の「認証要素」を含む認証方式を指します。ここでいう「認証要素」については、以下でご説明します。二段階認証では、この3つの認証要素中から2つを利用しなければなりません。
- 所有要素
- ある人が持っている(または持っているデバイスで取得できる)情報を利用した認証で、ワンタイムパスワードトークンや認証用SMS、暗号表、スマートフォンの認証システム (Authenticator) などが該当します。
- 生体要素
- ある人の人体そのものの情報を利用した認証で、指紋認証、顔認証、声認証、虹彩認証などが該当します。
- 知識要素
- ある人が知っている(記憶している)情報を利用した認証で、パスワードや秘密の質問などがこれに該当します。
例えば、「パスワード」と「認証用SMS」の両方を利用した認証(知識要素と所有要素)は二段階認証となります。また、「パスワード」と「指紋」の両方を利用した認証(知識要素と生体要素)も二段階認証となります。
逆に、「パスワード」と「秘密の質問」を利用した認証は、認証に用いられる情報は2つですが、認証要素はどちらも知識要素のみとなるため、これは二段階認証とはならないため注意が必要です(こうした1つの認証要素による認証は、単要素認証と呼ばれます)。
なぜ二段階認証が必要か
二段階認証が求められるようになった理由は簡単です。これまでの「パスワードのみ」の認証が安全ではなくなったためです。
ではなぜ安全ではなくなったかというと、パスワードを突破するための巧妙な攻撃手法が次々と編み出され、日々攻撃に利用されているためです。以下はその一例です。
-
リスト型攻撃
- 既に流出したIDとパスワードの組み合わせを利用して、他のサービスに不正アクセスを試みる手法。よく「パスワードの使い回しは危険」と言われますが、その理由は「流出したパスワードが使い回しだった場合、攻撃者が流出パスワードを利用して他のサービスに不正にアクセスすると、認証が成功してしまい、クレジットカードが不正利用されたり、個人情報が抜き取られるため」です。
-
ブルートフォース攻撃 (総当たり攻撃)
- 頻繁に利用される脆弱なパスワードを利用して、不正アクセスを試みる手法。例えば、パスワードを設定する際に「password」という文字列を使うと脆弱です。こうした「一般的に脆弱とされるパスワード」は公開されているので、攻撃者はこれらを利用して不正アクセスを試みます。
- 参考記事
ブルートフォース攻撃を阻止する方法とは
- 参考記事
- 頻繁に利用される脆弱なパスワードを利用して、不正アクセスを試みる手法。例えば、パスワードを設定する際に「password」という文字列を使うと脆弱です。こうした「一般的に脆弱とされるパスワード」は公開されているので、攻撃者はこれらを利用して不正アクセスを試みます。
-
パスワードスプレー攻撃
- ブルートフォース攻撃に似た攻撃で、よく利用される脆弱なパスワードを用いて不正アクセスを試みた攻撃。違いは、ブルートフォース攻撃は短時間で多数のパスワードを利用して不正アクセスを試みるが、パスワードスプレー攻撃はゆっくりと時間をかけて不正アクセスを試みる点。同じIPアドレスから短時間に多数のアクセスがあった場合、特定IPからのアクセスを一定時間停止するサービスが増加したため、これを回避するための攻撃手法です。
- 参考記事
パスワードスプレー攻撃について理解する
- 参考記事
- ブルートフォース攻撃に似た攻撃で、よく利用される脆弱なパスワードを用いて不正アクセスを試みた攻撃。違いは、ブルートフォース攻撃は短時間で多数のパスワードを利用して不正アクセスを試みるが、パスワードスプレー攻撃はゆっくりと時間をかけて不正アクセスを試みる点。同じIPアドレスから短時間に多数のアクセスがあった場合、特定IPからのアクセスを一定時間停止するサービスが増加したため、これを回避するための攻撃手法です。
これらの攻撃は依然として脅威です。しかし、2019年5月にグーグルは、こうした手法を自動化させて不正アクセス試みる攻撃を、2段階認証を用いることで100%防止できた、と発表しています。
二段階認証を設定しておけば、万が一攻撃者により「パスワード」が突破されたとしても、「登録したスマホに送られるSMSに書かれた文字列」や「あらかじめ登録されている指紋情報」など、別な認証要素の情報がない限りログインできません。よって、二段階認証を利用すると「パスワードが突破されても、最後の砦がまだ用意されている。このため安心できる」のです。
二段階認証はなぜ普及していないか
サービス提供者からすると、利用者全員が二段階認証を利用すれば、不正アクセスを受けるリスクは大幅に低減します。よって二段階認証は「必ず使うべき認証」です。しかし、多くのオンラインサービス、特に一般消費者向けのサービスでは、二段階認証は「オプション」として用意されている場合がほとんどで、「利用を義務付けられている」サービスはごくわずかです。
なぜか。それは「二段階認証は面倒だから」です。
例えば、二段階認証を導入した結果、日々利用するサービスにアクセスするたびに、「記憶しているパスワード」に加えて、「スマートフォンに表示されている数列」の入力が必要になったとします。これまでパスワード入力とログインが数秒で完了していたのが、「スマートフォンを開く→アプリを開く→文字列を見る→文字列を入力する」という新たな手間がかかります。数秒で済んでいた作業が、十数秒から数十秒になります。これをかなりの手間を感じる人は少なくありません。
特にスマートフォンからの利用の場合、二段階認証を利用するために一度画面(アプリ)を切り替えて、受信したメッセージや認証システムの文字列を確認して、また画面を戻して入力する、となると、この手間は一層大きなものになります。
また、暗号表を利用した二段階認証の場合、暗号表を手元に持ってくることから始めなければなりません。普段さほど暗号表を利用していない場合、「暗号表、どこに置いたかな」と探す時間だけで数分経ってしまうことも珍しくありません。
二段階認証を行うこと自体は、パスワード入力後に「数字や文字を入力する」「指をタッチする」だけで、全く難しいものはありません。問題なのは「面倒なのでやりたくない」という意識だけなのです。
二段階認証を義務づける動きも
一般消費者向けに「オプション」として用意され、使うも使わないも利用者の自由としてきた二段階認証に、大きな動きがありました。グーグル公式ブログによると、グーグルが販売しているスマートスピーカーである「Google Nest」(旧称 Google Home)で、これまではオプションとして提供してきた二段階認証を必須としたのです。
具体的には、二段階認証を設定していないユーザーに対してメールを送信し、メールで本人確認を行った後、確認コードの入力を義務付けています。これまでのパスワード(知識要素)に加えて、確認コードの入力(所有要素)の2つの要素を使用を求めています。家庭で一般的に利用される製品で、二段階認証を義務付けるのは、おそらく初めてではないでしょうか。
これまで、法人の従業員が業務システムに認証する際など、「ビジネスで利用するシステム」であれば、二段階認証の義務付けは簡単でした。「今日から義務付けられました。やってください」と言われれば、従業員は二段階認証を利用するしかないためです。しかし、一般消費者に面倒を掛けさせてでも二段階認証を義務付けるのは、新しい動きです。
二段階認証の義務付けは、「グーグルのような大手企業だからできる」と見ることもできます。おそらく先進国でパソコンやスマホを使っているユーザーは、そのほとんどがGoogleアカウントを所有し、生活に不可欠なサービスとして利用しています。このため、「二段階認証を義務付けても、グーグルのビジネスに特段影響がない」と判断したと考えられます。
これは逆に、「中小企業が自社の製品サービスで、グーグルと同じような二段階認証の義務付けを行ったら、その面倒から顧客が離反する」とも取れます。
意見が多々あれど、ユーザーを守るための二段階認証の義務付けは、不正アクセスを試みる攻撃者の成功率を激減させるため、ある程度の利便性は犠牲になるものの、望ましいのではないでしょうか。
二段階認証は楽になってきているのか
「手間がかかるから使いたくない」ユーザーと、「セキュリティのために使わせたい」サービス提供者の溝は永遠に埋まらないのか、というとそうではありません。これは、二段階認証の初期と現在を比べれば明らかです。
インターネット黎明期の二段階認証は、銀行のオンラインバンキングや、証券会社のオンラインサービスなど、特に「お金が直接的に関係する」システムで多く利用されました。例えば、ログイン時と送金時に「プラスチックカードに書かれた暗号」の入力が必要だったり、手乗りサイズのキーホルダーのようなドングル(トークン)に表示された文字列の入力が必要、といった具合です。特定のオンラインサービスの認証にしか利用できない、他に使い道のない「モノ」を手元に置いておく必要がありました。
出先でオンラインサービスを利用したい場合でも、こうしたドングルや暗号表が手元になければ、サービスを利用できません。特に、急ぎの送金が必要になった場合に、ドングルや暗号表が手元にないと送金できないため、大きな不便がありました。
また、サービス提供者の側からも問題がありました。オンラインバンキングなどの口座を作る人全員に、こうしたドングルや暗号表を配る必要があるためです。サービスを頻繁に使ってくれるかどうか分からないユーザーに対して、ドングルや暗号表を配る費用は相当なものです。特に、オンラインバンキングともなれば、利用者が数十万人、数百万人いるケースは少なくないため、費用も巨額になります。
こうした状況はスマートフォンの登場により一変します。
2010年代に入り、スマートフォンが急速に普及したため、他に使い道のない暗号表カードやドングルを利用しなくても、二段階認証が行えるようになりました。例えば、あらかじめ登録されている携帯電話番号にSMSを送り番号を入力させる、あらかじめ登録されたスマートフォンのアプリに表示される番号を入力させるなどです。
そして、二段階認証を一気に楽にする方法が登場しました。生体認証の事実上の標準規格である「FIDO2」により、指紋や顔といった生体情報もオンラインサービスの認証に利用できるようになりました。これにより、「パスワード」と「指紋」、「パスワード」と「顔」を利用しての二段階認証も可能となります。数列を入力したり、暗号表を引っ張り出さなくても、「スマホの指紋リーダーに指をタッチ」「スマホのカメラに顔を向ける」だけで二段階認証ができるとなると、手間が激減するため、二段階認証の利用に大きな弾みがつくことが期待されます。
そして、二段階認証の普及の先には「パスワードレス」の時代が待ち受けています。ヤフー(ヤフージャパン)では、上記のFIDO2を利用して、ヤフーアカウントへのログインをスマートフォンの指紋だけで可能とする「パスワードレス」認証を実現させています。
ヤフー公式ブログより
テクノロジーの進化とともに、「利便性を犠牲にしてセキュリティを実現する」のではなく、「利便性を高めながら、セキュリティも共に実現する」時代に近づいてきています。