关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > 解读WLAN安全机制

解读WLAN安全机制

作者:吕渊 夏宇闻 杨军时间:2005-04-30来源:电子设计应用2005年第2期收藏

摘    要:本文介绍了基于IEEE 802.11 WLAN的安全机制,分析了有线等效保密协议()的工作原理及存在的安全漏洞,并对安全协议进行了详细的阐述。
关键词:

本文引用地址:http://www.eepw.com.cn/article/5565.htm

引言
WLAN在许多领域得到了充分的应用。但是WLAN的媒质是共享的,数据通过无线电波在空中传播,就有可能到达预期之外,对数据安全造成重大的威胁,因此问题更为引人注目。本文对无线网络安全机制进行了全面的分析。

802.11标准的安全机制
大多数WLAN设备都是以IEEE 802.11协议为基础的,该标准为解决WLAN的安全问题,提出了一系列的安全机制,包括有线等效保密协议(Wired Equivalent Privacy,)、开放式系统认证(Open System Authentication)和共享密钥认证(Shared Key Authentication)等。
有线等效保密协议——WEP
WEP的目标是应能支持自同步、计算能力强且具有可输出性。为实现这些目标,WEP协议采用RC4伪随机数据产生器(Pseudo Random Number Generator,PRNG)生成密码流,对WLAN中的数据流进行加密保护。由于WEP不提供对数据的认证功能,且RC4为一种对称的密码流加密算法,因此WEP不使用数据完整性密钥,而只使用数据加密密钥,解密密钥与加密密钥相同。
图1展示的是WEP封装的媒体访问控制协议数据单元(MAC Protocol Data Uint,MPDU)格式扩展的Framebody部分,从图中可以清楚地看到,它相对于传统802.11标准定义的MPDU单元额外扩展了8个字节。最左端是32位的初始向量(Initialization Value,IV)区域,包含3字节的初始向量值、2比特的密钥ID值和6比特的填充字段。附于数据右端的是4字节的完整性检验值(Integrity Check Value,ICV),它采用CRC-32算法,由明文数据计算而得。对于WEP加密机制来说,需要RC4密码流加密的数据应包含图中的数据和ICV两部分。
WEP加密封装过程如下:24比特的初始向量与40比特(或104比特)的静态共享密钥WEP密钥连接起来组成64比特(或128比特)的密钥种子(Seed),输入到RC4伪随机数据产生器中以产生密码流(Key Stream)。同时,MPDU明文数据(Plaintext)经由CRC-32算法计算出完整性校验值,附在MPDU明文数据之后,与RC4 PRNG产生的密码流作异或(Exclusive)操作得到密文(Ciphertext),最后将初始向量、加密的数据和ICV值按照图1定义的格式封装好等待发送。RC4为对称的密码流加密算法,因此解密时只需将加密封装反向操作,就可获得MPDU明文数据,不同之处在于解密时需要比较ICV,即将由解密后的明文计算出来的ICV值与封包上的ICV值进行比较,以确保数据完整性。
WEP存在的安全漏洞
如果WLAN的窃听者拦截到具有两个相同初始向量的数据包,将它们进行异或,就可以得到这两个数据包明文的异或值,如果推断出其中一条消息的明文,或者攻击者根本就很清楚其中某一条消息的明文,那么另一条消息的具体内容也就显而易见了。造成这个缺陷的主要原因就是这两个数据包使用了相同的IV,而由IV与静态共享密钥组成的RC4密钥种子相同,因此通过RC4伪随机密码产生器产生的密码流也是相同的,即相对于两个数据包来说,加密用的密码流重用了。
在802.11标准中并没有明确规定何时更换IV和如何更换IV的法则,而且将IV在明文中直接传送。制造厂商在设计时为了方便起见,通常将IV的初始值设置为0,然后往上递增,这样,小数值的IV使用频率增大,密码流重用的几率也增大了,同时攻击者拦截到相同密码流加密的数据包的几率也就增大了。
从WEP的MPDU格式中可以知道,初始向量IV只有24位,这是非常有限的,就算IV把所有可能值轮循一次,窃听者也可以在几个小时之内获得重复IV所产生的相同的密钥种子及密码流,这样便缩短了密钥的使用寿命。
WEP的封装过程显示,它并没有额外进行数据完整性校验,而仅仅使用CRC-32算法对需要加密的明文计算了一次完整性检验值。众所周知,CRC-32算法是一个线性函数,攻击者可以利用这个特性来构建正确的加密包,而仅需要为篡改的消息计算出相应的ICV值即可。

构建安全网络
目前迫切需要一种比WEP更完善的网络安全机制来有效地加强WLAN的安全性,鉴于这个原因,IEEE成立了专门的802.11 Task Group I(TGi)来制定并不断修改、完善具备更高安全性能的网络安全协议——802.11i。802.11 TGi提出了为WLAN构建健全安全网络的构想RSNA(Robust Security Network Association),并将WEP列为pre-RSNA安全算法。RSNA定义了过渡时期的安全通信协议——暂时性密码完整协议(Temporal Key Integrity Protocol,)和强制实施的计数器模式及密码区块链信息认证码协议(Counter Mode and Cipher Block Chaining Message Authentication Code Protocol,或Counter Mode/CBC-MAC Protocol,),并采用IEEE 802.1X来提供身份认证和密钥分配的框架结构。

TKIP的提出,是为了兼容那些仅支持WEP的硬件,使它们在不改变原来硬件框架的同时,只需要本地升级就可以支持TKIP,从而达到增强网络安全性的目的。
相对于WEP来说,TKIP的MPDU增加了序列计数器TSC(TKIP Sequence Counter)和信息完整码MIC(Message Integrity Code)的信息,TSC为48比特,由初始向量IV的第一和最后一个字节,再加上扩展初始向量(Extended IV)的4个字节组成。密钥ID字节的Ext IV比特位应设置为1,用以标志随后的4个字节为TKIP的扩展初始向量。需要WEP封装加密的字段为数据、MIC以及WEP封装中计算出的ICV值。
暂时性密码TK(Temporal Key)和MIC密钥都是由802.1X事先协商出来的成对密码衍生出来的。MIC密钥、目的地址DA、源地址SA、优先级及媒体访问控制服务数据单元MSDU(MAC Service Data Unit)共同输入到信息完整码函数(Michael Function)中,计算出MIC并附在MSDU原文后,再与序列计数器TSC共同送入拆包函数(Fragment Function)中,若需要则分割成多个较小的MPDU。与此同时,传输器地址TA、暂时性密码TK及TSC输入到混合函数(Key Mixing Function)中,经过两个阶段的混合运算,为相应TSC的MPDU计算出个别封包密码,802.11i协议规定这个密码总共128比特,由104比特的RC4密钥和24比特的WEP IV组成。最后,将MPDU与对应的个别封包密码送入有线等效保密协议封装函数(WEP Encapsulation)中进行加密。由于TKIP使用对称加密的WEP作为加密引擎,因此解密的时候只需将这个加密封装过程反向操作即可。
虽然TKIP的核心加密运算仍然为WEP中采用的RC4算法,但是TKIP却提供了额外的运算单元,对初始向量、原文及密码进行了先期处理,因此比WEP更具有可靠的数据传输安全性。首先,传输者计算出MIC值,附在MSDU之后分割成若干个MPDU,以待加密后发送。接收者在解密并成功通过ICV校验之后,将这若干MPDU整合成一个MSDU,并根据接收的数据计算出本地MIC值,与接收到的MIC值比较,若不符则抛弃该MSDU,同时采取相应的措施,如及时更换暂时性密钥等,这样便有效地防止了伪造攻击;其次,用于计算信息完整码的Michael函数是一个单向的杂凑函数,而并非线性的CRC-32函数,这样就增加了黑客截取数据包并篡改内容的难度。同时,TKIP还采取了许多措施来限制攻击者伪造成功的几率和通过大量数据流获取密钥的可能性;第三,TKIP为每个MPDU包引入了不同的TSC序列值,接收者在接收时丢弃掉TSC值顺序不符的MPDU包,以此来防止重演攻击;第四,TKIP利用混合函数将TSC与WEP密钥捆绑起来,接收者从MPDU中恢复出TSC,同样通过混合函数计算出与发送方相同的WEP密钥后才能正确解密,这样就有效地破坏了黑客针对WEP密钥的攻击。

在802.11i构建健全安全网络的构想中,除了TKIP安全机制以外,还有一种强制实施的安全通信协议,就是计数器模式及密码区块链信息认证码协议CCMP。任何宣称为RSNA的安全系统都必须强制性地支持CCMP安全机制。
CCMP安全机制完全不同于WEP,它采用高级加密标准AES(Advanced Encryption Standard)作为加密引擎。FIPS PUB 197标准中定义AES加密区块长度为128比特,密码长度则有128比特、192比特、256比特三种可选,在802.11i标准中则限定AES加密引擎的区块和密码长度均为128比特。CCMP还配备了两种运算模式,即计数器模式(Counter Mode)和密码区块链信息认证码模式(CBC-MAC Mode),其中计数器模式用于数据流的加密/解密,而密码区块链信息认证码模式则用于身份认证及数据完整性校验。
CCMP的MPDU格式如图2所示。从图中可以看出,CCMP的处理机制将802.11标准定义的MPDU格式扩充了16个字节,其中8个字节为CCMP起始码,8个字节为MIC。CCMP起始码是由PN(Packet Number)、Ext IV和密钥ID组成的,PN值是48位的数据包序列号。Ext IV比特位设置为1,用以标志CCMP将MPDU起始码扩展了8位,而不是像WEP那样只扩展了4位,对于CCMP来说,这一位总是设置为1的。附加在数据域后面的MIC是通过前述的CBC-MAC模式计算出来的,它和数据域一样需要进行加密运算。
CCMP加密用的TK仍然是由成对的密码衍生出来的。数据包序列值PN是不断增加的,每个MPDU可以获得一个不同的PN值,这样对于同样的TK,PN永远也不会重复。MAC起始码部分用来构造附加认证数据AAD(Additional Authentication Data),PN、MPDU的Address 2以及优先级则构造出CCM Nonce值,上述二者与TK、MPDU原文一起送入CCM加密模块,计算MIC值并进行加密运算。PN与密钥ID共同组成CCMP起始码,再与MAC起始码、加密后数据和MIC共同构成图2所示的CCMP MPDU格式。解密的封装过程与加密封装对称,仅需在反向操作后比较MIC值,用以确保数据完整性即可。
由此可见,CCMP的安全机制与WEP、TKIP截然不同,它除了能对数据进行保护外,还可以提供对MAC起始码的保护,加密引擎AES可靠性、安全性更高,同时对硬件的要求也更高。总的来说,CCMP能够提供保密、鉴别、完整性及重演攻击的保护措施,也必须具备它,才能满足健全安全网络的构想。

结语
IEEE 802.11 TGi所制定的802.11i标准能够提供足够的安全保障,以防止目前所知的攻击方式,加强WLAN的安全性能,构建健全的安全网络,确保数据的保密性、完整性和身份认证都得到良好的解决。■

pid控制器相关文章:pid控制器原理




评论


相关推荐

技术专区

关闭