多要素認証

多要素認証とは

多要素認証(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要素は知識情報・所持情報・生体情報です。