2FA OTP FIDO U2F UAF WebAuthn

注:本文不涉及专业技术细节,放心食用

2FA / MFA(双因素认证/多因素认证)

RSASecurID
Google Authenticator
网易将军令
Why

在登陆网站时,提供一个密码就能成功登录,
假如密码被黑阔窃取,用户的账号就直接沦陷了.

How

网站的开发者,一拍大腿想出了这样的办法,
用户在登陆时,不仅要密码,还要额外提供别的要素,
比如要用户提供指纹/短信码/动态口令/盾什么的,
这样黑客拿到了用户的密码,也不能成功登录.

What

这种提供额外因素的做法,
逐渐流行起来,被广泛的使用,
人们管它叫2FA或MFA(双因素认证/多因素认证)

单因素认证:用户在登陆时,只需提供密码,就可完成登录.
多因素认证:不仅要密码,还要额外提供1个或多个要素,才能登陆成功.

日常生活里,
银行的动态口令卡和U盾,
早期网易游戏的将军令,
现在微信登录时,让用户指出哪些是他的好友头像,
都属于多因素认证.


OTP(一次性密码)

otp.jpg
字面意思:

只能用一次的密码,
是一个密码学概念.

具体一点:

登陆谷歌邮箱时,让用户绑定一个动态口令应用,作为登陆的第二因素(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联盟

FIDO联盟
Why

双因素认证这些东西,即U盾,动态口令APP,动态口令器什么的,
确实保证了用户账号的安全,但是用户被恶心坏了,
比如U盾一家一个样,换一家装一个驱动,非常糟心.

How

巨头厂商们坐一起合计这事,
说大伙今后都用同样的U盾/动态口令吧,让用户少遭点罪,
一拍桌子这事就定了,FIDO联盟成立了(中立的国际非盈利组织).

What

FIDO联盟愿景:
消灭全世界对单纯密码(password)的依赖,让网络更安全,同时还要让用户用的爽.

具体做的事就包括:
改良传统2FA的体验,制定推广统一的标准,四处传教拉人入伙.
即FIDO标准.


FIDO2

新一代升级的FIDO标准,
FIDO标准的+S Pro Max版本.


U2F

需要先看懂2FA和FIDO部分.

yubikey
yubikey nfc
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

WebAuthn Official

https://webauthn.io/

你可能感兴趣的:(2FA OTP FIDO U2F UAF WebAuthn)