Openkey PoC ④ — WebAuthn PRF で保管庫鍵(VK)をラップする

仕様 6.1 / 7.1 の検証。パスキーの PRF 出力から鍵を導出し、VK を暗号化・復号できるかを確認します。 順に押してください。Touch ID または画面ロック解除を求められます。

1. 環境チェック

—

2. パスキーを登録(PRF 拡張を要求)

仕様 7.1:residentKey: required, userVerification: required, PRF 拡張。 PRF 非対応なら仕様どおり登録拒否と判断します。

—

3. VK を生成して PRF でラップ

ブラウザ内で VK(32B)を生成 → PRF 出力を HKDF に通して AES-256-GCM 鍵を作り、VK を暗号化。 暗号文だけを localStorage に置きます(=サーバーへ送るのはこれだけ)。

—

4. 別セッションを模して VK を復元

VK をメモリから破棄し、パスキー認証をやり直して暗号文から復元します。

—

5. 別 salt では復元できないこと(鍵分離の確認)

—

6. PoC ⑤ 照合 — ネイティブアプリと同じ PRF 出力になるか

ネイティブ(AuthenticationServices)で登録した同じパスキーに、同じ salt を渡します。 ここが一致すれば、ブラウザで作った保管庫をアプリだけで開けることになり、 VK を JavaScript に触れさせない設計が成立します。

—