二要素認証とは
二要素認証は、二つの認証要素を組み合わせる認証で、多要素認証の一種です。英語ではTwo-Factor Authentication(ツー・ファクター・オーセンティケーション)、略して2FA(ツーファクター・オーセンティケーション、またはツーエフエー)と呼びます。
たとえばパスワードという知識要素と、登録済みセキュリティキーという所持要素を組み合わせます。二つの要素が異なる攻撃に耐えれば、一方が漏れても直ちに認証されません。
二要素は「画面が二枚」「二回操作」ではありません。知識・所持・生体のうち、異なる二種類を満たすことが要点です。

二要素として成立するかを順に確かめる
- 第一要素を分類するパスワードなら知識、登録端末の秘密鍵なら所持など、証拠の性質を確認します。
- 第二要素を分類する別入力だから別要素とは決めず、何を証明しているかを見ます。
- 独立性を確かめる一つのフィッシング画面、同じメール受信箱、同じ平文保存から二つとも奪われないか確認します。
- 検証先を確かめるコードや署名が本物のサービス・セッション・チャレンジへ結び付いているかを見ます。
- 失効手段を用意する端末紛失時にその要素だけを無効化し、別の安全な要素へ切り替えられるようにします。
- 復旧を同じ強さにする二要素を迂回する簡単な再設定や、本人確認なしの窓口変更を残しません。
二段階認証との違い
Two-Step Verification(ツー・ステップ・ベリフィケーション)は、二つの手順で確認する広い表現として使われます。パスワードのあとに別の秘密を入力するだけなら二段階でも、二要素とは限りません。
製品名では「二段階認証」がSMSコードや認証アプリを含む一般名称として定着しています。名称だけで判断せず、二つの手順がどの認証要素を証明するかを確認します。
代表的な第二要素には強さの差がある
SMS、メール、OTPアプリ、プッシュ承認、ICカード、セキュリティ鍵、パスキーは、配送経路と検証方法が異なります。数字を入力するOTPは偽サイトへ中継され得ますが、WebAuthn系の認証器は接続先ドメインとチャレンジへ署名を結び付けられます。
選択肢が複数ある場合は、フィッシング耐性のある方式を主にし、電話番号やメールは復旧通知など適切な範囲へ限定します。
機種変更前に第二要素を移行する
古い端末を初期化する前に、新端末へ認証器を追加し、実際にログインできることを確かめます。同期型の認証器でも、同期先アカウントへ入る方法と暗号化鍵の回復条件を確認します。
安全な二要素認証は、通常時のログインだけでなく、端末紛失、番号変更、認証器追加、復旧、退会時の失効まで設計されています。
二要素を含むmulti-factor認証と認証器要件の確認資料:NIST SP 800-63B「Authentication and Authenticator Management」