【问题标题】:Is it insecure for an app to report how many days are left before current password expires?应用程序报告当前密码到期前还剩多少天是不安全的吗?
【发布时间】:2011-06-18 00:03:49
【问题描述】:

应用报告当前密码还剩多少天过期是否不安全?

例如,如果密码每 30 天过期一次,如果应用告诉您密码将在 5 天后过期(当然是在您登录之后)。

或者,应用程序是否有可能存储一个 cookie,告诉应用程序在密码到期前 3 天开始建议更改密码?

其中任何一个都会被认为是不好的做法吗?

【问题讨论】:

  • Windows 会告诉您(当然是在登录之后)您在密码到期后的几天内,所以我无法想象这是一个风险。我注意到,在更注重安全的领域中,实际警告天数配置得更严格,而且似乎永远不会超过一周,因此在这方面保守可能是可取的。

标签: security passwords password-protection


【解决方案1】:

请参阅 Bruce Schneier 在 Changing Passwords 上的博客文章。

密码过期的主要原因是使被泄露的密码过期;告诉用户(或攻击者)它将过期并不会改变这一点。它所做 所做的是告诉攻击者在截止日期之前妥协其他东西;这是否存在风险取决于是否存在此类攻击者(我希望首先要做的是安装 rootkit)。

安全优势是用户有一定的时间(例如一周)来考虑新密码。如果我不急于完成工作,我可以在一两分钟内想出一个像样的密码;否则我只会在最后增加一个计数器。 每个人都这样做。

我的感觉是,有效地说“在下周的某个时间,想一个新密码”的好处超过了潜在的风险,但 30 天太短了。我实际上只需要记住几个密码(电话、笔记本电脑+root、家庭服务器+root、工作计算机+服务器、密码安全);改变其中任何一个都是乏味的。

有多种方法可以确保用户不会选择与旧密码相关的密码;没有一个特别好。

【讨论】:

    【解决方案2】:

    我认为如果你需要告诉用户密码过期这么多天,你应该做一个在登录完成后出现的页面。

    例如,如果您有一个页面是您的登录表单,然后它会转到另一个脚本,该脚本会在成功登录时重定向到主页。 您可以在页面上使用<meta http-equiv="refresh" content="5; URL=/">,而不是立即重定向,让用户有五秒钟的时间阅读页面,并显示用户在密码到期之前还有多少天。 但请确保该消息仅在登录后显示,否则黑客可以读取登录页面的内容以了解何时需要更改密码。

    广告@m

    【讨论】:

      【解决方案3】:

      我认为告诉用户密码何时过期并不是不安全的 - 至少我看不出它如何真正帮助攻击者。无论如何,这是一种常见的做法——正如亚当所说,Windows 本身就是这样做的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-22
        • 1970-01-01
        • 2012-06-14
        • 2019-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多