解密WPA/WPA2加密高速破解的真相

    [阴 March 19, 2009 11:01 | by !4p47hy ]
作者: Christopher Yang

对于无线WPA加密环境,在获得了WPA握手验证包后,攻击者会通过暴力破解模式来进行WPA密码破解,同时也可以通过事先建立有针对性的字典,然后再进行字典破解(攻击)。对于大多数无线接入点AP而言,这将会是个行之有效的方法。因为事实证明:绝大部分的管理员、维护人员、家庭用户的安全意识并没有他们自己认为的那么高,至少过去的一年多时间里,笔者已经遇到了无数设置为生日或者简单单词的WPA-PSK密码。

  那么,是不是可以说,只要有足够空间、考虑周全的字典,破解WPA实际也就主要是时间的问题了。真的只是这样么?不知道大家仔细留意过没有,按照现在主流单机环境配置,在WPA破解速率上也就维持在100~~300k/s(k/s指的是破解时每秒调用的key数量),以这样的破解速率,要把一个以小写字母和数字组合的5位WPA密码破开,我们来以基本的概率论知识估算一下:

  (26+10)?= 60466176;

  破解所有花费的时间将会是:

  60466176/(3600×300)~~ 60466176/(3600×100),即花费55.987~~167.962小时。

  若是换算成天数的话,大概需要2~~7天。这还只是5位数WPA密码,若是采用WPA密码为纯小写字母且长度在10位数以上,则最快需要时间是5446261 天,也就是14921年!!真的是天位数字啊!!若是密码组合采用大小写字母+数字+特殊字符的话,恐怕连看到这里的你都会说:还是不用考虑破解了吧?

  所以,前面讲述的获得到WPA握手后,进行的破解实际上只适用于是在对方采用简单密码的情况,也就是说,因为破解速率太慢,所以在对方采用稍微复杂的密码之后,这个常规方法就没有太多的实战能力甚至彻底失去破解意义。

  若有人对概率知识稍有欠缺,或者觉得计算破解时间太麻烦的话,可以到下面这个网址上看看,这上面提供一个在线估算密码破解时间的服务,很方便。网址:http://lastbit.com/pswcalc.asp,可以看到一个明显的Password Calculator标题,即密码估算。

  在下面的栏目中,可以输入要计算密码的可能长度、使用计算机的破解速率、被用于破解的计算机数量、密码的组合可能(大小写字母、数字、通配符或全部),填写完毕,点击下方的Calculate(计算),在其下方就可以给出暴力破解的估算时间了。如下图2,可以看到估算出采用小写字母和数字组成的5位数密码,在单机以30k/s的速率破解需要时间为24天!!

Highslide JS


  图 密码估算服务设置内容

  看到这里,也许有的读者会想到:可以升级硬件设备啊,比如CPU、内存之类。不错,升级硬件确实可以在一定程度上提升破解,但那也是很有限的,比如就目前而言,普通独立计算机下内存最大也就能升级到4G,CPU无非就是最新的高缓存四核处理器。这样的配置对于刚才我们举例的10位WPA密码,破解时间还是以年来计算的!!

那么,那些高级黑客们又是怎么做的呢?难道只是靠单纯地提升硬件么?这里我们在揭开高速破解之前,先讲述一些概念:

  Tables

  可以说长期进行密码学研究的人很少有不知道这个的。在很多年前,国外的黑客们就发现单纯地通过导入字典,采用和目标同等算法破解,其速度其实是非常缓慢的,就效率而言根本不能满足实战需要。之后通过大量的尝试和总结,黑客们发现如果能够实现直接建立出一个数据文件,里面事先记录了采用和目标采用同样算法计算后生成的Hash散列数值,在需要破解的时候直接调用这样的文件进行比对,破解效率就可以大幅度地,甚至成百近千近万倍地提高,这样事先构造的Hash散列数据文件在安全界被称之为Table表(文件)。

  Rainbow Tables

  最出名的Tables是Rainbow Tables,即安全界中常提及的彩虹表,它是以Windows的用户帐户LM/NTLM散列为破解对象的。简单说明一下,在 Windows2000/XP/2003系统下,账户密码并不是明文保存的,而是通过微软所定义的算法,保存为一种无法直接识别的文件,即通常所说的SAM文件,这个文件在系统工作时因为被调用所以不能够被直接破解。但我们可以将其以Hash即散列的方式提取,以方便导入到专业工具破解,提取出来的密码散列类似于下面:
    Administrator:500:96e95ed6bad37454aad3b435b51404ee:64e2d1e9b06cb8c8b05e42f0e6605c74:::
  Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
  user1:1001:732b2c9a2934e481cd0a8808b19097ef:778620d5d5de064154e689fa4790129f:::
  user2:1002:a042f67a99758fd727b99b2375d829f9:6127ee12a83da34fc19953e538e4d580:::

  若是以传统破解方式而言,无论是本地,还是内网在线破解,效率都不是很高。据实际测试,单机环境下,破解一个14位长包含大小写字母以及数字的无规律密码,一般是需要3~~9小时的,这个时间值会随着密码的复杂度及计算机性能差异提升到几天甚至数月不等。虽然说大部分人都不会使用这样复杂的密码,但对于目前很多密码足够复杂并且长度超过10位的密码比如“Y1a9n7g9z0h7e”,还是会令黑客们头痛不已。

  2003年7月瑞士洛桑联邦技术学院Philippe Oechslin公布了一些实验结果,他及其所属的安全及密码学实验室(LASEC)采用了时间内存替换的方法,使得密码破解的效率大大提高。作为一个例子,他们将一个常用操作系统的密码破解速度由1分41秒,提升到13.6秒。这一方法使用了大型查找表对加密的密码和由人输入的文本进行匹配,从而加速了解密所需要的计算。这种被称作“内存-时间平衡”的方法意味着使用大量内存的黑客能够减少破解密码所需要的时间。

  于是,一些受到启发的黑客们事先制作出包含几乎所有可能密码的字典,然后再将其全部转换成NTLM Hash文件,这样,在实际破解的时候,就不需要再进行密码与Hash之间的转换,直接就可以通过文件中的Hash散列比对来破解Windows帐户密码,节省了大量的系统资源,使得效率能够大幅度提升。当然,这只是简单的表述,采用的这个方法在国际上就被称为Time-Memory Trade-Off ,即刚才所说的“内存-时间平衡”法,有的地方也会翻译成“时间—内存交替运算法”。其原理可以理解为以内存换取时间,可由下图3表示:

Highslide JS


图 著名的“内存-时间平衡”法运算原理图

  具体算法方面的内容本文就不再涉及,对于想进行更高深层次探究的读者,可以仔细参考2003年的这篇详细文档《Making a Faster Crytanalytical Time-Memory Trade-Off》以及2005年的文档《Time-Memory Trade-Offs: False Alarm Detection Using Checkpoints》,在本节后面会给出链接。

  正是由于Rainbow Tables的存在,使得普通电脑在5分钟内破解14位长足够复杂的Windows帐户密码成为可能。

Highslide JS


图 对Windows账户进行Rainbow Tables破解

  如上图4可以看到,类似于c78j33c6hnws、yemawangluo178、38911770这样的Windows帐户密码几乎全部在180秒即3分钟内破出,最短只用了5秒,个别稍长的密码破解开也没有超过3分钟。

  由于这里我们讨论的是无线安全部分,所以本文就Windows下的Tables技术不再深入举例。有兴趣的读者可以从本文后面列出的网址查看更多的相关资料。
WPA-PSK Hash Tables

  现在,在理解了“内存-时间平衡”法和Table的存在意义后,让我们回到无线领域,破解WPA-PSK也是同样的意思。在2006年举行的RECON 2006安全会议上,一位来自Openciphers组织的名为David Hulton的安全人员详细演示了使用WPA-PSK Hash Tables破解的技术细节,给与会者极大的震动。

  下面所示的为会议上引用的WPA加密以及主密钥对匹配等建立WPA Tables所需理念的原理图,其中,MK为密码原文,PMK就是通过PBKDF2运算所得出的数值,PTK就是在PMK的基础上进行预运算产生的WPA Hash,这个Hash将用来和WPA 握手包中的值对照,若匹配即为密码。

Highslide JS


 图 针对WPA加密Tables破解的原理图

  这种采用了类似Rainbow Tables原理,通过Pre-Compute即预运算的方式,来进行提前运算以生成WPA-PSK加密Hash,从而建立起来的WPA-PSK Hash Tables,可以如事先设想般有效地大幅度提升破解效率。一般来说,可以将以前的100~~300 key/s的普通单机破解速率,提升到30,000~~100,000 key/s,提升了近300~~1000倍!!!这才是国内外无线黑客目前使用的破解技术,就一些地下组织而言,甚至个别秉持执著、探求本质精神的黑客通过改进优化代码等方式使得破解速率突破了150,000k/s,而且还有提升空间。这个速度意味着什么,如果再换置成最新的硬件配置呢?聪明的你一定明白。

  下图6即为在cowpatty里对获取的WPA握手包进行WPA Table破解界面,可以看到在导入Table之后,破解速率达到了6,5228 pass/second。

Highslide JS


  图 在Cowpatty里进行WPA Tables破解界面

  我想,对于很多无线用户来说,这才是真正的噩梦。古希腊哲学家苏格拉底曾说过这么一句话: “认识你自己。” ,但实际上很多时候都是黑客背地猖獗,而很多网络及安全管理人员要么对攻击者的技术仅是略知皮毛,要么就根本一无所知,而且甚至不知道自己在经过所谓安全配置后的网络架构,将实际面临什么样的风险。

  虽然说公开一些技术也许反而会引起个别心怀恶意的人注意,不过出于对无线安全理念的普及及深入理解,帮助很多已经完成或者正在进行无线网络规划的军警政机构、大中型企业及特殊部门,更清楚地认识到无线网络的风险,从而尽可能地完善自身的不足,避免不必要的损失,才是本书的出发点。

  当然,要说明的是,Tables的建立并没有想象的那么容易,就建立本身而言,其效率非常低下,加上需要指定预攻击AP的SSID,想要建立一套针对所有常见接入点,并采用简单密码的WPA-PSK Hash Tables,其生成文件占据的硬盘空间最少也要1~~3G。需要深入了解WPA Table的读者,可以到这个名为The Church of Wifi的无线黑客组织了解更多内容,该组织官方站点为http://www.churchofwifi.org,该组织在过去的两年里成功建立了庞大的WPA Table库,并将其简化的WPA-PSK Hash Table版本提供免费下载,对很多无线黑客而言,这确实是个福音,但遗憾的是,即便是简化版本,其大小也已经超过了30G。

  感兴趣的读者可以到http://umbra.shmoo.com:6969去下载这个简化版本的Table种子文件,该Table全部下载回来大小有33.54GB,需要说明的是,生成该Table所依据的字典虽然经过黑客组织的筛选,但是由于国情不同,所以里面部分内容可能并不适合国内情况的使用。比如虽然都会有人使用姓名作为密码,在国外可能是类似于BruceLee这样的英文名称,但是到了国内就可能是Lilianjie这样的拼音了。

Highslide JS


 图 30G WPA Hash下载页面

  不过,对于无线网络管理员,并不能因此松一口气,真正的噩梦才刚刚开始,因为这个方法也同样适用于破解WPA2加密。而且,国外一些地下高级黑客组织,也已经建立了高达500G的详尽WPA/WPA2攻击Table库,甚至一些基本完善的WPA-PSK Hash Tables已经在黑客网站上开始公开出售,只需要支付120美金左右,就会有8张包含WPA-PSK Hash Tables 的DVD光盘通过Fedex直接送到你的手上。
Technology | Comments(0) | Trackbacks(0) | Reads(23569)
Add a comment
Emots
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Nickname   Password   Optional
Site URI   Email   [Register]
               

Security code Case insensitive