二段階認証(2FA)とは

パスワード(知識情報)に加えて、第2の認証要素(所持情報・生体情報)を組み合わせる認証方式。2FA(Two-Factor Authentication)とも呼ばれる。

仕組みと認証の3要素

認証には3種類の要素があります。

  • 知識情報(Something You Know): パスワード、PIN、秘密の質問
  • 所持情報(Something You Have): スマートフォン、ハードウェアトークン、SIMカード
  • 生体情報(Something You Are): 指紋、顔、虹彩

二段階認証は、このうち異なるカテゴリの要素を2つ組み合わせます。最も一般的なのはパスワード(知識)+SMS(所持)の組み合わせです。

主な二段階認証の種類

  • SMS認証: 電話番号にOTPを送信。導入が簡単だがSIMスワップリスクがある
  • 着信認証: 着信で本人確認。固定電話対応、SIMスワップ耐性あり
  • TOTP: Google Authenticator等のアプリで30秒ごとにOTPを生成
  • FIDO / FIDO2: ハードウェアキーや生体情報による強力な認証
  • パスキー: FIDOベースのパスワードレス認証。フィッシング耐性が最も高い

メリット

  • パスワードが漏洩しても第2要素がなければアカウントを乗っ取られない
  • 不正ログイン試行の多くを防止できる
  • コンプライアンス要件(PCI DSS、SOC2等)の充足に寄与する

デメリット

  • ユーザーの認証ステップが増え、離脱率が上がる可能性がある
  • 第2要素の種類によってはSIMスワップ等の攻撃に弱い(SMS認証の場合)
  • デバイス紛失時のアカウント復旧が複雑になる

二段階認証の選び方

セキュリティ要件と利便性のバランスで選択します。 高セキュリティが必要な金融サービスにはパスキーFIDO2が推奨されます。 一般ユーザー向けサービスでは、TOTP着信認証がセキュリティと利便性のバランスが良い選択肢です。

電話番号を使った二段階認証の実装を検討中の方へ

pauth.meは着信認証APIを提供。SMS不要でセキュアな電話番号認証を簡単に実装できます。