二段階認証(2FA: Two-Factor Authentication) は、パスワード(知識要素)に加えて、もう一つの認証要素を組み合わせてログインを保護する仕組みです。パスワードが漏洩しても、第二要素がなければアクセスできません。
認証の3要素
| 要素の種類 | 例 |
|---|---|
| 知識(知っていること) | パスワード・PIN・秘密の質問 |
| 所持(持っているもの) | スマートフォン・ハードウェアキー |
| 生体(本人であること) | 指紋・顔認証 |
2段階認証は「知識+所持」の組み合わせが一般的です。
主な2FA方式の比較
| 方式 | 仕組み | セキュリティ | 利便性 |
|---|---|---|---|
| SMS認証 | 6桁の番号をSMSで受信 | 普通(SIMスワップ攻撃に弱い) | 高い |
| 認証アプリ(TOTP) | アプリが30秒ごとにコードを生成 | 高い | やや高い |
| メール認証 | コードをメールで受信 | 低め(メールも保護が必要) | 高い |
| ハードウェアキー(FIDO2/Passkey) | USBキーや指紋でログイン | 最高(フィッシング耐性あり) | 中程度 |
| パスキー(Passkey) | デバイスの生体認証で直接認証 | 最高 | 高い |
認証アプリ(TOTP)の仕組み
TOTP(Time-based One-Time Password)は、サービスと認証アプリが共有する秘密鍵と現在時刻を組み合わせて、30秒ごとに変わる6桁コードを生成します。
初回登録時:
サービス → QRコード(秘密鍵が含まれる)
↓ アプリでスキャン
認証アプリ(秘密鍵を保存)
ログイン時:
認証アプリ → 秘密鍵 × 現在時刻 → 6桁コード
サービス → 同じ計算 → コードが一致 → ログイン成功
## 主な認証アプリ
| アプリ | 対応OS | 特徴 |
|---|---|---|
| Google Authenticator | iOS・Android | シンプルで使いやすい。無料 |
| Microsoft Authenticator | iOS・Android | Microsoftアカウントとの親和性が高い |
| Authy | iOS・Android・PC | クラウドバックアップ・複数デバイス対応 |
| 1Password | iOS・Android | パスワードマネージャーと一体化 |
Googleアカウントへの2段階認証設定
1. myaccount.google.com にログイン
2. 「セキュリティ」→「Googleへのログイン方法」
3. 「2段階認証プロセス」→「使ってみる」
4. 推奨: 認証アプリを追加する
→ 「その他の確認方法」→「認証アプリ」
→ QRコードを認証アプリでスキャン
→ テストコードを入力して完了
## WordPressへの2FA設定
WordPressはデフォルトで2FAをサポートしていないため、プラグインが必要です。
主なプラグイン: - Two Factor — WordPress公式ディレクトリにある無料プラグイン - WP 2FA — セットアップウィザードで簡単設定
設定手順(WP 2FAの場合):
1. プラグインをインストール・有効化
2. セットアップウィザードに従い認証方式を選択(認証アプリ推奨)
3. QRコードを認証アプリでスキャン
4. バックアップコードをダウンロードして安全な場所に保管
## 機種変更時の引き継ぎ方法
認証アプリの設定は機種変更時に適切に移行する必要があります。
Google Authenticatorの場合
- 旧端末でGoogle Authenticatorを開く
- 「アカウントのエクスポート」から引き継ぎコードを生成
- 新端末でスキャン
Authyの場合
クラウドバックアップが有効な場合、新端末にアプリをインストールしてアカウントにログインすれば自動的に復元されます。
重要: バックアップコード・リカバリーコードを設定時にダウンロードして安全な場所に保管しておくことが重要です。端末を紛失した場合のアカウント復旧に必要です。
組織での2FA義務化
Google Workspaceや各種サービスでは、組織全体に2FAを強制する設定があります。
Google Workspaceの場合:
管理コンソール → セキュリティ → 認証
→「2段階認証プロセスを許可する」→「強制」
→ 強制適用の猶予期間を設定
2FAが義務化されていないアカウントは、フィッシングメール1通でアカウントが乗っ取られるリスクがあります。特に管理者アカウントは最優先で設定します。
パスキー(Passkey)について
パスキーは2FA・パスワードを置き換える次世代の認証方式です。デバイスの生体認証(顔認証・指紋認証)やPINでログインでき、フィッシング攻撃に対して本質的に強い設計になっています。
主要サービス(Google・Apple・Microsoft・GitHub)はすでにパスキーに対応しています。パスワードと2FAを別々に管理する必要がなくなるため、セキュリティと利便性を両立できます。