我的银行要求我定期更改密码,但他们可以检测我之前是否使用过我的密码。他们可能会存储旧密码(可能是散列的)以检测它。我认为这违背了更改密码的目的,因为旧密码仍然被存储。
即使出于强制使用新密码的目的而进行哈希处理,存储旧密码通常也可以吗?还是违背了目的?
我的银行要求我定期更改密码,但他们可以检测我之前是否使用过我的密码。他们可能会存储旧密码(可能是散列的)以检测它。我认为这违背了更改密码的目的,因为旧密码仍然被存储。
即使出于强制使用新密码的目的而进行哈希处理,存储旧密码通常也可以吗?还是违背了目的?
银行保留您以前的密码(或其哈希值)以强制您更改密码,但这并不意味着他们会接受旧密码作为有效身份验证。重要的一点是:银行想要保护访问权限,但对保护您的旧密码本身没有兴趣。对于银行来说,旧密码不再是敏感数据,因为它不授予对银行的访问权限。
好吧,实际上,旧密码有些敏感,因为用户就是用户,因此他们:
因此,保留旧密码痕迹的银行应该充分保护它们,即,就好像它们仍然是活动密码一样(因此只存储散列,散列慢,盐分很多)。但这是间接的。就其本身而言,至少从银行的角度来看,学习旧密码并不会赋予攻击者任何特殊权力。
强制用户更改密码充其量只是一个价值可疑的过程。只有当我们假设以前的密码确实在某个时候被盗时,它才能增强安全性。换句话说,只有当持续的、非空数量的欺诈访问发生并且服务器已经学会容忍它并且只想保持低时,它才具有安全优势。对于银行来说,这不是很让人放心。在所有其他情况下,强制更新密码只会激怒用户,这绝不是一件好事。有关该主题的更多意见,请参阅上一个问题。
大多数必须定期更改密码的地方都这样做,主要是因为这在技术上是可行的,并且是出于对从未明确说出的模糊传统的尊重。在我的工作场所,密码必须每 42 天更改一次,必须与最近的 24 个密码不同,最后但并非最不重要的一点是,当我更改密码后,我在接下来的三天内不得再次更改密码(我有从来不明白制定这样一条规则的人的头脑中可能有什么推理;我发现它在任何情况下都没有好处,即使是牵强附会;它只是令人讨厌,我必须假设它是为了让我生气)。
但是,如果银行仍然希望强制更新密码,那么保留旧密码哈希值是有道理的:它不会削弱银行网站的安全性,并且是强制执行不同密码策略的唯一方法。
这些存储的密码仅用于检查您的新密码是否与其中任何一个匹配并限制此类使用。它们从不用于允许您进行身份验证,因此它不会影响使用新密码的安全性,并且会阻止可能试图及时暴力破解它。
该方案的唯一缺点是,如果旧密码的存储受到破坏,它可能会提供更多关于真实“野外”密码的信息,以包含在字典中并在其他地方尝试,而不仅仅是存储当前密码。当然,提供黑客也会花时间对其进行暴力破解,或者如果存储中使用的散列很弱。