WiFi安全技术及wpa连接四次握手

无线安全技术 


1) WEP(Wired Equivalent Privacy有线对等保密) 


 WiFi安全技术及wpa连接四次握手_第1张图片
最早的无线加密体制,由于算法的缺陷很容易被破解。抓包获取在数据流中明文传输的IV,再通过统计学方法用IV得到密钥。

2) WPA 


在不升级硬件的前提下,WAP使用TKIP(Temporal Key Integrity Protocol临时密钥集成协议) 来实现WLAN的访问控制、密钥管理和数据加密来增强WEP的安全性。WPA加密算法有两个版本。 
a) WPA = 802.1x + EAP + TKIP + MIC = Pre-shared Key + TKIP + MIC 
b) WPA2 = 802.1x + EAP + AES + CCMP = Pre-shared Key + AES + CCMP

注: 
802.1x + EAP、Pre-shared Key:身份校验算法 
TKIP、AES:数据传输加密算法 
MIC、CCMP:数据完整性校验算法

802.1x + EAP (工业级的,安全要求高的地方用。需要认证服务器)EAP 扩展认证协议,是一种架构,而不是具体算法。常见的有LEAP,MD5,TTLS,TLS,PEAP,SRP,SIM,AKA 其中的TLS 和TTLS 是双向认证模式。这种认证方式不怕网络劫持和字典攻击。 
Pre-shared Key (家庭用的,用在安全要求低的地方。不需要服务器)。容易被字典攻击

WPA-PSK 


WPA 的四次握手过程是基于802.1X 协议,使用eapol key进行封装传输。 
 WiFi安全技术及wpa连接四次握手_第2张图片
a) AP初始化: 
使用 SSID 和passphares作为入参,通过哈希算法产生PSK。在WPA-PSK 中PSK=PMK=pdkdf2_SHA1(passphrase, SSID, SSID length, 4096)

b) 第一次握手: 
AP广播SSID,AP_MAC(AA); 
STATION 端使用接收到的SSID,AP_MAC和passphares使用同样算法产生PSK。

c) 第二次握手 
STATION 发送一个随机数SNonce,STATION_MAC(SA)给AP; 
AP端接收到SNonce、STATION_MAC(SA)后产生一个随机数ANonce,然后用 PMK、AP_MAC(AA)、STATION_MAC(SA)、SNonce、ANonce 用以下SHA1_PRF算法产生PTK,提取这个 PTK 前16 个字节组成一个MIC KEY。 
PTK=SHA1_PRF(PMK, Len(PMK), “Pairwise key expansion”, MIN(AA, SA) || Max(AA, SA) || Min(ANonce, SNonce) || Max(ANonce, SNonce))

d) 第三次握手: 
AP发送上面产生的ANonce给STATION 
STATION 端用接收到ANonce 和以前产生PMK、SNonce、AP_MAC(AA)、STATION_MAC(SA)用同样的算法产生PTK。提取这个PTK 前16 个字节组成一个MIC KEY使用以下算法产生MIC值用这个MIC KEY 和一个802.1X数据帧使用以下算法得到MIC值 
MIC = HMAC_MD5(MIC Key,16,802.1X data)

e) 第四次握手: 
STATION 发送802.1X 数据帧,MIC给AP;STATION 端用上面那个准备好的802.1X 数据帧在最后填充上MIC值和两个字节的0(十六进制)然后发送这个数据帧到AP。 
AP端收到这个数据帧后提取这个MIC。并把这个数据帧的MIC部分都填上0(十六进制)这时用这个802.1X数据帧,和用上面AP产生的 MIC KEY 使用同样的算法得出MIC’。如果MIC’等于STATION 发送过来的MIC。那么第四次握手成功。若不等说明则AP 和 STATION 的密钥不相同,握手失败了。

 

        四次握手成功后,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的安全性。密钥的生成方式如图所示:

 

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

你可能感兴趣的:(WiFi,&,BT)