1.针对口令文件(password file)的“批处理字典攻击”
Batch dict. Attack: 对于每个密码w ∈ Dict
:使用快速查找测试H(w)是否出现在口令文件F中,总时间:O(| Dict | + | F |)
2.什么叫做彩虹表攻击?
其实彩虹表攻击只是批处理字典攻击的一种具体实现,它的主要特点是“以时间换空间”,意思是查表时间变长了,但所需存储空间减少了。
- 一般获取了密码数据后,hacker通常要么穷举密码后将哈希值比对,但耗时长;
- 要么提前生成可能密码与哈希串的对照表并存储后查询,但占用空间大。
- 而彩虹表作为一种破解哈希算法的技术,是跨平台的密码破解器。其原理是组合了暴力法和查表法,并在这两者之中取得一个折中,用我们可以承受的时间和存储空间进行破解。
3.为什么使用公开盐值能够抵抗批处理字典攻击?
公开盐值使得破解大量密码时更加耗时。使用公开盐的情况下,在输入密码时,随机选择n位盐S,通过测试H(pw,Sa)= ha
验证A的pw。攻击者必须为每个用户重新遍历哈希字典。批处理字典攻击的时间复杂度是O( |Dict| × |F| )
,相比于之前的O(|Dict|+|F|)
大大增加。
比如批处理字典攻击中的彩虹表攻击,它需要通过大量常用密码预先计算哈希值来存表,而如果密码文件已加盐,对于彩虹表密码文件的要求从包含常用密码变为了包含预先隐藏的(盐,密码),那么彩虹表将会因为盐的随机性而过大。