情報セキュリティへの配慮が必須となっている昨今、これを読んでいる皆さんは「二要素認証」や「二段階認証」という言葉を一度は耳にしているものと思います。しかしながら、以下の点までしっかりと把握している方は意外と少ないのではないでしょうか。
- 「二要素認証」と「二段階認証」はどう違うのか?
- 具体的にどういうケースが多要素認証に当てはまるのか?
この記事では、上記2点の疑問について分かりやすく説明します。
多要素認証(二要素認証)とは?
多要素認証(Multi-Factor Authentication, MFA)とは、認証の「要素」のうち2種類以上を併用して認証を行うことを指します。併用する要素が2つであれば二要素認証(Two-Factor Authentication, 2FA) と呼ばれます。
認証の「要素」とは、一般的に以下の3つを指します。
- 記憶情報 : その人が「知っている」ことで認証する(パスワード等)
- 所持情報 : その人が「所持しているもの」で認証する(IDカード等)
- 生体情報 : その人の生体情報で認証する(指紋等)
上記のうち2つ以上が併用されていれば、多要素認証の要件を満たします。
例えば「パスワード(記憶)」と「IDカード(所持)」を併用する認証であれば「記憶 + 所持」の二要素認証と呼べます。
一方、「パスワード(記憶)」と「秘密の質問(記憶)」の確認を求める場合は「記憶 + 記憶」になります。これは二要素認証には当てはまりません。
二段階認証とは?
二段階認証(Two-Step Authentication)とは、認証を2回以上に分けて行うことを指します。二要素認証とはまた別の概念です。
この際、認証の要素が何なのかは問いません。「IDとパスワード(記憶)を確認したあと、秘密の質問の確認を求める」のは二段階認証に該当するものです。「IDとパスワード(記憶)を確認したあと、ワンタイムパスワード(所持)の確認を求める」のも二段階認証になります。
なお、三段階以上のものも含めた「多段階認証」という呼び名も存在するようですが、あまり一般的ではないように見受けられます。
認証の「要素」の具体例
ある認証が多要素認証であるかを判断するためには、どの認証がどの要素に当てはまるのかを知る必要があります。どの方法がどの要素に当てはまるのか、具体的に見ていきましょう。
記憶情報
- パスワード
- パターン認証(画面に表示されるドットをなぞった「パターン」で認証するもの)
- 秘密の質問
「本人しか知らない情報」による認証は「知識情報」 として扱われます。
本人(と認証先)しか知らないことが認証の根拠なので、パスワードを複数サイト使い回したり、他の人に情報が洩れたりすると安全ではなくなります。
所持情報
- IDカード
- セキュリティートークン
- スマートフォン
- ソフトウェアトークン
- SMS
本人しか所有していない物を使った認証は「所持情報」 として扱われます。SMSについては「電話番号を所有している」という扱いで、ここに含まれます。
盗まれたり複製されたりすると安全ではなくなります。
ソフトウェアトークンは利便性が高く、スマートフォンのアプリを使ったものが普及していますが、ハードウェアトークンと比べて複製耐性は劣ります。
生体情報
- 指紋認証
- 顔認証
- 網膜認証
本人の身体的特徴を利用して認証を行うものは「生体情報」 です。
専用の機器が必要であり以前はハードルが高いものでしたが、生体認証をサポートしたスマートフォンの普及により各段に扱いやすくなりました。
基本的に複製が困難なものではありますが、それが不可能という訳でもありません。分かりやすいところだと、双子だと顔認証が突破される危険性があります。
また、生体情報が不正な方法で複製されていないかを検知する技術も必要です。例えば「大根で指紋認証を偽造した」という事例があり、このような誤検知を防ぐ技術が求められます。
静脈認証も安心できない? 大根で作った偽造指で認証に成功
https://xtech.nikkei.com/it/free/NC/NEWS/20050701/163801/
【おまけ】「メールによるワンタイムパスワードの送信」はどの要素なのか?
IDとパスワードによる認証を行ったあと、メールでワンタイムパスワードを送信するサイトがあります。これは多要素認証と呼べるのでしょうか?
残念ながら筆者はセキュリティの専門家ではありません。正確な定義で「記憶情報」なのか「所持情報」なのかは分からないのですが、実用上は「記憶情報」として扱うべきだと考えています。
Wikipedia の多要素認証のページでは記憶情報として扱われています。確かに「IDとパスワード」のみでメールを閲覧出来る場合は、その通り「記憶情報」と扱うべきです。
しかし、近年の Gmail のようなサービスでは、昔ながらの POP や IMAP プロトコルを使った単なる「IDとパスワード」によるメールの受信を無効化することができます。さらに、これらのサービスでは SMS 等を併用した多要素認証もサポートされています。これは単純な「記憶情報」というより「所持情報」の要素も含んだものです。
このような事情から「メールが受信できること(メールを受信できる端末を所持していること)」を実質的に「所持情報」として扱っているサイトも多いのだと思います。
とはいえ、多要素認証のないメールアドレスも普通に存在するものです。実用上は、安全側に倒して「記憶情報」として扱うのが適切でしょう。もし信頼のおける「所持情報」を扱いたいなら、ソフトウェアトークンや SMS など他の方法を選ぶべきです。
まとめ
「多要素認証(MFA)」とは、「記憶情報」「所持情報」「生体情報」のうち複数の要素で認証を行うものです。「二要素認証(2FA)」はその一種であり、2つの要素で認証を行うものです。
「二段階認証(Two-Step Authentication)」は多要素認証とは別の概念であり、単に認証のステップを2回に分割することを指します。
ある認証が多要素認証に該当するのかを判別するには、どの情報がどの認証の要素に該当するのかを知る必要があります。
記憶情報は本人しか知らない情報です。情報が他人に知られた場合は安全ではなくなります。
所持情報は本人しか持たない「もの」です。盗難や複製のリスクがあります。
生体情報は本人の生体情報です。複製されにくいものですが誤検知の問題があります。