二段階認証 (2FA: Two-Factor Authentication) とは、パスワードに加えて第 2 の認証要素を要求することで、アカウントのセキュリティを強化する手法です。「知識」(パスワード)、「所持」(スマートフォン)、「生体」(指紋・顔) の 3 要素のうち 2 つ以上を組み合わせるのが基本原理で、電話番号宛ての SMS コードが「所持」要素として最も広く使われています。パスワードと秘密の質問のように同じ「知識」要素を 2 回重ねる方式は、手順が 2 段階でも要素が 1 種類のため、厳密には二要素認証とは呼びません。
SMS 認証の仕組みは単純です。ログイン時にパスワードを入力すると、登録済みの電話番号に 4〜6 桁の確認コードが SMS で送信されます。このコードを入力することで、「その電話番号を持つ端末を所持している」ことが証明されます。銀行、SNS、メールサービス、EC サイトなど幅広い分野のサービスが SMS 認証に対応しており、追加のアプリやハードウェアが不要な手軽さが普及の理由です。
しかし、SMS 認証には重大な脆弱性があります。SIM スワップ攻撃で電話番号を乗っ取られると、SMS コードが攻撃者に届きます。SS7 (電話網の信号制御プロトコル) の脆弱性を突いた SMS の傍受も技術的に可能です。さらに、スミッシングで偽のログインページに誘導し、リアルタイムで SMS コードを入力させる中間者攻撃も報告されています。米国の NIST (国立標準技術研究所) が公開する電子的認証ガイドライン SP 800-63B は、公衆電話網 (PSTN) 経由でワンタイムコードを送る方式を「制限付き (restricted)」の認証手段に分類しています。2025 年 8 月 1 日に現行版となった改訂第 4 版では、これが唯一の「制限付き」認証手段とされ、認証情報を発行する側には制限のない代替手段を少なくとも 1 つ用意することとリスクの周知が求められています。検証側にも、PSTN でコードを送る前に SIM の交換や番号ポータビリティといった兆候を確認するよう促しています。
より安全な認証方法として、認証アプリ (Google Authenticator、Authy、Microsoft Authenticator) は端末内で時刻ベースのワンタイムパスワード (TOTP) を生成するため、通信経路での傍受リスクがありません。ハードウェアキー (YubiKey、Titan Security Key) は物理的な USB/NFC デバイスで、フィッシング耐性が最も高い認証手段です。パスキー (FIDO2) は生体認証と暗号鍵を組み合わせた 2020 年代に普及が進んだ方式で、パスワード自体を不要にします。SMS 認証しか選べないサービスでも、二段階認証を無効にするよりは有効にしておく方が安全です。ただし、電話で確認コードを尋ねられたら、相手が銀行やサービスの窓口を名乗っていても答えない、という線引きは守ってください。コードは自分がログイン操作をしている画面にだけ入力します。電話番号を使った二段階認証のリスクと代替手段で各認証方式の比較を確認できます。