FIDO2/WebAuthn アテステーション検証
このドキュメントの目的
FIDO2登録時のアテステーション検証を設定することが目標です。
学べること
- アテステーション検証とは何か
- 3つの検証モード(なし、TrustStore、FIDO MDS)
- プラットフォーム認証器の制限事項
所要時間
⏱️ 約15分
前提条件
- パスキー登録が完了していること
- アテステーションの概念を理解していること
アテステーション検証とは
アテステーション(Attestation)は、FIDO2登録時に認証器が「自分が本物である」ことを証明する仕組みです。
認証器 idp-server
│ │
│──[公開鍵 + アテステーション署名]──>│
│ │
│ 検証: この署名は信頼できる │
│ 認証器から来たものか? │
│ │
なぜアテステーション検証が必要か
| ユースケース | 理由 |
|---|---|
| 企業セキュリティ | 承認されたセキュリティキーのみ許可 |
| 規制要件 | 特定の認証レベル(FIDO認定)が必要 |
| リスク管理 | 脆弱性が報告された認証器をブロック |
3つの検証モード
idp-serverは3つのアテステーション検証モードをサポートします。
┌─────────────────────────────────────────────────────────────┐
│ 検証モードの優先順位 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. FIDO MDS(mds.enabled=true) │
│ ├── FIDOアライアンスのメタデータサービスを使用 │
│ └── 認証器の信頼性を自動で検証 │
│ │
│ 2. TrustStore(trustStorePath設定) │
│ ├── 静的な信頼アンカーで検証 │
│ └── 特定のベンダー証明書のみ信頼 │
│ │
│ 3. なし(デフォルト) │
│ └── 証明書チェーン検証をスキップ │
│ │
└─────────────────────────────────────────────────────────────┘
モード1: 検証なし(デフォルト)
アテステーション検証を行いません。開発環境や、あらゆる認証器を許可する場合に使用します。
設定
{
"fido2-registration": {
"execution": {
"function": "webauthn4j_registration",
"details": {
"rp_id": "example.com",
"origin": "https://example.com",
"attestation_preference": "none"
}
}
}
}
特徴
| 項目 | 内容 |
|---|---|
| メリット | 設定が簡単、すべての認証器を許可 |
| デメリット | 認証器の信頼性を検証できない |
| 推奨環境 | 開発、テスト、一般向けサービス |
モード2: TrustStore検証
特定のベンダーの認証器のみを許可する場合に使用します。