随着移动互联网的发展,每个人拥有的账户数量指数增长,每注册一个新账户,都在增加了隐私泄露的风险。
如此发达的互联网,对于身份认证的方式依然仅靠单纯的账户密码,即便现在生物认证在手机上也非常普及,但在注册生物认证前往往也需要我们输入安全密码。
因为使用账户密码验证身份是最经济、最简单、最普遍的身份验证方式,而一些公司和大多数人还依然抱着侥幸心理,认为他们的数据不足以引起犯罪分子的注意。
现在我们发现即便是 Google、Twitter 这样规模的顶级互联网公司都无法保护用户数据。
今年 7 月 15 日,连奥巴马、比尔•盖茨、库克、马斯克等大佬的账户都被黑客破解,普通人的账户密码更是沦落到几分钱批发的地步。
谁还能保护我们的隐私?
数字密码成为过去发明一套更安全的身份认证系统迫在眉睫,FIDO 认证就是业界给出的答案。
FIDO 联盟成立于 2013 年 2 月,现在几乎所有有影响力的公司和组织都加入,包括微软、苹果、Google、华为、三星、英特尔、联想、VISA、阿里巴巴、中国信息通信研究院等等。
FIDO 认证将注册地点从服务器搬到本地。
当用户注册在线账户时,用户使用设备会创建一对新的秘钥(私钥和公钥),私钥保存在用户设备本地而公钥发送给注册服务器。
公钥相当于一个问题库,私钥相当于一个答案库。
在 FIDO 1.x 版本中有两个子协议,通用身份认证框架(UAF)和通用第二因素(U2F)。
UAF:当需要认证身份时,客户端设备通过提供私钥里的答案来证明自己的身份。而读取私钥则需要通过本地的解锁操作,例如指纹、面部、PIN 或插入二级设备(类似U盾)。
U2F:当使用账户时,用户需使用第二因素设备(例如 FIDO 钥匙,其 U 盾)来完成 FIDO 注册。这种类似于 Steam、Google 等的数字令牌。
不管哪一种方式,FIDO 的私钥只存储在本地可信任的环境中且不保存用户的隐私信息。
2019 年发布的 FIDO2 又新增了身份验证器协议(CTAP)和W3C WebAuthn
CTAP:使用第三方设备来进行认证,例如我们需要在一台陌生设备上登录账户,此时可以使用自己的手机、FIDO 钥匙等存储了私钥的设备连接这台陌生设备,在自己的设备上提供认证。
例如现在一些没有生物认证功能的 MacBook 可以通过 iPhone 手机来提供认证,完成 MacBook 上的登录和付款。
W3C WebAuthn:这是W3C 与 FIDO 联盟合作制定的协议,它的作用是在浏览器和标准Web API 中也能支持 FIDO 认证,原理是调用手机或电脑中的 FIDO 认证。
如何证明我是我注册:
用户选择一种服务器接受 FIDO 认证策略;
用户使用生物、第二因素设备、PIN 或其他方式解锁本地的 FIDO 身份验证器;
用户的设备在本地创建唯一的公钥/私钥对;
公钥被发送到在线服务器并与用户账户相关联,私钥被保存在本地并需要解锁才能使用,且始终不会离开本地设备。
登录:
在线服务要求用户使用之前注册的设备登录;
服务器根据公钥向设备提出一个只有对应私钥才知道答案的问题;
用户使用注册时的方法来解锁 FIDO 身份验证器;
设备使用服务器提供的标识来找到本地存储的正确私钥,并读取问题的答案;
设备将答案提供给服务器,服务器与保存的公钥验证后决定是否允许登录。
应用的场景目前已经有很多地方使用了 FIDO 认证。如果你的 Windows 10 电脑使用Windows Hello 登录或付款,这其实就是 FIDO 的应用。
另外在 Chrome、EDGE、Firefox 和华为手机的内置浏览器中,你也可以使用指纹或扫脸来认证身份。例如你要查看浏览器保存的密码。
,