无线网络的攻击技术与安全防护研究
2008-03-19
作者:孙士潮
摘 要: 结合当前实际中应用比较广泛的IEEE 802.11无线网络技术,从攻与防两个角度较为全面地分析了无线网络所面对的安全威胁和相应的安全防护机制,并提出了增强无线网络安全性的方案。
关键词: IEEE802.11标准 无线LAN 连线对等保密 初始化矢量 SSID
1 IEEE 802.11标准简介
随着个人数据通信技术的发展,功能强大的便携式数据终端以及多媒体终端的广泛应用,为了实现任何人在任何时间、任何地点均能进行数据通信,要求传统的计算机网络由有线向无线、由固定向移动、由单一业务向多媒体业务发展,这样就大大推动了无线局域网的发展。于是,众多标准纷纷出台。IEEE 802.11标准是其中应用比较广泛、获得众多厂商支持的一种国际标准。
IEEE制定的802.11协议主要工作在ISO协议的物理层和数据链路层" title="链路层">链路层,并在物理层上进行了一些改动,使之具有高速数字传输特性,并且提高了连接的稳定性。它描述了无线局域网和无线城域网的介质访问控制(MAC)和物理层的规范。
1.1 802.11标准工作方式
802.11标准定义了两种类型的工作方式,一种是无线站,通常由一台PC机加上一块无线网络接口卡构成;另一种称为无线接入点" title="接入点">接入点(AP),它的作用是提供无线网络和有线网络" title="有线网络">有线网络之间的连接。无线接入点" title="无线接入点">无线接入点通常由一个无线输出口和一个有线的网络接口构成,接入点就像是无线网络的一个无线基站,将多个无线终端聚合到有线的网络上。
1.2 802.11标准物理层
802.11标准最初定义的三个物理层包括两个扩展频谱技术和一个红外传播规范。无线传输的频道定义在2.4GHz的ISM频段内,可以非注册使用。这样,使用802.11标准的客户端" title="客户端">客户端设备就不需要任何无线许可。扩展频谱技术保证了802.11标准的设备在这个频段上的可用性和可靠的吞吐量,还可以保证它与使用同一频段的其他设备不互相影响。802.11无线标准可以使用FHSS(跳变频率扩谱)和DSSS(直接序列扩谱)两种技术,但因为FHSS和DSSS在运行机制上是完全不同的,所以采用这两种技术的设备没有互操作性。
1.3 802.11标准数字链路层
802.11无线局域网协议采用载波侦听多路访问(CSMA/CA)避免冲突的发生,只有当客户端收到网络上返回的ACK信号后才确认送出的数据已经正确到达目的地。这种显式的ACK机制虽然对冲突检测很有效,但却给网络增加了额外的负担,降低了网络性能。802.11MAC子层还提供了另外两个强健的功能:CRC校验和包分片。
802.11 MAC子层负责解决客户端和无线接入点之间的连接。当一个802.11客户端进入一个或多个接入点的覆盖范围时,会根据信号的强弱以及包错误率自动选择一个接入点进行连接,一旦被一个接入点连接,客户端就会将发送接收信号的频道切换到接入点的频段。
2 IEEE 802.11标准的安全技术
IEEE认为,需要拥有访问与机密性控制服务和确保传输数据完整性有关的一些机制来为无线通信网络提供与有线网络中功能等效的安全措施。为了防止出现无线网络用户偶然窃听的情况和为了提供与有线网络等效的安全措施,IEEE引入了有线对等保密算法,即WEP算法。
WEP算法是一种流加密算法。首先通过把密钥和一个24bit的初始化矢量(IV)串联在一起,得到种子(SEED),输入到伪随机数发生器(PRNG)里;然后PRNG使用RC4流加密算法,输出与被发送数据八位组数字等长的伪随机八位组密钥序列;为了防止未经授权修改数据,对未加密报文执行完整性检验算法,把得到的校验和与未加密报文串联在一起,得到完整性检验结果(IVC),接着将IVC和PRNG输出序列进行数学上的按位异或运算,生成密文,整个加密过程到此结束;最后把IV和密文串联在一起,所得到的报文通过无线链接发送出去。
对于WEP算法,授权过程明确分解为如下四步:
(1) 客户端发送链接请求。
(2) 验证方接收请求,生成一个随机验证内容,传递给请求方,作为响应。
(3) 客户端接收传输内容,并使用共享密钥流加密验证内容,传送给验证方。
(4) 验证方解密内容,并同原始内容比较。如果匹配,则客户端通过验证。
WEP算法在传输上提供了一些安全性和保密性,能够阻止有意或无意的浏览者看到AP和客户端之间的传输内容。
WEP算法的特点如下:
(1)全部报文都使用完整性校验与加密,提供了某种程度上的抵御篡改的能力。
(2)通过加密维护一定的保密性。如果没有密钥,就不能解密报文。
(3)为WLAN应用程序提供了非常基本的保护。可以由用户定义WEP密钥,而且没有限制。不必使用预先定义的密钥,而且用户可以经常改变它们。
WEP算法存在的问题:
(1)RC4加密算法是公开的流加密算法。为了加密,它使用数量极其有限的密钥来试图生成无限的伪随机密钥。
(2)密钥一旦修改了,必须通知每个用户。
(3)必须在每个客户端和每个AP都实现WEP,才能生效。
3 攻击手段
在此讨论八种具有广泛代表性的攻击策略,以此来衡量用以加强无线LAN防护的安全技术,评估安全防护系统的有效性。
3.1 流量分析
流量分析是一种简单的技术手段,攻击者根据通信媒介所传输的数据包的数量和数据报文的大小来确定网络负载。有一块工作在混杂模式的无线网卡以及可以对传输的数据包的数量和大小进行计数的软件即可实现流量分析。使用适当的天线更是增加了攻击者可以探测的范围,大大降低了攻击者由于距离攻击目标太近而被发现的可能性。
3.2 被动窃听
这种攻击需要具备的惟一条件是攻击者要能够对网络进行侦听。通过在无线网络的通信范围内使用有向天线可以很容易地得到满足。
如果无线网络没有采取任何加密措施,攻击者就可以很容易地读取会话双方传输的明文数据,并且通过检查传送的数据包间接地获取有关数据的来源、目的、大小、序列号以及传输时间等信息。这种类型的攻击所获得的不仅仅是泄漏的信息,更重要的是,通过对数据包的分析获得了进一步实施更具威胁的攻击所需要的部分先决条件。
如果会话在数据链路层或者更高的协议层上使用一定的加密算法,如WEP算法、高级加密标准算法(AES)进行了加密,则为了读取数据,攻击者必须设法对算法进行攻击以解密数据。
3.3 部分明文已知的主动窃听
这种攻击手段不同于被动窃听攻击手段的是在窃听过程中,攻击者不仅侦听网络上的数据,而且向通信媒介主动地插入特定消息以帮助它们获取这些消息的内容。这种攻击所需要具备的条件是攻击者能够访问网络并且掌握了一些诸如目标IP地址等的有用信息。
明文已知的主动窃听的例子是IP欺骗。攻击者将数据包中的目标IP地址替换为在他控制下的主机的IP地址。该数据包被接入点(AP)接收并解密,通过网络发送到由攻击者控制下的主机。如果保密信道中止于一个网关,比如VPN集线器,则这种攻击能够成功地穿过加密信道并在网关处被解密,然后以明文形式送到攻击者指定的机器。如果IP头被加密,攻击者也只需修改IP头并保证校验和的有效性。
3.4 明文已知的主动窃听
利用前面分析的WEP算法的脆弱性,攻击者可以向网络中插入特定的数据包,用它们刺探网络的情况以便收集信息对未来的数据包进行解密。比如,攻击者使用他在无线LAN上的机器发送一个消息,与此消息相关的初始化矢量(IV)就可以被攻击者用来在以后攻击使用同样IV进行加密的数据包。从数学的角度来说,当使用同样的初始化矢量时,C1⊕C2=P1⊕P2,如果知道了P1,并且通过窃听知道了C1和C2,则很容易得到P2。攻击者可以很容易地建立起一个(IV,P1)的数据库,这样就可以解密曾使用WEP算法在数据链路层进行加密的任何数据。
3.5 非授权访问
非授权访问不同于前面讨论的任何攻击方式,它针对的不是特定的用户或用户集,而是整个网络。一旦攻击者具有了对网络的访问权限,他就可以对网络发动进一步的攻击,或者仅仅是免费使用网络。尽管免费使用对大部分网络来说也许不是很严重的威胁,但网络访问权的获得对后面将要讲到的ARP袭击是一个关键的步骤。
3.6 中间人攻击
攻击者首先阻止客户端和接入点之间的连接,然后攻击者扮演一个中间人的角色。也就是说,对于客户端来说,攻击者相当于一个接入点,客户端同它建立连接并且获得认证;而对真正的接入点来说,攻击者扮演类似于客户端的角色,并同它建立一个有效的连接。这样一来,在客户端看来,攻击者就是接入点。中间人攻击可以从会话中读取秘密数据或者修改数据包,从而破坏会话的完整性。这是一种实时攻击,就是说攻击发生在目标机器通话的过程中。
3.7 会话接管
会话接管的攻击目标是会话的完整性。客户端同无线接入点建立了有效的连接以后,攻击者从客户端和接入点的会话中收集到足够多的信息,开始阻塞客户端同接入点的连接,而它自己则伪装成客户端同接入点进行会话。
3.8 应答攻击
应答攻击同样是针对信息的完整性。它使用非法获得的目标机的认证权限访问网络,但不影响目标机的正常会话。这不是一种实时攻击,在最初的会话结束后的时间里,攻击者可以用目标机的访问权限与AP建立起信任关系,因为它使用的是合法用户的账号,所以AP会认为它就是合法的用户。
4 常用的安全机制与安全技术
无线安全技术可以划分为三种安全策略。多数安全产品提供商在配置安全系统时会采用这三种安全策略的组合。第一种策略是认证,这种策略包括判断客户端是否是授权的无线LAN用户以及确定该用户有什么权限,同时它也包括阻止非授权用户使用无线LAN的机制。第二种策略是在用户得到认证并接入无线LAN后维护会话的保密性机制。一般来说,保密性通过使用加密技术得以实现。最后一种策略是校验信息的完整性。
4.1 认证
802.11标准提供了一组可选的认证方案。最基本的认证机制是使用服务集标识符(SSID)认证。无线客户端必需出示正确的SSID才能访问无线接入点,利用SSID可以很好地进行用户群体分组,避免任何漫游带来的安全性能和访问性能的问题,因此可以认为SSID是一个简单的口令,从而为无线局域网提供一定的安全性。然而由于无线接入点AP向外广播它的SSID,使安全程度下降。另外,一般情况下,用户自己配置客户端系统,所以很多人都知道它的SSID,很容易共享给非法用户。况且有的厂家支持“任何”SSID方式,只要无线客户端处在AP范围内,它都会自动连接到AP,这将绕过SSID的安全功能。
另一种认证技术是物理地址(MAC)过滤。每个无线客户端网卡都有惟一的物理地址标识,因此可以在AP中手工维护一组允许访问的MAC地址列表,实现物理地址过滤。物理地址过滤属于硬件认证,而不是用户认证。这种方式要求AP中的MAC地址列表必须随时更新,目前都是手工操作。如果用户增加,则扩展能力很差,因此只适合于小型网络规模。另外,非法用户利用网络侦听手段很容易窃取合法的MAC地址,而且MAC地址并不难修改,因此非法用户完全可以盗用合法的MAC地址进行非法接入。
还有一种扩展认证协议(EAP),它支持双向认证和动态密钥。双向认证使用两个互不相关的认证过程。客户端向接入点证实自己的身份,而接入点则要向服务器证实自己的身份,更进一步,还可以要求无线接入点在一个合理的限定时间内向客户端证实自己的合法身份。双向认证可以有效地阻止中间人攻击,攻击者无法欺骗客户端说它是无线接入点,这就使得检测和隔离虚假访问点与非法客户端成为可能,至少增加了攻击难度,从而提高了网络的安全性。其他比较常见的认证方式还有802.1x认证(端口访问控制技术)、隧道传输层安全(TTLS)、增强型可扩展认证协议(PEAP)、无线传输层安全(WTLS),包认证等。
4.2 加密
使用加密算法可以保证数据包的隐秘性。加密系统的设计相当于为数据传输提供了一个虚拟通道,数据通过这个通道就如同通过受到保护的网络一样。如果加密系统设计得适当并能正确地实现,则对任何没有密钥的人来说数据是不可读的,并且任何改变加密数据的试图都不能得逞。这就要求有加密完整性检查或者说校验。加密系统的两个关键设计参数是对哪个网络层进行加密以及对数据进行解密的节点的位置放在哪里。
加密可以在各个协议层进行。加密所在的协议层越低,加密信道的安全性就越高。对于IP欺骗攻击,在第三层加密容易实施,但在第二层加密就有了难度,因为第三层加密IP地址是以明文方式传送的;而第二层加密虽然可以降低IP欺骗攻击的威胁但不能阻止ARP欺骗的攻击,因为MAC地址仍然是以明文传输的。从孤立的观点来看,只要控制了底层,所有的高层就安全了。实际上并非如此,因此要对所有的协议层都进行加密才能解决这个问题。
加密信道可以有三种可能的终止节点。第一个可能的终止节点是无线接入点AP,第二个可能的终止节点是无线网络与有线网络的接口点,第三个可能的终止节点是有线网络中的服务器,加密消息到了最终目的以后才被解密。所有这三种可能都可以被使用以形成深度防御。4.3 完整性检查
IEEE 802.11标准把WEP校验和定义为“一个以报文为自变量的线性函数”。这样做的结果是:有可能在不破坏校验和的前提下对密文进行有控制的修改。同样,RC4本身也是一个线性函数,构成CRC和RC4条件的实体可以在不破坏计算结果的前提下重新排序。在只允许对分组内容的部分信息进行修改的前提下,要计算出预期的结果,攻击者只需知道原始密文和想得到的明文之间的区别就可以办到。
安全哈希算法(SHA-1)根据明文消息计算出一个160bit的值。对这种算法来说,两个不同的消息得出同样的SHA-1结果几乎是不可能的。因此,对消息的任何改变都可以被发现,可见采用该算法可以很好地保证数据的完整性。
安全不是一种静止的状态,而是对付潜在威胁的一个过程。为了组建、运行、维护一个安全的网络,管理者必须充分了解所要保护的信息的价值和威胁的来源,并且考虑自己的需要和所拥有的安全手段。然后使用各种有助于缓解威胁的策略比如技术手段、管理政策、用户培训等手段来降低威胁。
为了保证无线网络的安全,建议使用以下安全策略:双向认证;在链路层对信道进行加密;数据完整性检查。
参考文献
[1] BARNES C. 无线网络安全防护[M]. 刘堃,译. 北京:机械工业出版社,2003.
[2] ANSI/IEEE Std 802.11[S]. 1999 Edition.
[3] WELCH C D J. A survey of 802.11a wireless security threats and security mechanisms[R],2003