应用程序报告当前密码到期前的剩余天数是否不安全?
例如,如果密码每30天过期一次,如果应用程序告诉你你的密码将在5天后过期(当然是在你登录后)。
或者,该应用程序是否可能存储cookie,告诉该应用程序在密码到期前3天开始建议更改密码?
这两种做法中的任何一种都会被视为不良做法吗?
请参阅Bruce Schneier关于更改密码的博客文章。
密码过期的主要原因是使泄露的密码过期;告诉用户(或攻击者)它将过期并不能改变这一点。它所做的是告诉攻击者在截止日期前妥协;这是否有风险取决于是否存在这样的攻击者(我希望首先要做的是安装rootkit)。
安全性的好处是给用户一定的时间(例如一周)来考虑新密码。只要我不急于完成工作,我可以在一两分钟内想出一个半像样的密码;否则我只会在末尾增加一个计数器每个人都这么做
我的感觉是,有效地说"在下周的某个时候,考虑一个新密码"的好处超过了潜在的风险,但30天太短了。我真正需要记住的密码只有少数(手机、笔记本电脑+root、家庭服务器+root、工作电脑+服务器、密码安全);更改其中任何一个都是乏味的。
有多种方法可以确保用户不会选择与旧密码相关的密码;没有一个特别好。
我认为,如果你需要告诉用户密码在这么多天后过期,你应该在登录完成后创建一个页面。
例如,如果你有一个页面是你的登录表单,那么在那之后,它会转到另一个脚本,在成功登录时重定向到主页。您可以在页面上使用<meta http-equiv="refresh" content="5; URL=/">
,给用户五秒钟的时间阅读页面,并显示用户在密码到期前的天数,而不是立即重定向。但请确保该消息只在登录后显示,否则黑客可以读取登录页面的内容,以了解何时需要更改密码。
Ad@m
我不认为在用户密码到期时告诉用户是不安全的——至少我看不出它如何实际帮助攻击者。这在任何情况下都是常见的做法——正如亚当所提到的,Windows本身就是这样做的。