现在登入 github 的话会出现这个界面:
除了传统的用户名和密码登入外额外增加了使用 passkey 方式的登入,点击之后会出现:
只要通过触控 ID 即可完成登入,非常方便,那么 passkey是啥呢?
Passkey介绍
其实 Passkey 我觉得有点像 web3 里面的认证,通过签名的方式来认证你是谁?
如下方式:
使用Passkey登录时,网站存储了用户的公钥,而用户的私钥存放在本地设备(电脑或手机)中,通过给服务器发送私钥签名,服务器验证签名无误,即登录成功。
由于非对称加密是目前加密强度最高的加密技术,理论上任何人都无法破解,可以说安全性是100%。和服务器的 SSH私钥登入方式有些类似。
Passkey公钥传递
这里面也说了,网站通过公钥验证你的签名,但是公钥如何传递给网站呢,一种是像 github 方式的,以前登入过,首先通过用户名和密码登入后,传递公钥,这种方式只需要进行一次,后续就可以通过 passkey 方式进行登入了。
这个还是需要用户名和密码的,但是 passkey 通过后密码认证方式就可以去掉了,没有了密码登入,以后也就不用担心密码泄露导致别人登入我账户的问题了 、
另一种呢,就是注册的时候直接选择 passkey 方式进行注册,直接提供给网站公钥信息,后续直接采用私钥签名方式进行登入,连密码都没有。
Passkey的安全性
该安全性依赖于端上密钥的保护,现在很多漏洞如SQL注入等等获取到网站数据库,从而获取到用户的密码等信息,但是一旦通过 passkey 方式的话,数据库中存储的都是公钥信息,攻击者拿到也是没有任何用处的。理论上是无法登入到你的账户的。
不过一旦用户的设备出现问题或者私钥丢失之后,也就无法登入网站了,这个弊端还是有的。
原文始发于微信公众号(YY的黑板报):一文读懂 Passkey
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论