7pay騒動から二段階認証について改めて理解する

1__1_.jpg

2019年7月1日にリリースされた、セブン&アイグループで利用できるスマートフォン決済サービス「7pay」の不正アクセス騒動は、結局7pay自体が2019年9月で終了する、という幕引きとなりました。

この事件について「7payはセキュリティが低い」「開発体制がなっていない」「二段階認証に対応していない」などと責めても仕方がありません。大切なのは、この事件から何を学ぶかではないでしょうか。以下では、今回大きく着目された「二段階認証」について解説します。

 

 

二段階認証とは

2.jpg

なお、この記事内では「二段階認証」という言葉が多数でてきますが、ここでいう「二段階認証」は、「2つの認証要素を含む認証方式」を指しています。正しくは「二要素認証 (2FA, Two-Step Authentication」と呼ぶべきですが、「二段階認証」という呼称が一般的であるため、「二段階認証」と記載しています。

情報セキュリティにおける「二段階認証」とは、2つ以上の「認証要素」を含む認証方式を指します。次に、「認証要素」ですが、次の3つの認証要素のうちを指します。二段階認証では、この3つの中から2つを利用しなければなりません。

  • 知識要素
    • ある人が知っている(記憶している)情報を利用した認証で、パスワードや秘密の質問などがこれに該当します。
  • 所有要素
    • ある人が持っている(または持っているデバイスで取得できる)情報を利用した認証で、ワンタイムパスワードトークンや認証用SMS、暗号表、スマートフォンの認証システム (Authenticator) などが該当します。
  • 生体要素
    • ある人の人体そのものの情報を利用した認証で、指紋認証、顔認証、声認証、虹彩認証などが該当します。

例えば、「パスワード」と「認証用SMS」の両方を利用した認証(知識要素と所有要素)は二段階認証となります。また、「パスワード」と「指紋」の両方を利用した認証(知識要素と生体要素)も二段階認証となります。

逆に、「パスワード」と「秘密の質問」を利用した認証は、認証に用いられる情報は2つですが、認証要素はどちらも知識要素のみとなるため、これは二段階認証とはならないため注意が必要です。

 

 

なぜ二段階認証が必要か

3.jpg

二段階認証が必要になった理由は簡単です。これまでの「パスワードのみ」の認証が安全ではなくなったためです。

ではなぜ安全ではなくなったかというと、パスワードを突破するための巧妙な攻撃手法が次々と編み出され、日々攻撃に利用されているためです。以下はその一例です。

  • リスト型攻撃
    • 既に流出したIDとパスワードの組み合わせを利用して、他のサービスに不正アクセスを試みる手法。よく「パスワードの使い回しは危険」と言われますが、その理由は「流出したパスワードが使い回しだった場合、同じパスワードを利用して他のサービスにも不正アクセスが行われるため」です。
  • ブルートフォース攻撃 (総当たり攻撃)
    • 頻繁に利用される脆弱なパスワードを利用して、不正アクセスを試みる手法。パスワードに「password」という文字列を使うと脆弱、といった情報は公開されているので、これらを利用して行われます。なお、最近では各サービス運営者側で、明らかに脆弱なパスワードは登録時に利用できないようにされています。
  • パスワードスプレー攻撃
    • ブルートフォース攻撃に似た攻撃で、よく利用される脆弱なパスワードを用いて不正アクセスを試みた攻撃。違いは、ブルートフォース攻撃は短時間で多数のパスワードを利用して不正アクセスを試みるが、パスワードスプレー攻撃はゆっくりと時間をかけて不正アクセスを試みる点。同じIPアドレスから短時間に多数のアクセスがあった場合、特定IPからのアクセスを一定時間停止するサービスが増加したためです。

二段階認証であれば、万が一「パスワード」が突破されたとしても、「登録したスマホに送られるSMSに書かれた文字列」や「あらかじめ登録されている指紋情報」など、別な認証要素の情報がない限りログインできません。よって、二段階認証を利用すると「パスワードが突破されても、最後の砦がまだ用意されているので安心」なのです。

 

 

二段階認証はなぜ普及していないか

4__1_.jpg

サービス提供者からすると、利用者全員が二段階認証を利用すれば、不正アクセスを受けるリスクは大幅に低減します。しかし、二段階認証は「オプション」として用意されているサービスがほとんどで、「必須」となっているサービスはごくわずかです。

なぜか。それは「二段階認証は面倒だから」です。

例えば、二段階認証を導入した結果、日々利用するサービスにアクセスするたびに、「記憶しているパスワード」に加えて、「スマートフォンに表示されている数列」の入力が必要になったとします。これまでパスワード入力とログインが数秒で完了していたのが、「スマートフォンを開く→アプリを開く→文字列を見る→文字列を入力する」という新たな手間がかかります。数秒で済んでいた作業が、十数秒から数十秒になります。これをかなりの手間を感じる人は少なくありません。

また、暗号表を利用した二段階認証の場合、暗号表を手元に持ってくることから始めなければなりません。普段さほど暗号表を利用していない場合、「暗号表、どこに置いたかな」と探す時間だけで数分経ってしまうことも珍しくありません。

二段階認証を行うこと自体は、「数字や文字を入力する」だけで、全く難しいものはありません。問題なのは手間だけなのです。

 

 

二段階認証は楽になってきているのか

5__1_.jpg

 「手間がかかるから使いたくない」ユーザーと、「セキュリティのために使わせたい」サービス提供者の溝は永遠に埋まらないのか、というとそうではありません。これは、二段階認証の初期と現在を比べれば明らかです。

インターネット黎明期の二段階認証は、銀行のオンラインバンキングや、証券会社のオンラインサービスなど「お金が直接的に関係する」システムで多く利用されました。例えば、ログイン時と送金時に「プラスチックカードに書かれた暗号」の入力が必要だったり、手乗りサイズのキーホルダーのようなドングル(トークン)に表示された文字列の入力が必要、といった具合です。認証のためにしか利用せず、他に使い道のない「モノ」を手元に置いておく必要がありました。

しかし、スマートフォンが普及したため、他に使い道のない暗号表カードやドングルを利用しなくても、二段階認証が行えるようになりました。例えば、あらかじめ登録されている携帯電話番号にSMSを送り番号を入力させる、あらかじめ登録されたスマートフォンのアプリに表示される番号を入力させるなどです。

そして、二段階認証を一気に楽にする方法が登場しました。生体認証の事実上の標準規格である「FIDO2」により、指紋や顔といった生体情報もオンラインサービスの認証に利用できるようになりました。これにより、「パスワード」と「指紋」、「パスワード」と「顔」を利用しての二段階認証も可能となります。数列を入力したり、暗号表を引っ張り出さなくても、「スマホの指紋リーダーに指をタッチ」「スマホのカメラに顔を向ける」だけで二段階認証ができるとなると、手間が激減するため、二段階認証の利用に大きな弾みがつくことが期待されます。

7pay騒動から二段階認証について改めて理解する

1__1_.jpg

2019年7月1日にリリースされた、セブン&アイグループで利用できるスマートフォン決済サービス「7pay」の不正アクセス騒動は、結局7pay自体が2019年9月で終了する、という幕引きとなりました。

この事件について「7payはセキュリティが低い」「開発体制がなっていない」「二段階認証に対応していない」などと責めても仕方がありません。大切なのは、この事件から何を学ぶかではないでしょうか。以下では、今回大きく着目された「二段階認証」について解説します。

 

 

二段階認証とは

2.jpg

なお、この記事内では「二段階認証」という言葉が多数でてきますが、ここでいう「二段階認証」は、「2つの認証要素を含む認証方式」を指しています。正しくは「二要素認証 (2FA, Two-Step Authentication」と呼ぶべきですが、「二段階認証」という呼称が一般的であるため、「二段階認証」と記載しています。

情報セキュリティにおける「二段階認証」とは、2つ以上の「認証要素」を含む認証方式を指します。次に、「認証要素」ですが、次の3つの認証要素のうちを指します。二段階認証では、この3つの中から2つを利用しなければなりません。

  • 知識要素
    • ある人が知っている(記憶している)情報を利用した認証で、パスワードや秘密の質問などがこれに該当します。
  • 所有要素
    • ある人が持っている(または持っているデバイスで取得できる)情報を利用した認証で、ワンタイムパスワードトークンや認証用SMS、暗号表、スマートフォンの認証システム (Authenticator) などが該当します。
  • 生体要素
    • ある人の人体そのものの情報を利用した認証で、指紋認証、顔認証、声認証、虹彩認証などが該当します。

例えば、「パスワード」と「認証用SMS」の両方を利用した認証(知識要素と所有要素)は二段階認証となります。また、「パスワード」と「指紋」の両方を利用した認証(知識要素と生体要素)も二段階認証となります。

逆に、「パスワード」と「秘密の質問」を利用した認証は、認証に用いられる情報は2つですが、認証要素はどちらも知識要素のみとなるため、これは二段階認証とはならないため注意が必要です。

 

 

なぜ二段階認証が必要か

3.jpg

二段階認証が必要になった理由は簡単です。これまでの「パスワードのみ」の認証が安全ではなくなったためです。

ではなぜ安全ではなくなったかというと、パスワードを突破するための巧妙な攻撃手法が次々と編み出され、日々攻撃に利用されているためです。以下はその一例です。

  • リスト型攻撃
    • 既に流出したIDとパスワードの組み合わせを利用して、他のサービスに不正アクセスを試みる手法。よく「パスワードの使い回しは危険」と言われますが、その理由は「流出したパスワードが使い回しだった場合、同じパスワードを利用して他のサービスにも不正アクセスが行われるため」です。
  • ブルートフォース攻撃 (総当たり攻撃)
    • 頻繁に利用される脆弱なパスワードを利用して、不正アクセスを試みる手法。パスワードに「password」という文字列を使うと脆弱、といった情報は公開されているので、これらを利用して行われます。なお、最近では各サービス運営者側で、明らかに脆弱なパスワードは登録時に利用できないようにされています。
  • パスワードスプレー攻撃
    • ブルートフォース攻撃に似た攻撃で、よく利用される脆弱なパスワードを用いて不正アクセスを試みた攻撃。違いは、ブルートフォース攻撃は短時間で多数のパスワードを利用して不正アクセスを試みるが、パスワードスプレー攻撃はゆっくりと時間をかけて不正アクセスを試みる点。同じIPアドレスから短時間に多数のアクセスがあった場合、特定IPからのアクセスを一定時間停止するサービスが増加したためです。

二段階認証であれば、万が一「パスワード」が突破されたとしても、「登録したスマホに送られるSMSに書かれた文字列」や「あらかじめ登録されている指紋情報」など、別な認証要素の情報がない限りログインできません。よって、二段階認証を利用すると「パスワードが突破されても、最後の砦がまだ用意されているので安心」なのです。

 

 

二段階認証はなぜ普及していないか

4__1_.jpg

サービス提供者からすると、利用者全員が二段階認証を利用すれば、不正アクセスを受けるリスクは大幅に低減します。しかし、二段階認証は「オプション」として用意されているサービスがほとんどで、「必須」となっているサービスはごくわずかです。

なぜか。それは「二段階認証は面倒だから」です。

例えば、二段階認証を導入した結果、日々利用するサービスにアクセスするたびに、「記憶しているパスワード」に加えて、「スマートフォンに表示されている数列」の入力が必要になったとします。これまでパスワード入力とログインが数秒で完了していたのが、「スマートフォンを開く→アプリを開く→文字列を見る→文字列を入力する」という新たな手間がかかります。数秒で済んでいた作業が、十数秒から数十秒になります。これをかなりの手間を感じる人は少なくありません。

また、暗号表を利用した二段階認証の場合、暗号表を手元に持ってくることから始めなければなりません。普段さほど暗号表を利用していない場合、「暗号表、どこに置いたかな」と探す時間だけで数分経ってしまうことも珍しくありません。

二段階認証を行うこと自体は、「数字や文字を入力する」だけで、全く難しいものはありません。問題なのは手間だけなのです。

 

 

二段階認証は楽になってきているのか

5__1_.jpg

 「手間がかかるから使いたくない」ユーザーと、「セキュリティのために使わせたい」サービス提供者の溝は永遠に埋まらないのか、というとそうではありません。これは、二段階認証の初期と現在を比べれば明らかです。

インターネット黎明期の二段階認証は、銀行のオンラインバンキングや、証券会社のオンラインサービスなど「お金が直接的に関係する」システムで多く利用されました。例えば、ログイン時と送金時に「プラスチックカードに書かれた暗号」の入力が必要だったり、手乗りサイズのキーホルダーのようなドングル(トークン)に表示された文字列の入力が必要、といった具合です。認証のためにしか利用せず、他に使い道のない「モノ」を手元に置いておく必要がありました。

しかし、スマートフォンが普及したため、他に使い道のない暗号表カードやドングルを利用しなくても、二段階認証が行えるようになりました。例えば、あらかじめ登録されている携帯電話番号にSMSを送り番号を入力させる、あらかじめ登録されたスマートフォンのアプリに表示される番号を入力させるなどです。

そして、二段階認証を一気に楽にする方法が登場しました。生体認証の事実上の標準規格である「FIDO2」により、指紋や顔といった生体情報もオンラインサービスの認証に利用できるようになりました。これにより、「パスワード」と「指紋」、「パスワード」と「顔」を利用しての二段階認証も可能となります。数列を入力したり、暗号表を引っ張り出さなくても、「スマホの指紋リーダーに指をタッチ」「スマホのカメラに顔を向ける」だけで二段階認証ができるとなると、手間が激減するため、二段階認証の利用に大きな弾みがつくことが期待されます。