解析新一代WLAN安全技术IEEE 802.11i、WPA和WAPI

类别:软件工程 点击:0 评论:0 推荐:

http://it.sohu.com/2003/12/11/21/article216752135.shtml

解析新一代WLAN安全技术IEEE 802.11iWPAWAPI

各种新一代的无线局域网安全技术为用户提供了全面而有效的保护。以前一些分析家们指出,安全性的缺陷将会对WLAN的推广带来许多麻烦,但当他们对新的安全机制做出评估之后,绝大多数分析家承认,正确管理的WLAN就目前而言具有足够的安全性。

  众所周知,无线局域网中的WEP加密机制并不能够为无线用户提供足够的安全保护。因此,自无线局域网开始商业应用之时,安全问题就成为了限制其进一步发展的主要制约因素。许多潜在的用户对于WLAN技术所带来的灵活性十分感兴趣,但却由于不能够得到可靠的安全保护而对是否采用WLAN系统犹豫不决。

  一方面是对WLAN需求不断增长,另一方面却是WLAN技术自身存在安全上的缺陷,无线局域网技术就这样陷入了十分尴尬的境地之中。

  IEEE 802.11i——新一代WLAN安全标准

  为了使WLAN技术从这种被动局面中解脱出来,IEEE 802.11的i工作组致力于制订被称为IEEE 802.11i的新一代安全标准,这种安全标准为了增强WLAN的数据加密和认证性能,定义了RSN(Robust Security Network)的概念,并且针对WEP加密机制的各种缺陷做了多方面的改进。

  IEEE 802.11i规定使用802.1x认证和密钥管理方式,在数据加密方面,定义了TKIP(Temporal Key Integrity Protocol)、CCMP(Counter-Mode/CBC-MAC Protocol)和WRAP(Wireless Robust Authenticated Protocol)三种加密机制。其中TKIP采用WEP机制里的RC4作为核心加密算法,可以通过在现有的设备上升级固件和驱动程序的方法达到提高WLAN安全的目的。CCMP机制基于AES(Advanced Encryption Standard)加密算法和CCM(Counter-Mode/CBC-MAC)认证方式,使得WLAN的安全程度大大提高,是实现RSN的强制性要求。由于AES对硬件要求比较高,因此CCMP无法通过在现有设备的基础上进行升级实现。WRAP机制基于AES加密算法和OCB(Offset Codebook),是一种可选的加密机制。

  IEEE 802.11i目前还处于草案阶段,预计在2003年年底有望得到正式批准。

  WPA——向IEEE 802.11i过渡的中间标准

  然而,市场对于提高WLAN安全的需求是十分紧迫的,IEEE 802.11i的进展并不能满足这一需要。在这种情况下,Wi-Fi联盟制定了WPA(Wi-Fi Protected Access)标准。这一标准采用了IEEE802.11i的草案,保证了与未来出现的协议的前向兼容。WPA与IEEE 802.11i的关系如图1所示。


图1 WPA与IEEE 802.11i的关系

 

  WPA采用了802.1x和TKIP来实现WLAN的访问控制、密钥管理与数据加密。802.1x是一种基于端口的访问控制标准,用户必须通过了认证并获得授权之后,才能通过端口使用网络资源。TKIP虽然与WEP同样都是基于RC4加密算法,但却引入了4个新算法:

  ● 扩展的48位初始化向量(IV)和IV顺序规则(IV Sequencing Rules);

  ● 每包密钥构建机制(per-packet key construction);

  ● Michael(Message Integrity Code,MIC)消息完整性代码;

  ● 密钥重新获取和分发机制。

  WPA系统在工作的时候,先由AP向外公布自身对WPA的支持,在Beacons、Probe Response等报文中使用新定义的WPA信息元素(Information Element),这些信息元素中包含了AP的安全配置信息(包括加密算法和安全配置等信息)。STA根据收到的信息选择相应的安全配置,并将所选择的安全配置表示在其发出的Association Request和Re-Association Request报文中。WPA通过这种方式来实现STA与AP之间的加密算法以及密钥管理方式的协商。

  支持WPA的AP工作需要在开放系统认证方式下,STA以WPA模式与AP建立关联之后,如果网络中有RADIUS服务器作为认证服务器,那么STA就使用802.1x方式进行认证;如果网络中没有RADIUS,STA与AP就会采用预共享密钥(PSK,Pre-Shared Key)的方式。

  STA通过了802.1x身份验证之后,AP会得到一个与STA相同的Session Key, AP与STA将该Session Key作为PMK(Pairwise Master Key,对于使用预共享密钥的方式来说,PSK就是PMK)。随后AP与STA通过EAPOL-KEY进行WPA的四次握手(4-Way Handshake)过程,如图2所示。


图2 AP与STA的四次握手

 


图3 PTK的产生过程

  在这个过程中,AP和STA均确认了对方是否持有与自己一致的PMK,如不一致,四次握手过程就告失败。为了保证传输的完整性,在握手过程中使用了名为MIC(Message Integrity Code)的检验码。在四次握手的过程中,AP与STA经过协商计算出一个512位的PTK(Pairwise Transient Key),并将该PTK分解成为五种不同用途的密钥,如图3所示。

  其中前128位用做计算和检验EAPOL-KEY报文的MIC的密钥,随后的128位作为加密EAPOL-KEY的密钥;接下来的128位作为AP与该STA之间通信的加密密钥的基础密钥(即由该密钥再经过一定的计算后得出的密钥作为二者之间的密钥);最后两个64位的密钥分别作为AP与该STA之间的报文的MIC计算和检验密钥。

  由PTK分解出来的这一组(五个)密钥是AP与该STA之间使用的密钥(所以也叫每用户密钥,用于AP与STA之间的单播报文的加密),这些密钥永远也不会以任何形式出现在无线网络上。在确认双方所持的PMK一致后, AP会根据自身是否支持每用户密钥的能力来指示STA是否安装并使用这个每用户密钥。

  为了使现有的设备能够通过软件/固件升级实现WPA,协议规定AP可以不采用PTK方式,而是利用下面将要描述的GTK作为AP向STA发送单播报文时的密钥。如果AP通知STA安装并使用PTK,那么STA在向AP发送一个EAPOL-KEY相应报文后,再把相应的密钥安装到无线网卡中。

  四次握手成功后,AP要生成一个256位的GTK(Group Transient Key),GTK是一组全局加密密钥,所有与该AP建立关联的STA均使用相同的GTK,AP用这个GTK来加密所有与它建立关联的STA的通信报文, STA则使用这个GTK来解密由AP发送的报文并检验其MIC。该密钥可以分解为三种不同用途的密钥, 最前面的128位作为构造全局“每报文密钥”(Per-packet Encryption Key)的基础密钥(Base Key),后面的两个64位的密钥分别作为计算和检验WPA数据报文的MIC的密钥。AP使用EAPOL-KEY加密密钥将GTK加密并发送给STA,并指明该GTK是否允许STA用作发送报文所使用,STA成功接收到该报文,将GTK解密后,向AP发送应答报文,并根据AP所指示的Key Index将其安装无线网卡的相应位置,如果AP使用GTK作为向某一STA单播传输的密钥,则该STA也需要使用GTK作为向AP发送单播报文的密钥。

  TKIP并不直接使用由PTK/GTK分解出来的密钥作为加密报文的密钥,而是将该密钥作为基础密钥(Base Key),经过两个阶段的密钥混合过程,从而生成一个新的每一次报文传输都不一样的密钥,该密钥才是用做直接加密的密钥。通过这种方式可以进一步增强WLAN的安全性。密钥的生成方式如图4所示。


图4 最终密匙的生成形式

 

  在WPA中,AP支持WPA和WEP无线客户端的混合接入。在STA与AP建立关联时,AP可以根据STA的Association Request中是否带有WPA信息元素来确定哪些客户端支持使用WPA。但是在混合接入的时候,所有WPA客户端所使用的加密算法都得使用WEP,这就降低了无线局域网的整体安全性。

  尽管WPA在安全性方面相较WEP有了很大的改善和加强,但Wi-Fi联盟承认目前使用TKIP的WPA只是一个临时的过渡性方案。据来自Wi-Fi联盟的消息,预计在2004年第四季度推出的WPA v2中将会全面采用AES机制。

  WAPI——中国提出的WLAN安全标准

  除了国际上的IEEE 802.11i和WPA安全标准之外,我国也在今年5月份提出了无线局域网国家标准GB15629.11,这是目前我国在这一领域惟一获得批准的协议。标准中包含了全新的WAPI(WLAN Authentication and Privacy Infrastructure)安全机制,这种安全机制由WAI(WLAN Authentication Infrastructure)和WPI(WLAN Privacy Infrastructure)两部分组成,WAI和WPI分别实现对用户身份的鉴别和对传输的数据加密。WAPI能为用户的WLAN系统提供全面的安全保护。WAPI安全机制包括两个组成部分。

  WAI采用公开密钥密码体制,利用证书来对WLAN系统中的STA和AP进行认证。WAI定义了一种名为ASU(Authentication Service Unit)的实体,用于管理参与信息交换各方所需要的证书(包括证书的产生、颁发、吊销和更新)。证书里面包含有证书颁发者(ASU)的公钥和签名以及证书持有者的公钥和签名(这里的签名采用的是WAPI特有的椭圆曲线数字签名算法),是网络设备的数字身份凭证。

  在具体实现中,STA在关联到AP之后,必须相互进行身份鉴别。先由STA将自己的证书和当前时间提交给AP,然后AP将STA的证书、提交时间和自己的证书一起用自己的私钥形成签名,并将这个签名连同这三部分一起发给ASU。

  所有的证书鉴别都由ASU来完成,当其收到AP提交来的鉴别请求之后,会先验证AP的签名和证书。当鉴别成功之后,进一步验证STA的证书。最后,ASU将STA的鉴别结果信息和AP的鉴别结果信息用自己的私钥进行签名,并将这个签名连同这两个结果发回给AP。

  AP对收到的结果进行签名验证,并得到对STA的鉴别结果,根据这一结果来决定是否允许该STA接入。同时AP需要将ASU的验证结果转发给STA,STA也要对ASU的签名进行验证,并得到AP的鉴别结果,根据这一结果来决定是否接入AP。

  从上面的描述我们可以看出,WAI中对STA和AP进行了双向认证,因此对于采用“假”AP的攻击方式具有很强的抵御能力。

  在STA和AP的证书都鉴别成功之后,双方将会进行密钥协商。首先双方进行密钥算法协商。随后,STA和AP各自会产生一个随机数,用自己的私钥加密之后传输给对方。最后通信的两端会采用对方的公钥将对方所产生的随机数还原,再将这两个随机数模2运算的结果作为会话密钥,并依据之前协商的算法采用这个密钥对通信的数据加密。

  由于会话密钥并没有在信道上进行传输,因此就增强了其安全性。为了进一步提高通信的保密性,WAPI还规定,在通信一段时间或者交换一定数量的数据之后,STA和AP之间可以重新协商会话密钥。

  WPI采用对称密码算法实现对MAC层MSDU进行的加、解密操作。

 

本文地址:http://com.8s8s.com/it/it33999.htm