当密码过时后提示更新密码时(无论是在 30、60、90 天之后——无论策略实施什么),许多用户只是增加密码策略可能强制添加的数字。
我很想知道这种做法有多普遍——不一定是谁在做。
系统已经保存了(散列的)密码历史记录,以防止立即重复使用。如果我还要保留明文的 ASCII 总和的历史记录并观察更改密码时该总和是否增加,那会有多糟糕?
当密码过时后提示更新密码时(无论是在 30、60、90 天之后——无论策略实施什么),许多用户只是增加密码策略可能强制添加的数字。
我很想知道这种做法有多普遍——不一定是谁在做。
系统已经保存了(散列的)密码历史记录,以防止立即重复使用。如果我还要保留明文的 ASCII 总和的历史记录并观察更改密码时该总和是否增加,那会有多糟糕?
您可以测试某些用户是否这样做,而无需保存任何可能会削弱安全性的额外数据。只需检查他们遵循此架构时以前的密码是什么,并将其与旧哈希值进行比较。
当用户更新他们的密码时,通过获取密码中的每个数字并将其减一来创建新密码的排列。然后计算这些排列的哈希值并检查它们是否与旧密码的哈希值匹配。例如,当我将密码更改为Pas5word!14
您时,将计算
Pas4word!14
Pas5word!04
Pas5word!13
当其中一个与我的旧哈希匹配时,你抓住了我。
当用户必须输入旧密码才能更改为新密码时,您可以尝试检查新密码和旧密码相同的程度。因为这可以在客户端完成,所以您不需要保存 ASCII 和的历史记录。
除了散列之外存储校验和(字符的总和)会极大地削弱对蛮力的鲁棒性(特别是如果不使用短模数)。如果这对您来说是否有问题,我们无法判断。
当它们削弱系统的安全性时,我会建议进行此类社会研究。只需使用典型的密码过滤器,它会在密码更改时强制执行更多差异并完成。