iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
Security

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

【Day 01 —資安的浪潮】從金管會最新規範,看 FIDO 如何成為零信任時代的『石中劍』

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250807/20151778wQmhdNfxE5.png

身為軟體開發者,我們總是追逐著一波又一波的技術浪潮,而最近在臺灣科技圈,有個關鍵字正逐漸受到重視:FIDO。如果你還沒參與到「零信任 (Zero Trust)」這股巨浪,如果你也一樣厭倦了管理那一大堆複雜又容易被盜走的密碼,那這絕對是你需要關注的趨勢前沿。

臺灣金管會在 2024 年 7 月正式發布了金融業導入零信任架構參考指引,為國內金融業導入零信任架構定下了明確的技術路標。而在今年 5 月的臺灣資安大會上,金管會更加強調未來將持續推動零信任網路架構,來應對規模越來越大的資安威脅。在數據資產帶來巨大價值、AI 應用全面滲透的新時代,過去那套「相信內網、防禦外網」的模式已逐漸失效。

零信任的核心思想很簡單:「永不信任,一律驗證 (Never Trust, Always Verify)」。

在這個模型下沒有所謂的「安全內網」,每一次的存取請求,都必須經過嚴格的身份驗證與授權。這使得「你是誰?」以及「你如何證明你是誰?」這兩個問題,成為了整個資安革命的基石。

FIDO 不是新產品,而是重塑安全信任的身分驗證架構。

FIDO (Fast Identity Online) 並非一家公司或一個產品,而是一個由 Google、Apple、Microsoft 等科技巨擘共同背書的開放技術標準。它的背後的運作方式就是非對稱式加密(Public-Key Cryptography)。

我們是如何走到這一步的?從密碼到無密碼的信任革命-

https://ithelp.ithome.com.tw/upload/images/20250811/20151778Kcsx8exWnC.png
在我們更進一步深入 FIDO 的系統架構之前,有必要先理解過去的技術為了解決在用戶體驗和安全性之間的平衡,做出了哪些努力,以及它們各自的作用:

1. 傳統身分驗證的「補丁」:雙重認證 (2FA/MFA)

這是應對密碼驗證脆弱性的第一代方案,核心是在「你知道什麼(密碼)」之外,增加「你擁有什麼(如手機)」作為第二個驗證因子,包括簡訊 OTP 或 Google Authenticator 這類的 TOTP。但關鍵的缺陷在於,它傳遞的「動態密碼」本身仍是一種短暫的「共享秘密」,可以被一個設計精良的釣魚網站即時攔截並利用,這種攻擊被稱為「中間人攻擊」。

2. 職責不同:「授權」的數位管家 OAuth 2.0

最容易讓人混淆的概念是 OAuth 2.0 的核心目的不是「驗證」(你是誰),而是「授權」(你授權這個 App 能做什麼、取得什麼資訊)。最直白的比喻是飯店房卡:你在櫃檯(FaceBook、Google)出示證件 check-in(登入驗證),櫃檯發給你一張只能在特定時間開特定房門的卡片(App 授權)。OAuth 2.0 處理「授權」的發放與管理,而 FIDO 則可以完美取代「出示證件」的身分驗證環節。

3. 真正的革命:FIDO (Fast Identity Online)

  • 註冊(Registration):當使用者在一個服務上註冊 FIDO 憑證時,他的裝置(手機或電腦)會在本地產生一對公私鑰。私鑰(Private Key)會被儲存在像手機的 Secure Enclave 或是電腦的 TPM 這類硬體安全晶片中,鎖在使用者的裝置裡永遠不會被曝光。而公鑰(Public Key)則會被傳送到網站的伺服器儲存。
  • 驗證(Authentication):當使用者登入服務時,伺服器會傳送一個「挑戰(Challenge)」給使用者的裝置。裝置會要求使用者進行生物辨識(指紋、臉部)或插入硬體金鑰來解鎖私鑰,然後用私鑰對「挑戰」進行數位簽章,再將簽章後的結果傳回伺服器。伺服器只需用公鑰來驗證這個簽章是否有效,成功即可登入。

FIDO 從協議層面就避免了釣魚攻擊,註冊時的金鑰綁定了網站的域名 (Origin),任何來自假冒網站的挑戰都會被驗證裝置拒絕簽章。

https://ithelp.ithome.com.tw/upload/images/20250811/2015177817zI4IYRC2.jpg

下表總結了這些技術的關鍵差異:

特性 傳統密碼 雙重認證 (MFA/2FA) OAuth 2.0 FIDO
主要目的 認證 (Authentication) 增強認證 授權 (Authorization) 無密碼認證
安全性基礎 共享秘密 共享秘密 + 雙重因子 Token 傳遞訊息 公鑰密碼學 (非對稱加密)
防釣魚能力 脆弱 較弱 (可被中間人攻擊) 不直接相關,取決於認證方式 極強 (硬體層級防護)
使用者體驗 需記憶/管理密碼 較繁瑣 (需輸入驗證碼) (對終端使用者)流暢 極度流暢 (指紋/臉部辨識)
核心問題 秘密容易洩漏 仍有可被攔截的秘密 解決「授權」而非「認證」 私鑰不離設備,無共享秘密

FIDO 不是對密碼系統的改良,而是從根本上的顛覆。這也是為什麼金管會推動的「金融 Fast-ID」架構正在以極快的速度在臺灣落地。

過去,你想在 A 銀行和 B 銀行都使用臉部辨識登入,你需要在兩家銀行的 App 中分別註冊。但金融 Fast-ID透過財金公司建立了一個「驗證轉接中心」。這就像一個身分驗證的路由器,使用者只要在任何一家參與的金融機構完成一次 Fast-ID 的註冊,就能授權在其他合作機構中直接使用,無需重複設定。

我的技術選型與參賽初衷-

https://ithelp.ithome.com.tw/upload/images/20250811/20151778DdegOoKSFe.png

零信任時代的革命浪潮不是「即將到來」而是「正在發生」。

本系列不僅是一個教學示範,我更希望它是一個能體現現代化軟體架構思維的「生產級藍圖」。透過一套高擴展、高效能的技術組合,一步步帶領大家建構出實現零信任精神、使用體驗流暢的次世代無密碼身份驗證系統

1. 核心協議:FIDO / WebAuthn

  • 我們直接挑戰由 FIDO 聯盟與 W3C 共同制定的 WebAuthn 國際標準。接下來一起建構的系統將具備最高的相容性,能夠無縫接軌所有主流瀏覽器與作業系統。實作上將深入探討協議層,而不僅僅是調用開源 SDK。

2. 行動端技術:Flutter

  • Flutter 其編譯至原生程式碼的特性,相比傳統 WebView 封裝,能更有效隔離潛在的攻擊。更重要的是其強大的 MethodChannel 機制,提供我們能快速、安全地橋接呼叫 Android 與 iOS 底層系統提供的原生 FIDO API (如 Passkey)。

3. 後端即服務(BaaS):Firebase

  • Firebase Auth 提供了可靠的使用者生命週期管理;Firestore 擁有的安全規則,讓我們能為每個 API 端點實現精細的存取控制。而伺服器的推播認證 (Push Authentication),將基於 Firebase Cloud Messaging (FCM) 實作一個無伺服器 (Serverless)的訊息通道。

未來 30 天的冒險藍圖-

這趟旅程將分為四個階段(Phase),從核心理論的探討,一路延伸到技術的實作:

  • 階段一:奠定『無密碼驗證』的信任基石 (Day 01-07)
    徹底剖析 FIDO 與 WebAuthn 的密碼學原理,理解「為什麼私鑰簽章比密碼雜湊更安全?」。
  • 階段二:後端 FIDO API 的建立 (Day 08-14)
    從零開始,使用 Firebase Functions 實作符合 FIDO2 Server 標準的後端 API。
  • 階段三:打造無縫的『使用者體驗』 (Day 15-25)
    同步開發 Web 前端與 Flutter App,並實現「無密碼推播認證」流程的無縫體驗。
  • 階段四:自動化維運與未來展望 (Day 26-30)
    探討如何透過 Docker 容器化我們的服務,並利用 GitHub Actions 建立 CI/CD Pipeline,實現多環境的自動化部署。

啟程-

以上就是我們未來 30 天的開發路線圖。這將會是非常硬核但成就感滿滿的一次挑戰!

如果你跟我一樣準備好告別輸入密碼的時代,想深入瞭解次世代身份認證的核心
那麼歡迎你追蹤我一起開始這段旅程,並在留言區分享你的想法讓我知道!


下一篇
【Day 02 — FIDO 生態系】解構 FIDO2:WebAuthn、CTAP 與公鑰密碼學的交響樂
系列文
『零信任』的革命:從 FIDO 協議到自動化部署,30天打造次世代身分認證系統9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
打雜工
iT邦研究生 1 級 ‧ 2025-08-27 16:19:03

有興趣...期待連載

歡迎追蹤~我會努力分享到完賽的!

我要留言

立即登入留言