多要素認証
多要素認証とは
多要素認証(MFA: Multi-Factor Authentication)は、性質の異なる複数の要素を組み合わせて本人確認する仕組みです。パスワードだけの認証に比べ、アカウント乗っ取りの成功率を大幅に下げられます。
認証の要素は次の3種類に分類されます。
| 要素 | 内容 | 例 |
|---|---|---|
| 知識情報(Something you know) | 本人だけが知っていること | パスワード、PIN |
| 所持情報(Something you have) | 本人だけが持っているもの | スマホの認証アプリ、セキュリティキー |
| 生体情報(Something you are) | 本人の身体的特徴 | 指紋、顔 |
このうち異なる種類を2つ以上組み合わせるのが多要素認証です。「パスワード+秘密の質問」は両方とも知識情報なので、多要素にはなりません。
主な方式と強度
| 方式 | 仕組み | 特徴 |
|---|---|---|
| SMS コード | 電話番号にコードを送る | 手軽だが SIM 乗っ取りや転送の攻撃例があり相対的に弱い |
| TOTP アプリ | 認証アプリが30秒ごとにコードを生成 | オフラインで動作し SMS より安全 |
| FIDO2 / パスキー | 公開鍵暗号で端末が署名する | コード入力自体がなく、フィッシング耐性が最も高い |
SMS やアプリのコードは、偽サイトに入力させて盗む [[フィッシング対策]] の観点では突破されうる点に注意が必要です。パスキーは「本物のサイトでしか署名が成立しない」仕組みのため、偽サイトに強いのが大きな利点です。
初学者向けポイント
- [[パスワードの保存とハッシュ化]] が正しくても、利用者側のパスワード使い回しは防げません。MFA はその穴を塞ぐ最後の砦です
- まずはメール・クラウド・銀行など、被害の大きいアカウントから有効化しましょう
- 認証アプリを入れたスマホの紛失に備え、リカバリーコードを安全な場所に保管しておくことも重要です
- 管理者アカウントや [[OAuth・OIDC]] の IdP(ログインの起点になるアカウント)は特に優先して MFA を設定します
関連技術とのつながり
- [[認証と認可]] — MFA は「認証」を強化する仕組み。認可との違いも整理しよう
- [[パスワードの保存とハッシュ化]] — サーバー側の防御。MFA は利用者側の防御と補完関係
- [[フィッシング対策]] — 方式によってフィッシング耐性が大きく異なる
- [[OAuth・OIDC]] — ログインを集約する IdP でこそ MFA が重要になる
- [[電子署名とハッシュ]] — FIDO2/パスキーが使う「秘密鍵で署名し公開鍵で検証する」仕組み
Q: 多要素認証の組み合わせとして正しいのはどれ?
- [ ] パスワード+秘密の質問
- [x] パスワード+スマホの認証アプリ
- [ ] PIN+パスワード
解説: パスワードと秘密の質問・PINはいずれも知識情報です。知識情報+所持情報のように異なる種類の組み合わせが多要素認証です。
Q: フィッシング耐性が最も高いとされる方式はどれ?
- [ ] SMSで送られるコード
- [ ] 認証アプリのTOTPコード
- [x] FIDO2/パスキー
解説: パスキーは本物のサイトでしか署名が成立せず、コード入力自体がないため偽サイトに強い方式です。
Q: 認証の3要素に含まれないのはどれ?
- [ ] 知識情報(パスワードなど)
- [x] 位置情報(ログインした場所)
- [ ] 生体情報(指紋など)
解説: 認証の3要素は知識情報・所持情報・生体情報です。