首頁 >web前端 >css教學 >Passkeys:什麼哎呀,為什麼?

Passkeys:什麼哎呀,為什麼?

William Shakespeare
William Shakespeare原創
2025-03-09 10:44:11706瀏覽

Passkeys: What the Heck and Why?

作為革命性身份驗證方法,Passkeys正在迅速獲得關注。 在W3C TPAC 2022上以突出的特色,它們已集成到Safari 16,MacOS,iOS中,並有望成為1Password這樣的密碼管理器的標準。 未來版本已經支持Android,將為Chrome OS和Windows帶來Passkey功能。

>經常在前端社區中被忽視,但Passkey對用戶體驗的影響,尤其是在身份驗證和形式處理方面,是不可否認的。 本文探討了Passkeys和Webauthn API,對這項新興技術提供了全面的了解。 目錄的

>

鍵術語

了解Passkeys
  • PassKeys:密碼更換
  • 加密解釋
  • >訪問Passkeys
  • > Passkeys vs. Webauthn
  • 身份驗證過程:摘要
  • 詳細介紹了Passkey實現
  • 潛在的缺點
  • Passkeys的未來
  • 更多資源
  • 鍵術語
  • 瀏覽Passkeys的世界需要熟悉特定術語。 讓我們澄清一些關鍵概念:

依賴派對(服務器):

服務器處理身份驗證請求。 我們將在本文中使用“服務器”。
  • 客戶端:> Web瀏覽器或操作系統。
  • >
  • > authenticator:軟件或硬件生成和存儲公共密鑰對。
  • > fido:>定義FIDO憑據的開放標準組織。
  • > webauthn: passkeys的基礎協議(也稱為fido2憑據或單位設備fido憑據)。 >
  • passkeys:
  • webauthn具有云同步(多設備FIDO憑據,可發現的憑據或居民憑據)。 >
  • 公共密鑰密碼學:
  • >使用私人和公共密鑰對簽名/驗證或加密/解密的系統(非對稱加密)。 rsa:
  • >公共密鑰加密算法。
  • >橢圓曲線密碼學(ECC):一種現代的公共密鑰加密算法。 >
  • ES256:使用ECDSA簽名算法的橢圓曲線公共密鑰,帶有SHA256哈希。 >
  • > rs256:與ES256相似,但使用RSA與RSASSA-PKCS1-V1.5和SHA256。
  • 了解Passkeys
  • 在討論Passkeys之前,我們必須了解Webauthn(FIDO2)。 PassKeys在Webauthn上構建,利用公共密鑰密碼學替換密碼。 安全設備(硬件鍵或TPM)生成私鑰和公共密鑰。 >

    公共密鑰公開訪問,而私鑰仍將存儲在生成設備上。 WebAuthn的關鍵限制是設備依賴性。丟失設備意味著失去訪問權限。 Passkeys通過云同步解決此問題,從而使多個設備訪問訪問。 但是,重要的是要注意,也存在單個設備憑證。

    >

    >目前,iOS,MACOS和Android為云同伴Passkey提供了全面的支持,儘管瀏覽器兼容性仍然是一個因素。 Google密碼管理器和Apple iCloud鑰匙扣有助於同步。

    PassKeys:密碼更換

    >公共密鑰密碼學採用簽名。 通過簽名算法使用私鑰處理數據,然後使用公共密鑰進行驗證。 任何人都可以生成一個密鑰對,但是只有專用密鑰才能使用相應的公鑰創建簽名。 此簽名替換了密碼。 服務器存儲公鑰,身份驗證涉及通過簽署隨機挑戰來驗證私鑰的擁有。

    這種方法消除了與密碼洩漏相關的風險。 如果數據庫被妥協,則僅暴露了公共密鑰,使攻擊者無用。 由於瀏覽器記住憑據,簡化了登錄過程,因此被遺忘的密碼成為過去的事。 生物識別技術或引腳可以增強安全性。

    加密解釋

    >公共密鑰密碼學利用私人和公共密鑰對。 加密使用收件人的公鑰,確保只有收件人的私鑰才能解密。這提供了保密性

    。 通過簽名和驗證來確保真實性。 發件人的私鑰符號帶有消息哈希,只能使用發件人的公鑰進行驗證。 > >訪問Passkeys

    >訪問需要密鑰生成和存儲,通常由 authenticator

    (硬件或軟件)促進。 軟件身份驗證器可能會使用TPM或安全的飛地,而硬件身份驗證器則包括Yubikeys等設備。

    客戶端到身份驗證器協議(CTAP)提供了一個接口,用於通過各種方法(NFC,USB,藍牙)訪問身份驗證器。 一個獨特的功能是使用手機(通過藍牙)作為缺乏本機Passkey支持的設備的身份驗證器。

    > Passkeys vs. Webauthn

    在存儲和登錄過程中,

    passkeys(多設備)與WebAuthn鍵(單個設備)不同。 WebAuthn需要一個用戶句柄和一個允許的列表,而Passkeys則利用服務器的域名識別關聯密鑰,從而簡化了登錄過程。 在密碼學上,它們本質上是相同的。

    >

    身份驗證過程:摘要

    WebAuthn和Passkey生成都涉及接收服務器挑戰並使用生成密鑰對。公鑰已發送到服務器。 登錄使用navigator.credentials.create>簽署新挑戰,然後由服務器驗證。 > navigator.credentials.get詳細介紹了Passkey實現

    passkey的用法涉及

    證明

    (註冊)和> essertion (登錄)階段。 證明

    >是證明的核心。 選項指定所需的密鑰對:

    響應包括公共密鑰和navigator.credentials.create(包含

    // ... (code snippet for PublicKeyCredentialCreationOptions) ...

    )。 服務器驗證此數據並存儲公共密鑰,ID,以及(可選)clientDataJSON和cose算法。 > type斷言challenge originattestationObject>處理斷言。

    響應包括簽名和

    (包含原點哈希和navigator.credentials.get)。 該服務器驗證簽名,

    // ... (code snippet for PublicKeyCredentialRequestOptions) ...
    用於身份驗證。

    > authenticatorData潛在的缺點signCount clientDataJSON>當前限制包括有限的操作系統支持(尤其是Windows和Linux)以及Google和Apple的Passkey平台之間的互操作性。 signCount>

    Passkeys的未來

    廣泛的操作系統採用將推動使用增加。 密碼管理人員將集成PassKey支持,而Android和iOS上的本機支持將進一步鞏固其位置。 Passkeys承諾未來無密碼的未來,增強安全性和用戶體驗。

    更多資源

    >實時演示

    演示github存儲庫

    > Yubikey文檔
    • passkeys.dev
    • passkeys.io

以上是Passkeys:什麼哎呀,為什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Sveltekit入門下一篇:Sveltekit入門