パスワード生成ツール無料で使えるパスワードジェネレーター
ホーム>解説記事>二要素認証(2FA)完全ガイド:仕組み・種類・設定方法を徹底解説

二要素認証(2FA)完全ガイド:仕組み・種類・設定方法を徹底解説

二要素認証(2FA)は、パスワードに加えて別の認証要素を要求することでアカウントのセキュリティを大幅に強化します。本記事では、NIST SP 800-63B基準とFIDO2標準に基づき、SMS・認証アプリ・ハードウェアキーの安全性を比較し、Google・Microsoft・GitHubでの具体的な設定方法を解説します。

公開日:
更新日:

二要素認証(2FA)とは?

二要素認証(Two-Factor Authentication、2FA)は、アカウントへのログイン時に2種類の異なる認証要素を要求することで、セキュリティを大幅に強化する仕組みです。

認証要素の3つの種類

米国国立標準技術研究所(NIST)の基準によれば、認証要素は以下の3つのカテゴリーに分類されます:

  • 知識要素(Knowledge) - 知っているもの:パスワード、PIN、秘密の質問の答え
  • 所持要素(Possession) - 持っているもの:スマートフォン、ハードウェアトークン、ICカード
  • 生体要素(Inherence) - 自分自身:指紋、顔、虹彩、声紋

重要: 2FAとは、異なる種類の要素を2つ組み合わせることです。「パスワード + 秘密の質問」は両方とも知識要素なので、2FAとは言えません。

なぜパスワードだけでは不十分なのか?

データ侵害の現状

漏洩したパスワードを使った不正ログインに備えるには、パスワードとは別の認証要素を設定することが重要です。

パスワードのみの脆弱性

  • 大規模データ漏洩: 企業のデータベースが侵害されると、数百万のパスワードが一度に流出
  • フィッシング攻撃: 偽サイトで入力させたパスワードを盗む
  • 総当たり攻撃: プログラムで自動的にパスワードを試行
  • パスワードの使い回し: 他のサービスで漏洩したパスワードを試す

2FAの効果

Googleと大学研究者の2019年の調査では、Googleアカウントの不審なログイン時に課す追加の確認について、次の結果が報告されています(すべてのサービスや2FA方式に共通する防御率ではありません):

  • 調査期間中、セキュリティキーを専用の認証手段として使う利用者には、標的型フィッシングの被害が観測されなかった
  • 復旧用電話番号に送るSMSコードによる追加確認は、一括フィッシング攻撃の96%を阻止
  • 同じSMSコードによる追加確認は、標的型攻撃の76%を阻止

調査対象はGoogleの追加確認であり、これらの割合を認証アプリの効果や一般的な2FA全体の成功率として扱うことはできません。

2FAの種類と安全性比較

以下は方式を選ぶための実用的な比較です。Tierは本記事の便宜的な区分であり、NISTのAALと一対一には対応しません。NIST SP 800-63BのAAL要件は認証器だけでなく認証手順全体で判定します。

Tier 1:フィッシング耐性が高い - ハードウェアセキュリティキー

  • 代表例: YubiKey、Titan Security Key
  • 安全性: 非常に高い
  • 使いやすさ: 普通
  • コスト: ¥3,000〜6,000
  • メリット: 正規サイトのドメインに紐づくFIDO2認証はフィッシングに強い。対応する実装では秘密鍵をデバイス内で保護できる
  • デメリット: 物理的な持ち運びが必要、紛失リスク、利用先の対応状況を確認する必要がある
  • AALに関する注意: キーを使うだけでAAL3になるわけではありません。NISTはフィッシング耐性と秘密鍵の非エクスポート性に加え、認証要素の組み合わせなども要求します

Tier 2:高レベル - 認証アプリ(TOTP)

  • 代表例: Google Authenticator、Microsoft Authenticator、Authy
  • 安全性: 高い
  • 使いやすさ: 高い
  • コスト: 無料
  • メリット: オフラインで動作(ネットワーク不要)、SMS攻撃の影響を受けない、複数アカウントを一元管理
  • デメリット: 初期設定がやや複雑(QRコードスキャン)、時刻同期ずれによるログイン失敗、スマホ機種変更時の移行が必要

Tier 3:中レベル - プッシュ通知認証

  • 代表例: Microsoft Authenticator、Duo Mobile
  • 安全性: 普通
  • 使いやすさ: 非常に高い
  • コスト: 無料
  • メリット: 非常に使いやすい(タップだけ)、コード入力不要
  • デメリット: ネットワーク接続が必須、「疲労攻撃」に脆弱(何度も通知が来て間違えて承認してしまう)

Tier 4:制約のある方式 - SMS認証コード

  • 安全性: 低い
  • 使いやすさ: 非常に高い
  • コスト: 無料
  • メリット: 追加アプリ不要、設定が簡単、ほぼすべてのサービスで対応
  • デメリット: SIMスワッピング攻撃のリスク、通信網への攻撃リスク、リアルタイムフィッシング攻撃に弱い
方式安全性使いやすさコストオフライン動作フィッシング耐性
ハードウェアキー非常に高い普通¥3,000〜○○(FIDO2認証時)
認証アプリ(TOTP)高い高い無料○部分的
プッシュ通知普通非常に高い無料×部分的
SMS認証低い非常に高い無料×× なし

SMS認証の安全性の真実

SMSには電話番号の乗っ取りや通信経路への攻撃、コードの詐取といったリスクがあります。NISTは公衆交換電話網(PSTN)を使う帯域外認証を制限付きとして扱っています:

既知の脆弱性

  • SIMスワッピング攻撃: 攻撃者が電話会社を騙して被害者の電話番号を自分のSIMカードに移す(2019年にTwitter CEOのアカウントがこの手法で侵害された)
  • 通信経路への攻撃: SMSの配送経路が攻撃を受けた場合、コードが第三者に渡るおそれがある
  • リアルタイムフィッシング: 偽サイトで入力されたコードを即座に本物のサイトで使用

それでもSMSが広く使われる理由

NISTはSMSによる帯域外認証を一律に禁止しているわけではなく、制限付きの方式として扱っています。利用先でより強い方式を選べる場合は、そちらを検討してください。

理由:

  • 追加コストゼロ(全員がスマホを持っている)
  • アプリインストール不要
  • 使い方が簡単
  • Googleの上記調査では、復旧用SMSによる追加確認が調査対象の標的型攻撃の76%を阻止した

結論: 高リスク取引(銀行振込、重要データアクセス)には不適切ですが、一般的なSNSログインなどには「無いよりはるかにマシ」です。

主要サービスでの設定方法

Googleアカウント

  • Googleアカウントにログイン
  • 左メニュー「セキュリティ」をクリック
  • 「2段階認証プロセス」をクリック
  • 「使ってみる」をクリック
  • 電話番号を入力(SMS受信用)
  • 受信したコードを入力
  • 「有効にする」をクリック

追加の認証方法を設定(推奨):

  • 認証アプリ:「認証システムアプリ」から設定
  • ハードウェアキー:「セキュリティキー」から設定
  • バックアップコード:「バックアップコード」から生成・保存

Microsoft アカウント

  • Microsoftアカウントセキュリティにアクセス
  • 「高度なセキュリティオプション」をクリック
  • 「2段階認証」の「有効にする」をクリック
  • Microsoft Authenticatorアプリをダウンロード
  • アプリで通知を承認
  • 完了

GitHub

  • GitHub右上のプロフィール→「Settings」
  • 左メニュー「Password and authentication」
  • 「Two-factor authentication」の「Enable」
  • 認証アプリまたはSMSを選択
  • QRコードをスキャン(認証アプリの場合)
  • 生成されたコードを入力
  • リカバリーコードを必ず保存

よくある質問

Q1: スマホを紛失したらどうなりますか?

A: 事前対策が重要です:

  • バックアップコードを保存:各サービスの2FA設定時に生成される緊急コードを紙に印刷して安全な場所に保管
  • 複数の認証方法を設定:認証アプリ + SMS、認証アプリ + ハードウェアキー
  • アカウント復旧方法を確認:Googleは電話番号や復旧用メールアドレスで復旧可能

Q2: 機種変更時の移行方法は?

Google Authenticator(2023年以降):

  • 旧端末でGoogleアカウントにログイン
  • Authenticatorアプリが自動的にクラウド同期
  • 新端末でアプリをインストール
  • 同じGoogleアカウントでログインすると自動復元

Q3: どの2FA方式を選ぶべきですか?

シーン推奨方式理由
銀行・証券口座ハードウェアキー または TOTP最高レベルのセキュリティが必要
仕事用メール・クラウドTOTP または ハードウェアキー機密情報保護のため
SNS(Twitter, Instagram)TOTP または SMSバランス重視
技術的に不慣れな家族用SMS または プッシュ通知使いやすさ優先

おすすめの2FA方式

初心者向け:まずはここから

ステップ1: Google Authenticator または Microsoft Authenticator をインストール(コスト:無料、時間:5分、安全性:高い)

ステップ2: 重要なアカウントから順に設定

  • メールアカウント(Gmail/Outlook)
  • 銀行・証券口座
  • クラウドストレージ(Google Drive/OneDrive)
  • SNSアカウント

ステップ3: バックアップコードを必ず保存(紙に印刷して自宅の安全な場所に保管)

中級者向け:セキュリティ強化

  • ハードウェアキーを1〜2個購入:推奨 YubiKey 5 NFC(¥5,500前後)、最重要アカウント(銀行、仕事用メール)に設定
  • SMSを段階的に廃止:SMSからTOTPまたはハードウェアキーに移行、SMSは最後の緊急手段として残す
  • 定期的なセキュリティ監査:どのアカウントに2FAが設定されているか確認

まとめ

重要なポイント:

  • 2FAは必須のセキュリティ対策:パスワード漏洩後の不正ログインにも備えられる。防御効果は方式と攻撃手法によって異なる
  • 安全性の順序:ハードウェアキー(最も安全) > 認証アプリ(バランス良好) > プッシュ通知 > SMS(基本的だが無いより良い)
  • 実用的な推奨:すべての人はまず認証アプリを設定、高セキュリティ必要な場合はハードウェアキーを追加、技術的に不慣れな場合はSMSまたはプッシュ通知から開始
  • バックアップは必須:バックアップコードを保存、複数の認証方法を設定、定期的に復旧方法を確認

次のステップ

参考文献・情報源

上記の基準や調査結果は、以下の一次資料で確認できます:

関連ツール