腾讯数码讯(编译:何鑫)密码破解专家杰里米·戈斯尼(Jeremi Gosney)搭建了一个计算机集群,每秒可以测试多达3500亿个密码猜测值。这样快的速度可以说是前所未见,在不到6个小时的时间里,它就可以试遍每一个可能的Windows密码。
这个集群由五台服务器组成,它采用了比较新的虚拟化软件,可以利用25个AMD Radeon图形卡。在破解由NTLM加密算法(自2003年以来,微软在每个版本的Windows Server中都使用了NTLM算法)产生的密码哈希值时,它每秒可以测试3500亿个猜测值。因此,它可以在5.5小时内尝试惊人的958个组合,足以破解每一个可能的包含大写和小写字母、数字和符号的8字符密码。这样的密码策略在很多企业中都很常见。儿微软用LM算法保护的密码——很多企业都在使用,以便跟版本更老的Windows兼容——会在短短的6分钟内被破解。
这个基于Linux的GPU集群在Virtual OpenCL 集群平台上运行,所以图形卡可以像在一台单独的桌面电脑上那样发挥作用。 ocl-Hashcat Plus(一个容易找到的密码破解套件,针对GPU运算进行过优化)则在这个系统上运行,让设备可以用几乎前所未有的速度,处理至少44个其他算法生成的密码。除了进行“暴力式攻击”之外,这个集群还可以同样高速地开展其他种类的攻击,比如涉及数百万单词的“字典式攻击”。
“有了这个集群,我们可以做人们通常用Hashcat做的一切事情,只不过速度现在大大加快了。”Stricture 咨询集团创始人和CEO杰里米·戈斯尼在给媒体的一封邮件中写道: “我们现在攻击哈希值的速度是以前的大约4倍。”
戈斯尼上周在挪威奥斯陆的Passwords^12大会上展示了这个系统。他以前使用的电脑配有4个AMD Radeon HD6990图形卡,对NTLM哈希的猜测速度是每秒约880亿次。戈斯尼用它破解了LinkedIn用户650万密码哈希中的90%。除了强大的硬件之外,他的攻击工具还包括一个含有5亿多单词的单词表,以及各种先进的编程规则。
使用这个新集群,同样的攻击,速度提高了大约4倍。比如现在的集群可以对SHA1(该算法用于产生LinkedIn密码)进行630亿次猜测,以前的硬件只能进行155亿次猜测。对于广泛使用的MD5算法,现在的集群每秒可以尝试1800亿个组合,速度也差不多是原来的4倍。
这样的速度也适用于所谓的“离线破解”,即黑客利用网站或网络服务器上的漏洞获得密码列表。这些密码通常是使用单向加密哈希函数存储的,对于每一个唯一的明文字符串,单向加密哈希函数都会产生一个唯一的字符串。从理论上讲,哈希不能用数学方法逆转。唯一的破解方法就是将各种密码组合输入到相同的加密函数进行测试。当某个组合的输出跟列表中的哈希值匹配时,密码就被破解了。
该技术不适用于网络攻击,原因之一是大多数网站都会限制同一个账户的密码输入次数。
在过去的十年里,GPU运算的发展对“离线破解”密码的巨大进步做出了贡献。但是,在这个新集群出现之前,由于电脑主板、BIOS系统、软件驱动程序的限制,一台电脑上最多只能运行8个图形卡。戈斯尼的突破在于使用了VCL虚拟化软件,它可以在一个集群上配备大量图形卡,同时让它们像在同一台电脑上那样发挥作用。
“在VCL出现之前,人们尝试过很多不同的东西,获得了不同程度的成功,”戈斯尼说, “但VCL是其他解决办法的终结者,因为现在我们有了一个通用的解决方案,它可以自动为你处理各个复杂的方面。而且它的也非常很容易管理,因为所有的计算节点只要安装VCL就可以了。你的软件只需要安装在集群控制器上。”
新集群的出现,意味着工程师用合适的哈希函数设计密码存储系统的工作比以往任何时候都更加重要了。不同于MD5、SHA1、SHA2,最近公布的SHA3以及其他各种“快速”算法,像Bcrypt、PBKDF2和SHA512crypt这样的函数,需要花费相当多的时间和计算资源才能把输入明文转化为加密哈希值。因此,新的集群即便速度是原来的4倍,对于Bcrypt也只能每秒测试7.1万个猜测值,对SHA512crypt每秒测试36.4万个。
就目前来说,你的大部分密码都是“快速”算法生成的。因此,你最好使用长于9个字符的密码,使用13甚至20个字符更加安全。但是,仅仅使用长密码是不够的,你还要避免在密码中使用名字、单词或常用短语。最简单的方法,就是使用密码管理程序(比如Password Safe )随机生成的文本字符串。