我正在为应用程序编写一个全面的身份验证系统,并且正计划记录失败的身份验证尝试,以实现更好的安全性。我想检查失败的密码是否有暴力破解和字典攻击,但是我能想到的唯一方法是存储原始密码。
我对此有不同的感觉。尽管我知道失败的登录尝试会每隔一段时间被清除,但我不喜欢将原始密码存储在数据库中的想法。我知道我经常错误输入与我的真实密码非常相似的密码,或者更糟糕的是,我将为特定的登录名输入错误的密码,而该登录名实际上是我所属的另一个网站的有效密码。
但是,如果不存储一些原始密码就无法实现高级安全性,因此我正在尝试考虑最佳方法。
这是我想到的一些可能的解决方案:
有人对此有任何意见吗?这是一个好主意吗?我应该使用双向加密吗?
最佳答案
用户犯错误和暴力破解/字典攻击之间有很大的区别:需求量。不要存储失败的尝试-您应该以最少的方式处理纯文本密码,这是正确的-只需查看尝试的模式即可。那应该是足够的数据。
其他任何事情,您的“高级安全性”就开始看起来像“高级攻击媒介的可能性”。
关于security - 记录包括密码在内的身份验证尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1759051/