在 Web2 时代,每次访问网站或应用都需要进行注册/登录,而传统的账户密码登录方式存在着泄露和被破解的风险。随着人们对隐私问题的关注日益增加,迫切需要一种更安全的登录方式。在这个背景下,Passkey 技术应运而生,通过无密码、安全和便捷的登录方式重新定义了用户身份验证的标准。本文将深入探讨 Passkey 技术的原理、优势以及与 Web3 钱包的融合,并介绍 HMS、PWA 技术在钱包安全性中扮演的角色。
Passkey:无密码安全登入
Passkey 基于 WebAuthn* 的原理,提供了一种无密码、安全和便捷登录方式。Passkey 利用在设备上生成的非对称密钥对来进行身份验证,不再依赖传统密码。简单来说,使用 Passkey 登录时,网站存储了用户的公钥,而用户的私钥存放在本地设备中,通过给服务器发送私钥签名,服务器验证签名无误即登录成功。
整个运作流程如下:用户首先授权设备创建 Passkey,系统会生成一个非对称密钥对,其中私钥存储在用户的本地设备上,而公钥存储在服务器上。每次用户登录授权 Passkey 的网站或进行通信时,服务器会使用用户的公钥来加密信息,然后将加密的信息发送给用户。用户的本地设备会使用其私钥来解密这些信息。成功解密意味着用户的身份得到验证。这种方式确保了身份验证的安全性,因为私钥通常存储在用户的本地设备上,不容易泄露给他人。
然而,问题是任何能解锁此设备的人依然能使用 Passkey 登录。因此,在访问设备层面需要进行生物识别(指纹识别、面部识别等),这也就是为什么在苹果手机上若要创建并使用 Passkey,设备必须启用屏幕锁定。
Passkey 的独特之处在于其能够在多个设备之间同步。Passkey 将用户的公钥和与之相关的帐户信息上传到云服务,比如 iCloud、Microsoft 或 Google 帐户中,当用户在另一个设备上希望使用相同的验证器(Passkey)进行身份验证。新设备会在本地生成密钥对,并保留私钥,公钥不同于之前注册的设备。新生成的公钥会上传到云服务与用户帐户相关联,并与之前注册的公钥进行关联。通过这个同步过程,用户的多个设备都与相同的帐户和验证器密钥相关联,使其能够方便地在不同设备上进行身份验证,同时确保了验证器信息的一致性和安全性。
Passkey 的关键优势在于其抵御钓鱼攻击。只有设备上授权 Passkey 登入的网站,才能与服务器的公钥匹配,其他不合法的网站,即使它们的界面看起来一模一样,也无法成功与 Passkey 进行匹配,因为它们没有访问有效公钥的权限。因此,用户的 Passkey 不会在不合法的网站上进行有效的登录或身份验证。
*WebAuthn 是一种由苹果、谷歌、微软和 Meta 等科技巨头支持的新标准,定义了一个标准 Web API,用户可以通过这个 API 在 Web 上进行安全认证。
Web3 钱包的安全性
Passkey 技术与 Web3 钱包融合可以改善钱包的用户体验,减少复杂的登录过程,同时确保安全性。 目前已经有 Web3 钱包借助 Passkey 为用户提供无缝且安全的身份验证体验。JoyID Wallet 前不久刚上线,感兴趣的小伙伴可以去体验一下。
对 Web3 钱包来说至关重要的一点就是私钥的安全。Passkey 系统下 Web3 钱包的私钥储存在本地设备中,这是否安全?以 JoyID 为例,在 JoyID 中用户私钥被安全隔离在硬件安全模块(HSM)中,如 Secure Enclave。HMS 为生成和管理私钥提供了一个隔离、高度安全的环境。与主处理器分开运行,并具有自己的操作系统和存储。存储在安全模块中的私钥无法通过外部 API 访问,只能通过设备的锁屏模块,通常是通过生物识别进行访问。但 Passkey 缺乏区块链技术中常见的 secp256k1 签名功能,所以 JoyID 采用了一种 Signature Transformation 的方法来实现与以太坊的签名兼容性。 简单来说就是,Secure Enclave 里的私钥首先生成一个特殊的签名(secp256r1),然后在浏览器中进行一些计算,从这个签名中提取一个安全的数值。这个数值然后用于生成以太坊的交易签名(secp256k1)。另一款 Web3 钱包 Dawn Wallet 也是利用 iPhone 的 Secure Enclave,将用户密钥加密并存储在钥匙串中。
Passkey 保障了登入安全,生物识别保障了访问层面的安全,HSM 保障了本地设备的安全,但服务器遇到问题怎么办?PWA 可以保障离线运行的安全性。PWA,Progressive Web App,是一种 Web 应用程序的类型,具有渐进式增强的特性(根据浏览器和设备的能力逐步提升用户体验),可提供类似于本地应用程序的用户体验。PWA 的目标是结合 Web 和原生应用程序的优势,使 Web 应用更具可靠性、快速加载,并在离线时仍能提供基本功能。采用了 PWA 就意味着钱包无需上架 APP,可以在浏览器中运行。绕过了苹果或者安卓在应用商店上架的监管,并且即使钱包的服务器遇到问题,用户仍然可以通过 PWA 离线签署交易,确保了对私钥的独立操作。
Passkey、PWA 等技术的出现不仅改善了用户登录的安全性和便捷性,更为 Web3 钱包的发展注入了新的活力。这些技术未来还会与区块链领域的哪些方面进行结合呢,我们拭目以待。