- 主题:MD5不需要密匙?
盐如果被知道了,还是能字典破解一部分用户出来。
要更安全应该每个用户使用不同的盐,字典破解的计算量就大得多了。
参见 Linux 的 /etc/shadow 文件,两个用户既然密码相同,他们的密码域存的那一串字符也不同。
【 在 SlANmASTer (渴望美女青睐 之 我爱工科女) 的大作中提到: 】
: X平方乘以,这个Nlwco是什么啊?
: 我发帖时想着给被加密字符串延长位数,比如统一附加“abcabc”,把总位数凑长一点
: 嗯嗯,就是怕这个爆,真是一点信心都没有。。。
: ...................
--
修改:vonNeumann FROM 211.99.222.*
FROM 211.99.222.*
【 在 SlANmASTer (渴望美女青睐 之 我爱工科女) 的大作中提到: 】
: 你们说的盐,就是用来延长的字符串吧
嗯。
加这个是为了增加反查难度。
直接存 MD5(password) 的话,因为互联网上已经积累了大量的根据 MD5 反查密码的数据,只要不是特别怪异的密码,反查不难。
如果存 MD5(password+salt),首先破解者需要知道你的 salt,然后需要根据密码字典重新计算 MD5,这个计算量就大了很多。
如果为每个用户用不同的盐更好,简单方案比如可以 MD5(password+salt+username)。
: 如果加不同字符串来延长的话,就相当于自己有个字典吧
: 盐也好字典也好,都是放在iis服务器目录下,一旦服务器被攻破,会很惨啊,有其他
: 放数据库和盐的方法吗,一直为这点很不放心
没那么夸张,MD5 还是很可靠的,至少没有已知的逆向方案,所谓破解都是根据字典暴力破解
: ...................
--
修改:vonNeumann FROM 211.99.222.*
FROM 211.99.222.*
MD5 反查本质都是字典攻击
直接 md5 密码的很多能反查,那是因为各种密码的 md5 太多人算过,结果大把现成的,只要不是太诡异的密码很多都能直接查到。但 salt 一般都是你自己的诡异的字符串,除了你自己没人算过,没法直接反查 password+salt。不知道 salt 的时候是没法通过反查把 salt 搞出来的,知道 salt 了也要拿着密码字典重新算。
【 在 jackfnx (玄之又玄) 的大作中提到: 】
: 虽然结论对
: 但是这句话感觉顺序说反了
: 破解者应该是
: ...................
--
修改:vonNeumann FROM 211.99.222.*
FROM 211.99.222.*
直接存 md5(password) 的地方多了去了,以前很多这么做的。相比存明文也是很大进步了。也就近些年安全事件出得多了,普遍安全意识强了些,才普遍意识到 md5(password) 也不安全,至少要加盐。反查对这种是最有效的,基本上把 md5 拿网上一搜就有结果,都不用自己算一遍。
相比来说,哪怕是很简单地加一个盐,比如用一个 '\0' 或者用一个标点字符做盐,被直接反查出的概率也低了若干个数量级。就算知道盐了,要字典破解,也要重新算 md5,当然安全多了。虽然比不上每个用户用不同盐的安全程度。
【 在 jackfnx (玄之又玄) 的大作中提到: 】
: 通过字典算出来的不是password也不是salt,而是password+salt
: 只不过到这一步基本上就能才出来password和salt了
: salt诡异与否不是关键
: ...................
--
修改:vonNeumann FROM 211.99.222.*
FROM 211.99.222.*
【 在 jackfnx (玄之又玄) 的大作中提到: 】
: 通过字典算出来的不是password也不是salt,而是password+salt
: 只不过到这一步基本上就能才出来password和salt了
你所理解的字典是所有可能字符的所有组合?
但是通常破解不是这么干的,一般说的密码字典是指常用密码的集合。也不求把所有用户都破解掉,只求破解掉弱密码用户,大多数用户的密码都是弱密码。
:
: salt诡异与否不是关键
: 因为我们算的不是salt的md5,而是password+salt的md5
: 事实上,就是你自己也没算过password+salt的md5
:
: 既然是反查,自然知道不知道salt都是无关紧要的
: 关键在于加了salt以后,串的长度太长了
: 世界上没有那么nb的字典
知道 salt 当然破解程度容易了一万倍。拿一个密码字典,把常见密码加上盐一算,不需要多少功夫,多数用户的密码就出来了。盐只要被人知道了,100 个字节也没用。
但是不知道盐的时候就没法这么干。
如果要用统一的盐,也应该用奇怪字符。假如你用 abcdefg 做盐,假设用户的密码是 password,你存的是 md5("passwordabcdefg"),很不幸,因为 passwordabcdefg 虽然长,但是它很可能也早被算过网上都有,这个 md5 值瞬间就被反向出来。但是如果你用 "\0" 做盐,你存的是 md5("password\0"),它被算过的概率就小太多太多了。
:
: 知道了salt,需要的也不是反查
: 需要的是穷举生成字典,当然实际上也是不可能的
拿所有字符的组合穷举是很低效的,能避免就要避免这种做法。拿“最可能的密码”来试才是常用的做法。
:
: 【 在 vonNeumann (劣币驱逐良币) 的大作中提到: 】
: : MD5 反查本质都是字典攻击
: : 直接 md5 密码的很多能反查,那是因为各种密码的 md5 太多人算过,结果大把现成的,只要不是太诡异的密码很多都能直接查到。但 salt 一般都是你自己的诡异的字符串,除了你自己没人算过,没法直接反查 password+salt。不知道 salt 的时候是没法通过反查把 salt 搞出来的
:
:
: --
: 顺我者昌,逆我者Facebook。
:
:
: ※ 修改:·jackfnx 于 Nov 28 19:40:28 2013 修改本文·[FROM: 60.8.123.*]
※ 修改:·vonNeumann 于 Nov 28 23:32:47 2013 修改本文·[FROM: 211.99.222.*]
: ※ 来源:·水木社区 newsmth.net·[FROM: 60.8.123.*]
--
修改:jackfnx FROM 60.8.123.*
FROM 211.99.222.*