本週,我們完成了專案的第一階段:技術理論研究與系統設計。此階段的目標是為後續的開發工作奠定堅實的基礎,確保所有團隊成員對核心協議、系統架構及安全模型有深入且一致的理解。
我們從「零信任 (Zero Trust)」的資安原則出發,確立了採用 FIDO/WebAuthn 作為核心認證機制的技術選型。在此基礎上,我們完成了以下關鍵工作:
users
與 credentials
集合的詳細 Schema。本文旨在對第一週的技術成果進行系統性回顧與整理,作為進入第二階段(後端實作)前的最終校驗點。
以下是每日進度的技術要點摘要:
Day 01: 需求與動機
Day 02: 核心技術棧
Day 03: 協議參與者與流程
Day 04: 註冊流程 (Attestation) 深度解析
PublicKeyCredentialCreationOptions
物件,其中包含用於防止重放攻擊的 challenge
。AuthenticatorAttestationResponse
後,後端必須嚴格驗證 clientDataJSON
中的 challenge
、origin
,以及 authData
中的 rpIdHash
等多個欄位,以確保請求的完整性與合法性。Day 05: 驗證流程 (Assertion) 深度解析
PublicKeyCredentialRequestOptions
物件。AuthenticatorAssertionResponse
後,使用預存的公鑰驗證簽章。關鍵步驟是驗證簽章計數器 (signCount),必須確保新的計數值大於資料庫中記錄的值,以防禦憑證複製和重放攻擊。Day 06: 系統設計規格
為釐清各技術概念間的關係,可透過以下分層模型進行理解:
第一週結束時,我們已產出一份完整且經過審查的系統設計規格。所有後續開發工作都將以此為依據,確保了專案方向的明確性與技術可行性。
下一階段(第二週)的目標是後端服務的實現。我們將進入開發週期,主要任務如下:
下週的工作將是將設計文檔轉化為實際、可運行的程式碼。