2FAとは?
簡単に言うと: ログイン時にパスワードに加えてもう一つ (通常はスマートフォンの6桁コード) を入力しないと入れない仕組みです。パスワードが漏れても攻撃者はログインできません。 この記事では原理、方式、安全性を解説します。
「二要素」とは具体的に?
認証の「要素」には3種類あります (3つのうち2つを組み合わせれば2FA):
- 知っていること — パスワード、PIN。
- 持っているもの — スマートフォン、ハードウェアキー、リカバリーコード。
- あなた自身 — 指紋、Face ID (通常はデバイスのロック解除のみ)。
パスワードのみ = 1要素。パスワード + 6桁コード = 2要素 — これが2FAです。
主な2FA方式の比較
| 方式 | 安全性 | 推奨される利用 |
|---|---|---|
| ハードウェアキー (YubiKey) | 最高 | メール、パスワード管理、GitHub管理者 |
| Passkey | 非常に高い | Apple、Google、GitHubなど対応サービス |
| 認証アプリ (TOTP) | 高い | 最も一般的 — デフォルトの選択肢 |
| プッシュ通知 | 中 | サービスがネイティブ対応している場合 |
| SMS | 低 | 他の選択肢がない場合のみ |
TOTPコードはどうやって生成される?
TOTP (Time-based One-Time Password, RFC 6238) はGoogle Authenticator、 Authy、2FAAの基盤となるアルゴリズムです。原理はシンプル:
- 2FA有効化時にサービスから秘密鍵 (Base32文字列) が提供されます。 通常はQRコードで表示されます。
- 認証アプリは秘密鍵と現在時刻を組み合わせて6桁のコードを計算します。
- コードは30秒ごとに変わります。サービス側は同じアルゴリズムでコードが 正しいか検証します。
- 秘密鍵はネットワークを通らないため、中間者攻撃で傍受される心配はありません。
60秒で2FAを試す
2FAAはブラウザで動く無料のTOTP認証ツール。インストールも登録も不要です。
よくある質問
2FAとは正確には何ですか?
2FAはTwo-Factor Authentication (二要素認証) の略です。ログイン時にパスワードに加えてもう一つの要素 — 通常はスマートフォンに表示される6桁のコード — を要求する仕組み。パスワードが漏洩しても第二の要素がなければ攻撃者はログインできません。
2FAと二段階認証は違いますか?
実用上は同じ概念です。Googleは「二段階認証プロセス」、DiscordやGitHubは「2FA」、PayPalは「2段階認証」と呼びます。本質的にはパスワードに加えてもう一層の保護を追加するという点で同じです。
最も安全な2FAの方式は?
安全な順に: ハードウェアキー (YubiKeyなど) > Passkey > 認証アプリ (TOTP) > プッシュ通知 > SMS。SMSはSIMスワップ攻撃に弱く最も脆弱ですが、ないよりはマシです。
すべてのアカウントで2FAを有効にすべき?
重要なアカウントには強く推奨します: メール、銀行、パスワード管理、SNS、GitHub、Discord、支払いがあるゲームアカウントなど。価値の低いアカウントは任意です。
2FAは突破されることがありますか?
SMS 2FAはSIMスワップで奪われる可能性があります。アプリ2FAも偽サイトのフィッシングプロキシで誘導されると突破されることがあります。ハードウェアキーとPasskeyは実際のドメインを検証するためフィッシングに耐性があります。2FAは完璧ではありませんが、一般的な攻撃の大半を防ぎます。