二要素認証(2FA)は、ログイン時にパスワードに加えてもう一つの要素——コード、タップ、物理キーなど——を求めることで、盗まれたパスワードだけではアカウントに侵入できないようにする仕組みです。ただし、2FAならどれも同じ強さというわけではありません。ここでは代表的な3つの方式を実際に比較します。
SMSコード
携帯電話にテキストメッセージで送られてくるコードです。2FAが全くないよりはましですが、最も弱い選択肢です。SIMスワッピング(攻撃者が通信会社を騙してあなたの電話番号を自分のSIMに移す手口)やSS7ネットワーク傍受は、いずれもあなたの端末に触れることなくこれを突破できます。サービス側に他に良い選択肢がない場合にのみ使いましょう。
認証アプリ(TOTP)
Google AuthenticatorやAuthy、あるいはProton Pass、Bitwarden、1Passwordに組み込まれたものなどは、共有シークレットから端末上でローカルに計算される、30秒ごとに変わる6桁のコードを生成します。受信のために何も送信されないため、SIMスワッピングはこの時点で既に防げます。弱点はフィッシングです。偽のログインページによって、そのコードを攻撃者のサイトにリアルタイムで入力させられてしまう可能性は残ります。
ハードウェアセキュリティキー(FIDO2 / WebAuthn)
ログインを確認するためにタップまたは挿入する物理キー(YubiKey、Google Titanなど)です。コードとは異なり、応答する前に暗号学的に本物のサイトにアクセスしていることを確認するため、偽サイトは単純に有効な応答を得られません。これにより、一般的な方式の中で唯一、本当の意味でフィッシング耐性を持つ方法となっています。コストはキーを購入し持ち歩く必要がある点です。
パスキー — より新しい選択肢
パスキーはハードウェアキーと同じFIDO2技術を使いますが、認証情報は別デバイスではなく、あなたのスマートフォンやパソコンに保存され、指紋や顔、PINで解除します。ハードウェアキーと同様にフィッシング耐性があり、何かを購入する必要もありませんが、対応状況はサイトごとに異なり、デバイス間でのバックアップ方法にも違いがあります——詳しくは用語集の項目をご覧ください。
実際にはどれを使うべきか?
優先順位はこの通りです:最も重要なアカウント(メインのメール、パスワードマネージャー、銀行、仕事)にはハードウェアキーかパスキーを、それ以外には認証アプリを、SMSはサービス側に本当に他の選択肢がない場合にのみ使いましょう。当サイトのパスワードマネージャー比較に載っているものを含め、多くのパスワードマネージャーは今や認証コード自体を保存・生成できるため、別のアプリは不要です。
関連用語: 二要素認証(2FA) · パスキー(FIDO2) · マスターパスワード