乐趣区

吓人仅花20小时18美元可瞬间破译1100万个密码

全文共 2512 字,预计学习时长 4 分钟

事情是这样发生的。

在某个阳光明媚的下午,热心市民刘先生正吃着火锅唱着歌,“叮~”,手机突然收到一条短信。以为是系统短信的他,起期初毫不在意,谁知随后一连串的叮叮声根本停不下来。

刘先生拿起手机一看,一脸懵逼,当即上头。

自己的 Apple store 内购突然多了 20 多条账单记录,都是购买王者农药的点券消费,加起来有个小三千。

不对啊,家里也没熊孩子啊。

慌乱中问及度娘:亲亲,您的 Apple ID 绑定了支付宝的免密支付,AppleID 可能被盗刷了哦~ 致电苹果和支付宝客服,一场维权拉锯战正式开始。

移动互联网时代,人们以一串字符为密码,将自己的信息、秘密、金钱都托管到了网络。

人们设置密码来保护网络中的一切:从电子邮箱到银行账户再到加密交易账户。大部分人对密码的定位只是一串可以 login in 的字符,所以怎么好记怎么来。早些时候 12345678 走天下,后来迫于系统要求,才灵机一动设了个姓名首拼 + 生日。

图片来源:unsplash.com/@cmdrshane

可能大部分人都没有意识到设置密码不走心的严重性,直到热心市民刘先生现身说法。目前不法分子窃取苹果账号的主要方式还是“撞库”和钓鱼网站。

出于对密码破解的单纯兴趣或者其他不为人知的原因,有大量研究复杂密码破解算法的论文,这些算法利用极为复杂的概率和机器学习技术,能够破译 90% 以上的密码。

尽管如今许多平台使用双重验证系统(2FA),但该系统并未被大范围或强制推广,绝大部分平台仍不支持 2FA。甚至大部分“心大”市民,完全没有要启用双重验证的意识。

破解密码的算法强大到细思恐极,然而普罗大众还是乐呵呵置身事外,“有多少普通人能够使用这些算法呢?为什么黑客就一定会攻击我?”

是时候揭秘,破解一个密码有多简单了!

背景简介:存储密码

使用密码登录应用程序时,所需步骤顺序如下:

  1. 用户输入密码(传送密码并进行验证)
  2. 所输入的密码与记录密码进行比对
  3. 如果二者相同,用户可继续访问应用

然而,密码传送和存储的安全性堪忧。为了保障安全,许多系统将用户密码的散列储存在数据库中,而不是密码本身。密码散列本身是不可逆杂乱密码;如果黑客获取了密码散列,无法反推密码。

在此类加密系统中,密码登录的步骤顺序如下:

  1. 用户输入密码
  2. 本地计算散列(密码)并进行传送
  3. 对比记录的散列
  4. 如果二者相同,用户可继续访问应用

背景简介 II:暴力破解散列

对于使用散列的加密系统,如果黑客入侵密码数据库,他们仍无法获取用户密码。由于黑客无法通过密码散列反推密码,他们进行以下操作:

  1. 任意猜一个密码
  2. 计算该密码加密文件
  3. 对比实际散列
  4. 重复上述步骤,直到猜中密码

这听起来是一个浩大的工程,但如果使用机器,可同时作出 1000 个猜测。在无数的可能性中随机找到真正的密码就不费吹灰之力了。

攻击

软件

破解密码一般会用 Hashcat 软件,这是一个先进的密码还原工具,被称为“世界上最快速的密码破解器”。

Hashcat 是一个开源工具,其官网提供可供下载的数据源和二进制文件,维基百科上也有对此工具的详细讲解。只要坚守想当“黑客”的一腔热情,很快可以学会 Hashcat。

硬件

可以用 Nvidia Tesla K80 运行 Hashcat——这是一个拥有 4992 个内核的 GPU,在亚马逊云上可以租用,价格喜人,只需 0.9 美元 / 时。

与普通的手提电脑相比,K80 的运行速度比普通因特尔图形处理器快 16 倍。K80 每秒可计算 8 亿个 SHA-256 加密文件,也就是几乎每小时 3 万亿个。

Unbelievable。

密码

这只是一个实验,当然不可能用真正的账号密码啦。网络平台上有超过 1400 万个公开的密码集。对其再次进行虚拟破解有助于提高个人密码安全意识,防范真实密码破译攻击。在开始实验前,已经抹掉了这份已泄漏文件中所有的个人身份信息。

攻击逻辑

通过 Hashcat 可以暴力破解密码(即对特定长度的密码进行无限尝试),也可以进行更为复杂的攻击。众所周知,大多数人会基于一个单词来设置密码,形式各有不同:

· 仅仅是一个单词(可能字母大小写不同)——Password

· 单词加数字 / 符号后缀——monkey! 或 Coffee12

· 单词、数字、符号混合使用的“火星文”—— p4ssw0rd o 或 f4c3b00k

· 多个单词连接——isthissecure

巧的是如果上传一份单词列表文件,Hashcat 内置的多种模式会进行如下猜测:

· 单词

· 单词加任何数字 / 符号后缀

· 有特定规律的单词(如把所有“o”替换成“0”)

· 任何单词组合

因此,可以下载了一份包含几百万英语单词词典文件以进行攻击。

此时,攻击范围就可以更为广泛,同时也能选定 Hashcat 应该尝试的“面具”。无需再使用 Hashcat 尝试有 7 万亿个组合的“所有长度为 8 的密码”——有——只需尝试“6 个小写字母加 2 个数字”的密码。

那么攻击结果如何呢?

实话说…攻击结果远比想象中好,简直成功得骇人……

· 2 小时内:48% 的密码被破解

· 8 小时内:几乎 70% 的密码被破解

· 20 小时内:超过 80% 的密码被破解

总结一下:20 个小时。每小时 0.9 美元。总计 18 美元。1400 万个密码中 80% 被破解。

对于这个结果,各位再消化一会儿…

这太吓人了。大家一定要提高自己密码的安全性。仅仅把“o”替换成“0”或把“e”替换成“3”还不够。加上数字和符号后缀也不足以抵抗攻击。这些模式都是可以被预测的。

人们正是遵循了某些可预测的规则才导致密码轻易破解。最科学的办法是把密码交给管理器,比如 LastPass 或 1Password 等。

不过如果你的脑回路足够优秀,也可以尝试把密码改成圆周率后六位嘻嘻嘻(手动狗头)。这样别说是黑客,全世界都没有人知道你的密码
啦。


留言 点赞 关注

我们一起分享 AI 学习与发展的干货

欢迎关注全平台 AI 垂类自媒体“读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~

退出移动版