2019年7月の「7pay事件」は記憶に新しいところですが、この事件がクローズアップされた際によく取り上げられた言葉に「二段階認証」という言葉があります。そもそも二段階認証とは何か。「二要素認証」「多要素認証」とは何が違うのか、見ていきたいと思います。
知っていますか?「二段階認証」の多くは間違いです
セキュリティ向上のための「二段階認証」と聞いて、一般的に思い浮かべるのは、以下のような流れではないでしょうか。
- 最初、IDとパスワードを入力し認証を行う (一段階目の認証)
- 次に、IDとパスワード以外のものを入力して認証を行う (二段階目の認証)
- 二段階の認証を通過するとログインできる。
通常は、1段階目の「ID・パスワード認証」のみなので、認証が2段階で2回求められるので「1段階より安全」という理解が持たれています。しかし、これは2つの意味で正しくありません。
(1)二段階であること自体にセキュリティ向上の価値はない
アメリカの国立の研究所であるNIST (米国標準技術研究所)は、技術に関するあらゆる研究を行っている巨大な研究所です。NISTが作成する、情報セキュリティに関するガイドラインは、その網羅性と質の高さから実質的な世界標準になっていますが、NISTは「二段階認証」の価値を全く認めていません。
もし認証が「二段階」であるだけでよければ、
- ID・パスワード入力し認証後、別なID・パスワードを入力・認証
- ID・パスワード入力し認証後、「秘密の質問」を入力・認証
でも、「二段階」なので問題ないはずです。しかし、こうした「二段階認証」は強力な認証ではないとされ、その価値を否定されています。
(2)必要なのは「二段階」ではなく「二要素」である
NISTが重要視しているのは、「二段階認証」ではありません。認証要素が2つある「二要素認証」、または認証要素が2つか3つある「多要素認証」であるためです。では、「認証要素」とは何かについては、以下でご説明します。
認証要素と「二要素認証」「多要素認証」
では、認証要素について理解する前に、「認証」「認証要素」という言葉について正しく理解しましょう。
はじめに、「認証」とは、「正当なアクセス権がある本人であることを認めて、ログインを許可すること」です。インターネット上で行われる全てのログインは「認証」だとお考え下さい。
次に「認証要素」ですが、これは「認証を行うために必要な認証方法のカテゴリ」です。このカテゴリは3つに分かれています。
(1)「知っていること・記憶していること」知識要素
知識要素とは、認証する人が「知っていること」「記憶していること」を認証要素として、これを使って認証するというものです。例えば、パスワードや秘密の質問(「母親の旧姓は」といった、ほぼ本人しか知らない質問)が知識要素になります。
(2)「持っていること・受け取っていること」所持要素
所持要素とは、自分があらかじめ知っている・記憶していることではなく、「自分が持っているデバイスやアカウントに対して送られた情報」を使って認証するというものです。
例えば、スマートフォンアプリとして利用するGoogle認証システム (Authenticator) 、メール、携帯電話送られたSMSなどで表示される文字列・数列が所持要素となります。なお、あらかじめ保有しているワンタイムパスワード用に表示された情報も、所持要素となります。知識要素は「あらかじめ記憶できる内容」、所持要素は「毎度違うので記憶できない内容」と理解すると分かりやすいです。
(3)「自分の身体があること」生体要素
生体要素とは、自分の体の一部をデジタル情報に置き換えて認証するというものです。現在世界で最も多く使われているのは、おそらく「スマートフォンの指紋認証」ではないかと思いますが、これ以外にも「顔認証」「(瞳のパターンを利用した)虹彩認証」、「指静脈認証」「手のひら静脈認証」「声認証」など、多数の認証があります。
この(1)、(2)、(3)の認証要素を2つ使った認証が「二要素認証」となります。また、ややこしいですが、これら認証要素を「2つ以上 (つまり2つか3つ)」使った認証を「多要素認証」と呼びます。逆に、認証要素を1つしか使わない認証を「単要素認証」と呼びます。
さきほどご紹介したNISTのガイドラインには、認証要素とその強度に関する記載がなされており、高い認証強度を確保するには2つ以上の認証要素が必要とされています。
・参考記事
世界の電子認証基準が変わる:NIST SP800-63-3を読み解く
認証要素の組み合わせは問題ではありません。「知識+所持」「知識+生体」「所持+生体」のどれでも問題ありません。
「二段階認証」と「二要素認証」「多要素認証」の違い
ここまでの内容をまとめます。「二段階認証」はあくまでも認証における「段階の数」を指していますが、段階が多ければ認証が強固になるかというと、そうではないので、事実上「意味のない用語」になっています。
これに対して、「二要素認証」「多要素認証」は、認証における「認証要素の数」を指しています。認証要素は2つ以上であると強固な認証になるため、こちらは「意味のある正しい言葉」です。
以下に、どのような場合は「二段階認証」「二要素認証」「多要素認証」かを、いくつかの例を挙げて説明します。
上記で、安全性が高いのは「認証要素が2つ以上使われている認証」です。すなわちNo.2, No.5, No.6となります。
No.1とNo.2は一段階認証ですが、知識要素しか使われていないNo.1に対して、No.2は知識要素と所持要素の両方が入っています。よって、No.2は二要素認証(多要素認証)となり、安全です。
No.3とNo.4は二段階認証ですが、二段階目で使われているのが「別なパスワード」と「秘密の質問」となり、いずれも知識要素です。知識要素の認証が2つ使われても「二要素認証」「多要素認証」とは見なされないため、安全ではありません。
No.5とNo.6は、二段階認証であると同時に、認証要素が2つ入っているため「二要素認証」(多要素認証)となり、高い安全性が確保されています。
このように、安全性を考えるうえで注目すべきなのは「認証要素の数」です。「認証における段階数」ではありません。
なぜ「二段階認証」という言葉が今も使われているのか
繰り返しお伝えしている通り、認証時のセキュリティ強度を見るうえで重要なのは「認証要素の数」です。「認証時の段階の数」ではありません。そうなると、以下のように考える方もいらっしゃると思います。
- 「二段階認証」という言葉が流通しているのはおかしいのではないか。むやみに混乱するのではないか。
- 「二要素認証」や「多要素認証」という言葉に置き換えたほうがよいのではないか。
このように思われる方、あなたの考えは正しいです。実際に海外では、「二要素認証 (2FA)」「多要素認証 (MFA)」という言葉で利用されており、「二段階認証」という言葉はめったに使われません。
日本だけなぜ「二段階認証」という言葉が流通している理由は、2000年前後に「パスワード+秘密の質問」の2つで、広く二段階認証が行われたためと推察します(この時代は、パスワードと秘密の質問を併用することが安全とされていました)。よって現在では、「二要素認証」「多要素認証」と書くのが正しい使い方であるにもかかわらず、「二段階認証」と誤って使われているのです。
今後、ニュースなどで「二段階認証」に関する記事が掲載されていた場合、または利用したいSaaSが「二段階認証」を導入しているという記載を見たときには、「二『段階』認証のことを言っているのか、それとも二『要素』・多『要素』認証のことを指しているのか」を念のため確認するのがよいかと思います。