「ログイン時にメールで認証コードが届くから、うちのサービスは二要素認証に対応してます」
こんな説明を見たことはありませんか?
実は、これは厳密には正しくありません。
メールを使った認証は「二段階認証」ではありますが、「二要素認証」ではないのです。
今回は、混同されがちなこの2つの用語の違いと、なぜメール認証が二要素認証とは言えないのかについて解説します。
二段階認証と二要素認証の違い
まず、用語の定義を整理しましょう。
二段階認証(2-Step Verification)
認証プロセスを2回行うこと。
単純に認証のステップが2つあれば二段階認証です。
例えば
- パスワード入力 → メールで届いた認証コード入力
- パスワード入力 → SMS認証コード入力
二要素認証(2-Factor Authentication, 2FA)
異なる要素を2つ組み合わせて認証すること。
ここでいう「要素」とは、認証の三要素を指します。
認証の三要素
セキュリティの世界では、認証要素は以下の3つに分類されます。
| 要素区分 | 内容 | 説明 |
|---|---|---|
| 知識要素(Something you know) | パスワード、PIN、秘密の質問の答え | 「知っているもの」で認証 |
| 所持要素(Something you have) | スマートフォン、セキュリティキー、ICカード | 「持っているもの」で認証 |
| 生体要素(Something you are) | 指紋、顔、虹彩、声紋 | 「自分自身」で認証 |
二要素認証とは、この3つの要素のうち異なる2つを組み合わせた認証方法を指します。
なぜメール認証は二要素認証ではないのか
ここで冒頭の話に戻りましょう。
メールを使った認証プロセスを分解してみます。
- パスワードを入力(知識要素)
- メールで届いた認証コードを入力(???)
問題は2番目のステップです。
メールで届いた認証コードを入力するという行為は、一見すると「メールアカウントを持っている(所持要素)」ように見えます。
しかし、メールアカウント自体もパスワード(知識要素)で保護されているだけなら、結局のところ、
- サービスAのパスワード(知識要素)
- メールアカウントのパスワードで保護された認証コード(知識要素)
という構造になり、両方とも知識要素です。
これは二段階認証ではありますが、二要素認証ではありません。
メール認証のセキュリティリスク
この問題は単なる用語の違いではなく、実際のセキュリティリスクにつながります。
リスク1: パスワード漏洩の連鎖
攻撃者がメールアカウントのパスワードを入手できれば、そのメールアドレスで登録されているすべてのサービスで認証コードを受け取れてしまいます。
リスク2: メールの盗聴
メールは経路上で傍受される可能性があります。
特に暗号化されていないメールサーバーを経由する場合、認証コードが第三者に読まれるリスクがあります。
リスク3: メールアカウントの乗っ取り
メールアカウント自体が二要素認証で保護されていない場合、フィッシングやパスワードリスト攻撃によって容易に乗っ取られる可能性があります。
まとめ
「メールで認証コードが届く」というのは、確かに何もしないよりは安全です。
しかし、厳密には二要素認証とは呼べず、セキュリティ上の脆弱性も存在します。
より安全な認証を実現するためには、真の意味での二要素認証が必要です。
認証アプリ(TOTP)、セキュリティキー(FIDO2/WebAuthn)、生体認証など、異なる要素を組み合わせた認証方法が推奨されます。
今の時代、セキュリティは正しく理解していないと、一瞬で突破されかねないので怖いです。


コメント