Jas*_*des 5 security passwords hash salt
考虑以下两种方法:
hashedPassword = hash(trulyRandomSalt + password)
Run Code Online (Sandbox Code Playgroud)
其中 hashedPassword 和 trueRandomSalt 存储在数据库中。
hashedPassword = hash(applicationConstantPepper + uniqueUserName + password)
Run Code Online (Sandbox Code Playgroud)
其中 hashedPassword 和 uniqueUserName 存储在数据库中,applicationConstantPepper 存储在应用程序配置中。在这里,uniqueUserName 充当盐,通常是电子邮件地址。
我已经读过这个问题,它有很多重要的信息,但没有解决应用程序恒定胡椒值以及如何使用用户名作为盐来改进。
我一直使用方法一和 32 位加密随机盐。但是,我刚刚看到另一个应用程序中使用了方法二。我对方法二遇到的第一个问题是它将用户名与哈希值联系起来,这样用户名就永远不会在不重新生成哈希值的情况下更改。
方法二有哪些安全问题?哪种方法是最好的使用方法?
考虑以下两种方法:
第一种方法很糟糕,因为它允许获取您的哈希值的攻击者使用像oclHashcat这样的东西,通常每月进行数万亿或千万亿次猜测,而第二种方法则很可怕,因为这些相同的攻击者不仅可以进行相同的(通常是数万亿次)猜测或每月数万亿次猜测,如果他们在获取您的密码之前获取了应用程序ConstantPepper 和用户名,那么他们可以在获取您的密码时预先计算猜测。
请阅读如何安全地散列密码?,其中 Thomas Pornin 指出“为了让胡椒真正适用,您需要处于特殊的设置中,其中不仅仅是带有磁盘的 PC;您还需要 HSM。” 请阅读整篇文章以了解上下文,但其要点是:
如果您无论如何喜欢胡椒概念,请阅读密码哈希添加盐+胡椒或盐足够了吗?再次,特别是托马斯·波林的回答。
| 归档时间: |
|
| 查看次数: |
1780 次 |
| 最近记录: |