【发布时间】:2020-07-13 14:37:09
【问题描述】:
我有一个常量 SALT,它在使用 sha512 加密之前附加到每个 cookie。如果我知道多个 cookie 的明文和最终加密值,是否可以使用开膛手 john 之类的工具来猜测盐值?
我在网上找到的答案都是关于寻找密码的,但我对寻找盐很感兴趣。
【问题讨论】:
-
盐有多大?
标签: salt brute-force cracking
我有一个常量 SALT,它在使用 sha512 加密之前附加到每个 cookie。如果我知道多个 cookie 的明文和最终加密值,是否可以使用开膛手 john 之类的工具来猜测盐值?
我在网上找到的答案都是关于寻找密码的,但我对寻找盐很感兴趣。
【问题讨论】:
标签: salt brute-force cracking
简答:
不,你不能。
原因:
首先,sha512 是一个哈希函数。你不能“解密”散列函数。如果它能够做到这一点,那么 sha512 将不安全。
几天前,谷歌发现了 6,610 CPU 年以来的第一次冲突。
(这不是攻击!)他们使用了大量的分布式系统。所以像 john-the-ripper 这样的普通程序无法做到这一点。
【讨论】:
SHA512 不加密。
这需要在盐范围内进行暴力攻击,如果盐只是几个字符或字节,那么攻击很容易成功。
根据使用情况,HMAC 可能是比仅仅附加盐更好的选择,对连接的盐存在攻击(取决于使用情况)。
如果您使用相同的盐,它可以被获得系统访问权限的攻击者发现。更好的方法是使用带有 HMAC 的随机盐并将盐添加到哈希值之前,那么它就不需要保密了。这假设您需要能够从相同的数据重新计算相同的哈希
对于需要更高安全性的密码,使用带盐的散列函数几乎无法提高安全性。相反,iIterate over an HMAC with a random salt for about 100ms duration and save the salt with the hash.使用PBKDF2、Rfc2898DeriveBytes、password_hash、Bcrypt等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。
【讨论】: