繁體中文(台灣)
  • webauthn
  • passkey
  • authentication
  • MFA

WebAuthn 和 密鑰 101

全面瞭解 WebAuthn,包括其概念、工作流程、流行的原因以及相關挑戰。

Ran
Ran
Product & Design

WebAuthn 在 NIST AAL 標準中名列最安全的身份驗證器之一。於 2013 年引入,現已成為企業身分驗證的首選。然而,其採用並未廣泛,導致許多人對 WebAuthn 和 密鑰產生疑問。我們來深入了解你需要知道的內容。

概念:WebAuthn、密鑰和 FIDO 之間的關係是什麼?

FIDO 聯盟

FIDO 聯盟是一個組織,提供開源和安全的無密碼認證標準,包括 UAF、U2F 和 FIDO2。

FIDO2

FIDO2 是一組由 FIDO 聯盟開發的安全網上驗證標準。FIDO2 包含兩個主要組件:WebAuthn 用於無密碼登錄,CTAP 用於安全設備通信。

密鑰

密鑰是一種基於 FIDO 的釣魚防護憑證,用於替代密碼。

  1. 它可以是硬體令牌或安全密鑰,如 USB 或 藍牙設備。
  2. 它使用非對稱公開密鑰加密來增強安全性。
  3. 它靈活地可以連接平台、安全密鑰,或跨設備同步。
WebAuthn

WebAuthn 是由 W3C 和 FIDO 聯盟開發的 JavaScript API,讓網頁應用程式能以 FIDO2 標準進行身份驗證。密鑰是 WebAuthn 支持的其中一種身份驗證方式。

流程:WebAuthn 如何運作?

WebAuthn 的 4 個主要實體

基本上,你可能知道 WebAuthn 流程中涉及的 4 個主要實體。

  1. 使用者: 使用 WebAuthn 註冊或驗證到網頁應用程式的人。

  2. 使用者代理: 處理 WebAuthn API 調用的網頁瀏覽器,並管理所有不同依賴方與身份驗證器之間的身份驗證過程。

  3. 依賴方: 使用者嘗試訪問的網頁服務或應用程式。使用者透過使用者代理與依賴方互動。

  4. 身份驗證器: 用於驗證使用者身份的硬體元件。可根據平台或瀏覽器功能採取不同形式,例如安全密鑰(如 Yubikeys)、手機或平板(通過藍牙、NFC 或 USB 連接)、基於設備的生物識別或 PIN 等。

main entities

WebAuthn 的工作流程

非對稱公開密鑰加密是核心過程。

  1. **密鑰對生成:**使用者代理生成公開密鑰與私密密鑰對。公開密鑰與依賴方共享,而私密密鑰安全地儲存在使用者的身份驗證器中。
  2. **身份驗證挑戰:**當使用者嘗試登入時,依賴方向使用者代理發送身份驗證挑戰。
  3. **使用者驗證:**使用者代理將挑戰發送給身份驗證器,後者與使用者互動進行驗證(如生物識別或按下按鈕)。
  4. **加密簽名:**身份驗證器使用其私密密鑰對挑戰進行簽名,創建加密簽名。
  5. **驗證與訪問:**使用者代理使用公開密鑰驗證簽名,並告知依賴方驗證成功。授予訪問權限。

詳細說明的話,可將其分為註冊和身份驗證階段。

WebAuthn 註冊流程: enrollment flow

WebAuthn 身份驗證流程: authentication flow

優勢:為何 WebAuthn 成為趨勢?

多種身份驗證器

你可以選擇多種身份驗證器以增加靈活性。這些身份驗證器有兩種類型,分別適用於本地和雲端使用,你可以為你的服務啟用一個或兩者。

平台身份驗證器(內部身份驗證器)

平台身份驗證器綁定至單一和特定設備操作系統,例如使用者登入的電腦、筆電、手機或平板。它僅在該設備上運作,使用像生物識別或設備密碼等方法進行授權。它是一種快速的身份驗證方法,尤其是透過生物識別,並可以替代手動輸入密碼。然而,如果使用者丟失設備,它可能成為無法訪問的障礙。 例如:

  • MacOS 和 iOS: 通過 Touch ID、Face ID 或設備密碼驗證的 iCloud 鑰匙串。
  • Windows:通過面部識別、指紋或友好 PIN 驗證的 Windows Hello。
  • Android:Google 密碼管理器也支持通過面部識別或指紋自動填充密碼以授權設備。

platform authenticator

漫遊身份驗證器(外部身份驗證器,跨平台身份驗證器)

漫遊身份驗證器是一個獨立的便攜設備或軟體應用程式,如硬體安全密鑰或智能手機。它應使用 USB 連接設備或保持 NFC 或藍牙開啟。漫遊身份驗證器不限於單一設備或瀏覽器,提供更大的靈活性。例如:

  • 安全密鑰:也被稱為硬體令牌,如 Yubikey。
  • 行動智能手機:如使用基於雲的 Google 帳戶在 Android 上,或 iCloud 帳戶在 iPhone 上。重要的是,跨設備身份驗證還需要連接藍牙、NFC 或 USB,以確保使用者的身份驗證器在附近。移動身份驗證器通常需要掃描 QR 碼以將其與桌面設備鏈接。(特別是 Android 手機,可以使用持續鏈接與 Chrome 瀏覽器無縫鏈接,實現一鍵授權而無需掃描 QR 碼。)

roaming authenticator

高保證安全性

高保證安全性對於保護業務資源至關重要。透過以下措施來實現:

  1. 隱私密鑰的保護: 隱私密鑰絕不與第三方網站(依賴方)共享,以幫助防止密碼洩露和釣魚攻擊。
  2. 設備接近性要求: 設備需具備「針對單個設備的平臺身份驗證」或「受 USB、藍牙或 NFC 限制的漫遊身份驗證器」,以靠近使用者,預防遠程攻擊。
  3. 域綁定: WebAuthn 緊密綁定於使用者註冊網站的特定域名,提供防止未授權網站釣魚攻擊的保護。

無縫用戶體驗的 MFA 和 1FA

WebAuthn 在提高安全性的同時,提高了用戶無密碼驗證體驗:

  • 原生體驗和生物特徵效率:WebAuthn 採用針對各種平台和設備量身定制的特定身份驗證方法,符合用戶習慣。生物識別身份驗證消除了手動輸入的需要,大大加快了驗證過程。
  • 直接 MFA 跳過 1FA: WebAuthn 常用於 MFA(多因素身份驗證)。由於其強大的安全性,如果依賴方之前記錄了在瀏覽器中使用 WebAuthn,用戶可以跳過 1FA(單因素身份驗證)步驟,直接通過密鑰驗證登入。
  • 密鑰替代密碼: 密鑰還可以作為 1FA 的傳統密碼的替代品。用戶可以在輸入帳戶之前或之後提供其密鑰,僅在密鑰身份驗證不可用時才需進行密碼驗證。

挑戰:為何 WebAuthn 沒有被用戶廣泛採用?

瀏覽器或平臺限制

某些瀏覽器或平台不支持 WebAuthn 或不支持漫遊身份驗證器。雖然 Caniuse 的當前統計數據顯示支持良好,桌面平台覆蓋 97.37%,行動平台覆蓋 96.3%,但在不同瀏覽器版本和操作系統之間仍然存在差異。例如,桌面 Linux 不支持平台身份驗證器,Android 僅完全支持 Chrome 上的 WebAuthn,而 macOS 上的 Internet Explorer 不支持 WebAuthn。這要求管理員要求成員執行特定的瀏覽器或操作系統選擇或配置其他替代 MFA 方法。

browser support

設備丟失風險

尤其是對於依賴「此設備」平台身份驗證器的用戶,如果設備丟失可能導致其帳戶訪問受損。帳戶恢復可能是一個繁瑣的過程。為減輕此風險,建議用戶在設置 WebAuthn 時同時綁定其他備份身份驗證方法。

網站和應用程式支持有限

許多服務和應用程式尚未對密鑰提供支持。用戶常常缺乏對各種身份驗證方法的熟悉,可能不完全了解平台身份驗證器和漫遊身份驗證器之間的區別和限制。然而,隨著主要系統、瀏覽器和 SaaS 服務的增加使用 WebAuthn,它已成為一個增長中的趨勢,企業和用戶都開始接受。

結論

Logto 正在進行準備於 11 月推出 MFA(多因素身份驗證)。初始階段將支持三種驗證方法:身份驗證器應用 TOTP,WebAuthn(密鑰),和備份代碼,提供全面的登入和註冊解決方案。我們將繼續開發與 WebAuthn 相關的進階功能。我們期待你的使用體驗,也邀請你關注 Product Hunt 的即將推出的 MFA 發布。