本文由简入繁介绍了IEEE802.11i无线局域网安全技术的前世今生,帮助路由器开发者对WLAN的加密安全策略有一个概念上的认知,能够更好地分析STA掉线以及漫游等问题。
目录
WEP
WPA
WPA/WPA2-PSK认证过程
802.11i
WEP
WEP是Wired Equivalent Privacy的简称,有线等效保密(WEP)协议对在两台设备间无线传输的数据进行加密的方式,用以防止非法用户窃听或侵入无线网络,用来提供和有线lan同级的安全性。
WEP有2种认证方式:
开放式系统认证(open system authentication)和共有键认证(shared key authentication)。共有键认证系统包括以下几个步骤:
- 客户端向接入点发送认证请求。
- 接入点发回一个明文。
- 客户端利用预存的密钥对明文加密,再次向接入点发出认证请求。
- 接入点对数据包进行解密,比较明文,并决定是否接受请求。
WPA
WPA全名为Wi-Fi Protected Access,有WPA和WPA2两个标准,是一种保护无线电脑网络(Wi-Fi)安全的系统,它是应研究者在前一代的系统有线等效加密(WEP)中找到的几个严重的弱点而产生的。WPA实作了IEEE 802.11i标准的大部分,是在802.11i完备之前替代WEP的过渡方案.该标准的数据加密采用TKIP协议(Temporary Key Integrity Protocol),认证有两种模式可供选择,一种是使用802.1x协议进行认证; 一种是称为预先共享密钥PSK(Pre-Shared Key)模式.WPA 超越WEP 的主要改进就是在使用中可以动态改变钥匙的“临时钥匙完整性协定”(Temporal Key Integrity Protocol,TKIP),加上更长的初向量,这可以击败知名的针对 WEP 的金钥匙取攻击。WPA(Wi-Fi Protected Access)加密方式目前有四种认证方式:
- WPA
- WPA-PSK
- WPA2
- WPA2-PSK
采用的加密算法有二种:
- AES(Advanced Encryption Standard高级加密算法)
- TKIP(Temporal Key Integrity Protocol临时密钥完整性协议)
WPA/WPA2-PSK认证过程
首先是PSK的产生方法:PSK = PBKDF2(PassPhrase(HQKS2017), ssid, 4096, 256),在personal状态下:PMK=PSK。实际使用过程中用的是PTK。
四次握手:
- AP广播SSID,AP_MAC(AA)→STATION,使用接收到的SSID,AP_MAC(AA)和passphares使用同样算法产生PSK。
- STATION 发送一个随机数SNonce,STATION_MAC(SA)→AP接受到SNonce,STATION_MAC(SA)后产生一个随机数ANonce然后用PMK,AP_MAC(AA),STATION_MAC(SA),SNonce,ANonce 用以下算法产生PTK,PTK=SHA1_PRF(PMK, Len(PMK),"Pairwise key expansion",MIN(AA,SA) ||Max(AA,SA) || Min(ANonce,SNonce) || Max(ANonce,SNonce))MIC Key=PTK前16个字节。
- AP发送上面产生的ANonce→STATION用接收到ANonce 和以前产生PMK,SNonce,AP_MAC(AA),STATION_MAC(SA)用同样的算法产生PTK。提取这个PTK 前16 个字节组成一个MICKEY使用以下算法产生MIC值用这个MIC KEY 和一个802.1x data 数据帧使用以下算法得到MIC值,MIC = HMAC_MD5(MIC Key,16,802.1x data)。
- 用上面那个准备好的802.1x 数据帧在最后填充上MIC值和两个字节的0(十六进制)让后发送这个数据帧到AP。收到这个数据帧后提取这个MIC。并把这个数据帧的MIC部分都填上0(十六进制)这时用这个802.1xdata 数据帧,和用上面AP产生的MIC KEY 使用同样的算法得出MIC’。如果MIC’等于STATION发送过来的MIC。那么第四次握手成功。若不等说明则AP 和STATION 的密钥不相同,或STATION 发过来的数据帧受到过中间人攻击,原数据被篡改过。握手失败了。
MIC的派生过程:
- PSK=PMK=pdkdf2_SHA1(passphrase, SSID, SSID length,4096)
- PTK=SHA1_PRF(PMK, Len(PMK),"Pairwise key expansion",MIN(AA,SA) || Max(AA,SA) || Min(ANonce,SNonce) || Max(ANonce,SNonce))
- MIC KEY=提取PTK 的前16 个字节
- MIC = HMAC_MD5(MIC Key,16,802.1x data)
802.11i
无线安全标准,WPA是其子集。IEEE 802.11i是802.11工作组为新一代WLAN制定的安全标准,主要包括加密技术:TKIP(Temporal Key Integrity Protocol)、AES(Advanced Encryption Standard)以及认证协议IEEE802.1x。
安全机制包括以下几个部分:
- 安全能力通告协商阶段
- AP的安全能力通告
- STA同AP之间的链路认证
- TA同AP建立802.11关联
- 安全接入认证阶段,该阶段主要进行用户身份认证,并产生双方的成对主密钥PMK。PMK是所有密钥数据的最终来源,可由STA和认证服务器动态协商而成,或由配置的预共享密钥(PSK)直接提供。对于802.1X认证方式:PMK是在认证过程中STA和认证服务器动态协商生成(由认证方式协议中规定),这个过程对AP来说是透明的,AP主要完成用户认证信息的上传、下达工作,并根据认证结果打开或关闭端口。对于PSK认证:PSK认证没有STA和认证服务器协商PMK的过程,AP和STA把设置的预共享密钥直接当作是PMK,只有接入认证成功,STA和认证服务器(对于802.1X认证)才产生双方的PMK。对于802.1X接入认证,在认证成功后,服务器会将生成的PMK分发给AP。
- 会话秘钥协商阶段,该阶段主要是进行通信密钥协商,生成PTK和GTK,分别用来加密单播和组播报文。AP与STA在PMK的基础上计算出一个512位的PTK,并将该PTK分解成为以下几种不同用途的密钥:数据加密密钥、MIC Key(数据完整性密钥)、EAPOL-Key报文加密密钥、EAPOL-Key 报文完整性加密密钥等,用来为随后的单播数据帧和 EAPOLKey消息提供加密和消息完整性保护。在4次握手成功后,AP使用PTK的部分字段对GTK进行加密,并将加密后的GTK发送给STA,STA使用PTK解密出GTK。GTK是一组全局加密密钥,AP用GTK来加密广播、组播通信报文,所有与该AP建立关联的STA均使用相同的GTK来解密AP发出的广播,组播加密报文并检验其MIC。
- 加密数据通信阶段。该阶段主要进行数据的加密及通信。TKIP或AES加密算法并不直接使用由PTK/GTK分解出来的密钥作为加密报文的密钥,而是将该密钥作为基础密钥(Base Key),经过两个阶段的密钥混合过程,从而生成一个新密钥。每一次报文传输都会生成不一样的密钥。在随后的通信过程中,AP和STA都使用该密钥加密通信。
十六宿舍 原创作品,转载必须标注原文链接。
©2023 Yang Li. All rights reserved.
欢迎关注 『十六宿舍』,大家喜欢的话,给个👍,更多关于嵌入式相关技术的内容持续更新中。