資訊科普系列(7) — FIDO

曹仲辰
MODA IT
Published in
8 min readOct 20, 2023

FIDO(Fast IDentity Online) 是由FIDO聯盟訂定的一套網路識別標準,為了標準化客戶端和協議層身份驗證,確保登入流程中伺服器及終端裝置協定的安全性。幫助企業捨棄傳統密碼型態,轉向以無密碼驗證、零信任安全模型等架構的解決方案。

誰是FIDO聯盟

FIDO聯盟在2013年2月成立,該組織旨在解決強身份認證設備之間缺乏可互通性的問題,以及使用者面臨的設立、記憶多組使用者名稱和密碼的難題。聯盟透過制定開放的、可擴展的、可互通的協議,正在從本質上改變著身份認證,從而取代依賴密碼在線上服務中對用戶進行安全地身份認證。

How FIDO Works

FIDO包含三大要素:

  1. FIDO驗證伺服器
  2. FIDO用戶端
  3. 驗證器

註冊FIDO時,用戶的設備會創建一對新的密鑰。將私鑰保留在設備上,並將公鑰註冊到fido server。

來源/https://fidoalliance.org

登入是通過客戶設備通過簽署來自fido server的挑戰來證明對私鑰的擁有權。而設備的私鑰只有在本地被用戶解鎖後才能使用,解鎖的方式可能是生物特徵、PIN碼etc。

來源/FIDO Technical Webinar

FIDO認證標準

UAF(Universal Authentication Framework)

UAF採用無密碼和多因素驗證。使用者在註冊帳戶時,能夠在應用服務中註冊一個自己擁有的設備,並指定一種本機認證機制,如指紋、臉部辨識以及語音識別、輸入PIN碼等。

優點:高安全性,生物特徵存在本地不易竊取、可以推疊多種登入方法

缺點:硬體需要支援生物特徵辨識、生物特徵變化(口罩…)

來源/https://fidoalliance.org

U2F(Universal 2nd Factor)

U2F是物理安全密鑰的標準,指一個單獨的設備,它持有登錄你帳號所需密鑰,因此簡化並提升了2FA的安全性,因为不需要驅動或安裝軟體。

優點:認證快速、安全性強

缺點:硬體密鑰遺失,就無法登入了,只能重製登入憑證。

來源/https://fidoalliance.org

FIDO2

FIDO2 是由全球資訊網協會(W3C)的網路驗證規格(Web Authentication,WebAuthn)以及 FIDO 的客戶端至驗證器協定(Client-to-Authenticator Protocols,CTAP)所共同組成的。其允許用戶在本地設備上進行身份驗證,而不需要將身份驗證信息傳輸到遠端服務器。這有助於提高用戶隱私和數據安全。

來源/https://fidoalliance.org

WebAuthn

WebAuthn是用於Web的API,它提供了一种標準化的方式,允許網站與FIDO驗證器(如USB金鑰或手機)進行交互。WebAuthn同時支援CTAP1和CTAP2,比起FIDO1.0提供了更多的身份驗證選項。

請求瀏覽器建立新的憑證

來源/https://www.w3.org/TR/webauthn-1/#api

使用現有憑證執行身份驗證

來源/https://www.w3.org/TR/webauthn-1/#api

CTAP(Client-to-Authenticator Protocol)

CTAP定義了客户端設備與驗證器之間的溝通方式。 確保了設備可以安全地與AP互動,以進行本地身份驗證。

  1. CTAP1(U2F):等同FIDO1.0的U2F
  2. CTAP2:使用硬體金鑰或Mobile Authenticator app來實現無密碼及多因素驗證

PASSKEY

Passkeys 是基於FIDO2所提出的技術,Passkey打破FIDO2 / WebAuthn在每個裝置註冊一組金鑰的使用侷限,在註冊密鑰時,會將私鑰儲存到雲端密碼倉庫,像是iPhone可將Passkey存在iCloud Keychain,Android版Chrome將Passkey存在Google密碼管理員。這種登錄方法雖然大幅提高了方便性,但可能會造成同一組私鑰cross-device。

隱憂:在驗證裝置時如果是使用bluetooth BLE進行,bluetooth BLE的範圍可以超過200M,在未來可能會有有心人士蒐集附近的密碼要求來追蹤手機資訊。

驗證級別

身份驗證器必須至少獲得認證等級 1 (L1)才能進行 UAF、U2F 和 FIDO2 認證。這些級別是相互建立的,因此L2包括了L1的所有要求,並增加了L2的附加要求,以此類推。

來源/https://fidoalliance.org
來源/https://fidoalliance.org

L1:能夠實現FIDO2,UAF或U2F標準的所有軟體或硬體身份驗證裝置,可保護使用者避免受到網絡釣魚、伺服器破壞和中間人攻擊。

L1+:身份驗證器與 L1 身份驗證器類似,但採用白箱加密技術

L2:增加額外防護來保護安全密鑰,避免受到更高級的攻擊。身份驗證器需要符合 FIDO 允許的受限的操作環境和允許的加密清單中包含的解決方案,作為身份驗證器安全要求的一部分。

L3:增強FIDO認證器對軟體和硬體攻擊的防護。防止物理更改或被駭客操控硬體設備,如被攻擊也會顯示痕跡。

L3+:需要提供對抗中等或高難度的軟體和硬體攻擊的更高程度的防護。應阻止攻擊者在數週至數月內使用高級專業電子實驗室設備在晶片級進行成功的攻擊(例如IC封裝打開/解封,攻擊設備可以直接作用於矽晶片)。

fido認證產品

https://fidoalliance.org/certification/fido-certified-products/

參考資料

--

--