无线安全是一个广泛的概念,本文特指基于802.11(WEP安全技术)和802.11i协议的无线安全内容。
无线安全是WLAN系统的一个重要组成部分。由于无线网络使用的是开放性媒介采用公共电磁波作为载体来传输数据信号,通信双方没有线缆连接。如果传输链路未采取适当的加密保护,数据传输的风险就会大大增加。因此在WLAN中无线安全显得尤为重要。
为了增强无线网络安全性,至少需要提供认证和加密两个安全机制:
1、 认证机制:认证机制用来对用户的身份进行验证,以限定特定的用户(授权的用户)可以使用网络资源。
2、 加密机制:加密机制用来对无线链路的数据进行加密,以保证无线网络数据只被所期望的用户接收和理解。
802.11i:新一代WLAN安全标准。IEEE 为弥补802.11脆弱的安全加密功能而制定的修正案,802.11i提出了RSN(强健安全网络)的概念,增强了WLAN中的数据加密和认证性能,并且针对WEP加密机制的各种缺陷做了多方面的改进。802.11i标准中所建议的身份验证方案是以802.1X框架和可扩展身份验证协议(EAP)为依据的。加密运算法则使用的是AES加密算法。
RC4:在密码学领域,RC4是应用最广泛的流加密算法,属于对称算法的一种。
IV:初始化向量(Initialization Vector),加密标头中公开的密钥材料。
EAPOL-KEY包(EAP over LAN key):AP同STA之间通过EAPoL-key 报文进行密钥协商。
PMK(Pairwise Master Key,成对主密钥):申请者(Supplicant)与认证者(Authenticator)之间所有密钥数据的最终来源。它可以由申请者和认证服务器动态协商而成,或由预共享密钥(PSK)直接提供。
PTK(Pairwise Transient Key,成对临时密钥):PTK是从成对主密钥(PMK)中生成的密钥,用于加密和完整性验证。
GMK(Group Master Key,组主密钥):认证者用来生成组临时密钥(GTK)的密钥,通常是认证者生成的一组随机数。
GTK(Group Transient Key,组临时密钥):由组主密钥(GMK)通过哈希运算生成,是用来保护广播和组播数据的密钥。
MIC(message integrity code,消息完整性校验码)。针对一组需要保护的数据计算出的散列值,用来防止数据遭篡改。
链路认证即802.11身份验证,是一种低级的身份验证机制。在STA同AP进行802.11关联时发生,该行为早于接入认证。任何一个STA试图连接网络之前,都必须进行802.11的身份验证进行身份确认。可以把802.11身份验证看作是STA连接到网络时的握手过程的起点,是网络连接过程中的第一步。
IEEE 802.11 标准定义了两种链路层的认证:
n < href="Cap1.htm#_开放系统身份认证" target="b">开放系统身份认证
n < href="Cap1.htm#_共享密钥身份认证" target="b">共享密钥身份认证
开放系统身份认证允许任何用户接入到无线网络中来。从这个意义上来说,实际上并没有提供对数据的保护,即不认证。也就是说,如果认证类型设置为开放系统认证,则所有请求认证的STA都会通过认证。
开放系统认证包括两个步骤:
第一步,STA请求认证。STA发出认证请求,请求中包含STA的ID(通常为 MAC 地址)。
第二步,AP返回认证结果。AP发出认证响应,响应报文中包含表明认证是成功还是失败的消息。如果认证结果为“成功”,那么STA和AP 就通过双向认证。
图 1. 开放系统认证
共享密钥认证是除开放系统认证以外的另外一种认证机制。共享密钥认证需要STA和AP配置相同的共享密钥。共享密钥认证的过程如下:
第一步,STA先向AP发送认证请求;
第二步,AP会随机产生一个Challenge包(即一个字符串)发送给STA;
第三步,STA会将接收到字符串拷贝到新的消息中,用密钥加密后再发送给AP;
第四步,AP接收到该消息后,用密钥将该消息解密,然后对解密后的字符串和最初给STA的字符串进行比较。如果相同,则说明STA拥有无线设备端相同的共享密钥,即通过了共享密钥认证;否则共享密钥认证失败。
图 2. 共享密钥身份认证
接入认证是一种增强WLAN网络安全性的解决方案。当STA同AP关联后,是否可以使用无线接入点的服务要取决于接入认证的结果。如果认证通过,则无线接入点为STA打开这个逻辑端口,否则不允许用户连接网络。
本节介绍以下两种接入认证方式:
n < href="Cap8.htm#_PSK接入认证" target="b">PSK接入认证
n < href="Cap1.htm#_802.1X接入认证" target="b">802.1X接入认证
PSK (Pre-shared key,预共享密钥)是一种802.11i身份验证方式,以预先设定好的静态密钥进行身份验证。该认证方式需要在无线用户端和无线接入设备端配置相同的预共享密钥。如果密钥相同, PSK 接入认证成功;如果密钥不同,PSK 接入认证失败。
IEEE 802.1X 协议是一种基于端口的网络接入控制协议。这种认证方式在WLAN 接入设备的端口这一级对所接入的用户设备进行认证和控制。连接在接口上的用户设备如果能通过认证,就可以访问WLAN 中的资源;如果不能通过认证,则无法访问WLAN 中的资源。
一个具有802.1x认证功能的无线网络系统必须具备以下三个要素才能够完成基于端口的访问控制的用户认证和授权:
n 认证客户端
一般安装在用户的工作站上,当用户有上网需求时,激活客户端程序,输入必要的用户名和口令,客户端程序将会送出连接请求。
n 认证者
在无线网络中就是无线接入点AP或者具有无线接入点AP功能的通信设备。其主要作用是完成用户认证信息的上传、下达工作,并根据认证的结果打开或关闭端口。
n 认证服务器
通过检验客户端发送来的身份标识(用户名和口令)来判别用户是否有权使用网络系统提供的服务,并根据认证结果向认证系统发出打开或保持端口关闭的状态。
相对于有线网络,无线网络存在着更大的数据安全隐患。在一个区域内的所有的WLAN 设备共享一个传输媒介,任何一个设备可以接收到其他所有设备的数据,这个特性直接威胁到WLAN 接入数据的安全。IEEE 802.11 提供三种加密算法: 有线等效加密(WEP)、暂时密钥集成协议(TKIP)和高级加密标准 AES-CCMP。
n < href="Cap8.htm#_WEP加密" target="b">WEP加密
n < href="Cap8.htm#_TKIP加密" target="b">TKIP加密
n < href="Cap8.htm#_AES-CCMP加密" target="b">AES-CCMP加密
WEP (Wired Equivalent Privacy,有线等效加密)是原始 IEEE 802.11 标准中指定的数据加密方法,是WLAN安全认证和加密的基础,用来保护无线局域网中授权用户所交换的数据的私密性,防止这些数据被窃取。
WEP使用RC4算法来保证数据的保密性,通过共享密钥来实现认证。WEP没有规定密钥的管理方案,一般手动进行密钥的配置与维护。通常把这种不具密钥分配机制的WEP称为手动WEP或者静态WEP。
WEP加密密钥的长度一般有64位和128位两种。其中有24Bit的IV(Initialization Vector,初始化向量)是由系统产生的,因此需要在AP和STA上配置的共享密钥就只有40位或104位。在实际中,已经广泛使用104位密钥的WEP来代替40位密钥的WEP,104位密钥的WEP称为WEP-104。虽然WEP104在一定程度上提高了WEP加密的安全性,但是受到RC4加密算法以及静态配置密钥的限制,WEP加密还是存在比较大的安全隐患,无法保证数据的机密性、完整性和对接入用户实现身份认证。
TKIP(Temporal Key Integrity Protocol,暂时密钥集成协议) 是IEEE 802.11组织为修补WEP加密机制而创建的一种临时的过渡方案。它也和WEP加密机制一样使用的是RC4算法,但是相比WEP加密机制,TKIP加密机制可以为WLAN服务提供更加安全的保护。主要体现在以下几点:
26. 静态WEP的密钥为手工配置,且一个服务区内的所有用户都共享同一把密钥。而TKIP的密钥为动态协商生成,每个传输的数据包都有一个与众不同的密钥。
27. TKIP将密钥的长度由WEP的40位加长到128位,初始化向量IV的长度由24位加长到48位,提高了WEP加密的安全性。
28. TKIP支持MIC认证(Message Integrity Check,信息完整性校验)和防止重放攻击功能。
AES-CCMP(Counter mode with CBC-MAC Protocol,计数器模式搭配CBC-MAC协议)是目前为止面向大众的最高级无线安全协议。
IEEE 802.11i 要求使用 CCMP 来提供全部四种安全服务: 认证、机密性、完整性和重发保护。 CCMP 使用 128 位 AES (Advanced Encryption Standard,高级加密标准)加密算法实现机密性,使用CBC-MAC(区块密码锁链-信息真实性检查码协议)来保证数据的完整性和认证。
作为一种全新的高级加密标准,AES加密算法采用对称的块加密技术,提供比WEP/TKIP中RC4算法更高的加密性能,它将在IEEE 802.11i最终确认后,成为取代WEP的新一代的加密技术,为无线网络带来更强大的安全防护。
WPA(Wi-Fi Protected Access,Wi-Fi 保护访问)是Wi-Fi商业联盟在 IEEE 802.11i草案的基础上制定的一项无线局域网安全技术。其目的在于代替传统的WEP安全技术,为无线局域网硬件产品提供一个过渡性的高安全解决方案,同时保持与未来安全协议的向前兼容。可以把WPA看作是IEEE802.11i的一个子集,其核心是IEEE 802.1X和TKIP。
无线安全协议发展到现在,有了很大的进步。加密技术从传统的WEP加密到IEEE 802.11i的AES-CCMP加密,认证方式从早期的WEP共享密钥认证到802.1x安全认证。新协议、新技术的加入,同原有802.11混合在 一起,使得整个网络结构更加复杂。现有的WPA安全技术允许采用更多样的认证和加密方法来实现WLAN的访问控制、密钥管理与数据加密。例如,接入认证方式可采用预共享密钥(PSK认证)或802.1X认证,加密方法可采用TKIP或AES。WPA同这些加密、认证方法一起保证了数据链路层的安全,同时保证了只有授权用户才可以访问无线网络WLAN。
RSN(Robust Secure Network,强健安全网络),即通常所说的WPA2安全模式,是WPA 的第二个版本。它是在IEEE 802.11i标准正式发布之后Wi-Fi商业联盟制定的。RSN支持AES高级加密算法,理论上提供了比WPA 更优的安全性。
同WPA类似,现有的RSN安全技术也可同多种认证、加密方法结合,打造一个更加安全的无线局域网。同WPA不同的是,在安全能力通告协商过程中,WPA采用的是WIFI扩展的IE(Information Element,信息元素)标识安全配置信息,而RSN采用的是标准的 RSN IE。
WPA的运行机制如下图所示,可简要概括为以下四个阶段:
n < href="Cap1.htm#_安全能力通告协商阶段" target="b">安全能力通告协商阶段
n < href="Cap1.htm#_安全接入认证阶段" target="b">安全接入认证阶段
n < href="Cap1.htm#_会话密钥协商阶段" target="b">会话密钥协商阶段
n < href="Cap1.htm#_加密数据通信阶段" target="b">加密数据传输阶段
图 3. WPA安全工作机制
|
& 说明 |
RSN(WPA2)的工作过程同WPA的工作过程基本上一致。关于RSN的工作机制请参考WPA工作机制。 |
安全能力通告发生在STA与AP之间建立802.11关联阶段,其过程如下:
1、 AP的WPA能力通告
AP为通告自身对WPA的支持,会对外发送一个带有WPA IE(Information Element,信息元素)的Beacon帧,IE中包含了AP的安全配置信息(包括加密算法及认证方法等安全配置信息)。
2、 STA同AP之间的链路认证
STA向AP发送开放系统认证请求,AP响应认证结果。具体过程请参见本文“< href="Cap1.htm#_开放系统身份认证" target="b">开放系统身份认证”章节。
3、 STA同AP建立802.11关联
STA根据AP通告的IE信息来选择相应的安全配置,并将所选择的安全配置信息发送至AP。在该阶段中,如果STA不支持AP所能支持的任何一种加密和认证方法,则AP可拒绝与之建立关联;反过来.如果AP不支持STA所支持任何一种加密和认证方法.则STA也可拒绝与AP建立关联。
该阶段主要进行用户身份认证,并产生双方的成对主密钥PMK。
PMK是所有密钥数据的最终来源,可由STA和认证服务器动态协商而成,或由配置的预共享密钥(PSK)直接提供。
n 对于802.1X认证方式:PMK是在认证过程中STA和认证服务器动态协商生成(由认证方式协议中规定)。这个过程对AP来说是透明的,AP主要是完成用户认证信息的上传、下达工作,并根据认证的结果打开或关闭端口。
n 对于PSK认证:PSK认证没有STA和认证服务器协商PMK的过程,AP和STA把设置的预共享密钥直接当作是PMK。
只有接入认证成功,STA和认证服务器(对于802.1X认证)才产生双方的PMK。对于802.1X接入认证,在认证成功后,服务器会将生成的PMK分发给AP。
该阶段主要是进行通信密钥的协商,生成PTK和GTK,分别用来加密单播和组播报文。
AP与STA通过EAPOL-KEY报文进行WPA的四次握手(4-Way Handshake)进行密钥协商。在四次握手的过程中,AP与STA在PMK的基础上计算出一个512位的PTK,并将该PTK分解成为几种不同用途的密钥:数据加密密钥、MIC Key(数据完整性密钥)、EAPOL-Key报文加密密钥、EAPOL-Key 报文完整性加密密钥等。用来为随后的单播数据帧和 EAPOL-Key 消息提供加密和消息完整性保护。
在四次握手成功后,AP使用PTK的部分字段对GTK进行加密并将加密后的GTK发送给STA,STA使用PTK解密出GTK。GTK是一组全局加密密钥,AP用GTK来加密广播、组播通信报文,所有与该AP建立关联的STA均使用相同的GTK来解密AP发出的广播、组播加密报文并检验其MIC 。
该阶段主要进行数据的加密及通信。
TKIP或者AES加密算法并不直接使用由PTK/GTK分解出来的密钥作为加密报文的密钥,而是将该密钥作为基础密钥(Base Key),经过两个阶段的密钥混合过程,从而生成一个新的密钥。每一次报文传输都会生成不一样的密钥。在随后的通讯过程中,AP和STA都使用该密钥进行加密通讯。
n IEEE Standard for Information technology― Telecommunications and information exchange between systems― Local and metropolitan area networks― Specific requirements -2007
n WI-FI Protected Access �C Enhanced Security Implementation Based On IEEE P802.11i Standard-Aug 2004
n Information technology―Telecommunications and information exchange between systems―Local and metropolitan area networks―Specific requirements―802.11, 1999 IEEE Standard for Local and metropolitan area networks ”Port-Based Network Access Control” 802.1X?- 2004
n 802.11i IEEE Standard for Information technology―Telecommunications and information exchange between systems―Local and metropolitan area networks―Specific requirements