在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

向Web應用程序添加強大的生物識別身份驗證

汽車電子技術 ? 來源:Dan Moore ? 作者: Dan Moore ? 2022-12-08 15:16 ? 次閱讀

生物識別身份驗證允許您使用指紋或面部識別對軟件系統進行身份驗證,已經存在了一段時間。2003年,IBM Thinkpads有一個指紋讀取器,可以讓你登錄到你的電腦。2013年,蘋果在iPhone 5S上安裝了指紋掃描儀,盡管還有其他手機首先安裝了它(你好摩托羅拉Atrix!)。

但是,直到最近,Web應用程序才可以輕松使用生物識別身份驗證。

新的 Web 瀏覽器 API 使您可以輕松地向 Web 應用程序添加強大的生物識別身份驗證。

什么是生物識別身份驗證

首先,讓我們談談一般的身份驗證。生物識別身份驗證是任何身份驗證方法的總稱,它取決于用戶的物理屬性,例如指紋、面部或語音。

有三種類型的身份驗證:

您知道的東西,例如密碼

您擁有的東西,例如設備

你是什么,比如指紋

與其他選項相比,生物識別身份驗證具有顯著優勢:

很難失去

很難偷

無法共享

你不能忘記它

讓用戶使用其生物識別進行身份驗證具有顯著的安全性和便利性優勢。根據“iPhone和Android上的生物識別身份驗證”:

可用性,感知和對采用的影響,“2015年發表的一篇論文,”......參與者發現Android面部解鎖和iPhone指紋解鎖在許多常見的使用場景中都易于使用。就其本質而言,生物識別方法比基于知識的身份驗證方法(如密碼)更難獲得。

您也不必單獨使用生物識別身份驗證。當與其他身份驗證方法(如密碼或魔術鏈接)結合使用時,生物識別身份驗證可以提供額外的安全性,而不會增加用戶體驗的摩擦。

如何向 Web 應用添加生物識別功能

向 Web 應用程序添加生物識別身份驗證的最簡單方法是使用名為WebAuhn 的標準。每個主要瀏覽器都支持此功能(除了IE,對不起IE用戶!),并將友好的JavaScript API鏈接到各種基于硬件的身份驗證方法,包括桌面和移動操作系統支持的生物識別選項。

大多數Web瀏覽器都支持WebAuthn。

要添加基于 WebAuthn 的強身份驗證(包括生物識別選項),請執行以下高級步驟:

檢查是否支持使用 JavaScript API 測試 WebAuthn 來測試當前瀏覽器。

提示用戶添加生物識別身份驗證方法

將方法與帳戶關聯

下次登錄時,以某種方式識別用戶

在添加方法時設置 cookie

詢問他們的用戶名

當您知道他們是誰時,提示 WebAuthn 登錄

生物識別身份驗證器(手機或操作系統)將發出身份驗證質詢

用戶通過提供指紋或任何需要的生物識別證明來回答它

您的 JavaScript 接收并解釋來自瀏覽器的消息

如果消息指示身份驗證成功,請登錄用戶

實際代碼非常簡單。

若要確認瀏覽器是否支持 WebAuthn,請運行以下代碼:

if (window.PublicKeyCredential) {
  // do your webauthn stuff
} else {
  // wah-wah, back to passwords for you
}

然后,要添加生物識別身份驗證方法,請調用此 JavaScript 方法:

navigator.credentials.create(options);

要提示生物識別登錄,請使用以下 JavaScript:

navigator.credentials.get(options);

對象至關重要,包括有關所請求憑據類型的信息、防止重放攻擊的隨機數以及有關請求網站的信息。規范中涵蓋了完整的詳細信息,但我們也將在下面詳細介紹該對象。optionsoptions

我們有標準

值得了解的是,允許Web應用程序利用用戶手機的TouchID系統之類的東西進行登錄的標準。您應該了解三個主要標準:

WebAuthn,如前所述

CTAP2

菲多2

WebAuthn 也稱為 Web 身份驗證 API。這是上面提到的標準,作為Web開發人員,您將與之交互的主要標準。此 API 允許您與瀏覽器(如 Chrome 或 Safari)通信,以請求生物識別和其他身份驗證方式。

第二個是CTAP2,它規定了瀏覽器如何與所謂的身份驗證器交互。身份驗證器是使用加密確定性對用戶進行身份驗證的硬件。在生物識別方案中,這可能是 iOS 設備或 Windows Hello。一般來說,作為Web開發人員,您不會關心此標準,因為瀏覽器將您與它隔離開來,但值得知道它是混合的。

如果您對WebAuthn和CTAP2如何交互感到困惑,這里有一個圖表。在此圖中,用戶是笑臉,橙色框是TouchID或Android指紋傳感器等身份驗證器,白色地球是瀏覽器,藍色框是網站。

WebAuthn 協議涉及瀏覽器到網站的通信,CTAP2 協議解決瀏覽器和身份驗證器之間的通信。

最后,最后但并非最不重要的一點是,FIDO2 是傘形標準。FIDO2包括CTAP2和WebAuthn。(CTAP1 是 CTAP 的第一個版本,支持向后兼容。

什么是身份驗證器?

身份驗證器是實際執行生物識別或其他形式的身份驗證的器。雖然本文重點介紹生物識別身份驗證,但身份驗證器提供了其他方法來對用戶進行身份驗證。每個身份驗證器的核心是一種生成和存儲公鑰/私鑰對的方法。公鑰與 Web 應用程序共享,私鑰由身份驗證器安全保存。

身份驗證器可以在硬件或軟件中實現,但建議僅將軟件身份驗證器(例如Chrome DevTools 中提供的身份驗證器)用于測試,而不建議用于生產用途。

身份驗證器主要分為兩類,跨平臺和平臺。跨平臺身份驗證器可以在多個設備上使用。平臺身份驗證器綁定到特定設備,例如電話。大多數以消費者為中心的生物識別身份驗證器都集成到iOS,Android或Windows等操作系統中。這意味著它們綁定到給定設備,因此是平臺身份驗證器。

身份驗證器的另一個重要方面是它們是測試用戶狀態還是用戶驗證。用戶狀態僅表示某人可能通過單擊按鈕與身份驗證器進行了交互(此交互稱為“授權手勢”)。如果在多重身份驗證過程中使用身份驗證器,則此類狀態測試非常有用。

另一方面,用戶驗證可以保證進行身份驗證的用戶實際上是我們認為的用戶。這可以通過提供他們知道的東西來完成,或者在生物識別情況下,使用用戶的屬性,例如他們的臉的尺寸。在大多數情況下,您會對用戶驗證感興趣,這是常見的生物識別身份驗證器提供的功能。

選擇,選擇

由于 WebAuthn API 的抽象,您無法確定用戶是否通過生物識別進行身份驗證。你可以采取某些措施來鼓勵它,但你不能強迫它。

但是,與流行操作系統綁定的生物識別身份驗證是WebAuthn兼容硬件的一種非常普遍的形式,因此,如果您鼓勵用戶設置WebAuthn登錄,他們很可能會使用生物識別技術。您也可以通過網站上的消息傳遞來鼓勵這樣做。

即使他們不使用生物識別技術,如果您使用 WebAuthn,您也可以放心,他們將使用安全的硬件解決方案來滿足他們的身份驗證需求。

如果 WebAuthn 身份驗證成功,您將不知道使用了什么方法。您可以控制的內容:

如果您希望使用跨平臺或平臺身份驗證器。

請求用戶狀態或用戶驗證。

接下來,讓我們更深入地了解使用支持 WebAuthn 的生物識別方法登錄的用戶的流程。

什么是“儀式”?

如果你讀過關于WebAuhn的文章,你可能會聽到“儀式”這個詞。在WebAuthn的上下文中,儀式是軟件,硬件和物理實體(如人類或設備)之間的規定交互。您可以將儀式視為擴展到物理世界的網絡協議。

WebAuthn 中定義了兩種類型的儀式,生物識別身份驗證都需要這兩種儀式才能與您的 Web 應用程序配合使用。

注冊

第一個儀式是注冊,身份驗證器在您的網站上注冊。同樣,您的網站已向身份驗證器注冊。注冊的最終結果是一個證書,用于以后的儀式。

要注冊身份驗證器,請使用以下代碼:

navigator.credentials.create(options);

如上所述,讓我們更詳細地了解這一點。對象如下所示:options

options =  {
  publicKey: {
	rp: { id: "cosmosclownstore.com",
      	name: "Cosmo’s Clown Store" },
	user: { id: "1234",
        	name: "krusty@example.com",
        	displayName: "Krusty The Clown" },
	challenge: "...",
	pubKeyCredParams: [ { type: "public-key", alg: -7 }],
            authenticatorSelection: {}
	//...
  }
}

讓我們更詳細地看一下這個對象。options

首先,該字段包含有關 Web 應用程序的數據。WebAuthn 包括內置的安全約束,例如:rp

要求所有 API 調用都從 HTTPS 提供的頁面進行。

強制注冊時網站的標識符與當前主機名匹配。

注冊時,如果您希望能夠跨多個子域接受新憑據,則作為 Web 應用開發人員可以指定更廣泛的域。

例如,如果我使用 anof cosmosclownstore.com 注冊,但后來從托管在 app.cosmosclownstore.com 的 Web 應用程序請求生物識別登錄,則將允許。rp.id

但是,如果我使用 anof app.cosmosclownstore.com 注冊,然后嘗試從托管在 store.cosmosclownstore.com 的應用程序啟動生物識別身份驗證會話,則不會。rp.id

其次,您有字段,其中包含有關此用戶的信息。這會將在身份驗證器上創建的憑據綁定到網站上的帳戶。您可能會注意到,這意味著用戶已經在網站上擁有帳戶,并且新的WebAuthn憑據只是另一種身份驗證方式,而不是主要身份驗證方式。這通常是正確的,盡管有些身份驗證器支持稱為“可發現憑據”的東西,這些憑據可以繞過此限制。user

第三,是遠場,這是防止重播攻擊的隨機數。這是一個獨特的高熵字符串,作為 Web 應用程序開發人員必須提供。此質詢將在響應中返回,您必須驗證它們是否相同。challenge

第四,有字段,它表明你有興趣支持什么樣的公鑰算法。數組中對象的值在此IANA 文檔中定義,但 -7(表示帶有 SHA-256 的 ECDSA)保證受支持,這是規范所要求的。pubKeyCredParams

最后,還有 thefield,它可以讓您指示此儀式的身份驗證器的某些屬性。這包括上述跨平臺/平臺類別。authenticatorSelection

構建對象并調用后,身份驗證器將提示用戶為您的網站添加憑據。他們將從對象中看到有關您的網站的信息,以及有關他們在對象中的帳戶的信息。如果他們選擇注冊,您將收到回復。下面是一個示例響應:optionsnavigator.credentials.create(options);rpuser

{
  response: {
    clientDataJSON: { 
      type: “webauthn.create”,
      challenge: ... // should match initial challenge
      origin: ... //
    },
    attestationObject: {
      authData: {
        attestedCredentialData: {
          credentialId: ..., 
          credentialPublicKey: ...,
        }
      }, // other stuff about attestation 
    }
  }
}

The interesting parts are the object, which has a couple of fields you should validate, including the , , and . Make sure these are as expected.clientDataJSONtypechallengeorigin

成功注冊的確認發生在對象中,其中包括和。這些值必須與用戶帳戶相關聯;它們將在下一個儀式(身份驗證)中使用,這將在下面詳細討論。attestationObject.authData.attestedCredentialDatacredentialIdcredentialPublicKey

就像用戶名/密碼憑據一樣,多個用戶可以在給定的網站上使用生物識別身份驗證進行注冊。下面,Cosmo's Clown Store的網站保存著來自多個用戶身份驗證器的公鑰:

每個身份驗證器都有一個私鑰和一個相應的公鑰,位于已注冊的站點上。

但是,至關重要的是,每個不同的網站在同一身份驗證器上獲得不同的注冊和憑據(也稱為“密鑰”)。下面,多個網站持有一個公鑰,與單個用戶的身份驗證器上的許多私鑰之一匹配:

身份驗證器可以保存多個私鑰,每個私鑰對應于不同的網站。

認證

一旦您的用戶注冊了生物識別身份驗證方法,他們現在就可以使用面部或指紋登錄。要提示生物識別登錄,請使用以下 JavaScript:

navigator.credentials.get(options);

同樣,對象是關鍵的。下面是一個示例對象:optionsoptions

credentialId = // value pulled from data stored at registration 

options = {
  publicKey: {
	rpId: "cosmosclownstore.com",
	challenge: "...",
	userVerification: "preferred",
	allowCredentials: [{ type: "public-key", id: credentialId }]
	//...
  }
}

在這里,這是之前注冊的網站標識符。質詢又是一個隨機字符串。指定我們是要驗證用戶還是只測試用戶狀態。rpIduserVerification

該字段包括此登錄名允許的憑據列表。的值由服務器在注冊過程中存儲。因此,在發出請求之前,必須有其他方法來標識用戶,以便可以從服務器端數據存儲區檢索正確的憑據 ID。allowCredentialscredentialIdnavigator.credentials.get(options);

選項包括:

在他們注冊時設置 cookie

詢問他們的用戶名

構建對象并發出請求后,將返回響應。這可能看起來像這樣:optionsget

{
  authenticatorData: {
	rpIdHash : ..., // hash of the requesting party Id
	flags : ..., // bit array including authentication results
	// other info
  },
  clientDataJSON: {
	type: "webauthn.get",
	challenge: ... // should match initial challenge
  }
}

與注冊儀式類似,驗證對象中的值(例如the和the),以確保它們是您所期望的。challengetypeclientDataJSON

此外,檢查 the以確保該值與請求中呈現的 SHA256 哈希匹配。此值是瀏覽器看到的哈希值。如果它與 Web 應用程序顯示的不同,則可能會受到中間人攻擊。authenticatorData.rpIdHashrpIdrpId

最后,該字段是一個位字段,其中包含身份驗證的結果。如果用戶在場,則設置位 0,如果用戶已驗證,則設置位 2。authenticatorData.flags

儀式之外

在沒有大量集成工作的情況下將生物識別身份驗證集成到您的 Web 應用程序中非常酷,特別是因為現在幾乎每個擁有智能手機的人口袋里都有這樣的身份驗證器。

但是,要構建完整的生物識別登錄系統,還有其他工作要做。需要注意的其他事項:

除非您執行超出規范的某些操作(由中央服務器管理的“密鑰”),否則每個憑據都綁定到特定的身份驗證器。這意味著,雖然生物識別身份驗證作為一種替代身份驗證方法很好,但它不應該是唯一的方法,除非您有一個強大的帳戶恢復過程。否則,丟失的手機將意味著帳戶被遺棄。

雖然注冊和登錄用戶的 JavaScript 代碼非常簡單,但需要做一些工作來確定用戶是否具有有效的生物識別身份驗證器,在注冊后安全地存儲憑據,并提示用戶使用其生物識別憑據登錄。這個腳手架是必需的,但我還沒有看到可以幫助它的庫;準備好編寫自己的邏輯。

如上所述,您可以將 WebAuthn 用作 MFA 過程的第二部分。它具有非常抗網絡釣魚的能力,因為您必須擁有身份驗證器才能完成身份驗證儀式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1263

    瀏覽量

    69515
  • JAVA
    +關注

    關注

    19

    文章

    2970

    瀏覽量

    104814
  • 生物識別
    +關注

    關注

    3

    文章

    1210

    瀏覽量

    52524
  • API
    API
    +關注

    關注

    2

    文章

    1502

    瀏覽量

    62108
  • 人臉識別
    +關注

    關注

    76

    文章

    4012

    瀏覽量

    81961
收藏 人收藏

    評論

    相關推薦

    不同指紋識別身份驗證技術并非“生而平等”

    生物識別技術識別用戶身份的優勢是,用戶身份驗證過程更安全,同時由于無需密碼而使驗證過程更方便。迄今為止,指紋
    發表于 12-16 09:45 ?1398次閱讀

    使用生物識別傳感技術進行身份驗證

    已經做出了很多努力,并且在生物識別傳感技術的創建方面已經取得了很大的成就,毫無疑問地確定了我們是誰。可用的識別方法包括指紋分析,面部識別,獨特的虹膜圖案標識符等。工程師可以使用全面的
    的頭像 發表于 02-22 08:44 ?5455次閱讀
    使用<b class='flag-5'>生物</b><b class='flag-5'>識別</b>傳感技術進行<b class='flag-5'>身份驗證</b>

    facexx人臉識別身份驗證迎來新技術革新

    現在我們在很多公共場合里面,都可以通過一些快速通道進入到我們需要進入的場合里面。身份驗證已經不再是一個需要等待或者是需要被質疑的過程。因為現在人工智能技術的出現,已經為身份驗證提供了一個更強大的支持
    發表于 12-19 15:06

    Vivado和SDK身份驗證錯誤

    嘗試運行SDK或Vivado的安裝程序時,出現“身份驗證錯誤:發生了未知異常。請驗證您的用戶ID和密碼,然后重試”我可以登錄該站點,另一位同事可以登錄該站點。我們可以下載安裝程序,但是
    發表于 01-02 14:55

    PN5180無法使用mifare classic進行身份驗證怎么解決?

    ....ok 2. Anticollision CL1.....ok 3. 選擇......ok 4. 驗證....錯誤當我發送身份驗證命令時,我得到 0x02(等待卡響應超時(卡不存在)。)但是卡存在,我
    發表于 03-23 08:46

    人臉識別技術在遠程身份驗證中的應用

    傳統的身份驗證主要有帳戶/密碼或智能卡等方式,存在著易被破解盜用和遺忘丟失等風險。該文提出了一種在遠程登錄過程中利用人臉識別技術進行身份驗證的解決方案。該方案
    發表于 07-07 13:00 ?20次下載

    人臉識別技術在遠程身份驗證中的應用

    傳統的身份驗證主要有帳戶/密碼或智能卡等方式,存在著易被破解盜用和遺忘丟失等風險。該文提出了一種在遠程登錄過程中利用人臉識別技術進行身份驗證的解決方案。該方案
    發表于 12-22 16:00 ?15次下載

    什么是身份驗證和授權

    什么是身份驗證和授權 根據RFC2828(Internet Security Glossary,May2000),驗證是“校驗被或某系統實體聲明的身份的過程”。此處的關鍵字
    發表于 04-03 16:03 ?5748次閱讀

    什么是詢問握手身份驗證協議

    什么是詢問握手身份驗證協議 CHAP(詢問握手身份驗證協議)是用于遠程登錄的身份驗證協議,通過三次握手周期性的校驗對端的身份,在初始鏈
    發表于 04-03 16:06 ?2683次閱讀

    上海一家生物識別銀行,全程憑借自身生物特征即可完成身份驗證

    據悉,這是國內銀行業第一家融合了AR/VR技術、生物識別、語音識別以及全息投影等多項人工智能科技的無人銀行網點,其中,生物識別技術廣泛地應用在無人銀行的出入閘機、智能機器人、VR看房、
    發表于 06-14 16:30 ?2521次閱讀

    生物識別技術解決身份問題,未來我可能都不需要身份證了

    Google 希望在其即將推出的 Android P 中改進生物識別技術。該公司宣布開發人員可以開始使用 BiometricPrompt API 將生物識別身份驗證集成到他們的
    發表于 06-26 15:30 ?2977次閱讀
    <b class='flag-5'>生物識別</b>技術解決<b class='flag-5'>身份</b>問題,未來我可能都不需要<b class='flag-5'>身份</b>證了

    谷歌推出Android P版本,改進現有的生物識別身份驗證機制

    的 Android P 版本中,改進這款基于 Linux 的移動操作系統中現有的生物識別身份驗證機制,以嘗試為用戶提供更好的安全和隱私特性。
    發表于 08-06 16:05 ?1562次閱讀

    身份驗證生物識別身份系統應用越加廣泛

    身份驗證生物識別身份系統應用越加廣泛
    發表于 02-27 14:37 ?1574次閱讀

    使用生物識別技術實現更智能的工作場所身份驗證

      對于企業而言,生物識別技術可以用于各種應用場景,從保護筆記本電腦和應用程序安全到在安全的訪問和入口點對員工進行身份驗證。也可用于在當前安全系統的任何方面(如智能鑰匙或USB隨身碟)添加
    發表于 08-03 16:17 ?765次閱讀

    采用ATECC508A執行遠程設備的對稱身份驗證

    應用程序演示了如何通過主機(使用 ATECC508A 加密模塊的 Curiosity PIC32MZ EF 開發板和 Secureclick 板)使用對稱身份驗證方法對遠程設備進行身份驗證,其中
    發表于 04-01 10:26 ?12次下載
    采用ATECC508A執行遠程設備的對稱<b class='flag-5'>身份驗證</b>
    主站蜘蛛池模板: 日本69xxxxxxx69| 欧美日韩亚洲一区| 两人性潮高免费视频看| 欧美黑人5o厘米全进去| 久久久久国产精品免费看| 狠狠的操| 国内精品91久久久久| 天天躁夜夜躁狠狠躁2021| 最新版天堂中文在线官网| 99久久精品免费看国产| 香蕉久久影院| 欧美日韩一区二区视频图片| 日本高清色视频在线观看免费| 欧美18videosex性欧美69| 玖玖精品国产| 99免费视频观看| 奇米在线| 丁香婷婷啪啪| 曰本又色又爽又黄三级视频| 色免费观看| 国模伊人| 色之综合天天综合色天天棕色| 国产v69| 亚洲1卡二卡3卡四卡不卡| 亚洲伊人久久大香线蕉啊| 三级毛片在线看| 国产秦先生大战白丝97在线| 天天干夜夜操视频| 啪啪网站免费看| 综合99| 欧美日韩一区二区三区视视频| 国产卡一卡2卡三卡免费视频| 天天操天天艹| 六月综合激情| 亚洲国内精品| 看全色黄大色大片免费久久怂| 在线免费色视频| 不卡的毛片| 一区二区三区电影| 嫩草影院久久国产精品| 永久免费在线观看视频|