整合 WebAuthn 前你應該知道的事情
介紹 WebAuthn 的一些基本概念,旨在幫助你在整合 WebAuthn 時做出更好的決策。
WebAuthn 提供了一種比傳統密碼更加安全和友好的替代方案。隨著越來越多的網站採用這項技術,其普及率正在上升。如果你渴望將 WebAuthn 整合到自己的网站中,你並不是唯一一個。然而,作為一種相對較新的技術,你可能對其有許多疑問。
在考慮將 WebAuthn 整合到你的网站或應用程式時,理解這些關鍵概念和考量將幫助你做出有根據的決定,是否現在就實施它。
WebAuthn 和通行碼是什麼?
讓我們澄清定義:
- Web 認證 API (WebAuthn) 是 Credential Management API 的擴展。它利用公鑰加密實現強身份驗證,支持無密碼和安全的多因素身份驗證 (MFA),無需 SMS 文字。
- 通行碼 是一種有趣的基於 WebAuthn 的替代方案,不同於「密碼 + 第二因素」的傳統方法。就這個背景而言,通行碼是在 WebAuthn 標準中的一個特定應用場景。
我可以跨裝置使用通行码嗎?
是的,你可以通過兩種方式在多個裝置上使用通行碼:
- 通過密碼管理器同步:流行的密碼管理器如 iCloud 密鑰串、Google Password Manager 和 1Password 允許你同步。註冊響應中標記為「跨平台」的通行碼,例如 GitHub 的「synced」標籤,可以在各種裝置上使用。
- QR 碼和藍牙:另一種方法是使用 QR 碼和藍牙從另一個裝置登錄。這種方法為用戶提供了在不同平台上訪問其帳戶的靈活性。
它可以作為單一的認證方法嗎?
絕對可以,WebAuthn 是一種高度安全的認證因素。通行碼包含一個「用戶 ID」,在身份驗證過程中,服務器接收經過驗證的「用戶 ID」作為標識符。這個「用戶 ID」可以是通用唯一識別碼 (UUID) 或其他唯一識別符,如電郵、電話號碼或用戶名。用戶可以選擇先輸入其「用戶 ID」,然後搜索有效的通行碼,或從與當前域名關聯的列表 中選擇一個通行碼。
現在的兼容性如何?
WebAuthn 可以在安全上下文(HTTPS)中使用,並且在大多數瀏覽器的最新版本中受到支持。有關詳細的兼容性信息,請參閱 MDN 文檔。
網域是通行碼的關鍵識別符
在 WebAuthn 操作中,不論是註冊還是身份驗證,「rp ID」(依賴方 ID)都是必填字段。它代表當前網頁的網域主機名。如果它與當前域名不匹配,瀏覽器將拒絕請求。這意味著通行碼是綁定到特定網域的,目前無法將現有通行碼遷移到不同網域。此外,通行碼不能跨不同網域使用。詳情請參閱此 問題。
與身份驗證應用程式 (TOTP) 的比較
與傳統的雙因素身份驗證方法相比,如基於時間的一次性密碼 (TOTP) 和身份驗證應用程式,WebAuthn 展現出幾個優勢。WebAuthn 提供了一種更加用戶友好和安全的身份驗證體驗。不像 TOTP 需要手動輸入不斷變化的代碼,或身份驗證應用程式可能在裝置被盜時被破壞,WebAuthn 依賴於安全硬體和生物識別技術,提供流暢且強大的身份驗證過程。
然而,值得注意的是,TOTP 仍然有其優勢,比如易於備份和跨裝置使用,使其幾乎可以與所有裝置兼容。
結論
WebAuthn 無疑令人興奮,但像任何突破性技術一樣,在採用它之前,掌握全面的理解是至關重要的。本文旨在裝備你具備做出關於 WebAuthn 整合的明智決策所需的知識。在考慮其潛在好處時,請記住,保持了解是你成功的關鍵。順帶一提,請密切關注,因為 Logto 的下一個主要功能將支持 WebAuthn,提供更多無縫且安全的身份驗證可能性。