密码是如何被破解的,这个开源免费软件让小白也能当黑客

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


    推荐阅读