【发布时间】:2020-12-12 03:20:40
【问题描述】:
在使用密码验证的情况下,如果用户忘记密码,提供商始终信任用户的电子邮件安全。
那么为什么要大惊小怪呢?为什么不使用电子邮件将秘密登录密钥发送给注册用户?当用户忘记密码时,网站不就是这样做的吗?
仍然使用密码进行身份验证的原因是什么? 无密码认证缺少密码认证的主要问题是什么?
【问题讨论】:
标签: email security authentication passwords
在使用密码验证的情况下,如果用户忘记密码,提供商始终信任用户的电子邮件安全。
那么为什么要大惊小怪呢?为什么不使用电子邮件将秘密登录密钥发送给注册用户?当用户忘记密码时,网站不就是这样做的吗?
仍然使用密码进行身份验证的原因是什么? 无密码认证缺少密码认证的主要问题是什么?
【问题讨论】:
标签: email security authentication passwords
一个区别是,如果您通过忘记密码登录,您通常必须将密码更改为其他密码,因此无法不被发现 - 很可能会发现攻击者。如果它只是电子邮件中的登录链接,情况并非如此,攻击者可以登录,并且可能没有人注意到。当然,可以通过一些控制措施来缓解这种情况,但它很快就会成为用户体验问题。
如果只有登录链接,则另一个用户体验方面必须一直访问您的电子邮件。很多人使用密码管理器,这使得输入非常安全和独特的密码变得非常容易。如果它是一个登录链接,您必须打开您的电子邮件,从而中断您在应用程序中的流程。这可以说是不方便的。
电子邮件中发送的登录链接也会在 url 中包含一个令牌。这将被浏览器记住,登录到中间代理,登录到 Web 服务器日志等等。不应在 url 中发送秘密。但是,如果它是在(非常)有限时间内有效的一次性令牌,则这种风险会大大降低。
说了这么多,有些商业应用程序选择通过电子邮件链接进行无密码登录。如果实施正确(具有足够熵的足够强大的一次性令牌,使用适当的加密随机生成器生成等等),通过电子邮件链接的无密码登录对于许多应用程序来说足够安全,而且它主要是一个 UX 问题(保持请注意上述安全注意事项)。
【讨论】: