首页 >web前端 >css教程 >Passkeys:什么哎呀,为什么?

Passkeys:什么哎呀,为什么?

William Shakespeare
William Shakespeare原创
2025-03-09 10:44:11704浏览

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