メインコンテンツまでスキップ

パスキーの鍵管理と安全性


概要

パスキー(Passkey)の最大の強みは、秘密鍵がユーザーのデバイスから外部に出ないことです。このドキュメントでは、パスキーの鍵がどのように保護されているかを解説します。

このドキュメントで学べること:

  • 秘密鍵の保護メカニズム(TEE、Secure Enclave、TPM)
  • プラットフォーム認証器での鍵保管方法
  • 同期パスキーの暗号化と安全性
  • ハードウェアキーでの鍵保護
  • 鍵のバックアップとリカバリの考慮事項

2種類のパスキー

シングルデバイスクレデンシャル vs マルチデバイスクレデンシャル

FIDO Allianceの用語では、パスキーは以下の2種類に分類されます。

┌─────────────────────────────────────────────────────────────────────────────┐
│ パスキーの2つのタイプ │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【シングルデバイス / デバイスバウンドパスキー (Single-device Credential)】 │
│ ────────────────────────────────────────────────────────────────────────── │
│ - 秘密鍵は生成されたデバイスから一切外に出ない │
│ - 以下のいずれかに束縛される: │
│ ・セキュリティキー(YubiKey, Titan等) │
│ ・TPM(Windows Hello for Business) │
│ ・Secure Enclave等のハードウェア(鍵が外部に出ない点は共通、同期可否は設計次第)│
│ - 最高レベルのセキュリティ │
│ - デバイス紛失 = 鍵の喪失(バックアップキーが必要) │
│ │
│ 【マルチデバイス / 同期パスキー (Multi-device Credential)】 │
│ ────────────────────────────────────────────────────────────────────────── │
│ - 秘密鍵は暗号化されてクラウド経由で同期される │
│ - iCloud Keychain、Google Password Manager が代表例 │
│ - 利便性とセキュリティのバランス │
│ - デバイス紛失しても他のデバイスから利用可能 │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ シングルデバイス マルチデバイス(同期) │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ YubiKey │ │ Win PC │ │ iPhone │ │ MacBook │ │ │
│ │ │ ┌─────┐ │ │(TPM固定)│ │ ┌─────┐ │ │ ┌─────┐ │ │ │
│ │ │ │秘密鍵│ │ │ ┌─────┐│ │ │秘密鍵│ │ │ │秘密鍵│ │ │ │
│ │ │ └─────┘ │ │ │秘密鍵││ │ └─────┘ │ │ └─────┘ │ │ │
│ │ └─────────┘ │ └─────┘│ └────┬────┘ └────┬────┘ │ │
│ │ │ └────────┘ │ │ │ │
│ │ │ │ └──────┬───────┘ │ │
│ │ ↓ ↓ ↓ │ │
│ │ 外部に出ない 外部に出ない 暗号化して同期 │ │
│ │ (iCloud等) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

同期パスキー ≠ クロスデバイス認証

注意: 「同期パスキー」と「クロスデバイス認証(Hybrid Transport)」は別物です。

方式説明
同期パスキー暗号化された状態で同期され、信頼デバイスで復号・利用可能になる
クロスデバイス認証QRコードでスマホを使ってPCにログイン(秘密鍵はスマホにのみ存在)

クロスデバイス認証は「その場で手元の別デバイスの認証器を使う」方式であり、秘密鍵の同期は発生しません。

共通の原則と違い

観点デバイスバウンド同期パスキー
秘密鍵の保管場所デバイス内のみデバイス + 暗号化クラウド
サーバーへの送信公開鍵のみ(共通)公開鍵のみ(共通)
認証時の送信内容署名のみ(共通)署名のみ(共通)
複数デバイスでの利用不可(各デバイスで登録)可能(同期される)
鍵の抽出可能性不可能暗号化状態でのみ移動

重要: どちらのタイプでも、秘密鍵が平文でネットワークを流れることはない。同期パスキーの場合も、エンドツーエンド暗号化により、同期プロバイダー(Apple/Google)でさえ秘密鍵を復号できない。


秘密鍵の保護原則

基本原則

┌─────────────────────────────────────────────────────────────────────────────┐
│ パスキーの鍵管理の基本原則 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【原則1】秘密鍵は平文でサーバーに送信されない │
│ ────────────────────────────────────────────────────────────────────────── │
│ - サーバーに送信されるのは公開鍵のみ │
│ - 認証時も秘密鍵自体は送信されず、署名のみが送信される │
│ - RPサーバーは秘密鍵を知ることができない │
│ │
│ 【原則2】ハードウェアによる保護 │
│ ────────────────────────────────────────────────────────────────────────── │
│ - 専用のセキュリティチップ(TEE, Secure Enclave, TPM)で保護 │
│ - ソフトウェアからの直接アクセスは不可 │
│ - 物理的な耐タンパー性を持つ │
│ │
│ 【原則3】ユーザー検証との結合 │
│ ────────────────────────────────────────────────────────────────────────── │
│ - 秘密鍵の使用には生体認証またはPINが必要 │
│ - 認証なしでは署名操作が実行できない │
│ │
│ 【原則4】同期時もエンドツーエンド暗号化(同期パスキーの場合) │
│ ────────────────────────────────────────────────────────────────────────── │
│ - 秘密鍵はデバイス上で暗号化されてから同期 │
│ - 同期プロバイダー(Apple/Google)でさえ復号不可 │
│ - 復号はユーザーのデバイス上でのみ行われる │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

パスワードとの比較

観点パスワードパスキー
秘密情報の保管場所サーバー(ハッシュ)ユーザーのデバイスのみ
ネットワーク上の送信認証時に送信秘密鍵は送信されない
サーバー侵害時のリスク全ユーザーに影響影響なし(公開鍵のみ)
フィッシング耐性なしあり(origin検証)
推測・総当たり可能事実上不可能

ハードウェアセキュリティ機構

セキュリティチップの種類

┌─────────────────────────────────────────────────────────────────────────────┐
│ セキュリティチップの階層 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ アプリケーション層 │ │
│ │ (ブラウザ, アプリ) │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ OS 層 │ │
│ │ (WebAuthn API, プラットフォーム認証器) │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ ハードウェアセキュリティ層 │ │
│ │ │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ Apple │ │ Google │ │ Microsoft │ │ │
│ │ │ Secure │ │ Titan │ │ TPM │ │ │
│ │ │ Enclave │ │ M2 │ │ 2.0 │ │ │
│ │ │ │ │ (Android) │ │ (Windows) │ │ │
│ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Apple Secure Enclave

┌─────────────────────────────────────────────────────────────────────────────┐
│ Apple Secure Enclave の特徴 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【概要】 │
│ - iPhone, iPad, Mac に搭載された専用セキュリティプロセッサ │
│ - メインプロセッサとは独立して動作 │
│ - 独自のセキュアブートと暗号化メモリ │
│ │
│ 【鍵の保護】 │
│ │
│ ┌──────────────────────┐ │
│ │ Secure Enclave │ │
│ │ ┌────────────────┐ │ │
│ │ │ 秘密鍵ストレージ │ │ ← 秘密鍵はここから出ない │
│ │ │ (暗号化済み) │ │ │
│ │ └────────────────┘ │ │
│ │ ┌────────────────┐ │ │
│ │ │ 署名エンジン │ │ ← 署名処理はEnclave内で実行 │
│ │ └────────────────┘ │ │
│ │ ┌────────────────┐ │ │
│ │ │ 生体認証検証 │ │ ← Touch ID / Face ID の検証 │
│ │ └────────────────┘ │ │
│ └──────────────────────┘ │
│ │
│ 【セキュリティ特性】 │
│ - UID(Unique ID): デバイス固有の256ビット鍵、読み出し不可 │
│ - 耐タンパー性: 物理的な攻撃に対する保護 │
│ - 分離実行: メインOSが侵害されてもEnclaveは独立 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Android Titan M2 / TEE

┌─────────────────────────────────────────────────────────────────────────────┐
│ Android のセキュリティ機構 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【TEE (Trusted Execution Environment)】 │
│ - ARMプロセッサのTrustZone技術を利用 │
│ - 通常のAndroid OSとは分離された実行環境 │
│ - StrongBoxがない場合のフォールバック │
│ │
│ 【StrongBox (Titan M2等)】 │
│ - 専用のセキュリティチップ │
│ - TEEよりも高いセキュリティレベル │
│ - Google Pixel では Titan M2 チップ │
│ │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ Android デバイス │ │
│ │ ┌──────────────────────────────────────────────────────────┐ │ │
│ │ │ Normal World (Android OS) │ │ │
│ │ │ - アプリケーション │ │ │
│ │ │ - システムサービス │ │ │
│ │ └──────────────────────────────────────────────────────────┘ │ │
│ │ │ │ │
│ │ ┌──────────────────────┼───────────────────────────────────┐ │ │
│ │ │ Secure World (TEE) │ │ │ │
│ │ │ - キーマスター │ │ │ │
│ │ │ - 生体認証処理 │ │ │ │
│ │ └──────────────────────┼───────────────────────────────────┘ │ │
│ │ │ │ │
│ │ ┌──────────────────────┼───────────────────────────────────┐ │ │
│ │ │ StrongBox (Titan M2)│ ← 最高レベルの保護 │ │ │
│ │ │ - 独立したプロセッサ │ │ │ │
│ │ │ - 耐タンパー性 │ │ │ │
│ │ └──────────────────────────────────────────────────────────┘ │ │
│ └────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Windows TPM 2.0

┌─────────────────────────────────────────────────────────────────────────────┐
│ Windows TPM 2.0 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【TPM (Trusted Platform Module)】 │
│ - 業界標準のセキュリティチップ仕様 │
│ - Windows Hello の認証情報を保護 │
│ - Windows 11 では TPM 2.0 が必須 │
│ │
│ 【実装形態】 │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ dTPM (Discrete TPM) │ 独立したチップ、最高のセキュリティ │ │
│ ├─────────────────────────────────────────────────────────────────────┤ │
│ │ fTPM (Firmware TPM) │ CPU内のファームウェア実装、一般的 │ │
│ ├─────────────────────────────────────────────────────────────────────┤ │
│ │ vTPM (Virtual TPM) │ 仮想環境用、Hyper-V等で使用 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ 【Windows Hello での使用】 │
│ - 生体認証テンプレートの保護 │
│ - パスキーの秘密鍵の保管 │
│ - 暗号化操作の実行 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

同期パスキーの安全性

同期パスキーとは

┌─────────────────────────────────────────────────────────────────────────────┐
│ 同期パスキー (Synced Passkey) の仕組み │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【概要】 │
│ 同期パスキーは、ユーザーの複数デバイス間でパスキーを同期する機能 │
│ │
│ ┌─────────────┐ 暗号化された ┌─────────────┐ │
│ │ iPhone │ ←────同期────→ │ MacBook │ │
│ │ (Passkey) │ │ (Passkey) │ │
│ └─────────────┘ ↑ └─────────────┘ │
│ │ │
│ ┌──────┴──────┐ │
│ │ iCloud │ │
│ │ Keychain │ │
│ └─────────────┘ │
│ │
│ 【主要な同期プロバイダー】 │
│ - Apple: iCloud Keychain │
│ - Google: Google Password Manager │
│ - Microsoft: Windows/Edgeから段階的に拡大中 │
│ - 1Password, Dashlane 等のパスワードマネージャー │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

iCloud Keychain の暗号化

┌─────────────────────────────────────────────────────────────────────────────┐
│ iCloud Keychain のセキュリティ │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【エンドツーエンド暗号化】 │
│ - パスキーはデバイス上で暗号化されてからiCloudに送信される │
│ - Appleを含む第三者はパスキーの内容を復号できない │
│ - 通常、鍵素材はユーザーが信頼したデバイス群にのみ存在する │
│ - 全デバイス喪失時は iCloud Keychain Recovery で復帰可能(Appleは内容を読めない)│
│ │
│ 【同期の仕組み】 │
│ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ 同期識別情報(Syncing Identity / Circle of Trust) │ │
│ │ ────────────────────────────────────────────────────────────────────│ │
│ │ ・各デバイスは同期用の鍵ペア(公開鍵 / 秘密鍵)を保持する │ │
│ │ ・信頼されたデバイス同士が「信頼の輪(Circle of Trust)」を形成 │ │
│ │ ・この仕組みにより、鍵素材を安全に配布・更新できる │ │
│ │ ・iCloud上のデータはE2E暗号化され、Appleは内容を読めない │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │
│ 【新しいデバイスの追加】 │
│ │
│ ┌─────────┐ ┌─────────┐ │
│ │ 既存 │ ← ① 新デバイスが参加を要求 │ 新規 │ │
│ │ iPhone │ (syncing identity を生成) │ MacBook │ │
│ └────┬────┘ └────┬────┘ │
│ │ │ │
│ │ ② 既存デバイスで承認(Face ID / Touch ID 等)│ │
│ │ │ │
│ └── ③ voucher(参加に必要な情報)を提供 ─────→ │ │
│ (E2EEチャネルを使用) │ │
│ ↓ │
│ ④ Circle of Trust に参加 → パスキー利用可能 │
│ │
│ ※ 各デバイスは syncing identity(P-384 ECC 鍵ペア)を保持し、 │
│ 信頼デバイスのリストを署名して CloudKit に保存する。 │
│ 具体的な鍵配布・暗号化の内部実装は Apple が詳細を公開していない。 │
│ ドキュメント上は「同期識別情報」「信頼デバイスのリストへの署名」 │
│ 「voucher による参加」により、信頼済みデバイスのみが復号できる設計。 │
│ │
│ 【既存デバイスがない場合】 │
│ - iCloud Keychain Recovery により回復可能 │
│ - 回復プロセスはエスクローされた鍵素材と強い認証で保護される │
│ - Apple自身がパスキー内容を復号できるわけではない │
│ │
│ 【ハードウェア連携】 │
│ - 鍵素材はSecure Enclave等のセキュア領域で保護される │
│ - E2EE + Hardware-backed key が現代認証のゴールドスタンダード │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Google Password Manager の暗号化

┌─────────────────────────────────────────────────────────────────────────────┐
│ Google Password Manager のセキュリティ │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【パスキーは常にE2EE】 │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Google公式: パスキーは常にエンドツーエンド暗号化 │ │
│ │ → Googleでさえパスキーの秘密鍵を復号・使用することはできない │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ 【パスワードの場合(参考)】 │
│ パスワードについては「オンデバイス暗号化」オプションが存在: │
│ - デフォルト: Googleアカウントで保護 │
│ - オプション: オンデバイス暗号化(カスタムパスフレーズ) │
│ │
│ ※ パスキーとパスワードで暗号化モデルが異なる点に注意 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

同期パスキーのリスクと対策

リスク説明対策
アカウント侵害同期プロバイダーのアカウントが乗っ取られた場合強力な2FA、パスキーでのログイン
全デバイスの喪失全てのデバイスを同時に失った場合リカバリキーの安全な保管
同期の遅延同期が完了する前に認証が必要になる複数の認証手段を登録
プロバイダーの信頼性同期プロバイダーへの依存信頼できるプロバイダーの選択

ハードウェアキーでの鍵保護

ハードウェアセキュリティキーの特徴

┌─────────────────────────────────────────────────────────────────────────────┐
│ ハードウェアセキュリティキーの特徴 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【代表的な製品】 │
│ - YubiKey (Yubico) │
│ - Titan Security Key (Google) │
│ - Feitian ePass │
│ - SoloKeys │
│ │
│ 【物理的な保護】 │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ YubiKey の内部構造 │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────────────────┐ │ │
│ │ │ 耐タンパー性パッケージ │ │ │
│ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │
│ │ │ │ セキュアエレメント │ │ │ │
│ │ │ │ ┌─────────────────────────────────────────────┐ │ │ │ │
│ │ │ │ │ 秘密鍵ストレージ (読み出し不可) │ │ │ │ │
│ │ │ │ │ 暗号エンジン (署名処理) │ │ │ │ │
│ │ │ │ │ 乱数生成器 │ │ │ │ │
│ │ │ │ └─────────────────────────────────────────────┘ │ │ │ │
│ │ │ └─────────────────────────────────────────────────────┘ │ │ │
│ │ └─────────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ 【セキュリティ特性】 │
│ - 秘密鍵の抽出は物理的に不可能 │
│ - 電源オフ時も鍵は保護される │
│ - 認証回数制限(PIN試行回数等) │
│ - FIPS 140-2 認証(一部製品) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

ハードウェアキー vs 同期パスキー

観点ハードウェアキー同期パスキー
鍵の保管場所デバイス内のみクラウド経由で同期
バックアップ不可(複数キー登録で対応)自動同期
紛失時のリスク高(回復不可)低(他デバイスから利用可能)
セキュリティレベル最高(物理的隔離)高(暗号化保護)
利便性中(物理キーが必要)高(デバイスのみで完結)
推奨用途高セキュリティ環境一般ユーザー

鍵のバックアップとリカバリ

バックアップ戦略

┌─────────────────────────────────────────────────────────────────────────────┐
│ パスキーのバックアップ戦略 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【ケース1: 同期パスキー使用時】 │
│ ────────────────────────────────────────────────────────────────────────── │
│ - 自動的にクラウドにバックアップされる │
│ - 同期プロバイダーのリカバリ手段を確認しておく │
│ - リカバリキー/リカバリコードを安全に保管 │
│ │
│ 【ケース2: ハードウェアキー使用時】 │
│ ────────────────────────────────────────────────────────────────────────── │
│ - バックアップキーとして2本目のキーを登録 │
│ - バックアップキーは安全な場所に保管(金庫等) │
│ - 定期的にバックアップキーの動作確認 │
│ │
│ 【ケース3: 複合戦略(推奨)】 │
│ ────────────────────────────────────────────────────────────────────────── │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 主要アカウントには複数の認証手段を登録: │ │
│ │ │ │
│ │ 1. プラットフォーム認証器 (同期パスキー) ← 日常使用 │ │
│ │ 2. ハードウェアキー (メイン) ← 高セキュリティ操作 │ │
│ │ 3. ハードウェアキー (バックアップ) ← 安全な場所に保管 │ │
│ │ 4. リカバリコード ← 最終手段として保管 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

リカバリシナリオ

シナリオ対応方法
デバイス紛失(同期パスキー)別の同期デバイスからアクセス
デバイス紛失(ハードウェアキー)バックアップキーを使用
全デバイス喪失リカバリキー/コードを使用
同期アカウントへのアクセス不可アカウントリカバリ手順を実行
ハードウェアキー故障バックアップキーを使用、新しいキーを登録

セキュリティレベルの比較

┌─────────────────────────────────────────────────────────────────────────────┐
│ 認証方式のセキュリティレベル比較 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ セキュリティレベル (低 → 高) │
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ │
│ [パスワードのみ] │
│ ├─ フィッシング: 脆弱 │
│ ├─ 漏洩リスク: 高 │
│ └─ 鍵管理: サーバー側(ハッシュ) │
│ │
│ ↓ │
│ │
│ [パスワード + SMS OTP] │
│ ├─ フィッシング: 脆弱(リアルタイムフィッシング) │
│ ├─ 漏洩リスク: 中 │
│ └─ 鍵管理: サーバー側 + 電話番号 │
│ │
│ ↓ │
│ │
│ [パスワード + TOTP] │
│ ├─ フィッシング: 脆弱(リアルタイムフィッシング) │
│ ├─ 漏洩リスク: 中 │
│ └─ 鍵管理: サーバー側 + 共有シークレット │
│ │
│ ↓ │
│ │
│ [同期パスキー] │
│ ├─ フィッシング: 耐性あり │
│ ├─ 漏洩リスク: 低(E2E暗号化) │
│ └─ 鍵管理: デバイス + 暗号化クラウド │
│ │
│ ↓ │
│ │
│ [ハードウェアキー (デバイスバウンドパスキー)] │
│ ├─ フィッシング: 耐性あり │
│ ├─ 漏洩リスク: 最低(抽出不可) │
│ └─ 鍵管理: ハードウェア内のみ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

企業での導入ガイドライン

リスクレベル別の推奨構成

リスクレベル推奨構成
標準同期パスキー一般従業員のSaaSアクセス
同期パスキー + ハードウェアキー管理者アカウント
最高ハードウェアキーのみ特権アカウント、金融システム

ポリシー設定の考慮点

┌─────────────────────────────────────────────────────────────────────────────┐
│ 企業向けパスキーポリシー │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 【認証器の制限】 │
│ - AAGUID によるホワイトリスト/ブラックリスト │
│ - Attestation 検証の要否 │
│ - 同期パスキーの許可/禁止 │
│ │
│ 【ユーザー検証要件】 │
│ - userVerification: "required" の強制 │
│ - 生体認証の必須化 │
│ │
│ 【登録ポリシー】 │
│ - 最低登録数の要件(バックアップ用) │
│ - 企業支給デバイスのみ許可 │
│ - 登録時の本人確認プロセス │
│ │
│ 【監視・監査】 │
│ - 認証イベントのログ記録 │
│ - リスクベース認証(IP/ASN、Impossible travel等) │
│ - 登録・削除イベントの監査 │
│ - 定期的なクレデンシャルの棚卸し │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

運用上の注意点

設定注意点
signCount検証プラットフォーム認証器は常に0を返す実装も多く、信頼できる一貫したシグナルにならない。参考情報として扱い、過信しない
AAGUID制限端末更新やブラウザ差異で想定外に弾くケースがある。段階導入・例外運用フローを準備
Attestation検証プライバシー配慮で取得できない/弱いケースがある。強制する場合はテスト範囲を十分確認
同期パスキー禁止ユーザビリティが大幅に低下。高セキュリティ環境以外では慎重に検討

まとめ

パスキー鍵管理の安全性の要点

  1. 秘密鍵の隔離: 秘密鍵はセキュリティチップ内で生成・保管され、外部に出ない
  2. ハードウェア保護: TEE、Secure Enclave、TPM による耐タンパー性
  3. 暗号化同期: 同期パスキーはエンドツーエンド暗号化で保護
  4. フィッシング耐性: RP ID / origin に紐づくため、偽サイトでは署名検証が成立しない
  5. バックアップ戦略: 複数の認証手段を登録してリスク分散

選択ガイド

ユーザータイプ推奨
一般ユーザー同期パスキー(iCloud Keychain, Google Password Manager)
セキュリティ意識の高いユーザー同期パスキー + ハードウェアキー
企業の特権ユーザーハードウェアキー(複数登録)
規制対象業界ハードウェアキー + Attestation 検証

参考リンク

Apple

Google

FIDO Alliance

W3C