注:本文不涉及专业技术细节,放心食用
2FA / MFA(双因素认证/多因素认证)
Why
在登陆网站时,提供一个密码就能成功登录,
假如密码被黑阔窃取,用户的账号就直接沦陷了.
How
网站的开发者,一拍大腿想出了这样的办法,
用户在登陆时,不仅要密码,还要额外提供别的要素,
比如要用户提供指纹/短信码/动态口令/盾什么的,
这样黑客拿到了用户的密码,也不能成功登录.
What
这种提供额外因素的做法,
逐渐流行起来,被广泛的使用,
人们管它叫2FA或MFA(双因素认证/多因素认证)
单因素认证:用户在登陆时,只需提供密码,就可完成登录.
多因素认证:不仅要密码,还要额外提供1个或多个要素,才能登陆成功.
日常生活里,
银行的动态口令卡和U盾,
早期网易游戏的将军令,
现在微信登录时,让用户指出哪些是他的好友头像,
都属于多因素认证.
OTP(一次性密码)
字面意思:
只能用一次的密码,
是一个密码学概念.
具体一点:
登陆谷歌邮箱时,让用户绑定一个动态口令应用,作为登陆的第二因素(2FA)
在动态口令应用里面,那个1分钟1变的6位数就是一次性密码.
类似的还有银行发的动态口令器,早期网易游戏的将军令,都是一类东西.
OTP技术被广泛应用在2FA/MFA设备中.
它的原理:
简单粗暴的来描述(当然实际情况是复杂的,不是那么回事,看个乐子),
世界上只有你和服务器知道,
同一个算法F和密钥S,
没有第三个人知道.
你将密钥S,当前时间T,输入算法F,可得到代码A,发给服务器,
F(S,T)=A
服务器和你做一样的事情,将密钥S,当前时间T,输入算法F,可得到得到代码B
F(S,T)=B
最后服务器手头有了A和B,把两个值比较一下,
如果相同,则认证成功,用户可以登录.
这个验证的逻辑是,
同样的算法,同样的输入,可以得到同样的计算结果,
并且没有第三个人知道密钥S,第三人也就算不出A B来.
FIDO联盟
Why
双因素认证这些东西,即U盾,动态口令APP,动态口令器什么的,
确实保证了用户账号的安全,但是用户被恶心坏了,
比如U盾一家一个样,换一家装一个驱动,非常糟心.
How
巨头厂商们坐一起合计这事,
说大伙今后都用同样的U盾/动态口令吧,让用户少遭点罪,
一拍桌子这事就定了,FIDO联盟成立了(中立的国际非盈利组织).
What
FIDO联盟愿景:
消灭全世界对单纯密码(password)的依赖,让网络更安全,同时还要让用户用的爽.
具体做的事就包括:
改良传统2FA的体验,制定推广统一的标准,四处传教拉人入伙.
即FIDO标准.
FIDO2
新一代升级的FIDO标准,
FIDO标准的+S Pro Max版本.
U2F
需要先看懂2FA和FIDO部分.
Why
用户使用传统的2FA验证手段非常的麻烦,
于是FIDO联盟成立了,
他们打算改良传统双因素验证方案,
提高用户体验和安全性.
How
用户使用传统的2FA登录过程:
动态口令版:1打开APP---->2查看6位OTP---->3输入主密码---->4输入6位OTP---->登录完成
U盾版:1安装U盾驱动---->2插入U盾---->3输入主密码---->登录完成FIDO改良后的2FA登录过程:
1插入U盾(设计的FIDO像U盾一样的设备)---->2输入主密码---->登录完成
What
这种U盾,
浏览器直接支持,
不需要安装驱动,还跨平台.在多家网站APP通用,
它比一般U盾用的广,
用起来比传统的2FA方便.制作这种U盾的标准就是U2F,
没错,U2F是一个标准,YuBikey才是实现了U2F标准的一种设备.
因为U2F标准是FIDO联盟推动的,
因此可以理解成U2F标准是FIDO标准之一.U2F标准在具体实施时,产品可以是USB形态,也可以是NFC形态,简单来说都是物理形态的.
UAF
对照U2F来理解,
FIDO推的基于USB|NFC等物理设备的方案叫U2F.
FIDO推的基于指纹|语音|虹膜等生物特征的方案叫UAF.
WebAuthn
Why
用户有这样一个需求,
咱能不能注册时/登录时,
完全摒弃密码,
直接插USB设备或生物特征就可注册和登录?
How
设计一种统一的标准,
让浏览器默认支持这个标准,再让每个Web站点支持这个标准,
即可实现一站式的无密注册,无密登录.
What
最近已经做出来了,
WebAuthn就是这样的标准,
这个标准也是FIDO联盟推动的.
目前主流浏览器已经支持WebAuthn标准
但貌似还没有几个网站支持纯粹的无密注册无密登录.
(测试发现微软邮箱支持真正的WebAuthn无号无密登录)
参考
双因素认证(2FA)教程
https://www.ruanyifeng.com/blog/2017/11/2fa-tutorial.html
网银动态口令工作原理是什么?
https://www.cnblogs.com/shilxfly/p/9441455.html
带你了解FIDO、IFAA、TUSI三家统一身份认证平台
https://m.sohu.com/a/117675427_223323
白话可信身份认证—FIDO、IFAA、TUSI
https://zhuanlan.zhihu.com/p/24336743
走进硬件时代的身份认证(二):账户安全需谨慎,动态口令勿泄露
https://zhuanlan.zhihu.com/p/34604873
走进硬件时代的身份认证(三):网银U盾安全认证原理解析
https://zhuanlan.zhihu.com/p/34813040
一文读懂FIDO协议+电子签名法
https://zhuanlan.zhihu.com/p/34157923
FIDO U2F应用与开发(一)-原理与协议
https://blog.51cto.com/solarboy/2287656
FIDO UAF Architectural Overview
https://fidoalliance.org/specs/fido-uaf-v1.1-id-20170202/fido-uaf-overview-v1.1-id-20170202.html
Web验证的过去现在与未来
https://zhuanlan.zhihu.com/p/88179862
WebAuthn Demo
https://www.youtube.com/watch?v=jilKhi67qG0