在我们之前的文章中说过,哈希算法是不可逆的,所以有很多网站选择使用哈希算法来加密用户的密码。虽说这种方法可以提升密码管理的安全性(不直接储存明文),但也会存在被攻击的可能,彩虹表攻击就是常见的攻击方法。下面我们来了解一下什么是彩虹表攻击?该如何抵御彩虹表攻击?
什么是彩虹表攻击?
哈希算法的攻击通常有两种,一种是穷举法,另一种则是对照表法。前者需要大量的计算,因此破解速度非常慢;后者则需要海量的磁盘空间来储存数据。而彩虹表则是这两种方法的折中。
彩虹表的根本原理就是组合了暴力法和查表法,并在这两者之中取得一个折中,用可以承受的时间和存储空间进行破解。
彩虹表攻击将使用包含哈希及其纯文本等价物的预生成文件来破解存储在数据库中的密码。如果数据库中的哈希值与彩虹表中的哈希值匹配,则现在可以进行身份验证,密码已被破解。
如何抵御彩虹表攻击?
- 加盐
在之前的文章中我们就已经简单了解过“加盐”的相关介绍了,感兴趣的小伙伴可以点击《什么是“加盐”?为什么加密也要“加盐”?》查看。
通过使用盐技术可以轻松地防止彩虹表攻击,该技术是将随机数据与纯文本一起传递到哈希函数中的方法。这样可以确保每个密码都有一个唯一的生成的哈希值,因此可以防止彩虹表攻击。
- 使用高强度哈希算法
MD5和SHA-1已经被认为不再安全,所以想要提升安全性,就需要选择更加安全的SHA-2或SHA-3。
- 创建强密码
毫无疑问,创建强密码是应对彩虹表攻击的最简单的方法,密码强度越高,安全性自然也就越高。
- 多次加密
彩虹表攻击主要是依靠哈希算法的数据库,如果对密码进行多次不同算法的加密,这就会增加攻击者的破解难度,并且很难通过单一数据库就破解成功。
彩虹表攻击虽然是目前最常见的哈希算法攻击方法,但也是可以通过加盐、多次加密等方法轻松抵御的,并且随着算法的不断升级,彩虹表的攻击难度也在不断加大。
免责声明:素材源于网络,如有侵权,请联系删稿。