WPA破解原理简要——无线网络破解续
一、破解密码的基础
关于密码的破解我再重复一次好了。密码破解就两大类方法。一是字典解密,而是暴力解密。
暴力解密就是采用穷举的方法——你密码是怎么组成的呢?无非就是数字、字母、符号,暴力解密就是采用一切可能的组合方式排列组合出所有的搭配方式,然后一个一个地去试,看哪个能试对。——当然不是由人工去暴力,那效率太低。而是由相应的软件进行暴力穷举。——暴力破解的缺陷在于,可能需要花费大量的时间,像WPA那种位数一多的密钥,你暴力穷举一下,估计花个几年也破解不出来。而且据密码复杂程度而定。
字典解密说的好听,其实就是暴力解密的变体。有专门人士去考察:人们平常都习惯用哪种方式来组合密码呢。因为相对的,人们总是习惯用容易记忆的密码来设定,因为密码如果太繁琐了,黑客确实也解不了密,但是自己也容易忘记。字典解密需要有一个字典,字典里罗列了所有人们通常可能用的密码。比如生日密码字典,列出自1900年到2010年所有日期的8位组合方式。——而破解方法就是程序使用现成字典里的密码去一个个尝试。——所以假如你给自己的QQ设置个密码是7k8+ee02chp0,那估计只有大罗神仙能猜出来了。
1.5、什么是WEP和WPA
这里再花点笔墨解释一下。在上一篇文章里就提过了,无线网络存在安全上的先天弱势。只要在无线路由器覆盖范围内,有块无线网卡就可以对这个网络进行某种动作。所以需要一些安全机制的参与才能加强无线网络的安全性。而WEP和WPA就是维护这种安全的不同机制。
(引用前文: 先解释一下什么是WEP。WEP是wifi的一种安全机制。我说些最普遍的道理——对于有线网络来说,他具有先天的安全优势,在于,只有当你的电脑接入线路中,才能干涉整个网络运行,比如你要攻击一个局域网的电脑,你首先要通过线缆接入这个网络。——但是无线局域网是不同的,我这里暂且把wifi等同于无线局域网(其实wifi是无线局域网的一种技术)。wifi的数据在空气中传播,可以说传播介质就是空气。只要在无线节点的覆盖范围内,你的电脑有一个无线网卡,就可以截获在这个范围内传播的各种数据包,而省了一个接入物理线路的尴尬。——所以无线网络需要一个密钥的概念,对安全性进行优化,对空气中传播的数据进行加密,这样,即便有人截获了传播中的数据包也无法解读数据包内容,因为内容经过了加密,对截取者来说是没有意义的乱码。
WEP的最早提出被认为是将无线网络提升到有线网络安全性的地步。不过自2000年前后就发现,WEP存在诸多的先天不足,致使WEP的防线形同虚设。所以后来提出的标准中,有了WPA和WPA2安全机制,采用更强效的加密技术和方法来替代WEP。
不过呢,当今,WEP仍然还是主要的安全手段,这是因为尚有许多设备不支持WPA。)
二、WEP的缺陷
上一篇文章阐述解密的原理其实不够。WEP存在诸多缺陷。也就是,虽然WEP对传输的数据进行了加密,如果你中途拦截是乱码。但是这个安全机制所给定的,每个帧中有一部分的内容由于是控制信息,所以始终保持不变,这部分控制信息不需要解密我们就知道他的内容。
在很早以前的那篇文章我就提过,加密的概念很简单,无非就是存在一个加密规则,将原来的信息进行规则后形成新的加密内容,使一般人无法看懂,就好像电报的原理一样。拿到信息的人如果不知道加密规则,那么他也就不可能进行解密。
但如果给出一些已知条件,情况就不同了。WEP机制加密后的密文由于其固有缺陷,形成了先天的已知条件,就是上面我提到的保持不变的控制信息。——我们所截取到的帧(帧是数据包的一种变体,理解为封装后的数据包)信息是被加密的,我们将那部分已知的始终保持不变的信息提取出来,因为这部分信息也是经过加密的,而且我们也已经知道了不加密它是什么样子(因为他是固定的,原本就被我们知道的)。
那么,只需要收集足够多的这样的帧,收集到足够多的信息,来对密文进行分析,加上已知条件,最终我们一定能够得到加密规则,从而对密文进行解密。另外,WEP的RC4加密规则很简单,致使密钥可以在我们收集了足够多的信息后经由软件分析出来。对于WEP破解,唯一的要求就是收集足够多的信息,就好比一串数列,如果要你找出他的规则,只有当你看到足够多的数字后,经过你大脑的思考才能找出规律。
——这些就是WEP密钥的解密原理,关于WEP解密具体怎么操作请看我校内的上一篇文章。
三、WPA
WEP的缺陷促成了WPA的诞生。WPA其实是wifi联盟提出来的——呃,也有可能是IEEE提出的,我忘了。WPA到今天又WPA2技术。WPA2单机用AES加密算法,比WPA一代更具安全性。
貌似思科整天说WPA是建立在他的802.11i的基础上的。
WPA整体的加密认证机制相对于WEP来说要复杂得多了,虽然对于用户来说都只是输入一个密钥的事情。WPA杜绝了各种可能篡改数据或是解密数据的可能性,至少就目前来看是这样。另外,对于临时密钥,动态管理之类的事情我个人也不是很理解,因为没有深入研究。WPA还加入两个随机数,林林总总加上mac地址、ssid、密钥和sha1值乱七八糟地形成一堆密文。含MIC签名。被解密基本是不可能。
起码就目前来说,没有哪个缺陷被黑客们找到足以来推断加密方式和解出最终的密钥。就算收集再多的帧也无法发现密文的加密规则,因为漏洞都没有被发现,起码到今天都还没有被发现。
不过凡事都有一些切入点的。对于无线路由器或者电脑来说,他们彼此都需要了解对方所定义的加密规则才能互相通讯,要不然也只是一堆没有意义的乱码。打个比方,有一台无线路由器采用WPA安全机制,而我是不知道他的密钥的,所以无法连上那台无线路由器。这个过程里,假如我随便输入一个密钥,肯定是错的,但是我的电脑还是会把这一串信息发给无线路由器——类似于向路由器发出连接请求,然后把自己所知道的密钥呈上给路由器看,路由器说:你的密钥不对,有多远滚多远。
——那么,起码如果是一个合法用户,也就是原本就购买了这个无线网络的人,当然知道密钥了。他要连接无线路由器,其过程与我刚才所说的也是差不多的,但是路由器的回应是:嗯!密钥没错,准予连接。——整个这个过程需要进行四次一来一去的通讯,我们把它叫做“四次握手”。握手成功就可以连接发送数据了。握手失败则不予连接。
我们要做的是捕获这个四次握手过程中的数据。——当然,握手信息也是经由WPA安全机制加密的。只不过我们知道这个过程和密钥关联最大。
四、不可逆算法
在IT里有个不可逆算法的概念。在数学中如果有一个方程,例如x+6=10,等号右边的结果我们是知道的,左边包含一个未知数,我们可以把未知数解出来。但是不可逆的意思就是,我们有这个方程,也有右边的结果,但是却无法将未知数求出。
hash就是这样一个东西。比如我们这儿有一串数据,经过一个hash运算后得出了一个结果。——但是我们仅由这个结果是无法推得之前的数据内容的。现在很多站点的密码保存方式都是hash后存进数据库的,这样,即便那些网站管理员去数据库翻你的密码,也只能得到hash后的结果,并且也将无法推得先前密码的原型。sha1属于hash的一种。
WPA中采用了sha1来得到一个数据。WPA的认证过程里有一个变量叫做PMK,这个PMK是如何取得的呢,就是把无线网络的网络名称(我们称之为ssid)和密钥进行一个sha1运算,得到一个值,就是PMK值了。其他部分我们可以不用管,反正再杂糅一些其他东西,经过一些复杂的运算最终得出MIC签名。也就是密文了。——每个传输过程中的数据包都是如此格式。
有人会问,那我截一般传输中的数据也行啊,不一定要截四次握手过程中的数据。——其实只有四次握手才互相通告两个随机数,——这两个随机数是由无线路由器随机生成的,然后告知给电脑,此后他们之间收发的数据运算得到的密文也杂糅了这两个随机数——当然是加密后的密文。——所以如果我们不知道这个随机数的话,也就不可能有所进展。(当然,实际破解过程也并不需要知道随机数)。且MIC值包含在四次握手数据包中。
四次握手的原理并不像我上面说的那么简单,实际上路由器不是直接询问密钥的,而是通过一些复杂的运算来计算MIC值的一致性。要不然如果电脑是直接发个密钥过去问路由器对不对,那我们破解的工作也就太简单了。
五、WPA的字典
截获到四次握手的数据之后就可以拿来做分析了。前面我提到,里面包含了不可逆运算的结果,所以我们就无法像解方程那样把密钥给解出来。
在这个方程里,我们只有一次次地尝试看是否能获得最终结果。继续之前的比方,x+6=10,在这个方程里,如果不是加法,而是hash计算,也就是x在hash过后等于10,那么我们将无法通过运算方法解出x的值。但是我们可以用另外一种方法,就是猜!比如我们猜x是1,然后算一算1在hash运算过后等于几,假如不对的话,我们再猜x是2,以此类推,直到猜对为止。
截获的数据是一堆乱七八糟的密文,这些密文就类似于上面的10,是一个结果。而我们要直到的是结果之前的x,x在这里实际上就是密钥。——当然,整个加密过程不是像我说的这么简单,这个方程中还包含一些其他的值干扰。
所以要得到x的值,我们也只能靠猜了。——这里就还原到了破解密码的方法上来。我们可以暴力穷举,反正是猜嘛,那就乱猜,从1开始一直猜下去,每猜一次都把我们猜的这个值经过一次hash运算,看看是否和那堆密文一样。如果hash运算后得到的值等于密文(这里为了表达的方便才这么说,实际上,经过运算得到的hash值还需要经过一些计算才能得到最终的密文),那么我们就大功告成了,那个猜的值就是密钥。
不过要猜的值实在太多了,从1到a,从2到b。从+号到-号,从%号到#号。如果密钥的位数一多,你猜几百年可能也猜不出来。
所以,我们需要进行字典解密了。用先人们总结的电脑用户习惯用的密码来试,这样成功的几率会大很多。当然,我们也可以自己建立一个字典,专门针对我们要破解的路由器,想一想这个路由器的主人平常的习惯,他喜欢什么,他可能用什么做密码,他的生日是几号,他的QQ号是多少。
有人对电脑暴力解密的能力不了解。就目前电脑硬件发展水平来看,如果使用简单的WPA字典来猜密钥的话,每秒钟电脑能猜200到300个密钥。——为什么会这么慢呢,因为WPA这里的规则不仅涉及到一个密钥,电脑需要在猜一个密钥后进行一个hash运算,然后与密文比对——整个这个过程是很耗费时间的。
六、Hash字典(hash table)
我说了电脑企图破解wpa,一个个试密钥的速度很慢。所以自然而然就想到,我们不妨建立一个字典,这个字典里所有的值本身就是hash运算过后的值。
很好理解。也就是说,刚刚我们在谈x经过hash运算后等于10,之前简单的字典就是在字典里存各种x可能的值,然后代入到方程里。而现在我们在字典里存入所有我们猜的经过hash运算后所得的值。这样的话,电脑就不需要hash运算的过程了。
那么电脑要做的就只是把字典里的值一个个地和密文进行比照,符合的就行。然后再查阅字典中这个值在hash算法之前的值是多少。那么这就是密钥了。——这样的速度可以提升到多快呢,貌似现在主流的电脑可以每秒钟猜30000个值。
某国的黑客网站做了一个相当全面的hash字典供全球的黑客下载。不过呢很恐怖的是,这个全面的hash字典的大小有33G之大。
——对了,写到这里,聪明的人可能会问,既然是穷举或字典解密,干嘛要这么麻烦截获数据包,直接做个软件在电脑客户端上试密钥,然后一次次和无线路由器连接,看能不能连上不就好了——这个方法是不现实的,第一、每试一个密钥连接一下四次握手起码也要5秒时间吧,那你试10000个密钥要花多久呢?试100万个呢?——第二,很多无线路由器都有自我保护的功能,你这样无限制地试下去会被节点阻止。
如果我们截获握手数据,就可以做到离线解密了。这个数据文件甚至可以发给很多人,让大家同时解密,或是放到几台计算机上进行解密。
七、终话
就上面简单描述的破解WPA密钥对于WPA和WPA2都是通用的。其实整个过程算不上智能,相对于破解WEP来说。——因为大致上主体还是用暴力手段在搞破解,起码黑客们都还没有发现WPA机制的漏洞,要不然就可以像WEP那样出个算法来运算破解了。
关于Hash,有兴趣的朋友可以去专门看hash的书。现在比较常见的md5就是hash值中的一种。
想要安全,不想要你的邻居偷用你的无线路由器的话就赶紧把安全机制改成WPA吧,因为WEP实在太薄弱了。而且密码也必须设置得复杂一点,我今天上午才破解了一个WPA2的无线网络——其实我真的是碰运气的,因为手头一共也才两个字典,一个是德国人做的单词为密钥的WPA字典,另一个是生日字典。我就试了一下生日字典,里面包含从1900年到2010年全部月日的8位数生日,没想到那个傻x还真是用了生日做密钥。
我之前学了一个很实用的密码设置方式,也容易记忆。比如我能记得住ppoping这个单词,那么我不放把密码设置成pp0p1n9,是不是很不错呢……
WPA破解原理简要——无线网络破解续的更多相关文章
- 渗透测试之wep无线网络破解
WEP 无线网络破解 WEP(无线等效协议)于 1999 年诞生,并且是用于无线网络的最古老的安全标准.在 2003 年,WEP 被 WPA 以及之后被 WPA2 取代.由于可以使用更加安全的协议,W ...
- WPA-PSK无线网络破解原理及过程(转)
本文将主要讲讲WPA-PSK类型的无线网络安全问题,首先我们看下802.11协议相关的基础知识. 802.11常见的几种认证方式: 1.不启用安全 2.WEP 3.WPA/WPA2-P ...
- WPA-PSK无线网络破解原理及过程
原文链接地址:http://www.freebuf.com/articles/wireless/58342.html 本文将主要讲讲WPA-PSK类型的无线网络安全问题,首先我们看下802.11协议相 ...
- Kali-linux Gerix Wifi Cracker破解无线网络
Gerix Wifi Cracker是另一个aircrack图形用户界面的无线网络破解工具.本节将介绍使用该工具破解无线网络及创建假的接入点. 9.3.1 Gerix破解WEP加密的无线网络 在前面介 ...
- Kali-linux使用Aircrack-ng工具破解无线网络
Aircrack-ng是一款基于破解无线802.11协议的WEP及WPA-PSK加密的工具.该工具主要用了两种攻击方式进行WEP破解.一种是FMS攻击,该攻击方式是以发现该WEP漏洞的研究人员名字(S ...
- WEP无线网络密码破解
一,五分钟实现无线WEP入侵的特点: 众所周知WEP加密入侵需要用户通过监听等方法接收到足够数量的WEP验证数据包,然后通过分析软件使用暴力破解的方法穷举法还原出WEP加密密钥的明文信息.五分钟实现无 ...
- 利用MacBook Air入侵无线网络
目前无线网络的加密方式主要有WEP,WPA/WPA2.这是最常看到的加密方式,最近由于需要,专门去研究了一下如何入侵无线网络. 1.入侵WEP加密的无线网络 WEP加密方式现在已经很不安全了,因为只要 ...
- 利用MacBookPro入侵无线网络
目前无线网络的加密方式主要有WEP,WPA/WPA2.这是最常看到的加密方式,最近由于需要,专门去研究了一下如何入侵无线网络. 1.入侵WEP加密的无线网络 WEP加密方式现在已经很不安全了,因为只要 ...
- 三分钟PJ隐藏SSID无线网络
一般来说用户可以通过路由或主机设置来隐藏无线信号的SSID网络信息,在这种情况下我们使用XP系统自带的无线信号扫描工具将看不到该无线网络的踪影,在这种情况下XP系统无线信号管理工具只能够看到将SSID ...
随机推荐
- window svn链接
我学会怎么建立window SVN服务器了 今天,终于学会怎么自己搭建SVN服务了,以前一直用的都是公司的SVN服务,没接触过,觉得很神秘,曾经我一个同事弄了好几天,也没搭成,对我打击挺大的:( 觉得 ...
- iOS9 collectionView新特性
近日因为系统升级导致xcode6.系列版本出现bug,于是开始使用xcode7.在使用之余突然想到collectionView在iOS9中发布了一个可以移动cell的新特性,就尝试着将其实现,无奈ap ...
- FileStream和StreamWriter配合写数据流时,出现数据写不进去的问题
今天做一个数据导进txt小程序时,发现一个问题,就是没有关闭sw的流,只关闭了fs的,结果写不进去数据,看代码是对的,就是不行,最后就随手填上了sw的关闭后,可以了,反复测试,竟然就是这的问题,有点搞 ...
- linux之iptables
from http://www.geekfan.net/6921/ Iptables是专为Linux操作系统打造的极其灵活的防火墙工具.对Linux极客玩家和系统管理员来说,iptables非常有用. ...
- 利用反射和ResultSetMetaData实现DBUtils的基本功能
DBUtils大大简化了JDBC的书写,极大的提高了开发效率,和数据库连接池一起,简化了JDBC开发的流程.简易的自定义数据库连接池可以通过装饰者设计模式和动态代理模式得到很简单的实现,那么DBUti ...
- windows服务相关
1. 卸载服务 cmd 命令: sc delete + 服务名 2. 注册服务 cmd 命令 : 服务名+ install 3.mysql 启动服务步骤 1) 初始化密码:mysqld -initi ...
- vue学习笔记之属性和方法
每个Vue都会代理其data对象里所有的属性:只有这些被代理的属性是响应的.如果在实例创建之后添加新的属性到实例上,它不会触发视图更新.例子: <script type="text/j ...
- js javascript 模拟点击 超级链接点击 转
转自:http://mo2g.com/view/42/ 我尝试过多次用jQuery模拟用户点击a标签的功能,但都没有成功,并且困扰了很久.前段时间的一次发呆,冒出了新的想法,于是就动手进行了测试. 先 ...
- xcodebuild
xcodebuild -workspace /path/union/moon-ios/Moon.xcworkspace -scheme Moon ONLY_ACTIVE_ARCH=NO TARGETE ...
- hdu 1051 (greedy algorithm, how a little modification turn 15ms to 0ms) 分类: hdoj 2015-06-18 12:54 29人阅读 评论(0) 收藏
the 2 version are essentially the same, except version 2 search from the larger end, which reduce th ...