假设在密码策略中,密码历史被定义为记住最后 10 个密码。
我知道存在密码历史记录,因此如果某个攻击者从受损数据库中恢复了密码,那么密码实际上是用户当前密码的可能性就较小。
但是,如果在定期密码重置时,用户只是将“1”附加到他的旧密码上,而在下一次重置密码时,他会附加“2”,这会大大降低定期密码重置的有效性。一旦攻击者以明文形式恢复了同一用户的两个旧密码,他就会看到该模式并可以猜测出用户的实际当前密码......
最佳实践是散列(+盐)密码,但据我所知,这使得无法检查用户是否只是在他的旧密码上附加了一个数字。
密码可以加密而不是散列,这可以解决我的问题,但是我不喜欢密码可以在没有暴力攻击的情况下恢复为纯文本的想法。
我想知道最好的解决方案是防止用户在重置旧密码时对其进行微小的更改?能否以非常安全的方式在技术上实现,或者这肯定需要用户意识?