真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Webauthn如何實(shí)現(xiàn)瀏覽器無(wú)密碼登錄

今天就跟大家聊聊有關(guān)Webauthn如何實(shí)現(xiàn)瀏覽器無(wú)密碼登錄,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括隰縣網(wǎng)站建設(shè)、隰縣網(wǎng)站制作、隰縣網(wǎng)頁(yè)制作以及隰縣網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,隰縣網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到隰縣省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

1. 什么是Webauthn

WebAuthn(Web 身份驗(yàn)證)是由萬(wàn)維網(wǎng)聯(lián)盟(W3C)發(fā)布的 Web 標(biāo)準(zhǔn)。WebAuthn 是 FIDO 聯(lián)盟指導(dǎo)下的 FIDO2 項(xiàng)目的核心組成部分。該項(xiàng)目的目標(biāo)是標(biāo)準(zhǔn)化用戶對(duì)基于 Web 的應(yīng)用程序和服務(wù)的公鑰認(rèn)證的接口。

WebAuthn全稱(chēng)Web Authentication API 使用asymmetric (public-key) cryptography (不對(duì)稱(chēng)加密)替代密碼或SMS文本在網(wǎng)站上注冊(cè),驗(yàn)證, second-factor authentication(雙因素驗(yàn)證). 解決了phishing(釣魚(yú)), data breaches(數(shù)據(jù)破壞), SMS 文本攻擊,其它雙因素驗(yàn)證等重大安全問(wèn)題. 同時(shí)顯著提高易用性(因?yàn)橛脩舨槐毓芾碓S多越來(lái)越復(fù)雜的密碼).

WebAuthn支持的生物驗(yàn)證方式包括:筆記本電腦的指紋識(shí)別和面部識(shí)別、安卓設(shè)備的指紋識(shí)別。追求高安全的用戶還可額外購(gòu)買(mǎi)兼容FIDO的實(shí)體安全密鑰,F(xiàn)IDO完整支持包括:指紋識(shí)別、面部識(shí)別、虹膜識(shí)別、聲音識(shí)別、實(shí)體密鑰(USB連接、藍(lán)牙連接、NFC連接),支持設(shè)備系統(tǒng)包括:Windows 10、Linux、Mac OS、Android、iOS、智能手表等。

Webauthn如何實(shí)現(xiàn)瀏覽器無(wú)密碼登錄

支持系統(tǒng)和瀏覽器包括:

Windows:Edge,F(xiàn)irefox,Chrome
Linux  :Firefox,Chrome
MacOS  :Safari,F(xiàn)irefox,Chrome
Android:Firefox,Chrome
iOS    :Brave,F(xiàn)irefox,Chrome

Windows上的Microsoft Edge,使用Windows Hello(帶面部識(shí)別,指紋識(shí)別器或PIN)
MacOS上的Chrome使用Touch ID指紋識(shí)別器
Android上的Chrome,使用指紋識(shí)別器

2. Webauthn的架構(gòu)實(shí)現(xiàn)

WebAuthn用公鑰證書(shū)代替了密碼,完成用戶的注冊(cè)和身份認(rèn)證(登錄)。它更像是現(xiàn)有身份認(rèn)證的增強(qiáng)或補(bǔ)充。為了保證通信數(shù)據(jù)安全,一般基于HTTPS(TLS)通信。在這個(gè)過(guò)程中,有4個(gè)模塊。

Server(服務(wù)端):

它可以被認(rèn)為一個(gè)依賴(lài)方(Relying Party),它會(huì)存儲(chǔ)用戶的公鑰并負(fù)責(zé)用戶的注冊(cè)、認(rèn)證。

JavaScript(Js腳本):

調(diào)用瀏覽器API,與Server進(jìn)行通信,發(fā)起注冊(cè)或認(rèn)證過(guò)程。

Browser(瀏覽器):

需要包含WebAuthn的Credential Management API提供給js調(diào)用,還需要實(shí)現(xiàn)與認(rèn)證模塊進(jìn)行通信,由瀏覽器統(tǒng)一封裝硬件設(shè)備的交互。

Authenticator(認(rèn)證模塊):

它能夠創(chuàng)建、存儲(chǔ)、檢索身份憑證。它一般是個(gè)硬件設(shè)備(智能卡、USB,NFC等),也可能已經(jīng)集成到了你的操作系統(tǒng)(比如Windows Hello,MacOS的Touch ID等)

注冊(cè)流程

Webauthn如何實(shí)現(xiàn)瀏覽器無(wú)密碼登錄

1)應(yīng)用請(qǐng)求注冊(cè)

應(yīng)用程序發(fā)出注冊(cè)請(qǐng)求,服務(wù)端提供api由前端js調(diào)用發(fā)起注冊(cè)請(qǐng)求;

2)服務(wù)端返回注冊(cè)數(shù)據(jù)

服務(wù)器將挑戰(zhàn)碼、用戶信息和依賴(lài)方信息發(fā)送回應(yīng)用程序。

challenge:挑戰(zhàn)碼必須是隨機(jī)的 buffer(至少 16 字節(jié)),并且必須在服務(wù)器上生成以確保安全。

user info:用戶信息,服務(wù)端需要知道當(dāng)前誰(shuí)來(lái)注冊(cè),正常應(yīng)用場(chǎng)景中,第一步需要在其他輔助認(rèn)證的情況下獲取當(dāng)前合法用戶信息,比如第一步傳輸靜態(tài)用戶名密碼來(lái)做一次校驗(yàn),服務(wù)器認(rèn)可當(dāng)前是一個(gè)合法用戶請(qǐng)求注冊(cè);

relying party info:服務(wù)端上下文,包含AuthenticatorAttestationResponse 的 PublicKeyCredential

3)瀏覽器調(diào)用認(rèn)證器

請(qǐng)求認(rèn)證器創(chuàng)建認(rèn)證證書(shū),瀏覽器生成客戶端數(shù)據(jù)(clientData)生成clientDataHash(由挑戰(zhàn)碼,服務(wù)端上下文 的 SHA-256 哈希)傳輸給認(rèn)證器;

4)認(rèn)證器創(chuàng)建密鑰對(duì)

認(rèn)證器通常會(huì)以某種形式要求用戶確認(rèn)密鑰器的所屬,如輸入 PIN,使用指紋,進(jìn)行虹膜掃描等,以證明用戶在場(chǎng)并同意注冊(cè)。驗(yàn)證通過(guò)后,認(rèn)證器將創(chuàng)建一個(gè)新的非對(duì)稱(chēng)密鑰對(duì),并安全地存儲(chǔ)私鑰以供將來(lái)驗(yàn)證使用。公鑰則將成為證明的一部分,被在制作過(guò)程中燒錄于認(rèn)證器內(nèi)的私鑰進(jìn)行簽名。這個(gè)私鑰會(huì)具有可以被驗(yàn)證的證書(shū)鏈。

5)認(rèn)證器數(shù)據(jù)返回瀏覽器

返回?cái)?shù)據(jù)包括新的公鑰、全局唯一的憑證ID和認(rèn)證憑證數(shù)據(jù)(Attestation object l包含F(xiàn)IDO的元數(shù)據(jù))會(huì)被返回到瀏覽器。

6)瀏覽器打包數(shù)據(jù),發(fā)送到服務(wù)端

包含公鑰,全局唯一的憑證ID、認(rèn)證憑證數(shù)據(jù)、客戶端數(shù)據(jù)(clientData);其中認(rèn)證憑證數(shù)據(jù)包含了clientDataHash,可以確定當(dāng)前生成的公鑰是分配給當(dāng)前請(qǐng)求注冊(cè)的用戶。

7)服務(wù)端完成注冊(cè)

收到客戶端發(fā)送的注冊(cè)請(qǐng)求,服務(wù)器需要執(zhí)行一系列檢查以確保注冊(cè)完成且數(shù)據(jù)未被篡改。步驟包括:

a.驗(yàn)證接收到的挑戰(zhàn)與發(fā)送的挑戰(zhàn)相同b.確保 origin 與預(yù)期的一致c.使用對(duì)應(yīng)認(rèn)證器型號(hào)的證書(shū)鏈驗(yàn)證 clientDataHash 的簽名和驗(yàn)簽

驗(yàn)證步驟的完整列表可以在 WebAuthn 規(guī)范中找到。一旦驗(yàn)證成功,服務(wù)器將會(huì)把新的公鑰與用戶帳戶相關(guān)聯(lián)以供將來(lái)用戶希望使用公鑰進(jìn)行身份驗(yàn)證時(shí)使用。

認(rèn)證流程

Webauthn如何實(shí)現(xiàn)瀏覽器無(wú)密碼登錄

1)應(yīng)用請(qǐng)求認(rèn)證

應(yīng)用程序發(fā)出注冊(cè)請(qǐng)求,服務(wù)端提供api由前端js調(diào)用發(fā)起注冊(cè)請(qǐng)求;

2)服務(wù)端返回挑戰(zhàn)碼

挑戰(zhàn)碼必須是隨機(jī)信息(例如超過(guò)100字節(jié))的大緩沖區(qū),并且必須在服務(wù)器上生成挑戰(zhàn)碼,以確保身份驗(yàn)證過(guò)程的安全。

3)瀏覽器調(diào)用認(rèn)證器

瀏覽器生成客戶端數(shù)據(jù)(clientData)生成clientDataHash(由挑戰(zhàn)碼,服務(wù)端上下文 的 SHA-256 哈希)傳輸給認(rèn)證器。

4)認(rèn)證器創(chuàng)建斷言

認(rèn)證器提示用戶進(jìn)行身份認(rèn)證(如輸入 PIN,使用指紋,進(jìn)行虹膜掃描等),并通過(guò)在注冊(cè)時(shí)保存的私鑰對(duì)clientDataHash和認(rèn)證數(shù)據(jù)進(jìn)行簽名創(chuàng)建斷言。

5)認(rèn)證器數(shù)據(jù)返回瀏覽器

返回認(rèn)證數(shù)據(jù)和簽名到瀏覽器。

6)瀏覽器打包數(shù)據(jù),發(fā)送到服務(wù)端

包含客戶端數(shù)據(jù)(clientData)、認(rèn)證數(shù)據(jù)和簽名到瀏覽器。

7)服務(wù)端完成注冊(cè)

收到瀏覽器發(fā)送的認(rèn)證請(qǐng)求,服務(wù)器需要執(zhí)行一系列檢查以確保認(rèn)證完成且數(shù)據(jù)未被篡改,步驟包括:

a.使用注冊(cè)請(qǐng)求期間存儲(chǔ)的公鑰驗(yàn)證身份驗(yàn)證者的簽名。b.確保由身份驗(yàn)證程序簽名的挑戰(zhàn)碼與服務(wù)器生成的挑戰(zhàn)碼匹配。c.檢查賬號(hào)信息,是否是服務(wù)端的存在的賬號(hào)。

在WebAuthn規(guī)范中可以找到驗(yàn)證斷言的完整步驟列表。假設(shè)驗(yàn)證成功,服務(wù)器將注意到用戶現(xiàn)在已通過(guò)身份驗(yàn)證。這超出了WebAuthn規(guī)范的范圍,但有一個(gè)選項(xiàng)是為用戶會(huì)話刪除一個(gè)新的cookie。

3. Webauthn的應(yīng)用場(chǎng)景

Webauthn提供了一個(gè)安全的無(wú)密碼認(rèn)證標(biāo)準(zhǔn),徹底拋棄了密碼,并且統(tǒng)一由操作系統(tǒng)完成安全硬件設(shè)備和生物特征識(shí)別的集成及管理,瀏覽器調(diào)用操作系統(tǒng)進(jìn)行提供的能力形成認(rèn)證器,應(yīng)用開(kāi)發(fā)者按標(biāo)準(zhǔn)與瀏覽集成即可完成FIDO認(rèn)證,無(wú)需關(guān)心硬件設(shè)備的兼容和生物特征的算法,使得應(yīng)用開(kāi)發(fā)者集成FIDO認(rèn)證拋棄密碼更加容易和安全。

場(chǎng)景一:集成Windows hello認(rèn)證

Win10系統(tǒng)的Windows hello模塊,本身可以集成人臉、指紋、pin碼等認(rèn)證方式,在windows上運(yùn)行的web應(yīng)用注冊(cè)或認(rèn)證時(shí)可以通過(guò)瀏覽器直接與windows hello集成獲取用戶身份憑證進(jìn)行認(rèn)證;

場(chǎng)景二:集成MacOS Touch ID認(rèn)證

MacBook系統(tǒng)自帶Touch ID集成指紋認(rèn)證,瀏覽器通過(guò)接口可以直接喚醒mac的Touch ID進(jìn)行認(rèn)證;支持Webauthn的web應(yīng)用可以直接使用TouchID進(jìn)行登錄;

場(chǎng)景三:集成Android指紋認(rèn)證

由于Android系統(tǒng)廠商的異構(gòu),不同手機(jī)廠商會(huì)有不同的人臉識(shí)別或指紋識(shí)別模塊,通過(guò)Webauthn由系統(tǒng)層面封裝了與生物設(shè)備對(duì)接,應(yīng)用系統(tǒng)就無(wú)需關(guān)心Android系統(tǒng)的異構(gòu)行,直接使用手機(jī)的生物認(rèn)證登錄;

場(chǎng)景四:集成iOS人臉認(rèn)證

iPhone系統(tǒng)自帶Face ID集成人臉認(rèn)證,瀏覽器通過(guò)接口可以直接喚醒Face ID進(jìn)行認(rèn)證;支持Webauthn的web應(yīng)用可以直接使用Face ID進(jìn)行登錄;

場(chǎng)景五:使用YubiKey認(rèn)證

Webauthn如何實(shí)現(xiàn)瀏覽器無(wú)密碼登錄

YubiKey是一個(gè)外置的ukey存儲(chǔ)用戶私鑰來(lái)進(jìn)行webauthn認(rèn)證,其可以同時(shí)支持pc和移動(dòng)app;pc模式下通過(guò)usb接口訪問(wèn),移動(dòng)app模式下通過(guò)nfc訪問(wèn);

4.Webauthn存在的缺點(diǎn)

Webauthn依賴(lài)于瀏覽器與認(rèn)證模塊通訊,那么必須使用最新的瀏覽方可支持。在無(wú)瀏覽器情況下如CS應(yīng)用或移動(dòng)APP無(wú)法簡(jiǎn)便的使用;

Webauthn設(shè)計(jì)的目標(biāo)是解決認(rèn)證,用戶一旦通過(guò)認(rèn)證,就可以訪問(wèn)所有資源,在零信任架構(gòu)中不能允許一次認(rèn)證永久使用的場(chǎng)景存在;

看完上述內(nèi)容,你們對(duì)Webauthn如何實(shí)現(xiàn)瀏覽器無(wú)密碼登錄有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


標(biāo)題名稱(chēng):Webauthn如何實(shí)現(xiàn)瀏覽器無(wú)密碼登錄
網(wǎng)頁(yè)網(wǎng)址:http://weahome.cn/article/gidesc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部