在身份验证/密码验证之前发送 OTP

信息安全 验证 多因素 一次性密码
2021-08-28 14:07:42

我的一台很少使用的旧电脑仍然有一个旧密码,用于存储在浏览器密码管理器中的 pyszne.pl / takeaway.com 帐户。我尝试从那台计算机登录我的帐户,并看到一个页面显示一次性密码已发送到与我尝试使用的帐户相关联的电子邮件地址。在继续之前,我需要提供此 OTP。

我等了大约 5 分钟,直到 OTP 在我的邮箱中弹出,在提供它之后,我有点震惊地看到我提供的密码不正确的消息。在浏览器的密码管理器中验证这一点证实了这一事实。

我在这里想念什么?仅在验证用户名(电子邮件地址)存在且验证密码之前发送 OTP 的原因(或可能的优势)是什么?

在所有系统中,除了这个,我迄今为止使用过的,这完全相反。首先,尝试验证用户/检查提供的密码,并且仅在正确的情况下,然后将 OTP 发送到他们的电子邮件地址。

2个回答

这当然不正常。它可以做的是保护帐户免受暴力登录尝试。攻击者永远不会知道密码是否正确,因为他们需要电子邮件中的 OTP 才能知道。

但是,这种方法有其自身的问题。例如,每次蛮力尝试都会导致您收到一封电子邮件。如果有人正在测试您的帐户,这可能会使您的帐户泛滥,并使其难以合法登录。因此,该网站依靠您的电子邮件服务来保护您的帐户,而不是自己使用帐户保护。您希望他们对电子邮件泛滥有一些保护措施。

正如@schroeder 所提到的,这不是双因素身份验证的常见设计,但它可以用来增加使用暴力方法的攻击者的搜索空间。

但是,根据您对其工作原理的描述,特别是它给您的反馈说您的密码不正确这一事实,我认为这种不常见的身份验证场景的实现是不正确的。系统应拒绝您的访问,并仅声明您的凭据不正确。哪个不正确(密码或 OTP)?它不应该告诉你。

大多数 OTP 身份验证服务器会限制每单位时间发送给您的 OTP 请求的数量(例如,每小时 5 个 OTP),因此系统不太可能会用电子邮件淹没您的邮箱,除非它设计得很糟糕认证系统。