什麼是 passkey¶
passkey 是一把存在你裝置或密碼管理器裡的憑證。網站請它簽名時,你用指紋、臉或 PIN 同意,它就簽。它一般用來登入,站上的用法完全不同:沒有登入,沒有帳號,沒有伺服器。我們拿它當你資料的鑰匙,靠的是下面兩種機制。同一把 passkey 兩種都能做,建立時鑰匙頁會列出它能做哪些事。
用法一,資料金鑰放在 passkey 裡¶
建立 passkey 時,站上會把一把隨機產生的資料金鑰放進去,之後每一次驗證,保管 passkey 的地方都會把它原樣交回來。你在任何裝置上用這把 passkey 驗證一次,資料金鑰就回到網頁,網頁用它解開存在你裝置裡的密文。規格裡這個欄位叫 user handle,寫作 user.id。
user.id 是核心欄位,規格要求所有保管方式都交回來,我們在 iPhone 配 Bitwarden 與電腦的 Chrome 上驗過,其他組合照規格應該一樣。我的準備清單、威脅模型清單的存檔、本機檔案加密裡的收件人簿,都放在這樣的一個暫存區裡,共用同一份密文。
代價是資料金鑰跟著 passkey 存在密碼管理器裡,安全等於那個管理器的安全:誰能解鎖你的密碼管理器,誰就拿得到金鑰。密碼管理器的匯出檔、共享的 vault、服務端被入侵加上一組弱的主密碼,走的都是同一條路。這跟裝置的螢幕鎖是同一個等級,對多數人夠用,對能接觸到你裝置又可能要求你解鎖的對手不夠。威脅模型清單遇到這種對手就不提供存檔。
只用清單這類暫存區工具的話,下面這一節可以跳過,直接看「站上存了什麼」。
用法二,PRF 現場算出金鑰¶
WebAuthn 的 PRF 擴充讓 passkey 內部多藏一把秘密,永遠不離開驗證器。網頁每次驗證附一段輸入,你同意之後,驗證器回傳固定 32 位元組的輸出。同一把 passkey 配同一段輸入,永遠得到同一段輸出。passkey 因此變成一台「只在你按指紋時才回答的金鑰計算機」。
站上的本機檔案加密拿這段輸出去包 age 的 file key。沒有 passkey 就無法算出金鑰,資料就是一堆密文。這跟「驗證通過才顯示」完全不同,後者是寫在網頁裡的門禁,誰都繞得過。前者是數學。
跟用法一的差別:資料金鑰是憑證裡的一個欄位,密碼管理器看得到,匯出檔可能也帶著。PRF 的秘密只以算出來的結果離開驗證器,網頁與畫面上都看不到原始秘密。密碼管理器本身被打開的話,兩種用法都守不住。代價是保管方式要另外實作這個擴充,支援面見下面的限制。
跟密語差在哪¶
| 密語 | passkey | |
|---|---|---|
| 要記什麼 | 一組六個詞以上的密語 | 不用記,指紋或 PIN |
| 強度來源 | 密語本身,scrypt 拖慢猜測 | 驗證器裡的隨機秘密(檔案加密)或密碼管理器裡的資料金鑰(暫存區),都猜不了 |
| 跨裝置 | 密語跟著人走 | passkey 同步過去就有。不同步的裝置,暫存區可以「登錄另一台」,檔案加密可以貼備援私鑰 |
| 能在哪裡解 | 任何裝了 age 命令列工具的電腦 | 只有 anoni.net 的網頁,而且瀏覽器要支援 |
| 丟了怎麼辦 | 忘了就永遠無法開啟 | 丟了就永遠無法開啟。檔案加密預設搭備援金鑰,暫存區靠匯出或傳到另一台多放一份 |
| Tor Browser | 可以 | 不行,WebAuthn 整個關閉 |
密語模式的檔案在任何地方都解得開,passkey 模式的檔案綁在這個網域與你的裝置上。兩種模式輸出的都是標準 age 檔,只是收件人不同。
限制¶
passkey 綁在 anoni.net 這個 RP ID 上。瀏覽器只允許在同一個網域使用,鏡像站與 onion 位址無法使用。Tor Browser 整個關閉 WebAuthn,security.webauth.webauthn 在它的預設設定檔裡是 false。這兩條兩種用法都適用。
以下只影響檔案加密。PRF 擴充的支援面到 2026 年 3 月:macOS 15 以上的 Safari 18、Chrome 132、Firefox 139,iOS 18.4 以上,Android 的 Chrome 配 Google 密碼管理員,Windows 11 要 2026 年 2 月的更新之後。桌機上 1Password、Bitwarden、Dashlane 的瀏覽器擴充支援。Firefox Android 與 Windows 10 不支援。瀏覽器版本夠只是一半,保管 passkey 的密碼管理器也要支援,兩邊都對才算得出金鑰,passkey 鑰匙頁「存到哪裡」那張表按保管方式列。
iPhone 與 iPad 另有兩道限制。Apple 的實作不把 PRF 需要的資料傳給 iCloud 鑰匙圈以外的保管方式,所以在 iOS 上把 passkey 存進第三方密碼管理器的 app,可以建立卻無法算出金鑰,那一把只能用在暫存區。跨裝置的流程,也就是在另一台裝置上掃 QR code 那條路,同樣拿不到 PRF。要在 iPhone 上做檔案加密,就在 iPhone 上選 iCloud 鑰匙圈建立。
passkey 丟了、密碼管理員的帳號沒了、換到不支援 PRF 的環境,用它加密的檔案就永遠無法開啟。所以站上的流程預設搭一把 X25519 備援金鑰,檔案同時加密給 passkey 與它。那一把可以在加密工具上取消,取消之後只有 passkey 開得了。備援金鑰放在跟密文不同的地方。
站上存了什麼¶
什麼都沒有。瀏覽器基於隱私不讓網頁查詢「這個網域有沒有 passkey」,任何查詢都會跳提示。所以站上連你有沒有建過都不知道,鑰匙頁每次打開都是空的。每一次開鎖都要你當場同意。
相關閱讀¶
- passkey 鑰匙:建立、兩種用法各自的下一步、存到哪裡、兩台以上的裝置。
- 我的準備清單:用法一的第一個工具,勾選加密存在你的裝置上。
- 威脅模型清單:答案預設不存,要留的話存進同一個暫存區。
- 本機檔案加密:用法二,選「passkey」模式。
- 什麼是 age:passkey 包的是 age 的 file key。