二要素認証(Two-Factor Authentication、略して 2FA)とは?
ユーザーが本人であることを確認するために、2つの異なる要素を組み合わせて認証を行う仕組み
認証の3つの要素
2FA は、以下の3種類のうち 2つ を組み合わせます。
- 知識要素(Something you know)
- ユーザーが知っている情報
- 例:パスワード、PINコード、秘密の質問の答え
- 所持要素(Something you have)
- ユーザーが持っている物理的・デジタルデバイス
- 例:スマホの認証アプリ、ワンタイムパスワード(OTP)トークン、セキュリティカード
- 生体要素(Something you are)
- ユーザー本人の身体的特徴
- 例:指紋認証、顔認証、虹彩認証
2. 具体例
- パスワード + SMSコード
- パスワード(知識要素)
- SMSで送られるワンタイムコード(所持要素)
- パスワード + 認証アプリのコード
- Google Authenticator や Authy などのアプリで生成される6桁コード(所持要素)
- 指紋認証 + パスワード
- 生体認証 + 知識要素
二段階認証(Two-Step Verification / Two-Step Authentication)とは
1回の認証だけではなく、2つのステップで本人確認を行う仕組み
2FA(二段階認証)と混同されやすいですが、微妙に意味が違います。
特徴
- ステップが2段階
- ユーザーはログインなどの際に、2回の認証ステップを通過する必要があります。
- 同じ種類の要素でも可
- 2FA は必ず異なる種類の要素を使う必要がありますが、二段階認証は必ずしも異なる種類である必要はありません。
- 例:
- パスワード入力 → メールで送られた確認コード入力
(どちらも知識要素に近い) - パスワード入力 → スマホアプリのワンタイムパスワード入力
(異なる要素を使えば2FAとほぼ同じになる)
- パスワード入力 → メールで送られた確認コード入力
具体例
- メール認証型
- パスワードでログイン
- メールに届く確認コードを入力
- SMS認証型
- パスワードでログイン
- SMSで届くワンタイムコードを入力
- アプリ認証型
- パスワードでログイン
- Google Authenticator などのアプリで生成されたコードを入力
二要素認証と二段階認証の違い
「二要素認証(2FA)」と「二段階認証(2-Step Verification)」は似ていますが、厳密には異なる概念です。
1. 二要素認証(2FA: Two-Factor Authentication)
- 意味:本人確認に 2種類の異なる要素 を組み合わせて認証する方法
- 認証の3要素:
- 知識要素:パスワード、PIN
- 所持要素:スマホ、ワンタイムトークン
- 生体要素:指紋、顔認証
- ポイント:
- 必ず異なる種類の要素を組み合わせる
- セキュリティ強度が高い
- 例:
- パスワード(知識) + Google Authenticator のコード(所持)
- パスワード(知識) + 指紋認証(生体)
2. 二段階認証(Two-Step Verification)
- 意味:本人確認の ステップが2段階ある認証 のこと
- ポイント:
- 同じ種類の要素を2回使うこともできる
- 「ステップの数」に着目しているので、必ずしも異なる要素である必要はない
- 例:
- パスワード入力 → メールで送られた確認コード入力
- パスワード入力 → SMSで送られたコード入力
| 比較 | 二段階認証 | 二要素認証(2FA) |
|---|---|---|
| 認証の定義 | ステップが2段階ある認証 | 異なる2種類の要素を使う認証 |
| 要素の種類 | 同じ種類でもOK | 必ず異なる種類 |
| セキュリティ | ステップが増えるだけなので、必ずしも強くない | 異なる要素なので強力 |
| 例 | パスワード → メールコード | パスワード → 認証アプリコード |