无密码身份验证的缺点是什么?

What are the downsides to passwordless authentication?

在使用密码支持的身份验证的情况下,如果用户忘记密码,提供商始终信任用户的电子邮件安全性。

那么为什么要大惊小怪呢?为什么不使用电子邮件将秘密登录密钥发送给注册用户?当用户忘记密码时,网站不就是这样做的吗?

为什么还要用密码认证? 无密码身份验证缺少密码身份验证的主要问题是什么?

一个区别是,如果您通过忘记密码登录,通常必须将密码更改 为其他密码,因此无法检测到 - 攻击者很可能会被发现。如果它只是电子邮件中的登录 link,则情况并非如此,攻击者可以登录,而且很可能没有人会注意到。当然可以通过控制来缓解这种情况,但它很快就会成为一个用户体验问题。

另一个用户体验方面是,如果只有登录 link,就必须一直查看您的电子邮件。许多人使用密码管理器,这使得输入非常安全和独特的密码变得非常容易。如果是登录 link,您必须打开您的电子邮件,从而中断您在应用程序中的流程。可以说是不方便。

另外,在电子邮件中发送的登录 link 将在 url 中包含一个令牌。这将被浏览器记住,登录中间代理,登录到网络服务器日志等等。秘密不应在 url 中发送。但是,如果它是在(非常)有限的时间内有效的 one-time 令牌,则可以大大降低这种风险。

综上所述,有些商业应用程序选择通过电子邮件 link 进行无密码登录。如果实施正确(具有足够熵的足够强大的 one-time 令牌,使用适当的加密随机生成器等生成),通过电子邮件 link 的无密码登录对于许多应用程序来说足够安全,并且它主要是用户体验问题(牢记上述安全注意事项)。