目录
- 1 WEP协议
- 1.1 WEP认证机制
- 1.2 WEP加密机制
- 1.2.1 WEP数据加密过程
- 1.2.2 WEP数据解密过程
- 1.3 RC4算法
- 1.4 WEP安全脆弱性
- 2 WPA/WPA2协议
- 2.1 WPA/WPA2认证机制
- 2.1.1 PTK
- 2.1.2 GTK
- 2.2 WPA/WPA2加密机制
- 2.2.1 WPA加密——TKIP协议
- 2.2.2 WPA2加密——CCMP协议
- 2.3 WPA/WPA2安全脆弱性
- 3 WPA3协议
- 参考文献
无线局域网之间的通信安全分为两部分:认证和加密。认证机制需要防止未知用户(不知道密码)的入侵;加密机制需要保证数据的保密性与完整性,做到防泄漏、防纂改。
下图为WiFi联盟安全项目历史。
1 WEP协议
WEP(Wired Equivalent Privacy,有线等效保密协议)是1999年9月通过的IEEE 802.11标准的一部分。WEP设计的思想是,通过使用RC4流密码算法加密来保护数据机密性;通过移动站STA与访问点AP共享同一密钥实施接入控制;使用CRC-32循环冗余校验值来保护数据的完整性。
1.1 WEP认证机制
IEEE 802.11规定了两种认证方式:开放式认证以及共享秘钥认证。
开放式认证允许任何无线站访问无线局域网,只要它符合无线网络设置的MAC地址过滤要求。在开放式认证系统中没有采取数据加密措施,信息都以明文方式传输,因此它实际上就是无认证。
共享密钥认证要求移动端与接入控制点必须拥有一个静态的WEP密钥,其认证过程如图1.1所示。
AP(Access Point):提供无线接入服务。(注:不一定可以提供路由服务,路由器一定是AP,AP不一定是路由器)
STA(Station):任何一个接入无线AP的设备都可以称为一个站点
图1.1 WEP共享密钥认证过程
共享认证过程:
- STA向访问点AP发送一个认证请求,请求进行共享密钥认证;
- AP发送给STA一个随机生成的“挑战短语”作为回应;
- STA使用共享WEP密钥对“挑战短语”进行加密(与数据加密机制相同),并把它返回给AP;
- 如果AP能利用共享WEP密钥对“挑战短语”进行解密,并可恢复出原始的“挑战短语”,即认证成功。
1.2 WEP加密机制
以STA向AP发送数据为例,其加密与解密过程如图1.2所示,反之亦然。
图1.2 WEP加密与解密过程
1.2.1 WEP数据加密过程
- 发送端根据原始数据包中的明文(Clear text)生成32位CRC循环冗余验证码,将CRC验证码放在明文后面一起构成传输明文数据包;
- 将24 bits的初始化向量IV与共享密钥KEY连接起来构成种子密钥,采用RC4算法生成加密密钥流,此密钥流与传输明文数据包的长度相等;
- 将密钥流与传输明文数据包进行异或运算得到密文(Cipher text),发送端明文形式的IV和密文一起发送。
注:共享密钥长度一般是40位或者104位,与24位初始向量IV构成64位或者128位WEP密钥,个别提供152、256位甚至512位来改进WEP加密的脆弱性。对于64位WEP密钥是5个ASCII码或者10个十六进制字符串;对于128位WEP密钥是13个ASCII码或者26个十六进制字符串。通常供应商提供的是128位,共享密钥长度104位,所以密码为13个ASCII码。
1.2.2 WEP数据解密过程
- 接收端收到IV和密文数据包后,提取出初始化向量IV和密文;
- IV与共享密钥KEY同样以RC4算法生成解密密钥流(如果IV和KEY一致,应生成的密钥流与加密密钥流一样);
- 将解密密钥流与密文进行异或运算得到传输明文数据包,包括明文与CRC校验码。根据明文再次生成32CRC验证码并与数据包中的CRC验证码进行比较,如果一致,说明得到的明文是完整的。
1.3 RC4算法
流密码是对称密码算法,从明文输入流逐位或逐字节产生密文输出。使用最广泛的流密码是RC4。
详情参考如下链接:
图1.3 RC4算法密钥流生成过程
RC4算法的脆弱性可参考以下文章:
[1]谢青松,汤玲,李甜,杜廷龙.基于RC4算法IV脆弱性破解WEP秘密密钥[J].电脑知识与技术,2014,10(11):2517-2519.
1.4 WEP安全脆弱性
待写
2 WPA/WPA2协议
WEP协议在2003年被WPA(Wi-Fi Protected Access)淘汰。WEP属于IEEE802.11中的一部分,在WPA推出之前,WEP的安全缺陷已被广泛关注,WiFi联盟制定的IEEE802.11i要到2004年初才能完成最终的标准化工作,但是市场对于提高WLAN安全的需求十分迫切,所以在2003年WiFi联盟制定了WPA标准,作为WPA2一种过渡标准,这一标准采用了IEEE802.11i的草案,保证了与未来出现的协议(WPA2)的前向兼容。
WPA与WPA2的区别是加密方式不同:
WPA : TKIP/MIC
WPA2: AES-CCMP
2.1 WPA/WPA2认证机制
支持WPA的AP工作需要在开放系统认证方式下,STA以WPA模式与AP建立关联之后,如果网络中有RADIUS(Remote Authentication Dial-in User Service, 远程拨号接入用户认证协议)服务器作为认证服务器,那么STA就使用IEEE802.11x方式进行认证;如果网络中没有RADIUS,STA与AP就会采用预共享密钥(Pre-Shared Key, PSK)的方式。
图2.1 WPA/WPA2认证过程
认证过程如图2.1所示,对于有RADIUS认证服务器来说,STA通过了IEEE802.11x身份验证之后,AP和STA都会得到一个Session Key,并将该Session Key作为成对主密钥(Pairwise Master Key);对于使用预共享密钥的方式来说,PSK就是PMK。随后,AP与STA进行四次握手过程,生成协商PTK和GTK,然后协商选择使用PTK或者GTK作为通信密钥。
图2.2 AP与STA的四次握手
四次握手过程如图2.2所示,过程如下[1]:
- AP向STA发送一个随机数ANonce;
- STA收到ANonce后,生成 SNonce,这时 STA 已经具备了五个计算 PTK 的数据,计算出 PTK 于 MIC 后将 SNonce 和 MIC发送至 AP;
- AP 收到来自 STA 的信息,用上面相同的方法计算出MIC,对 STA 生成的 MIC 进行校验,如果匹配,发送 ANonce 和其他信息(包括GTK,询问使用GTK或PTK)给 STA;
- STA 最后会送出确认信息给 AP,告诉认证者已经接收到配钥信息,可以开始使用这些密钥。
2.1.1 PTK
(1)WPA 的认证实际上是对 MIC 的认证,MIC 由 PTK 产生,PTK 的生成需要验证者随机参数(ANonce)、生产者随机参数(SNonce)、验证者 MAC 地址(Authenticator MAC)、申请者 MAC 地址(Supplicant MAC)以及 PMK,而 PMK 由 SSID 和 WPA 登录密码通过安全散列算法 1(SHA1)计算得出[1]。
图2.3 PTK组成
PTK的总长度根据加密方式不同而不同,如图2.3所示[2],。
当加密方式是TKIP时:
- PTK包含4部分:KCK(Key Confirmation Key),KEK(Key Encryption Key),TK(Temporal Key),MIC Key。
- PTK长512位,按顺序分别为KCK占128位,KEK占128位,TK占128位,MIC key占128位。
- KCK用于计算和检验EAPOL-KEY报文的MIC的密钥;KEK作为加密EAPOL-KEY的密钥;TK作为AP与STA之间通信的加密密钥的基础密钥(即由该密钥再经过一定的计算后得出的密钥作为二者之间的密钥);MIC Key作为AP与该STA之间报文的MIC计算和检验的密钥。
当加密方式是CCMP时,PTK包含4部分
当加密方式是CCMP时利用相同的密钥对数据进行加密和完整性保护:
- PTK包含3部分:KCK(Key Confirmation Key),KEK(Key Encryption Key),TK(Temporal Key)。
- PTK长384位,按顺序分别为KCK占128位,KEK占128位,TK占128位。
2.1.2 GTK
为了使现有的设备能够通过软件/固件升级实现WPA,协议规定AP可以不采用PTK方式,而是利用下面将要描述的GTK作为AP向STA发送单播报文时的密钥。如果AP通知STA安装并使用PTK,那么STA在向AP发送一个EAPOL-KEY相应报文后,再把相应的密钥安装到无线网卡中[3]。
四次握手成功后,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发送单播报文的密钥[3]。GTK组成如图2.4所示[2]。
图2.4 GTK组成
2.2 WPA/WPA2加密机制
2.2.1 WPA加密——TKIP协议
TKIP并不直接使用由PTK/GTK分解出来的密钥作为加密报文的密钥,而是将该密钥作为基础密钥(Base Key),经过两个阶段的密钥混合过程,从而生成一个新的每一次报文传输都不一样的密钥,该密钥才是用做直接加密的密钥。 通过这种方式可以进一步增强WLAN的安全性[3]。
(1)TKIP的加密过程
图2.5[4]展示了TKIP协议加密过程,包括如下几个部分:
图2.5 TKIP协议加密过程
①MPDU(MAC Protocol Data Unit)的生成包括了消息完整性校验码(Message Integrity Code,MIC)的产生和媒体访问控制服务数据单元(MAC Service Data Unit,MSDU)的分段两个部分:
a.以源地址SA(Source Address)、目的地址 DA(Destination Address)、优先级(Priority)和明文MSDU为输人,在MIC密钥的控制下经过Michael函数计算得到MIC。
b.将MIC附在明文MSDU之后,如果MSDU与MIC串联(MSDUMIC)后的长度超出MAC帧的最大长度,则进行分段得到媒体访问控制协议数据单元(MPDU),MPDU 作为WEP封装模块的输人明文。
②WEP种子(WEP Seed)生成,对于每个MPDU,TKIP都将计算出相应的WEP Seed。
a.TKIP中使用一个48比特的计数器TSC(TKIP Sequence Counter),给每个新生成的MPDU分配一个递增的TSC值。
b.TSC和发送方地址TA以及临时密钥TK,经过第一阶段的密钥混合函数生成一个临时的混合密钥(TTAK),利用TTAK,TK和TSC做第二阶段的输入混合即可得到用于WEP加密的WEP Seed。
③WEP封装,TKIP把经过两次混合产生的种子密钥 WEP Seed分解成 WEP IV和RC4密钥,然后把它和MPDU一起传给WEP进行加密,经异或后生成密文MPDU,并按规定格式封装后发送。
(2)TKIP的解密过程
图2.6[4]展示了TKIP协议解密过程,解密过程与加密过程相反,包括如下几个部分:
图2.6 TKIP协议解密过程
①从接收到的密文MPDU的前8个字节中提取出TSC序列号,然后执行重放攻击检查。若根据TSC判断出此帧为重放帧,则抛弃该帧。
②将TA,TK,TSC经过两个阶段的混合函数处理后创建WEP Seed,TKIP把WEP Seed分解成WEPIV和RC4 Base Key的形式,将它们和MPDU一起送入WEP解封装模块进行解密,并进行WEPICV(Integrity Check Value)校验,若校验失败则抛弃该帧,如果ICV检查正确,TKIP将加密时划分的MPDU帧重新合并装入MSDU。
③以SA、DA、优先级Priority,以及解密后的数据作为输入重新计算MIC值(记为MIC’),将MIC’与解密后来自发送方的MIC值进行逐位比较,若不一致则代表遭到攻击,该数据包被丢弃,并转入对策机制,然后执行相应的策略。
④通过MIC检查后,TKIP将MSDU 传给上层协议。
(3)TKIP安全性分析
通过对TKIP加解密过程的分析可知,在802.11i标准中,相对于WEP,TKIP也是基于RC4 加密算法的,但是增强了以下几个方面的安全性[4]:
(1)Michael 消息完整性校验码
Michael 算法以密钥和明文MSDU信息作为输入,输出值即为MIC。使用MIC修正了CRC校验算法对消息完整性保护的漏洞,实现了对消息完整性的保护,MIC被RC4算法加密,这就减少了MIC对攻击者的可见度,如果消息在传输过程中遭到篡改,接收方可以利用收到的消息和密钥算出MIC值,该值必与发送方随消息传来的MIC值不同,因此接收方可以判断出消息遭到了篡改。当接收方检测到某一帧的MIC失败时,立即启动相应的反击措施,就可以有效地降低主动攻击成功的概率。
(2)具有序列功能的初始化向量IV实现重放保护
为了克服“重放”攻击,TKIP将TSC强制设计为48位的数据包计数器,并被用作初始化向量IV,对发送的数据包进行编号,这个序列号在每发出一个MPDU时自动递增。接收端对数据包的编号进行判断,如果编号的值不在合适的范围内,则抛弃该数据包,并认定受到了重放攻击,攻击预警机制可以记录受到攻击的次数和频率,并在认为安全受到威胁时自动断开连接。TSC的值与TKIP的密钥相关,如果密钥进行更新,则同时将TSC的值置零。
(3)密钥混合函数
TKIP 中使用的种子密钥由临时密钥、发送方MAC地址、数据包的序列号TSC经两个阶段的混合加密函数计算得到,并由该种子密钥产生的RC4密钥流来加密MPDU,从而确保了每个MPDU使用不同的密钥进行加密(但要注意同一MSDU分段分出来的MPDU使用相同的密钥加密)。和WEP中的静态密钥以及24位的IV相比较,混合函数把密钥和数据包的属性结合起来,高效地抵抗了重放攻击。在混合加密函数中使用了从AES标准中导出的S盒,该S盒有很好的非线性关系,通常用查表的方式实现,输人与输出之间不存在明显的线性或者差分关系,从输出的中间变量倒推出输人的概率很低,从而加强了对初始化向量、临时密钥和发送地址的保护。
(4)密钥生成和定期更新机制
因为WEP使用静态共享密钥,当初始向量与IV碰撞时,造成了密钥流的重复使用,在TKIP 中提出了密钥生成以及定期更新机制解决了密钥流重复使用的问题。在无线局域网中,当终端STA与接入点AP建立连接时,认证服务器和终端将由证书机制分配主会话密钥,主会话密钥并不直接用于加密,加密中使用的密钥是由认证服务器分配的临时密钥,它通过将特定的会话内容与STA和AP生成的一些随机数以及AP的MAC地址和STA进行散列来产生,且在颁发时由会话密钥加密。在通信过程中,密钥需要进行四次握手和组密钥握手来更新,这种机制将使攻击者很难攻击到会话密钥,极大地加强了TKIP协议加密算法的安全性。
综上所述,TKIP使用基于RC4的加密算法,但将密钥的长度由40位增加到128位,初始化向量IV的长度由24位增加到48位,同时也针对WEP的缺陷进行了改进,引入了4种新算法提高加密的强度,这种设计实现了在已有资源上所能达到的最大安全性。但是这也限制了安全性的进一步提升,因为TKIP的总体安全性仍然取决于WEP的核心机制,而WEP算法的安全漏洞是由WEP机制本身引起的,与密钥的长度无关,即使增加加密密钥的长度,也不可能增强其安全程度,初始化向量IV长度的增加也只能在有限程度上提高破解难度,比如延长破解信息收集时间,并不能从根本上解决问题。所以,TKIP只是一种过渡算法,将来我们可以修改TKIP的密钥混合函数结构并增加TSC的密钥空间,从而满足对安全性能的更高的要求。
2.2.2 WPA2加密——CCMP协议
CCMP是基于AES的CCM模式,AES是一种新一代分组加密法,所有CCMP中用到的AES处理都使用一个128位的密钥和一个128位大小的数据块,AES标准具有高安全性、高性能、高效率、高易用性、高灵活性等优点,非常适合于在各种计算环境下的软硬件实现。CCM是一种通用的模式,它可以用在任何成块的加密算法中。CCM模式使用计数模式提供数据保密,并采用密码区块链信息认证码(CBC-MAC)提供数据认证以及数据完整性服务。CCMP是802.11i强制使用的加密方式,这为WLAN提供了加密、认证、完整性和抗重放攻击的能力,能解决WEP中出现的所有问题[4]。
CCMP的加密和解密分析如下[4]:
CCMP是另一种提供数据保密性和完整性的封装协议。图2.7和图2.8分别给出了CCMP加密和解密的流程。
(1)CCMP算法加密步骤
图2.7 CCMP数据加密过程
①为了使每个MPDU都使用新的、不同的数据包序号(Packet Number,PN),PN将在加密不同包时递增,这样对于同样的临时密钥,PN将不会重复。
②使用MPDU的头部为CCM生成附加认证数据(Additional Authentication Data,AAD)。CCM为AAD中的字段提供完整性保护。
③以PN、地址A2(MPDU中的发送地址)和MPDU的优先级Priority 来构建CCM的现时 Nonce。
④利用新的PN和密钥标识符Key ID来构建CCMP头部(密文MPDU的前8个字节)。
⑤以附加认证数据AAD、现时 Nonce以及MPDU数据为输入,在临时密钥TK的控制下
进行AES-CCM加密,得到密文数据和消息完整性代码MIC。
⑥将CCMP头、明文MAC头、密文数据以及MIC串接在一起,组合成一定格式的密文
MPDU,然后发送密文MPDU。
(2)CCMP算法解密步骤
图2.8 CCMP数据解密过程
①分析接收到的密文MPDU,提取MAC头、MIC、A2、优先级、PN和密文数据部分。
②以MAC头构建附加认证数据AAD,以A2、优先级和PN构建现时 Nonce。
③以附加认证数据AAD、现 Nonce、密文数据和消息完整性代码 MIC为输入,在临时密钥TK的控制下进行AES-CCM解密,恢复出明文数据,并且进行MIC检查,如果发现数据被篡改,则抛弃当前数据。
2.3 WPA/WPA2安全脆弱性
待写
3 WPA3协议
待写
参考文献
[1] 刘峙晨,梁丽琴,陈荣贵,俞跃,王炅.基于WPA/WPA2协议的无线攻击漏洞分析研究[J].网络安全技术与应用,2020(03):71-72.
[2]
[3] 易平.无线网络攻防原理与实践[M].北京:清华大学出版社, 2017.
[4] 冯光升,林雪纲,吕宏武.无线网络安全及实践[M].哈尔滨:哈尔滨工程大学出版社,2017