繁體中文(香港)
  • webauthn
  • 通行密碼
  • 身份驗證
  • 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 的四個主要實體

基本上,你可以了解 WebAuthn 流程中涉及的四個主要實體。

  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 以確保用戶的驗證器在附近。移動驗證器通常需要掃描二維碼將其與桌面設備連接。(Android 手機尤其可以使用 Persistent Linking 與 Chrome 瀏覽器無縫連接,以便一鍵授權而不需要掃描二維碼。)

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% 移動平台覆蓋),但在不同瀏覽器版本和操作系統之間仍存在差異。例如:Desktop Linux 不支持平台驗證器,Android 僅在 Chrome 上完全支持 WebAuthn,而 MacOS 的 Internet Explorer 也不支持 WebAuthn。這需要管理員要求成員強制選擇特定的瀏覽器或操作系統選擇,或配置其他替代 MFA 方法。

browser support

設備丟失風險

特別是依賴於“此設備”平台驗證器的用戶,丟失設備可能導致失去對其帳戶的訪問權限。帳戶恢復可能是一個繁瑣的過程。為減少這一風險,建議用戶在設置 WebAuthn 時同時綁定其他備用驗證方法。

網站和應用程序支持有限

許多服務和應用程序尚未提供對通行密碼的支持。用戶通常不熟悉各種驗證方法,也可能不完全了解平台驗證器和漫游驗證器之間的區別和限制。然而,主要系統、瀏覽器和 SaaS 服務越來越多地採用 WebAuthn,這成為企業和用戶皆開始接受的增長趨勢。

結論

Logto 計劃在 11 月推出多因素驗證(MFA)的初步支持,將支持三種驗證方法:身份驗證應用程序 TOTP、WebAuthn(通行密碼)和備用代碼,提供全面的註冊和登錄解決方案。我們將繼續開發與 WebAuthn 相關的高級功能。期望你的使用經驗,我們邀請你在 Product Hunt 上關注即將推出的 MFA 版本。