gpt4 book ai didi

authentication - 仅 OTP 身份验证

转载 作者:行者123 更新时间:2023-12-02 00:10:43 25 4
gpt4 key购买 nike

我正在考虑构建一个仅使用一次性密码的网站用户身份验证系统:每次正常使用普通密码时,用户都会在电子邮件中收到一个密码,例如用于注册、登录、冒险操作和帐户删除。

我看到的一些似乎并不重要的问题:

  • 无法更改密码以使所有现有 session 无效 - 可以通过在服务器端存储 session 并为用户提供使它们无效的方法来解决此问题
  • 任何人都可以检查某个电子邮件是否已在系统中注册 - 对于通用网站来说这似乎不是一个关键问题
  • 任何人都可以为任何电子邮件请求 OTP - 将使用每个远程连接的 API 限制和每小时 1 个未使用的 OTP 的限制来处理

不过,我没有看到这种方法被提及或在野外使用。它有什么主要缺点吗?非常感谢!

最佳答案

仅通过电子邮件发送 OTP 比仅通过密码更安全(这基本上就像强制用户每 X 小时更改一次密码)。

我想解决您的一些非关键点,并强调一些缺点。

非关键

使 session 无效

您不必存储所有 session ,只需存储无效的 session ,并且只存储 session 的最长持续时间。

检查用户(电子邮件)是否已注册

这实际上 是个问题 - 它告诉您电子邮件所有者使用此网站,这是一个隐私问题,但很轻微。

而且,它还是一个攻击向量。攻击者可以抓取您的用户列表,或者只是去攻击其他站点上的该用户,假设这封电子邮件存在并且链接到真人。此外,他们可以代表他们发出过多的 OTP 请求,我稍后会解决这个问题。

综上所述,没有理由仅仅因为 OTP 就会出现此问题。用户可以请求 OTP,您可以随时回复“如果电子邮件地址 hello@world.com 已注册,则已向其发送一次性密码”。这仅具有轻微的可用性影响。

任何人都可以为任何电子邮件请求 OTP

如果攻击者可以用 hello@world.com 的 OTP 请求淹没您的站点(来自不同的 IP 地址),要么您阻止该用户(即该用户已被 DoS'ed),要么您的站点将被淹没用户的邮箱,它可以让邮件服务器将站点标记为垃圾邮件发送者。

这也可以在使用密码重置电子邮件的普通站点中完成,但这就是为什么您通常希望您的用户列表是保密的。

更大的缺点

可用性

仅 OTP 登录假定您登录的设备也登录到链接到该站点的邮件帐户。否则,用户必须登录邮件帐户才能登录您的网站。

单因素身份验证

安全社区正在插入多因素身份验证,其中密码通常是第一因素。一个好的做法是至少允许选择 2FA 的用户。

账户锁定

如果出于某种原因无法再访问用户的电子邮件帐户(例如,他们使用了他们的工作或大学电子邮件),他们将无法登录,甚至无法将他们的电子邮件地址更改为新地址。

电子邮件事件

如果该站点被大量使用,那么它将一直不断地向各种公共(public)电子邮件服务发送大量电子邮件。

仅此一项就可能导致网站被标记为垃圾邮件发送者,甚至被限制速率。

如果它确实受到速率限制,一些用户将无法登录。

关于authentication - 仅 OTP 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59221397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com