Yoord/優爾得HX885時尚版,yoord hx885解锁密码( 三 )


甚至,黑客们专门制作了彩虹表 。什么是彩虹表呢?就是预先模拟了一个数据库,这个数据库中穷尽了各种可能的密码组合,实际上就是一种暴力穷举的破解方法 。黑客们可以将泄露的数据库中的加密值与预先准备好的彩虹表进行查找配对,一旦发现同样的密文,虽然不可逆加密的密文在理论上可能对应多个原始值,但由于有些密码的通用性,其反推的结果中,各个可能的原始值可能性却是不一样的 。
而且这件事情并不难,举个例子来说,普通我们认为只要密码位数够长、组合够复杂、有大小写数字特殊符号总安全了吧?而事实情况是,一个由大小写字母数字部分特殊符号预先设立的彩虹表,穷举所有 14 位及以下的密码可能加密值时,整个彩虹表的大小也不过才 64GB,在当今的计算能力看来,进行暴力破解的成功机率还是非常大的 。
建议:密码位数不宜过短;密码采用数字大小写特殊符号组成;不要使用一些简单的、他人也可能使用的密码组合 。3.4 加盐后的不可逆加密泄露如果不可逆加密都如此不可靠,还有没有什么解决方案呢?当然是有的,那就是加盐后的不可逆加密 。什么是加盐呢?在理解这个概念前,让我们先回过头去看一下,为什么说不可逆加密依然不可靠 。
原因主要有两点:同样的密码加密后生成的密文是一样的,而一些简单密码的使用频率很高;由于计算能力的提升,使用暴力破解的成本越来越低,使得运用彩虹表进行暴力破解的成功概率上升 。要解决这两个问题,实际上需要解决的核心是,让加密后的密文与原密码进一步隔离,这就需要加盐了 。例如最常用的组合 SHA512 SALT,这里的 SALT 就是我们所说的盐,当用户注册时,先进行一次不可逆加密后,再对生成的密文撒上一点盐,就是随机值,这个撒盐的过程可以是添加前后缀,可以是改变顺序,或者某种随机的规则,并在此加了盐的密文的基础上,再进行一次不可逆加密,就大功告成了 。
举个例子来说,我们先把密码 123456 不可逆加密到 abcdefg,然后对生成的密文加一些盐,比如增加前后缀变成 xxxabcefgyyy,这时再对 xxxabcefgyyy 进行一次不可逆加密生成了二次密文 3kda3kd,这时候即使数据库泄露,黑客也很难通过之前的彩虹表或大数定理的情况,反推出用户的密码了 。
建议:看来真正的安全,还是要靠厂商靠谱,基本上国内外的大厂的加密都会采用类似比这种方案更加复杂一些的方案 。设置密码时,牢记这几点如果你有耐心看完了上面这一节,一定已经理解了,密码安全其实是一个「端到端」,即「客户端 - 传输层 - 服务端」三位一体的问题,只要其中某一个环节有问题,哪怕另外两个环节做得再好再安全,也是白搭 。
木桶理论在安全领域,实在是再适用不过了 。我们能做好的最重要的事情,其实用一句话来概括,就是永远只在可信的设备和可信的网络环境下进行密码操作 。一旦到达服务器端,基本事情就已经不在我们掌控的范围内了 。一家使用明文存储密码的公司一旦发生数据泄露,哪怕我们的密码设计得再复杂,设备和网络安全再周密,这一切也都是白搭 。
不过,即使是这样,我们还是有一些措施,即使在服务器端发生问题时,最小化我们的损失 。1. 密码位数、大小写和特殊符号密码越复杂,安全程度越高,这一假设的前提是你的本地设备和网络环境足够安全,否则就像我们前面所说的,密码再复杂,如果你本地有木马程序监听输入,那么一样是徒劳 。在保证本机和网络环境安全的前提下,如果网站的数据发生泄露,对方在暴力破解时,密码的复杂程度就直接对破解的效率和成本有关系,一般来说,位数越长,混杂得大小写和特殊符号越多,暴力破解的成本就越大 。

推荐阅读