iT邦幫忙

2025 iThome 鐵人賽

DAY 2
1
Security

『零信任』的革命:從 FIDO 協議到自動化部署,30天打造次世代身分認證系統系列 第 2

【Day 02 — FIDO 生態系】解構 FIDO2:WebAuthn、CTAP 與公鑰密碼學的交響樂

  • 分享至 

  • xImage
  •  

Getting to Know the FIDO Specifications
(圖片來源: FIDO Alliance)

前言:揭開無密碼革命的引擎蓋

在昨天的文章中,我們確立了 FIDO 是實現零信任的關鍵技術,是我們揮別密碼時代的「石中劍」。然而,要真正駕馭這股力量,就必須理解其內部的運作原理。今天,我們將扮演工程師的角色,一起揭開 FIDO2 這台精密引擎的蓋子,深入其技術內核,看懂驅動這場無密碼革命的兩大核心組件與其背後的密碼學基石。


FIDO的演進:從分裂到統一的信任語言

在 FIDO2 成為主流之前,FIDO 聯盟主要推出了兩套並行的標準,它們像兩種不同的方言,各自應對了不同的安全場景:

  1. UAF (Universal Authentication Framework):目標是純粹的無密碼體驗。它允許使用者透過裝置上的生物辨識(如指紋、人臉)直接登入,過程中完全不需輸入密碼。
  2. U2F (Universal 2nd Factor):目標是強化現有的密碼系統。它以一個實體的安全金鑰(Security Key)作為第二驗證因子,來補強密碼的安全性,但它並非用來取代密碼。

開發者的痛點:分裂標準下的抉擇困境
這種「雙標準並行」的局面,意味著開發者和產品經理在設計登入流程時,必須做出取捨:是要追求極致的無密碼體驗(UAF),還是要強化現有廣大用戶的密碼安全(U2F)?這不僅增加了開發的複雜度,也造成了使用者體驗的碎片化。

User Authentication Specifications Overview
(圖片來源: FIDO Alliance)

為了解決這個問題,FIDO 聯盟與 W3C 攜手推出了 FIDO2,旨在整合兩者的優點,創造一種單一、強大且能交互操作的「信任通用語」。


FIDO2的核心組成:軟體與硬體的交響樂

https://ithelp.ithome.com.tw/upload/images/20250812/20151778qWfZvYH01M.png

FIDO2 的魔法在於它完美協調了軟體 API 與硬體通訊,就像一場交響樂,由 WebAuthn 擔任指揮,CTAP 負責與各個樂手(驗證器)溝通。

  1. WebAuthn (Web Authentication):身分驗證的「總指揮」

    • 它的角色:一個由 W3C 發布的標準化網頁 API
    • 它的職責:作為瀏覽器與我們網站後端(信賴方, Relying Party)之間的溝通橋樑。它讓網站能透過標準的 JavaScript 呼叫,向瀏覽器發出「註冊」或「登入」的高階指令。
    • 對開發者的意義:WebAuthn 是我們最直接的互動介面。我們不需要關心使用者究竟是用 Windows Hello、手機指紋還是實體金鑰,只需要學會如何「指揮」WebAuthn 即可。
  2. CTAP (Client to Authenticator Protocol):與硬體溝通的「外交官」

    • 它的角色:客戶端(如瀏覽器)與驗證器(如安全金鑰或手機)之間的通訊協定
    • 它的職責:它定義了瀏覽器該如何透過 USB、NFC 或藍牙 (BLE) 等方式,與各式各樣的驗證器「協商」,命令它們執行生成金鑰、進行簽章等精密操作。
    • 對開發者的意義:CTAP 的存在讓我們免於處理複雜的硬體驅動與通訊細節。正是因為有這位能言善道的外交官,WebAuthn 的指令才能被各種不同品牌、不同平台的驗證器正確理解並執行。

延伸思考:為何這不僅僅是「更好的密碼」?

FIDO2 帶來的並非改良,而是典範轉移 (Paradigm Shift)。它從根本上改變了伺服器與使用者之間的信任模型。

典範 傳統密碼 (共享秘密模型) FIDO (非對稱證明模型)
信任基礎 「你知道我們之間共享的秘密(密碼)嗎?」 「你能證明你擁有那把不為人知的私鑰嗎?」
伺服器角色 秘密的保管者 (Guardian of Secrets) 證明的驗證者 (Verifier of Proofs)
風險所在 中心化:伺服器資料庫一旦被攻破,所有秘密都將外洩。 分散式:私鑰儲存在個人裝置中,沒有中央資料庫可偷。
攻擊成本 低:駭客可攻擊單一伺服器,竊取數百萬份資料。 高:駭客必須針對每一個使用者的裝置單獨進行攻擊。

這個轉變的深遠意義在於,它將安全的重心從「保護一個容易被竊取的中央資料庫」轉移到了「驗證一個無法被偽造的分散式證明」。這正是 FIDO 能有效防禦網路釣魚和大規模資料外洩的核心原因。


動力來源:再次登場的公鑰密碼學

理解了上述的典範轉移後,公鑰密碼學的角色就顯而易見了。

  • 註冊時:你的手機或電腦在本地生成一對公私鑰。私鑰被鎖在硬體安全晶片中,永不離開裝置;公鑰則被傳送給網站伺服器儲存。
  • 登入時:伺服器傳送一個隨機「挑戰」。你的裝置會要求你進行生物辨識來解鎖私鑰,然後用私鑰對「挑戰」進行數位簽章,再將簽章結果傳回伺服器。
  • 驗證:伺服器使用當初儲存的公鑰,來驗證這個簽章是否有效。由於只有你的私鑰能產生這個簽章,驗證成功就意味著身分無誤。

這是一種**「無共享秘密 (No Shared Secret)」**的架構,從根本上杜絕了傳統密碼模式的風險。


結語:一張通往無密碼未來的作戰地圖

https://ithelp.ithome.com.tw/upload/images/20250812/20151778twTYK3rJjc.png
今天,我們不僅理解了 FIDO2 是由 WebAuthn(軟體 API)和 CTAP(硬體通訊)組成的標準,更重要的是,我們建立了一張清晰的技術作戰地圖,並認知到其背後的公鑰密碼學如何帶來根本性的安全典範轉移。

有了這張地圖,我們就不會在實作中迷失方向。

明天,我們將聚焦在地圖中離我們最近、也是開發者最需要掌握的部分——WebAuthn API,深入它的專有名詞、角色定義與資料結構,為我們接下來的後端 API 實作打下最堅實的基礎。


參考資料:

  1. FIDO 是什麼?無密碼時代的來臨/HENNGE Taiwan
  2. FIDO 認證是什麼?歡迎進入無密碼時代/Authme
  3. FIDO Alliance

上一篇
【Day 01 —資安的浪潮】從金管會最新規範,看 FIDO 如何成為零信任時代的『石中劍』
下一篇
【Day 03 —協議詳解】WebAuthn 的世界觀:讀懂規格書的第一步
系列文
『零信任』的革命:從 FIDO 協議到自動化部署,30天打造次世代身分認證系統9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言