要点:
密钥是基于公钥加密技术构建的、能够抵御网络钓鱼攻击的凭证,它消除了用户与服务器之间的共享密钥。
密钥是一种在 FIDO2 身份验证框架内创建的可发现 WebAuthn 凭据。
Web 身份验证(WebAuthn)是一项浏览器标准,支持在不同浏览器、设备和身份验证器之间进行无密码身份验证。
已同步和已绑定设备的凭据可满足从便捷性到高安全性控制等不同的操作需求。
由于服务器仅存储公钥,因此即使发生数据库泄露,也不会泄露可重复使用的登录密钥。
除了登录功能外,密钥还能在签署交易时替代手动输入的钱包密码,通过硬件保护的加密技术安全地解锁钱包的私钥。
从密码到公钥认证的转变
密码是一种共享的秘密。用户创建密码后,服务器会存储该密码的一个版本,登录之所以能成功,是因为双方都知道同一个秘密。这种系统存在漏洞。人们会重复使用密码。攻击者会诱骗用户在伪造的网站上输入密码。如果数据库遭到入侵,被盗的密码哈希值有时会被破解,或在其他地方被重复利用。
无密码认证通过公钥加密技术取代了这一模式。设备不再与网站共享密钥,而是为该特定域名生成一对唯一的密钥。其中一个密钥是私钥,保存在设备上;另一个密钥是公钥,由网站存储。
只需两个简单的步骤即可完成。
注册
当用户设置登录时,设备会生成一对密钥。公钥会被发送至网站,并存储在用户的账户中。网站还可以选择检查生成该凭据的设备类型。
身份验证
当用户登录时,网站会发送一个随机的验证码。设备使用私钥对该验证码进行签名。网站则使用存储的公钥对签名进行验证。
使用密码时,用户发送的是可重复使用的密钥。而使用公钥凭证时,服务器接收到的则是设备持有正确私钥的证明。私钥绝不会离开设备。这一根本性的转变很简单:网站不再需要存储那些可能被窃取并被重复利用的密钥。
密钥和 WebAuthn:凭据与标准简体中文(大陆)
密钥和 WebAuthn 虽然相关,但并非同一事物。
Web 身份验证(WebAuthn)是由万维网联盟(W3C)作为 FIDO2 身份验证框架的一部分所制定的浏览器标准。该标准定义了浏览器与设备之间的通信方式,以及网站验证登录请求的方式。
密钥是一种 WebAuthn 凭据。它只是通过该标准创建和使用的一种凭据。
WebAuthn 提供了支持基于密钥的安全登录的规则和浏览器 API。它本身并不存储密钥。浏览器通过 navigator.credentials API 提供 WebAuthn 功能,开发人员可利用该 API 启动注册和登录流程。
凭证存储在设备上。WebAuthn 定义了其创建和验证的方式。
WebAuthn 流程中的四个技术参与者

WebAuthn 登录包括四个部分。
用户
试图登录的人。他们通过指纹、面部扫描或设备密码来验证身份。
用户代理
浏览器或操作系统。它充当网站与设备之间的中间层。
身份验证器
用于生成和存储密钥对的设备。这可以是手机、笔记本电脑的安全芯片或硬件安全密钥。
依赖方
网站或服务器。它存储公钥,并验证经过签名的登录验证请求。
该网站绝不会查看或存储私钥。
该模型为何能抵御网络钓鱼攻击
网络钓鱼的运作原理是诱骗用户在虚假网站上输入密码。
公钥凭证在技术层面上防止了这种情况的发生。
每份凭证都与一个特定的网站域名相关联,该域名被称为"依赖方标识符"(RP ID)。如果用户访问了一个伪造的网站,其域名将与凭证关联的域名不符。此时,设备将拒绝签署登录挑战。
保护措施并不取决于用户能否识别出假网站。这是由加密技术所保障的。
"共享秘密"的终结

对于密码,网站会存储其哈希值。如果数据库遭到入侵,攻击者可能会尝试破解这些哈希值,或将其用于其他服务。
使用 WebAuthn 凭据时,网站仅存储公钥。公钥无法用于登录,它只能验证由对应的私钥生成的签名。
如果数据库遭到入侵,攻击者获取的信息无法用于冒充用户。私钥仍保存在用户的设备上。
这消除了传统密码系统中最大的风险之一。
可发现凭据和无需用户名的登录
可识别凭据使设备能够记住哪些凭据分别属于哪些网站和账户。
当用户访问网站时,浏览器会自动显示可用的登录选项。用户选择账户后,通过指纹或面部扫描进行确认。无需输入用户名。
登录过程仍然依赖加密技术,但使用体验与密码自动填充类似。
超越登录:使用密钥签署钱包交易
WebAuthn 通常与登录相关,但相同的加密模型也可应用于钱包交易的签名。
在数字资产钱包中,用户通常需要输入钱包密码来解锁加密的私钥,然后才能对交易进行签名。 通行密钥可以取代这种手动输入的密码。用户无需输入可重复使用的密钥,而是通过设备上的身份验证方式(如 Face ID、Touch ID 或硬件安全密钥)进行确认。通行密钥利用受硬件保护的加密技术安全地解锁钱包的私钥,随后该私钥便会像往常一样对区块链交易进行签名。
这种方法在保持现有钱包安全模型的同时,提升了易用性。密钥作为一种安全的解锁机制,而钱包的私钥则继续作为加密签名方,且始终不会离开其受保护的环境。
同步凭据与设备绑定凭据

WebAuthn 凭据可以通过多种方式使用。
已同步的凭据
已同步的凭据存储在 iCloud 密钥串或 Google 密码管理器等云系统中。私钥在设备上的安全硬件中生成,随后会安全地同步到与该账户关联的其他设备上。
这样一来,即使设备丢失,也能更轻松地恢复访问权限,同时确保每个设备上的密钥都得到妥善保护。
与设备绑定的凭据
与设备绑定的凭据仅保存在单个设备上,且无法导出。硬件安全密钥就是常见的例子。
这种方法适用于需要严格密钥控制的高安全性场景。
开发人员应选择符合其安全需求和恢复要求的模型。
密钥安全吗?
是的,只要实施得当。
安全性不再依赖于记忆密钥,而是依赖于密码学、域绑定以及受硬件保护的密钥存储。
网络钓鱼攻击在协议层被拦截。数据库泄露不会导致可重复使用的登录凭据外泄。目前主要剩余的风险涉及设备丢失和账户恢复机制的设计。
与任何身份验证系统一样,必须仔细设计恢复路径。但共享密钥的核心弱点已被消除。
面向开发者的架构考虑因素
采用 WebAuthn 改变了身份验证的设计方式。
应用程序必须支持注册和登录流程,将公钥与用户账户关联存储,并设计不依赖于弱共享密钥的恢复方法。
开发者应决定是否需要验证创建凭据的设备类型、允许使用哪些身份验证器,以及允许哪些备份选项。
这些凭证虽然能降低网络钓鱼和密码重复使用的风险,但应作为更广泛的身份识别系统的一部分,该系统还应包含适当的授权和会话管理机制。
为什么选择 BitGo
安全的身份验证是数字资产基础设施的基础。需要符合监管要求的托管服务和运营控制的机构,可以从 BitGo 的托管服务概述《加密资产托管解决方案》入手。
BitGo 根据美国货币监理署颁发的全国性信托特许状开展业务,是一家上市公司。这种架构使其运营处于直接的监管监督之下,并具备公开市场的透明度。 除《了解 BitGo 钱包》中所述的成熟钱包安全模型以及与冷存储相关的操作规范外,公司还实施了身份验证控制措施,包括对基于硬件和策略驱动的访问模型的支持。
通过将防钓鱼认证措施与受监管的托管基础设施相结合,BitGo 为需要持久、可验证的访问控制的机构提供支持。
常见问题解答
通俗来说,什么是密钥?
密钥是一种 WebAuthn 凭据,可让您使用设备中存储的密钥对代替密码进行登录。
这与多因素身份验证有什么不同?
传统的多因素认证是在密码基础上增加了额外步骤。WebAuthn 凭据则完全取代了密码,采用加密证明结合设备验证(如生物识别或 PIN 码)的方式。
如果服务器数据库遭到入侵,会发生什么情况?
服务器上仅存储公钥。如果没有设备上存储的匹配私钥,则无法使用公钥登录。
这些凭据会遭到网络钓鱼攻击吗?
它们的设计旨在防范网络钓鱼,因为每组凭据都与特定的网站域名绑定。设备不会为虚假网站签署登录验证请求。
如果设备丢失了会怎样?
已同步的凭据可通过其生态系统进行恢复。与设备绑定的凭据则需要备用身份验证器或恢复方案。
关于 BitGo
BitGo 是一家数字资产基础设施公司,通过受监管的冷存储提供托管、钱包、质押、交易、融资和结算服务。自 2013 年成立以来,我们一直致力于加速金融体系向数字资产经济的转型。 凭借全球业务布局和多家受监管的实体,BitGo 为数千家机构提供服务,其中包括众多行业顶尖品牌、交易所和平台,以及全球数百万散户投资者。
