本帖最后由 赵小布 于 2010-5-31 21:56 编辑
菜鸟学堂,看名字就知道,写给和我一样的菜鸟的,我也不设置什么回复可见。如果你只对如何P解感兴趣,那么不用看下去了,我这里说的,你肯定不感兴趣,如果你想知道的稍微多一点,那么你不妨看下,或许对你有帮助,这里我只讨论WEP,我只是对这方面感兴趣,碰巧和工作也有点关系,所以稍微研究了下。说实话,我对wpa研究不多,上次据说一分钟能P解WPA的日本专家的资料,看了很久,没什么头绪,我个人觉得目前WPA还是很安全的,什么字典攻击等很大部分是靠运气的,就算不安全,被人发现了像WEP一样的P解方法,一个有道德的黑客或者安全研究人员,也不会在找到WPA的替代协议出现之前公布出来,否则那是灾难性的。其实我们国家强制推行WPAI是很有道理的,要有自己的核心技术,才不会受制于人。 WEP,又称有线等效协议(Wired Equivalent Privacy),是现在常用的wifi加密方法,不过由于大伙的努力,使用这个加密的人越来越少了,所有的加密是以数据包(Data Packet)为基础的,加密后封装为数据帧(Data Frame);在这里,稍微提下,802.11帧格式和普通以太网帧有很大的不同,分为管理帧,控制帧和数据帧,在WEP中,大家捕获握手包,其实就是捕获管理帧的Authenticate Frame(认证帧)。在共享密钥认证方式用,Authenticate Frame共有四帧,也就是我们常说的四次握手,关于这个,下次再讲。下面是WEP加密的主要过程: (1) 客户端计算原始数据包中明文数据(我们记做P)的32位CRC循环冗余校验码,实际上是计算整数检查向量(我们记做ICV),(又一堆专业术语,大家不理解没关系),这两个,也就是P和ICV构成我们要传输的数据(P+ICV),这才是需要加密的真正的明文。 (2) 我们用40位的密钥和24位的初始向量(IV)构成种子密钥(假设我们采用64位加密)。输入到采用RC4算法的伪随机数发生器,生成与我们要传输的明文(P+ICV)等长的随机数,我喜欢把这个称作为真正的密钥(Real Key)。我们输入的种子不同,生成的随机数也是不同的。这个类似于现在很多软件都靠MD5散列来检验有没有被人篡改过。又扯远了。回到正题。 (3) 将我们得到的随机数和传输明文数据(P+ICV)按位进行异或操作(所谓异或操作,就是比较相同位上的数字,如果相同值为0,不同则为1),得到密文(我们记做C),然后将前面的24位初始向量和密文(C)组合在一起,得到要传输的密文(IV+C)。
解密的过程只是个简单的取反。就是AP收到数据后,将得到的(IV+C),分解,提取IV,然后将自己所持有的密钥Key组合在一起,输入到采用RC4算法的伪随机数发生器,得到解密的随机数,实际上和加密的随机数是一样的。然后将解密的随机数和密文(C)做异或操作,就得到了明文(P+ICV); 纯理论的东西,呵呵,当然肯定没P解有趣,先发到这里,如果大伙有兴趣,那我接下去讲关于IV重用,IP重定向,FMS等内容,没兴趣那就算了。 |