- IAM 入門
- MFA とは?
多要素認証:仕組みと重要性
多要素認証(MFA)は、要求されたリソースへのアクセスを許可する前に、ユーザーが2つ以上の異なる認証方法で本人確認するように求める仕組みです。この多層的なプロセスによって、窃取や推測、漏洩が簡単に行えるパスワードなどの単一の要素への依存を防ぎます。
認証情報の窃取脅威が継続していることで、MFAは不可欠な手段になっています。「Verizon 2025年度データ漏洩/侵害調査報告書(DBIR)」によると、認証情報の不正使用が依然として侵害における最初の侵入経路として最も多く、全体の22%を占めています。強力なMFAを実装することで、漏洩した認証情報に起因する不正アクセスのリスクを軽減できます。
認証要素の種類
MFAは3つのカテゴリーを通じてアイデンティティを検証し、それぞれが異なる仕組みでアイデンティティを確認します。
複数のカテゴリーから要素を組み合わせることで、保証レベルが高まります。
知っていること(知識)
- パスワード
- PIN
- 記憶されたパターン
持っているもの(所有)
- TOTP認証アプリ
- 通知をプッシュ
- FIDO2/WebAuthnキー
- スマートカード
自身であるもの(内在)
- 指紋認証
- Face ID
- 虹彩スキャン
MFAの強度は、異なるカテゴリーからの要素を組み合わせることで得られます(パスワードを2つ使っても、多要素認証にはなりません)。
認証要素の仕組み
要素の各種類は、異なる仕組みと保護機能によって、アイデンティティを安全に確認します。MFAを適切に実装するには、知識、所有、内在の要素に関して、技術的な特徴とセキュリティ上の考慮事項を理解する必要があります。
知識に関する要素
- パスワードとPINの検証は、ユーザーの入力をプレーンテキストではなく保存されたハッシュと照合して行われます。システムは、OWASPおよびNISTSP 800-63B §5.1.1.2ガイダンスに従って、独自のソルトと調整された作業領域を組み合わせて、メモリまたはCPUを大量に使用する適応的なアルゴリズム(
Argon2、bcrypt、PBKDF2)を使用してハッシュを生成します。 - セキュリティ質問は、ユーザーだけが知っている個人情報を利用します。攻撃者は、ソーシャルエンジニアリングやデータ漏洩を通じて、公開データソースから回答を入手できる場合が多く、この仕組みは本質的に脆弱です。
所有要素
- 時間ベースのワンタイムパスワード(TOTP)は、共有シークレットと現在時刻からコードを生成します。サーバーは、短い時間枠(通常30秒、許容誤差は$\pm 1$ステップ)内でコードを検証して、各コードがすぐに期限切れになり、一度しか使用できないようにします。
- プッシュ通知は、登録されたデバイスに認証リクエストを送信します。ユーザーが自分のデバイスで承認操作を行うと、暗号化された所有の証明として機能します。多くの場合、ユーザーが正当なリクエストと不正なリクエストを識別・区別できるように、場所、デバイスの種類、タイムスタンプなどのコンテキスト情報が追加されます。
- FIDO2/WebAuthnキーは、非対称暗号化技術を用いて、秘密鍵は物理的なデバイスに保存されます。認証時には、デバイスが秘密鍵でチャレンジに署名し、その署名は元のドメインに暗号的にバインドされるため、他のサイトでは認証情報が無効になります。
- スマートカードは、改ざん防止機能を備えたハードウェアに暗号化された認証情報を保存します。ユーザーがPINを入力すると、カード内部で暗号化処理が実行されるため、秘密鍵データがセキュリティチップから外部に出ることはありません。
- バックアップコードは、事前に生成され、MFA登録時に作成される1回限りのパスワードです。各コードは1回のみ検証できるため、主要な第二要素を必要とせずにアカウント回復が可能になります。
内在要素
- 生体認証は、ライブキャプチャと、元の生体情報から暗号的に変換された保存済みテンプレートを照合します。システムは生の画像やスキャンデータを保存することはなく、元の生体情報を再構築することなく一致を検証できる数学的表現のみを保存します。
- ライブネス検出は、深度測定、微動検出、チャレンジ応答(「2回まばたきをする」など)といった技術を用いて、本物の人間による生体認証となりすましの試み(写真、マスク、録画など)を区別します。これらの対策の有効性は、消費者デバイスと保証レベルが高いシステムとで異なります。
- テンプレートセキュリティは、デバイスが侵害された場合に生体認証の要素で安全性が維持されているかどうかを決定します。Secure Enclaveプロセッサとハードウェア格納型キーストアにより、生体認証の処理が中央オペレーティングシステムから分離され、デバイスレベルのアクセスであってもテンプレートの抽出を防止します。
MFAの主要なカテゴリーと仕組み
| 要素のカテゴリー | 証明の仕組み | 一般的な認証方式の種類 |
|---|---|---|
| 知識(知っていること) | ユーザーが記憶している秘密 | パスワード、PIN、パスフレーズ |
| 所有要素 (持っているもの) | 物理的なデバイス、ハードウェアトークン | TOTPアプリ、プッシュ通知、FIDO2/WebAuthnキー、スマートカード |
| 内在要素 (自身であるもの) | 検証可能な生体的特徴 | 指紋、顔認証、虹彩スキャン |
2FAとMFAの違い
二要素認証(2FA)は、文字通り2つの要素を必要とします。通常、パスワードに加えてもう1つの認証方法を組み合わせます。2FAは最も広く普及している実装パターンであり、ほとんどの人が「MFA」と言うときは2FAを指しています。
多要素認証(MFA)は、2つ以上の認証要素を必要とするあらゆる認証方法を含む、より広いカテゴリーです。この区別は言葉上のものに見えるかもしれませんが、セキュリティポリシーにとって重要です。たとえば、高リスクの操作に対して3つの要素(パスワード、TOTP、生体認証)を要求するシステムでは、標準的な2FAとは異なる脅威モデルを前提にしています。
実際には、2FAはMFAの特定の実装の1つです。
静的なMFAが問題になるとき:ステップアップ認証
ログインごとに同じ認証要素を要求すると、セキュリティ上の利点に見合わない摩擦が生じます。
ステップアップ認証は、ユーザーが認証済みであっても、機密性がより高いリソースにアクセスしようとした場合にのみ、追加の要素で認証を求めます。たとえば、ユーザーは通常通りにログインし、アプリケーションを操作します。その後、保護されたリソースにアクセスしたり、リスクの高い操作を実行したりするときに、MFAチャレンジが要求されます。
実際のアプリケーション:従業員向けポータルは、ドキュメントを閲覧するためにパスワードのみの認証を使用します。しかし、給与情報の変更、従業員PIIのダウンロード、システム設定の変更を行う際には、2つ目の要素の要件がトリガーされて、TOTPコードや生体認証などが使われます。
このフローは、必要に応じてセキュリティを強化しながら、日常的な業務に対してよりシームレスなユーザーエクスペリエンスを提供します。実装には、どのリソースと操作に追加の認証を行うかを見極めて、リスクとユーザー負担のバランスを取るセキュリティアーキテクチャ上の判断が必要です。
リスクベース認証:MFAをコンテキストに応じて認識させる
適応型多要素認証(リスクベース認証とも呼ばれる)は、コンテキスト信号に基づいて認証要件を動的に調整します。すべてのログイン試行に同じルールを適用するのではなく、システムは以下に基づいてリスクスコアを算出します。
- 位置情報シグナル:IPアドレスのレピュテーション、地理的位置、不可能な移動パターン
- デバイスのコンテキスト:デバイスが既知か未知か、デバイスフィンガープリント、セキュリティ態勢
- 行動パターン:時間帯、典型的なアクセスパターン、速度チェック
- 脅威インテリジェンス:既知の漏洩した認証情報、進行中の攻撃キャンペーン
低リスクの状況(既知のデバイス、いつもと同じ場所、通常の動作など)では、単一要素での認証が許可される場合があります。高リスクの状況(新しいデバイス、通常とは異なる場所、営業時間外のアクセスなど)では、自動的に追加の認証要素を要求するか、アクセスを完全にブロックします。
効果的な適応型多要素認証には、リアルタイムのセキュリティ信号と履歴データを処理するリスクエンジンが必要です。適応型多要素認証によってユーザーエクスペリエンスが向上するか低下するかは、誤検知率によって決まるため、通常はカスタム構築されたソリューションではなく、アイデンティティプラットフォームが提供するものです。
フィッシングの問題:従来型MFAではもはや十分でない理由
TOTPコードやSMS認証は、パスワードのみの認証よりもセキュリティが強化されますが、巧妙な攻撃者はこれらの方法にすでに適応しています。リアルタイムのフィッシングプロキシは、ユーザーが入力したパスワードとワンタイムコードの両方をキャプチャし、有効期限が切れる前にその認証情報を正規のサービスに即座に再送信できてしまいます。
この攻撃が成功するのは、TOTPとSMSがクライアントとサーバーの両方に存在する共有シークレットに依存しているためです。攻撃者が中間に入り込むと、これらのシークレットを傍受して再利用し、認証をバイパスすることができます。
MFA疲労攻撃では、攻撃者はプッシュ通知リクエストを大量に送りつけ、ユーザーがアラートを止めたい一心でリクエストの1つを承認することを狙っています。
FIDO2は、公開鍵暗号方式を用いて、共有シークレットの脆弱性を排除します。
FIDO2の構成要素は次のとおりです。
- WebAuthn:ブラウザやオペレーティングシステムが認証器とやり取りするために使用するW3Cの標準API
- CTAP(Client-to-Authenticator Protocol):外部デバイス(セキュリティキー、NFC/Bluetooth/USB認証器)がクライアントと通信するために使用するプロトコル
FIDO2認証の仕組み
登録
- 認証器が公開鍵と秘密鍵のペアを生成する
- 秘密鍵はデバイスから出ることはなく、公開鍵はサービス側に登録される
認証(ログイン)
- サービスが暗号化されたチャレンジを送信する
- 認証器は秘密鍵を用いてチャレンジに署名する
- 署名はサイトのオリジン(ドメイン)に紐づいており、フィッシングサイトでの再利用を防止する
ユーザーが悪意のあるサイトで認証を試みても、署名された応答は正当なドメインに対してのみ有効です。攻撃者が盗める秘密情報がないため、FIDO2キーはフィッシング耐性があります。
パスキー:パスワードレスとフィッシング耐性のあるMFAの融合
パスキーは、デバイスの安全な環境(OSのキーチェーンなど)に保存されているFIDO2認証情報で、信頼済みデバイス間で同期できます。ユーザーは、生体認証やPINを用いてデバイスのロックを解除するなど、1回の操作で認証を開始できます。
パスキーを使用した場合
- パスワードがないから盗まれない
- ワンタイムコードがないからフィッシングされない
- 共有シークレットがないから侵害時に漏洩しない
パスキーは、ユーザーにとって簡単な1回だけの操作でMFAレベルのセキュリティを実現します。
APIやサービスなどの非人間アイデンティティ向けのMFA
APIやサービスアカウント、マシン間通信では、TOTPコードやプッシュ通知のような対話型MFAチャレンジを完了できません。代わりに、MFAの原則が暗号化証明を通じて適用され、アイデンティティと所有の証拠が提供されます。
- 非対称鍵ペア:サービスは秘密鍵を用いて、リクエストまたはOAuth 2.0 JWTベアラークライアントアサーション(RFC 7523で規定)に署名します。認可サーバーは公開鍵を登録します。秘密鍵はサービスやHSMから離れることはなく、所有要素と同等の役割を果たします。
- 相互TLS(
mTLS):クライアントとサーバーの両方が証明書を提示して、双方向の信頼を確立します。クライアント証明書はサービスのアイデンティティと所有を証明し、サーバー証明書は正当性を検証します。 - ワークロードアイデンティティ/プラットフォームの証明:クラウドプラットフォームが、実行中のワークロードのアイデンティティと完全性を暗号的に証明します。このプラットフォームは、有効期間の短い認証情報を動的に発行するため、有効期間の長いシークレットが不要になります。このアプローチにより、手動でのキー管理を行わずにゼロトラストのサービス認証が可能になります。
これらのパターンは、対話型のユーザー入力の代わりに暗号化技術を用いて、MFAの多層検証モデルを自動システムへ拡張します。非人間アイデンティティの所有要素には、非対称鍵ペア、署名付きJWTアサーション、HSMで保護された署名鍵が含まれ、マシンやサービスに対して強力でフィッシング耐性のある認証を提供します。
コンプライアンスおよび規制に関する状況
規制フレームワークでは一層、機密データへのアクセスに多要素認証が義務付けられているため、MFAは多くの組織にとって任意ではありません。
- PCI DSS v4.xでは、特定の条項や例外を適用しながらも、リモートアクセスや特権ユーザーを含むカード会員データ環境(CDE)へのほとんどのアクセスにMFAを要求しています。IT・セキュリティチームは、要件の正確な適用範囲について、PCI SSCのガイダンスを確認する必要があります。
- GDPRでは、「適切な技術的および組織的措置」を要求しており、規制当局はこれを個人データへのアクセスにMFAを含めるものと解釈する傾向が強まっています。
- SOC 2監査では、認証制御が評価対象となり、認定を取得するには通常、管理アクセスと特権操作に対してMFAが求められます。
- NIST SP 800-63Bでは、連邦政府機関が遵守すべきデジタルアイデンティティ認証に関する技術ガイダンスを提供しており、民間組織でベストプラクティスとして採用が進んでいます。
MFAの安全性を損ねる一般的な実装ミス
- 回復フローが安全でない:単一要素のEメールリセットリンクなど、MFAをバイパスするアカウント回復方法では、抜け道が生じてしまいます。チームは、初回ログインと同等かそれ以上のセキュリティ基準で回復フローを設計する必要があります。
- SMSが唯一の追加要素である:SMSのみに依存すると、組織はSIMスワッピング攻撃に対して脆弱になります。TOTP認証アプリやハードウェアキーを使用することで、より強力な保護を確保できます。
- セッショントークンが保護されていない:攻撃者がセッショントークンを盗み、再利用してしまうと、ログイン時のMFAは効果を発揮しません。トークンには、適切な有効期限、安全な保管方法、そして監視が必要です。
- リスクのコンテキストを無視してMFAを一律に強制する:あらゆる操作に同一の認証要素を求めると、負担が生じてユーザーは回避策を見つけようとします。ステップアップ認証を用いて、使いやすさを維持しながら、必要な箇所に保護を集中させます。
- フィッシング耐性のある方法を無視する:TOTPコードとSMSはパスワード単体よりは改善されていますが、リアルタイムのフィッシングに対して依然として脆弱です。機密データを扱う組織は、WebAuthn/FIDO2セキュリティキーやパスキーを優先する必要があります。
MFAに関するよくある質問
MFAは、パスワードのみの認証と比べて、どのようなセキュリティ上の利点がありますか?
MFAは、認証情報の窃取を防ぎます。攻撃者がパスワードを盗んだとしても、デバイスで生成されたコード、生体認証、または物理的なセキュリティキーなどの2つ目の要素がなければ、アカウントにアクセスすることはできません。
セキュリティ専門家がSMSベースのMFAを推奨しないのはなぜですか?
攻撃者は、SIMスワッピング攻撃を通じてSMSコードを悪用し、携帯通信会社を騙して、その管理下にあるデバイスに電話番号を移行させます。SMSベースのMFAは、パスワードのみの認証よりは効果的ですが、TOTP認証アプリやハードウェアセキュリティキーは、携帯通信会社のセキュリティ慣行に依存しない強力な保護を提供します。
攻撃者は、MFAをバイパスまたは突破することができますか?
高度なフィッシング攻撃ではリアルタイムプロキシを使用して、TOTPやSMSコードを用いた従来型のMFAを突破できてしまいます。FIDO2/WebAuthnセキュリティキーやパスキーを用いたMFAは、特定のドメインに紐づいた暗号化された所有証明に基づいています。
ユーザーが2つ目の認証要素にアクセスできなくなった場合はどうなりますか?
ITチームは、登録時または再登録時に生成されたバックアップコードなどの安全な回復方法を提供し、本人確認を行って、アクセスを回復することができます。セキュリティチームは、元のMFA手順と同等または高い保証レベルで回復フローを保護し、MFAをバイパスする可能性のある、Eメールのみのリセットといった単一要素でのフローを避ける必要があります。
MFAは法律や規制で義務付けられていますか?
多くの規制フレームワークでは、MFAが必須または強く推奨されています。PCI DSS v4.xでは、特定の条項や例外が適用されますが、リモートユーザーや特権ユーザーを含むカード会員データ環境(CDE)へのほとんどのアクセスにMFAを要求しています。HIPAAでは、MFAは対処可能な安全策とされています。MFAを実装しない選択をした組織は、その理由を記録し、ePHIに対して同等の保護を提供する代替の制御を適用する必要があります。
アプリケーションにMFAを実装する
MFA機能を自社で構築することもできますが、最新のアイデンティティプラットフォームは、適応型リスクエンジン、フィッシング耐性のある認証器、組み込みのコンプライアンス制御を備えた実稼働対応の実装を実現します。アイデンティティとアクセス管理に関連するその他のトピックについては、「IAM入門」シリーズをご覧ください。
本資料は一般的な情報提供のみを目的としています。本資料の利用者は、自身の責任において、自身の専門アドバイザーからセキュリティ、プライバシー、コンプライアンス、またはビジネスに関する助言を得るものとし、本資料に記載された情報のみに依存すべきではありません。