前言
即使无线局域网络的系统管理者使用了内置的安全通讯协议:WEP(Wired Equivalent Privacy),无线局域网的安全防护仍然不够。在伦敦一项长达7个月的调查显示,94%的无线局域网都没有正确设定,无法遏止黑客的入侵。隶属于国际商会(International Chamber of Commerce)的网络犯罪部门(Cybercrime Unit)就发现,即使无线网络很安全,也会因为种种原因而大打折扣。现在非常盛行「路过式的入侵(drive-by hacking)」,黑客开车进入商业办公区,在信号所及的地方,直接在车里渗透企业的无线局域网。
University of California at Berkeley(美国加州柏克莱大学)的三名研究人员,Nikita Borisov、Ian Goldberg、以及Dabid Wagner,在去年发现WEP编码的重大漏洞;除此之外,在2001年8月,密码学家Scott Fluhrer、Itsik Mantin、以及Adi Shamir在一篇论文中,指出了RC4编码的缺点,而RC4正是WEP的基础。就在几天后,2001年8月底,Rice University(美国莱斯大学)的学生与两名AT&T(美国电报电话公司)实验室的员工(Adam Stubblefield与John Joannidis、Aviel D. Rubin),将这两篇论文的内容化为实际的程序代码。令人惊讶的是,其中完全没有牵扯到任何特殊装置,你只要有一台可以连上无线网络的个人计算机,从网络上下载更新过的驱动程序,接下来就可以开始记录网络上来往的所有封包,再加以译码即可。
WEP的运作方式
在许多无线局域网中,WEP键值(key)被描述成一个字或位串,用来给整个网络做认证。
目前WEP使用2种编码大小,分别是64与128位,其中包含了24位的初始向量(IV,Initialization Vector)与实际的秘密键值(40与104位)。大家耳熟能详的40位编码模式,其实相当于64位编码。这标准中完全没有考虑到键值的管理问题;唯一的要求是,无线网卡与基地台必须使用同样的算法则。通常局域网的每一个用户都会使用同样的加密键值;然而,局域网用户会使用不同的IV,以避免封包总是使用同样WEP键值所「随机」产生的RC4内容。
在封包送出之前,会经过一个「忠诚检查(IC,Integrity Check)」,并产生一个验证码,其作用是避免数据在传输过程中,遭到黑客窜改。RC4接下来会从秘密键值与IV处,产生一个keystream,再用这个keystream对数据与IC做互斥运算(XOR,Exclusive-Or)。首先IV会以一般文字方式传送出去,然后才是加密后的数据。只要将IV、已知的键值、以及RC4的keystream再做一次互斥运算,我们就可以将数据还原。