📖 推定読了時間:約6分
指紋認証や顔認証だけで安全にWebサービスへログインできる次世代規格「パスキー(Passkeys / FIDO2)」。急速に普及が進む一方で、Bitwardenや1Passwordといったパスワードマネージャーや、エンドツーエンド暗号化(E2EE)を謳うクラウドストレージでは、依然として「超長くて複雑なマスターパスワード」の記憶と入力が求められていました。
「ログインはパスキーで手軽になったのに、保管庫(ボールト)のデータを暗号化・復号するためには、結局パスワードを手入力しなければならないのか?」――この最後のジレンマを打ち破るためにWebAuthn仕様へ追加された強力な新機能が「WebAuthn PRF(Pseudo-Random Function: 擬似ランダム関数)拡張」です。なぜ生体認証のワンタップから、堅牢な暗号鍵を生み出すことができるのでしょうか?
この記事のポイント
- 生体認証から「暗号化・復号のための対称鍵(AES鍵)」を安全かつ決定論的に導出
- 認証器内部の秘密鍵からHMAC演算を行うため、秘密鍵そのものは一切外部に露出しない
- マスターパスワードの完全撤廃と、真のゼロ知識エンドツーエンド暗号化(E2EE)の両立
従来のパスキー認証が抱えていた「認証できるが復号できない」問題
これまでの標準的なパスキー(WebAuthn)は、「電子署名(非対称暗号)」を行うための仕組みでした。サーバーから送られてきたチャレンジ(乱数)に対し、端末内の秘密鍵で署名して「私が本人です」と証明することは得意です。
しかし、電子署名用の秘密鍵を使って「データを暗号化したり、暗号化されたデータを元に戻す(復号する)」ことは、セキュリティ上およびアルゴリズム(ECDSAやEd25519)の設計上、直接行うことができませんでした。
そのため、パスワードマネージャーなどの機密データを守るサービスでは、「ログイン認証にはパスキーを使うが、保管庫データの暗号化にはユーザーが頭で覚えているマスターパスワードから導出した暗号鍵を使う」という二重構造を維持せざるを得なかったのです。
ブラウザ標準のWebAuthn APIの仕様変遷や暗号拡張パラメータの取り扱いを網羅的に学びたいエンジニアには、最新の実装コードを詳解した WebAuthn PRF拡張ブラウザ暗号化API実践ハンドブック が必携のガイドブックとなります。
PRF拡張の数学的メカニズム:「Salt」から決定論的な鍵を生む
この限界を突破したのが、FIDOアライアンスとW3Cが標準化した「PRF拡張(hmac-secret拡張の後継)」です。
PRF(擬似ランダム関数)拡張の動作原理は極めてエレガントです。ユーザーが指紋認証等で本人確認をパスすると、Webブラウザは認証器(YubiKeyやスマートフォンのセキュアチップ)に対して、サービス固有のランダム値「Salt(ソルト)」を渡します。
| ステップ | 場所 | 処理内容 |
|---|---|---|
| 1. Saltの送信 | ブラウザ → 認証器 | Webアプリから渡された固有のSalt(32バイト)を送信 |
| 2. 内部HMAC計算 | ハードウェア認証器内部 | 秘密のクレデンシャル鍵を使ってHMAC-SHA256(Key, Salt)を実行 |
| 3. 決定論的出力を返却 | 認証器 → ブラウザ | 同じSaltからは常に同じ32バイトの完全ランダムな対称鍵が出力される |
| 4. クライアント復号 | ブラウザ(WebCrypto API) | 得られた鍵でAES-256-GCM復号を行い、手元でデータを閲覧可能にする |
ポイントは、認証器のマスター秘密鍵は外部に1ビットも漏れ出さないという点です。認証器の内部で数学的なハッシュ関数(HMAC)を通した計算結果だけがブラウザに返され、それがそのまま強力な対称暗号鍵(AES-256)として機能します。
パスワード完全消滅と「ゼロ知識E2EE」の新世界
PRF拡張により、ユーザー体験は激変します。パスワードマネージャーにログインする際、マスターパスワードを入力する必要は一切ありません。ノートPCの指紋リーダーに触れるか、USBポートの FIDO2対応ハードウェアセキュリティキー(YubiKey等) に軽くタッチするだけで、ログイン認証と保管庫データの復号が**一瞬で同時に完了**します。
しかも、クラウドサーバー側には暗号化されたデータしか存在せず、サーバー管理者はもちろん、万が一クラウドがハッキングされて全データが流出しても、ユーザーの手元のハードウェア認証器がなければ地球上の誰も復号できないという「完全なゼロ知識アーキテクチャ」が成立します。
💡 フィッシングサイトでの防御も完璧
WebAuthnの仕様上、偽の詐欺サイト(フィッシングドメイン)からPRF拡張を呼び出しても、ドメイン(Origin)のバインドが異なるため、認証器は全く別の無関係な鍵を出力します。偽サイト上で本物のデータが復号されることは数学的にあり得ません。
- ✅主要ブラウザでのサポート進展:ChromeやEdge、SafariなどでPRF拡張のネイティブ実装が完了
- ⚠️複数デバイス同期(同期パスキー)の扱い:iCloudキーチェーンやGoogleパスワードマネージャー間でのPRF鍵同期仕様の標準化
- 👍医療・金融・機密業務アプリの革命:電子カルテや機密文書のローカル暗号化ビューアがWeb標準だけで構築可能に
まとめ
WebAuthn PRF拡張は、パスキーを単なる「ログインの鍵」から、「あらゆるデジタルデータを手元で暗号化・保護する万能の金庫番」へと進化させる決定的な技術革新です。マスターパスワードという人間にとって最大の脆弱性を完全に過去のものにする未来が、すぐそこまで来ています。
セキュリティエンジニアやWeb開発者の方は、ぜひ自社の認証・暗号化フローにPRF拡張の導入を検討してみてください!



0 件のコメント:
コメントを投稿