Max*_*kiy 2 authentication passwords one-time-password
我正在考虑构建一个仅使用一次性密码的网站用户身份验证系统:每次通常使用普通密码(例如注册、登录、危险操作和帐户删除)时,用户都会在电子邮件中收到一个密码。
我看到的一些问题似乎并不重要:
不过,我没有看到这种方法被提及或在野外使用。它有什么主要缺点吗?非常感谢!
仅通过电子邮件进行的 OTP 比仅使用密码更安全(这基本上就像强迫用户每隔 X 小时更改一次密码)。
我想解决一些非关键问题,并强调一些缺点。
您不必存储所有会话,只需存储无效的会话,并且仅存储会话的最大持续时间。
这实际上是一个问题 - 它告诉您电子邮件所有者使用该网站,这是一个隐私问题,尽管很小。
但更重要的是,它是一个攻击媒介。攻击者可以抓取您的用户列表,或者只是在其他网站上攻击该用户,假设该电子邮件存在并链接到真人。此外,他们可以代表他们发出过多的 OTP 请求,我稍后会解决这个问题。
综上所述,这个问题不会仅仅因为 OTP 而出现。用户可以请求 OTP,并且您可以随时回复“如果电子邮件地址 hello@world.com 已注册,则已向其发送一次性密码”。这仅具有轻微的可用性影响。
如果攻击者可以通过 hello@world.com 的 OTP 请求淹没您的站点(从不同的 IP 地址),您要么阻止该用户(即该用户已被 DoS 攻击),要么该站点将淹没该用户的邮箱,这可以让邮件服务器将该站点标记为垃圾邮件发送者。
这也可以在带有密码重置电子邮件的普通网站中完成,但这就是为什么您通常希望您的用户列表保密。
仅 OTP 登录假定您登录的设备也登录到链接到此站点的邮件帐户。否则,用户必须登录邮件帐户才能登录您的网站。
安全社区正在推动多因素身份验证,其中密码通常是第一个因素。一个好的做法是至少允许选择的用户进行 2FA。
如果用户的电子邮件帐户由于某种原因而无法再访问(例如,他们使用了工作或大学电子邮件),他们将无法登录,甚至无法将其电子邮件地址更改为新的电子邮件地址。
如果该网站被大量使用,那么它将一直不断地向各种公共电子邮件服务发送大量电子邮件。
仅此一点就可能导致该网站被标记为垃圾邮件发送者,甚至受到速率限制。
如果确实受到速率限制,某些用户将无法登录。
| 归档时间: |
|
| 查看次数: |
1236 次 |
| 最近记录: |