1.服务器随机生成一个类似于『 DPI45HKISEXU6HG7 』的密钥,并且把这个密钥保存在数据库中。
2.在页面上显示一个二维码,内容是一个 URI 地址( otpauth://totp/账号?secret=密钥),如『 otpauth://totp/[email protected]?secret=DPI45HCEBCJK6HG7 』
3.客户端扫描二维码,把密钥『 DPI45HKISEXU6HG7 』保存在客户端。 。。。。
那如果数据库被脱库的话,是不是可以理解为这个就没有防护意义了。
感觉这个没有手机验证码安全。
我的理解有误吗
1
levon OP 因为算法是公开的,只要这个密钥泄漏,就没有意义了。
而且这个密钥服务器和客户端存的都是一样的 |
2
sbw 2020-02-11 22:00:22 +08:00
是这样的,所以不要把密码和 2fa 密码都存到 1Password 里
|
3
imn1 2020-02-11 22:30:27 +08:00
所以 2FA 和密码要分开放啊,就算知道密钥,也不知道是哪个账号,分开放也同时丢失,那就不幸了
2FA 手段就是两个设备,放在一起就等同于一个设备了 手机 SMS 除去非加密传送的安全问题,还有延时问题,我这里 tp 的 SMS 验证码基本上都要 10+分钟后才收到,twi 的还收不到 |
4
jadec0der 2020-02-12 00:21:46 +08:00
那如果数据库被脱库的话,是不是可以理解为这个就没有防护意义了 -> 对,但是如果网站数据库被拖库了,你用什么二次验证都没用,所有数据一波带走。
手机短信容易被嗅探,最安全的还是 Yubi 这种硬件密钥。 |