什麼是WebAuthn、FIDO 是什麼?

西京刀客發表於2020-12-10

WebAuthn

https://webauthn.io/

身份安全|什麼是Webauthn?
參考URL: https://baijiahao.baidu.com/s?id=1667228882303147989

WebAuthn(Web 身份驗證)是由全球資訊網聯盟(W3C)釋出的 Web 標準。WebAuthn 是 FIDO 聯盟指導下的 FIDO2 專案的核心組成部分。該專案的目標是標準化使用者對基於 Web 的應用程式和服務的公鑰認證的介面。

WebAuthn全稱Web Authentication API 使用asymmetric (public-key) cryptography (不對稱加密)替代密碼或SMS文字在網站上註冊,驗證, second-factor authentication(雙因素驗證). 解決了phishing(釣魚), data breaches(資料破壞), SMS 文字攻擊,其他雙因素驗證等重大安全問題. 同時顯著提高易用性(因為使用者不必管理許多越來越複雜的密碼)。

WebAuthn支援的生物驗證方式包括:膝上型電腦的指紋識別和麵部識別、安卓裝置的指紋識別。追求高安全的使用者還可額外購買相容FIDO的實體安全金鑰,FIDO完整支援包括:指紋識別、面部識別、虹膜識別、聲音識別、實體金鑰(USB連線、藍芽連線、NFC連線),支援裝置系統包括:Windows 10、Linux、Mac OS、Android、iOS、智慧手錶等。

WebAuthn用公鑰證照代替了密碼,完成使用者的註冊和身份認證(登入)。它更像是現有身份認證的增強或補充。為了保證通訊資料安全,一般基於HTTPS(TLS)通訊。

Webauthn的架構實現

WebAuthn用公鑰證照代替了密碼,完成使用者的註冊和身份認證(登入)。它更像是現有身份認證的增強或補充。為了保證通訊資料安全,一般基於HTTPS(TLS)通訊。在這個過程中,有4個模組。

  • Server(服務端):
    它可以被認為一個依賴方(Relying Party),它會儲存使用者的公鑰並負責使用者的註冊、認證。

  • JavaScript(Js指令碼):
    呼叫瀏覽器API,與Server進行通訊,發起註冊或認證過程。

  • Browser(瀏覽器):
    需要包含WebAuthn的Credential Management API提供給js呼叫,還需要實現與認證模組進行通訊,由瀏覽器統一封裝硬體裝置的互動。

  • Authenticator(認證模組):
    它能夠建立、儲存、檢索身份憑證。它一般是個硬體裝置(智慧卡、USB,NFC等),也可能已經整合到了你的作業系統(比如Windows Hello,MacOS的Touch ID等)

Webauthn應用場景

Webauthn提供了一個安全的無密碼認證標準,徹底拋棄了密碼,並且統一由作業系統完成安全硬體裝置和生物特徵識別的整合及管理,瀏覽器呼叫作業系統進行提供的能力形成認證器, 應用開發者按標準與瀏覽整合即可完成FIDO認證,無需關心硬體裝置的相容和生物特徵的演算法,使得應用開發者整合FIDO認證拋棄密碼更加容易和安全。

場景一:整合Windows hello認證

Win10系統的Windows hello模組,本身可以整合人臉、指紋、pin碼等認證方式,在windows上執行的web應用註冊或認證時可以通過瀏覽器直接與windows hello整合獲取使用者身份憑證進行認證;

場景二:整合MacOS Touch ID認證

MacBook系統自帶Touch ID整合指紋認證,瀏覽器通過介面可以直接喚醒mac的Touch ID進行認證;支援Webauthn的web應用可以直接使用TouchID進行登入;

場景三:整合Android指紋認證

由於Android系統廠商的異構,不同手機廠商會有不同的人臉識別或指紋識別模組,通過Webauthn由系統層面封裝了與生物裝置對接,應用系統就無需關心Android系統的異構行,直接使用手機的生物認證登入;

場景四:整合iOS人臉認證

iPhone系統自帶Face ID整合人臉認證,瀏覽器通過介面可以直接喚醒Face ID進行認證;支援Webauthn的web應用可以直接使用Face ID進行登入;

場景五:使用YubiKey認證

YubiKey是一個外接的ukey儲存使用者私鑰來進行webauthn認證,其可以同時支援pc和移動app;pc模式下通過usb介面訪問,移動app模式下通過nfc訪問;

在這裡插入圖片描述

Webauthn存在的缺點

Webauthn依賴於瀏覽器與認證模組通訊,那麼必須使用最新的瀏覽方可支援。在無瀏覽器情況下如CS應用或移動APP無法簡便的使用;

Webauthn設計的目標是解決認證,使用者一旦通過認證,就可以訪問所有資源,在零信任架構中不能允許一次認證永久使用的場景存在。

FIDO (Fast Identity Online)線上快速身份驗證

FIDO 是什麼?
參考URL: https://www.zhihu.com/question/28233883

2018年4月,FIDO和W3C在基於Web的“強身份認證”(Stronger Authentication)上取得了重要突破。**通過標準Web API——WebAuthn,Web應用開發者可以輕鬆呼叫FIDO基於生物特徵、安全、快速的線上身份認證服務。**11月27日,FIDO聯盟和W3C在京聯合舉辦技術研討會,公開了其技術理念和細節。

FIDO聯盟是全球性的行業協作,致力於不依賴“共享祕密”解決傳統口令(password)給身份認證所帶來的弊端。隨著移動網際網路在中國的迅猛發展,FIDO生態在中國也在不斷壯大。目前,聯盟在中國的董事會成員包括:阿里巴巴、聯想、飛天誠信、以及台灣的神盾股份(Egis)。

基於公私鑰對的非對稱加密體系,只在本地的可信執行環境(TEE)中儲存使用者的生物特徵資訊,是FIDO相較於傳統身份認證方式的兩個重要不同點。

Web Authentication(https://www.w3.org/TR/webauthn/)由W3C和FIDO聯盟一起完成的標準制定,目前僅在Win10和安卓系統下,有三款主流瀏覽器Chrome、Edge、Firefox提供原生支援,可使用平臺認證器(即內建在PC上)或漫遊認證器(如手機,平板,智慧手錶等),通過WebAuthn介面呼叫FIDO服務,完成Web應用的強身份認證。當然,因為W3C標準的一般性,所以不只是瀏覽器,任何Web應用,如使用html5語言開發的手機app,都可以呼叫該介面。好處有兩點,一是通過WebAuthn介面Web應用的開發者可以更容易的以一個統一標準呼叫FIDO服務,二是讓FIDO2強身份認證能力支援的場景通過瀏覽器和Web應用得以延伸的更加廣泛。

參考

WebAuthn預覽 - 基於公鑰的免密認證登入
參考URL: https://blog.csdn.net/weixin_34381666/article/details/91435407

相關文章