社交媒体账户、电子设备、银行卡甚至入户门,几乎与数字有关的东西都由一串密码保护着。自然,存储在密码背后的价值促使一些人铤而走险对其发起一次次攻击。
普通老百姓通常认为自己的价值不足以引起不法分子注意,但往往黑客破解密码很少是针对单一目标,能得到一个账户的密码,说明服务器中的其他账户也透明了。
实际上比较知名的网站几乎都发生过密码泄露事件,几乎所有互联网参与者的密码都可以在黑市中找到。
今年 7 月 Twitter 遭到攻击,奥巴马、比尔盖茨、库克、马斯克等大佬的 Twitter 账户都被破解,黑客登录这些账户后发布了一个虚假项目,骗取了价值 18 万美金的比特币。
这可能是大佬们账户的用法,而普通老百姓的账户通常会被多次转卖,最后沦落到只要几块钱就能买到几百万个的地步。
知己知彼才能百战百胜,想要保护自己的账户就要知道黑客是如何破解密码的。这其实一点都不复杂。
暴力破解暴力破解听起来威力很强,其实就是「穷举」。
黑客会先根据网站规定来确定穷举范围,例如密码必须在 8-16 位之间,必须含有至少一个字母和数字等。
在最简单的模型中,机器会挨个尝试:00000000、00000001 … 99999999 … 0000000A … AOqLdgX9 … 直到所有密码都被尝试。
假设密码可能包含小写字母(26种可能性),大写字母(26种可能性),数字(10种可能性),标点符号或其他字符(33种可能性)。
这意味着一个 8 位数的密码就有 3,025,989,069,143,040(3000万亿)种可能。
8 位数密码最常见
如果考虑到服务器的响应时间,尝试所有密码就需要上亿年。显然这样效率太低了,而且每个账户都需要单独穷举。
密码如何工作如果你明白「哈希」,可以跳过这一段。
一般来说我们登录账户的流程是这样的:
1、输入账户密码(传输给服务器);
2、与服务器中的账户密码比较;
3、如果密码匹配允许访问、错误则提示密码错误。
但这样的流程显然不够安全,如果黑客破解了服务器,就能看到所有账户密码。这样直接保存密码的网站非常无良,根本不把用户隐私当回事。
为了提高安全性,大多数网站会将用户的密码「哈希」后再存储在他们的服务器中。
你可以将「哈希」视为不可逆的混乱密码,比如密码是 123456,黑客破解了服务器,也只能得到这个密码的「哈希」,可能显示为ajkdo0-934i91i&^!@jioa65j%dmqi&xcmf’a,无法直接知道密码是多少,也无法逆向密码。
哈希就是把密码搅碎
于是登录流程变成了:
1、输入账户密码
2、密码被转换为哈希;
3、与服务器中的哈希比较;
4、如果哈希匹配则允许访问、错误则提示密码错误。
你可以在这个网站上尝试转换密码和哈希值,帮助更好理解:
https://emn178.GitHub.io/online-tools/sha256.html
尝试在网站中输入自己的名字的拼音,你会发现每敲一个字母,哈希值都在实时更新。人眼完全看不出有任何关联。
输入完名字后记住最终哈希值,然后删除名字重新输入,得到的结果是一样的。相同的密码对应的哈希值是唯一的。
暴力破解 续在通过种种方式获取到数据库后(攻击服务器、黑市购买甚在网上免费下载等等方式),攻击者因为只能看到密码的哈希值而无法直接得到密码。这时候就要暴力破解碰出密码。
还记得前面说过哈希值是不可逆的吗?暴力破解并不是试图逆向出哈希算法,而是挨个碰运气,尝试不同的哈希值与密码的组合,找到每个哈希值对应的密码。
用来做这件事的程序非常多,比如号称性能最强的 Hashcat,这款软件在 GitHub 上开源,是目前最火的哈希破解器。
开源地址:https://github.com/hashcat/hashcat
为了加快程序工作效率,黑客往往不会在自己的设备上跑密码,而是选择租用云服务器。云服务器物美价廉,提供专业图形显卡,例如提供 4992 个并行 CUDA 内核的NvidiaTesla K80,在 AWS 上只要大约 7 块钱每小时。多整几个并行工作可使效率翻倍。
在实际测试中,Hashcat 的表现非常惊人。
1400 万个泄露的账户:
2小时:48%的密码被破解;(123456;qwerty等)
8小时:将近70%的密码被破解;(动了脑子的简单密码)
20小时:超过80%的密码被破解。(动了脑子的复杂密码)
使用免费的工具,20小时,每小时 7 元,共 140 元,1400 万个密码中有 80% 被破解。
数据泄露事件时常发生,如果你在互联网上呆的时间够长,几乎可能肯定你的数据已经被泄露。而数据一旦泄露,几乎可以肯定密码会被暴力破解。
这不怪你,数据泄露通常都是因为网站提供方的服务器遭到攻击。你可以通过这篇文章的方法查看自己的密码是否已经泄露:用这个网站一查才知道,自己的账户密码已经泄露这么多次
升级你的密码我们常常认为自己独一无二,我们创建的密码自然也应该是独特的。然而事实上在密码方面,人们创建的密码几乎都是有迹可循。
根据北京大学汪定博士的一项研究发现,中国网民特别喜欢用数字作为密码,尤其是手机号和生日,有 45% 的中国网民密码仅由数字构成。
如果一个中国网民的密码是超过 8 位的数字,那么这个密码是 11 位手机号的概率是 66.74%。
中国铁路 12306 网站的使用人数排名前十的密码是:123456,a123456,5201314,123456a,111111,woaini1314,123123,000000,qq123456,1qaz2wsx。
甚至美国前总统奥巴马也承认在做总统前曾使用 1234567 之类的密码。
这些简单密码往往就是暴利破解中最先完蛋的,当一个密码被破解,黑客只需要按 Ctrl F,搜索该密码的哈希值就能把相同的密码找出来(没有加盐的话)。
改善密码安全性,使用完全无规律的复杂的唯一密码,虽然这样也不能让你百分百免遭破解,但至少可以延长被破解的时间。
如果嫌麻烦,可以使用专门的密码管理工具自动生成和管理密码。
本文部分资料来源
BBC: Major US Twitter accounts hacked inBitcoin scam
Stack Overflow: How many possiblecombinations in 8 character password?
TheHill: Obama’s old passwords: ‘Password,’‘123457’
,