Web applications 现代Web应用中有效的密码检索技术

Web applications 现代Web应用中有效的密码检索技术,web-applications,passwords,password-recovery,forgot-password,Web Applications,Passwords,Password Recovery,Forgot Password,我们一直在开发web应用程序,其中需要实现传统web应用程序的密码检索功能。根据趋势,有以下几种方法: 正在向用户的电子邮件发送密码重置链接 向用户询问密码恢复的秘密问题 重置现有密码并创建新密码并将其发送给用户。这也可能迫使用户在下次登录时更改密码 我们是否有任何非传统的技术来实现密码检索机制?你还尝试过其他什么方法 谢谢。在我看来,向用户的电子邮件发送密码重置链接是最好的方式。Digg就是这样做的,我也是这样做的 但在这种方法中,我们需要依靠用户能够访问他的电子邮件 关于秘密问题的方法:通常

我们一直在开发web应用程序,其中需要实现传统web应用程序的密码检索功能。根据趋势,有以下几种方法:

  • 正在向用户的电子邮件发送密码重置链接
  • 向用户询问密码恢复的秘密问题
  • 重置现有密码并创建新密码并将其发送给用户。这也可能迫使用户在下次登录时更改密码
  • 我们是否有任何非传统的技术来实现密码检索机制?你还尝试过其他什么方法


    谢谢。

    在我看来,向用户的电子邮件发送密码重置链接是最好的方式。Digg就是这样做的,我也是这样做的

    但在这种方法中,我们需要依靠用户能够访问他的电子邮件


    关于秘密问题的方法:通常情况下,秘密问题的答案并不像我们希望的那样秘密。阻止这种“帐户黑客”方法符合我们用户的最大利益。

    这取决于您的目标安全级别、支持成本和可用性问题

    通过电子邮件发送密码重置链接是首选方法,原因如下:

    • 支持成本-从业务角度来看,这是最大的因素。用户经常忘记他们的密码提示,或者使用伪造的邮寄地址,或者忘记他们的用户名。所有这些都是合理的问题,您可能会收到支持请求。这反过来又产生了另一个问题,您必须通过询问用户最近的帐户活动以及其他情况来确定用户的合法性。如果您不提供这种级别的支持,许多新手用户将感到失望。通过电子邮件发送密码重置链接可以缓解这些问题,因为用户通常有一个或两个电子邮件地址,他们可以通过提供电子邮件地址轻松恢复用户名/密码

    • 安全问题-从技术角度来看,这是最大的因素。这里有各种各样的问题,你必须权衡。泄露的电子邮件帐户意味着黑客可以访问用户的所有服务,这些服务允许通过电子邮件发送密码重置链接。您可以选择中间路线,即通过电子邮件向用户发送密码重置链接,然后向用户询问密码提示问题,然后允许用户重置密码。同样,您不应该在任何介质中公开用户的密码。事实上,如果你有能力向他们显示他们的密码,你的系统已经不安全了,因为这意味着你没有使用像SHA-1这样的安全散列来存储他们,你公司的开发人员可以获取每个人的密码

    • 可用性-从用户角度来看,这是最大的因素。通过电子邮件发送密码重置链接需要用户去检查他们的电子邮件地址,这意味着完成任务的时间可能长达2分钟甚至3分钟。然而,我认为这不是什么大问题。大多数用户似乎并不介意这一点,因为他们觉得自己有错,这是符合他们最大利益的安全措施。我只是根据个人经验假设,一般来说,用户可能会有不同的感受。我认为安全性比用户体验更重要,因为用户很少需要检索密码(用户很长时间没有登录,忘记了密码;用户已将密码保存在重新安装的浏览器和其他一些边缘案例中)


      • 网站及其管理员不应知道用户的明文密码。应该只存储密码的单向散列,以便在身份验证事件中进行比较。因此,发送密码明文不应该是一个选项


        我个人喜欢发送给用户的密码重置链接。记住要终止链接。另外,通过电子邮件通知用户密码重置尝试(可以是与重置链接相同的电子邮件),以及在成功重置后通知用户。

        我在实践中看到的其他选项包括:

        • 当出现问题时允许使用第二个密码,比如手机使用的超级PIN码
        • 创建一个文件令牌(通常是PGP密钥),用户将在创建帐户时下载该令牌并将其存储在U盘上,或者将其存档以供以后使用。当出现问题时,用户将上传令牌,从而证明他是帐户的“所有者”,应用程序将允许用户更改密码。这可以是一个常量令牌,也可以是一个包含多个令牌的文件(类似于在线银行TAN)——每次使用令牌时,它都会失效

        上述方法实现起来并不是那么简单,但是非常用户友好(因为它们没有什么新的东西,在其他日常情况下也会出现).

        密码重置链接的另一种方法可能是创建一个随机密钥,该密钥不会出现在电子邮件链接中,用户必须在单击链接后键入该密钥。这将有助于防止人们捕获电子邮件。

        我认为“非传统”是指“更糟?”传统的存在是有原因的。我强烈反对mquander的观点,但我也不知道有什么比列出的传统方法更好的方法,所有这些方法都相当于发送一个新密码(选项3)就相当于发送一个rest链接(备选方案1)因为用户可能会更改密码。@mquander:这都是关于用户体验的。问这个问题的动机是以某种方式给我的用户一个全新的体验。希望这能解释问这个问题的想法。@s_ruchit:这取决于,人们可能会保留自动生成的密码,而不是他们的标准“p”从可用性的角度来看,我们可以羡慕哪些技术