(2023.08.28 Mon @KLN)
2FA是多因子验证(multiple factor authentication, MFA)的一种特殊形式,通过两种方法验证身份,以增强登录的安全性。验证方法包括,用户名和密码或特定的安全App。2FA保护用户免于收到phishing、social engineering和密码暴力破解的共计。
2FA的一般形式
硬件token
可能是2FA最古老的形式,一个形如钥匙扣的硬件token每隔30秒或其他间隔产生一串数字。用户登录账户输入密码之后,在输入token上显示的数字,便可实现2FA。另一种形式的硬件token会在插入USB接口之后自动转换2FA编码。
这种形式token的弊端在于
- token高成本
- 硬件易丢失
- 不够安全can be hacked
基于SMS和语音的2FA
基于SMS的2FA会与用户手机直接沟通。在用户输入用户名和密码之后,网站/服务会以短信形式发送一个one-time passcode (OTP)到用户手机上。与硬件token的流程相似,用户需要将受到的OTP输入到网站/服务上以实现登录。基于语音的2FA会自动拨通用户电话并语音发送2FA代码。尽管并不常见,但在通信服务受限的地区,这仍然是一个可行的方法。
对于低风险的线上活动,使用SMS和语音的验证方式已经足够,但对于存储个人信息的网站,这种2FA方法仍然不够足够安全。事实上SMS被认为是最不安全的用于验证用户的方式。
软件token
目前最流行的验证方法是使用软件生成、时间受限的一次性passcode (OTP)。
为了实现软件token,用户需要安装一个2FA app到其个人的智能手机或电脑桌面。用户登录网站/服务时,在输入用户名和密码之后,用户需要输入显示在软件token上的代码。与硬件token相似,软token的代码一般来说有效时间不到1分钟。考虑到代码在同一个移动设备上生成和现实,软token减少了被破解的风险。
2FA推送通知
前面的几种2FA方法取决于用户收到token之后在网站/服务上输入toke,与这些方法不同,需要用户验证时网站/服务给用户发送推送通知(push notification)。设备所有人只需要点一下同意或否定验证。这种方法不需要在第二部验证时输入代码,不需要额外的交互。
通过在2FA服务、设备和retailer间构建一个直接、安全的连接,推送通知可以避免任何phishing、中间人攻击(man-in-the-middle)或未授权访问。
缺点在于其只适用于联网设备和可安全app的设备。在智慧手机渗透率低、网络不稳定的地区,基于SMS的2FA可能更适用。但如果推送通知可行时,它仍然是一个更友好、更安全的方式。
其他形式
包括不限于指纹识别,面部识别等方式。
网友评论