跳至主要內容

通行密鑰 (Passkeys, WebAuthn)

通行密鑰 (Passkey) 提供了一種比傳統密碼更安全且更友好的替代方案。通過使用公開金鑰加密技術,通行密鑰增強了安全性,將使用者的裝置、服務域和使用者 ID 連結在一起,有效抵禦釣魚和密碼攻擊。它兼容各種裝置或瀏覽器,並允許使用者使用生物識別和硬體安全功能進行便捷的驗證。WebAuthn 提供了 API,允許網站實現通行密鑰。

Logto 現在支援通行密鑰 (Webauthn) 作為多重要素驗證 (MFA, Multi-Factor Authentication) 的一部分。通行密鑰登入功能即將推出,請持續關注更新。

概念

客戶通常熟悉通行密鑰而非 WebAuthn,那麼它們之間的關係是什麼,該如何使用呢?讓我們來探討這些概念:

  • 通行密鑰 (Passkeys):通行密鑰是一種基於 FIDO 的抗釣魚憑證,用於取代密碼。它利用非對稱公開金鑰加密技術來增強安全性。它可以是硬體權杖或安全金鑰,如 USB 或藍牙裝置。由於「通行密鑰」是顯示給使用者的驗證方法,應在你的產品客戶端中使用。
  • WebAuthn:這是一個由 W3C 和 FIDO 聯盟開發的 JavaScript API,使用 FIDO2 標準來增強網頁應用程式的驗證。通行密鑰是 WebAuthn 支援的驗證方法之一。在 Logto 控制台中,我們專業地將此整合稱為「WebAuthn」。

WebAuthn 提供多種驗證器供使用者選擇,分為本地和雲端使用的兩種類型:

  • 平台驗證器 (Platform authenticator, Internal authenticator):它與單一且特定的裝置作業系統綁定,如電腦、筆記型電腦、手機或平板電腦,使用者使用這些裝置登入。它僅在裝置上使用生物識別或裝置密碼等方法進行授權,因此是一種快速的驗證方式。例如,iCloud 鑰匙圈在 macOS 或 iOS 上通過 Touch ID、Face ID 或裝置密碼驗證;Windows Hello 通過面部識別、指紋或友好 PIN 驗證。
  • 漫遊驗證器 (Roaming authenticator, External authenticator, Cross-platform authenticator):這是一個獨立的可攜式裝置或軟體應用程式,如硬體安全金鑰或智慧型手機。它應使用 USB 連接裝置或保持 NFC 或藍牙開啟。漫遊驗證器不限於單一裝置或瀏覽器,提供更大的靈活性。

要深入瞭解 WebAuthn 的原理和流程,可以參閱我們的部落格文章:WebAuthn 和通行密鑰 101整合 WebAuthn 前你應該知道的事情

注意限制

在實施 WebAuthn 時,需注意一些限制:

  1. 平台和瀏覽器限制:需要注意的是,Logto 目前不支援原生應用程式的 WebAuthn。此外,WebAuthn 驗證器的可用性取決於瀏覽器和裝置的能力(查看列表)。因此,WebAuthn 並非實施多重要素驗證 (MFA) 的唯一選擇,否則你可以控制哪些瀏覽器和裝置可以存取你的產品。
  2. 域限制:更改域可能會妨礙使用者通過其現有的 WebAuthn 帳戶進行驗證。通行密鑰與當前網頁的特定域綁定,不能跨不同域使用。
  3. 裝置限制:丟失裝置可能導致無法存取其帳戶,特別是對於依賴「此裝置」平台驗證器的使用者。為增強驗證存取,建議為使用者提供多於一個的驗證因素。

驗證流程

通行密鑰規範要求使用者在當前頁面上主動點擊按鈕以啟動驗證組件。這意味著在設置和驗證流程中,使用者應被重定向到登錄頁面以啟動 WebAuthn。

  • 通行密鑰設置流程
WebAuthn 設置流程
  • 通行密鑰驗證流程
WebAuthn 驗證流程 整合 WebAuthn 前你應該知道的事情 WebAuthn 和通行密鑰 101