个人资料

跳过导航链接首页 > 博客列表 > 博客正文

创建windows hello 登陆应用的详细说明

分类:

看了半天api文档,感觉云里雾里,说一下我对windows hello的理解。

------

首先是用户

微软用户需要设置pin或windows hello登陆,用户通过密码或刷脸验证ms账户,用户需要提供唯一用户标识符(比如电子邮箱)注册第三方账户,并生成密钥。在本地计算机上,一个密钥就代表了用户本人创建了用户标识符所需的密码。hello相当于一个密码箱。例如:

---

电子邮箱1 密钥对1

电子邮箱2 密钥对2

电子邮箱3 密钥对3

---

密钥对为公钥和私钥,公钥相当于用户密码,发送给服务器。私钥存储在本地计算机用于验证服务器公钥,私钥不可读取只能验证。

------

其次是登录过程

一个用户可以有多个设备。对于一台设备,生成的每一个密钥对都是唯一的。

创建的app属于第三方,hello根据用户唯一标志(比如电子邮箱)已经生成了加密信息对,随后用户登陆时只需要提供唯一标识符,如电子邮箱地址,刷脸验证后就可获得对应的公钥,相当于获得密码。

因此对于服务器的登陆模式从原来的:

唯一标志(比如用户名/电子邮箱)-密码  

变成:

唯一标志(比如用户名/电子邮箱-公钥 的登陆模式。

------

据此,第三方app一定要储存用户唯一标志,即是用户,然后通过获得公钥作为密码登陆。在服务器端,需要根据公钥和唯一标志来查找和验证用户,一个用户可以有多个设备,意味着一个用户可以有很多公钥,这是和密码登陆模式不一样的地方,需要储存多个设备和公钥。

------

另外 服务器还可以将已经存储的公钥发回给app进行验证,在本机上和私钥配对验证。私钥和公钥配对的验证也还需要刷脸,用来验证服务器上一些受保护的操作。证明是不是你自己等等。

参考资料:

https://docs.microsoft.com/zh-cn/windows/uwp/security/microsoft-passport

实例:


待续

songshizhao
最初发表2020/5/28 3:34:06 最近更新2020/5/28 3:38:23 1956
为此篇作品打分
10
   评论