通行密钥是如何取代密码的?( 二 )
与之对应的 , 如果某些内容被公钥加密了 , 则该内容能且仅能被私钥解密 , 非对称加密的可靠性正来源于此——若无私钥 , 在有限的算力和有限的时间内我们一般无法完成极大整数的因数分解;如果加密内容能被解密 , 则说明对方拥有私钥 。
非对称加密的这种唯一对应性 , 显然是非常适合用于登录认证的 。
文章图片
文章图片
实现通行密钥最基本的原理
以WWDC中的例子进一步展开说明 , 在用户完成第一次登录以后 , 服务端和用户终端分别持有由用户终端生成的公钥和私钥 。如果这时用户再需要登录 , 用户将用户名发送给服务器以后 , 服务器用用户名对应的公钥创建一个「口令(challenge)」发送给用户终端 , 放到上面的例子里就是邮件投递到了用户的传统信箱里;用户这时可以使用私钥解答该「口令」并将对应的「答案(solution)」再发送给服务端 , 放到上面的例子里就是用户取出了这份邮件并根据这份邮件给发信人返回了一个正确的信件 。如此 , 服务端便能通过比对答案是否正确从而验证终端是否为公钥的主人了 。当然 , 上述的通讯过程都是通过HTTPS加密的 。
所以这也是为什么通行密钥可以替代各种形式的验证码进行身份验证 。
关联阅读:浏览器上那把「小锁」是什么?随处可见的HTTPS怎样保护你的网络安全02服务端如何获得用户的公钥?
细心的同学可能会疑惑 , 上述过程中的假设是如何成立的?换句话说 , 服务端最初是如何获得公钥并与我们手里的私钥产生对应关系的?
目前 , 从WWDC的视频和Google开发者文档中的信息来看 , 我们需要先行通过传统的密码方式注册一个账号 , 然后再绑定通行密钥到该账号中 。
文章图片
文章图片
使用密码初次登陆
在完成用密码的登录过程后 , 账户设置里面会有选项添加通行密钥 , 且通行密钥完全由用户终端生成、需要经过终端的生物认证 , 然后公钥上传到服务端 , 私钥保存在钥匙串里 。这样就完成了用户名和通行密钥信息的绑定 。
这里打个不完全正确的比喻 , 和前面所说的一样公钥是传统邮箱的话 , 我们要向邮政公司提前登记「这个邮箱属于你」 , 提前登记的过程就是使用传统密码注册账户的过程 。
▍通行密钥还有什么优点?
作为一种用于用户身份认证的替代方案 , 通行密钥最直接的应用场景显然就是跨设备登录了 。
文章图片
文章图片
微信桌面版
上图就是很贴近生活的一个例子 , 在这类场景中 , 我们以往一般需要通过短信验证码或两步认证来确认登录者身份 , 国内比较常见的例子就是:微信登录电脑端时 , 需要通过已登录的手机进行扫码来完成身份验证 。
文章图片
文章图片
通过手机扫码验证
而在通行密钥的应用场景中 , 当用户打算在一个陌生电脑上临时登录自己的账号的时候 , 也是可以通过手机扫码来安全地授权完成认证登录的 。
同样是扫码行为 , 通行密钥不同的地方在于它可以脱离对具体服务端、客户端的依赖 , 变成一种纯粹的身份认证工具 。因为它本质上是FIDO对通行密钥的扩展——客户端到认证器协议规范(ClienttoAuthenticatorProtocol , CTAP) , 也就是外部认证器通过中继网络(RelayNetwork)向用户的互联网接入设备局部传递认证证书——我们需要做的 , 就是通过设备上的生物信息验证机制将通行密钥认证结果传递给其他设备 。
- 2022摩尔庄园6月23日神奇密码是多少(摩尔庄园手游6.23cdk礼包码分享2022)
- 创造与魔法2022年6月23日兑换码是什么(2022创造与魔法6.23cdk礼包码分享)
- 2022原神礼包码6.23(原神手游6月23日兑换码是多少)
- 支付宝蚂蚁庄园2022年6月23日答案更新(生态系统是指在一定时间内,生物与环境构成的统—整体,其不包括?6月23日神奇海洋答案一览)
- 无悔华夏6月23日渔樵问答答案是什么(无悔华夏渔樵问答答案一览6.23)
- 支付宝蚂蚁庄园2022年6月24日答案更新(夏天蚊子让人烦恼,是不是住高层就没蚊子了?6月24日答案分享)
- 饿了么免单一分钟6.23答案是什么(6月23日一分钟免单答案时间分享)
- 还是没5G!华为nova 10系列发布时间曝光:7月4日见
- 祖传1000万像素一用就是三年 三星Galaxy S23前摄
- intel新一代nuc12现身,升级力度是空前的