(圖片來源: FIDO Alliance)
在昨天的文章中,我們確立了 FIDO 是實現零信任的關鍵技術,是我們揮別密碼時代的「石中劍」。然而,要真正駕馭這股力量,就必須理解其內部的運作原理。今天,我們將扮演工程師的角色,一起揭開 FIDO2 這台精密引擎的蓋子,深入其技術內核,看懂驅動這場無密碼革命的兩大核心組件與其背後的密碼學基石。
在 FIDO2 成為主流之前,FIDO 聯盟主要推出了兩套並行的標準,它們像兩種不同的方言,各自應對了不同的安全場景:
開發者的痛點:分裂標準下的抉擇困境
這種「雙標準並行」的局面,意味著開發者和產品經理在設計登入流程時,必須做出取捨:是要追求極致的無密碼體驗(UAF),還是要強化現有廣大用戶的密碼安全(U2F)?這不僅增加了開發的複雜度,也造成了使用者體驗的碎片化。
(圖片來源: FIDO Alliance)
為了解決這個問題,FIDO 聯盟與 W3C 攜手推出了 FIDO2,旨在整合兩者的優點,創造一種單一、強大且能交互操作的「信任通用語」。
FIDO2 的魔法在於它完美協調了軟體 API 與硬體通訊,就像一場交響樂,由 WebAuthn 擔任指揮,CTAP 負責與各個樂手(驗證器)溝通。
WebAuthn (Web Authentication):身分驗證的「總指揮」
CTAP (Client to Authenticator Protocol):與硬體溝通的「外交官」
FIDO2 帶來的並非改良,而是典範轉移 (Paradigm Shift)。它從根本上改變了伺服器與使用者之間的信任模型。
典範 | 傳統密碼 (共享秘密模型) | FIDO (非對稱證明模型) |
---|---|---|
信任基礎 | 「你知道我們之間共享的秘密(密碼)嗎?」 | 「你能證明你擁有那把不為人知的私鑰嗎?」 |
伺服器角色 | 秘密的保管者 (Guardian of Secrets) | 證明的驗證者 (Verifier of Proofs) |
風險所在 | 中心化:伺服器資料庫一旦被攻破,所有秘密都將外洩。 | 分散式:私鑰儲存在個人裝置中,沒有中央資料庫可偷。 |
攻擊成本 | 低:駭客可攻擊單一伺服器,竊取數百萬份資料。 | 高:駭客必須針對每一個使用者的裝置單獨進行攻擊。 |
這個轉變的深遠意義在於,它將安全的重心從「保護一個容易被竊取的中央資料庫」轉移到了「驗證一個無法被偽造的分散式證明」。這正是 FIDO 能有效防禦網路釣魚和大規模資料外洩的核心原因。
理解了上述的典範轉移後,公鑰密碼學的角色就顯而易見了。
這是一種**「無共享秘密 (No Shared Secret)」**的架構,從根本上杜絕了傳統密碼模式的風險。
今天,我們不僅理解了 FIDO2 是由 WebAuthn(軟體 API)和 CTAP(硬體通訊)組成的標準,更重要的是,我們建立了一張清晰的技術作戰地圖,並認知到其背後的公鑰密碼學如何帶來根本性的安全典範轉移。
有了這張地圖,我們就不會在實作中迷失方向。
明天,我們將聚焦在地圖中離我們最近、也是開發者最需要掌握的部分——WebAuthn API,深入它的專有名詞、角色定義與資料結構,為我們接下來的後端 API 實作打下最堅實的基礎。
參考資料: