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

无线安全技术 


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


 
最早的无线加密体制,由于算法的缺陷很容易被破解。抓包获取在数据流中明文传输的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进行封装传输。 
 
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,这就 降低了无线局域网的整体安全性。

### Android WiFi 连接中的四次握手过程详解 在无线网络连接过程中,当设备通过WPA/WPA2安全协议进行身份验证时,会涉及一个称为“四次握手”的过程。这一过程的主要目的是为了协商并建立用于数据传输的安全密钥[^1]。 #### 四次握手的过程描述 以下是四次握手的具体步骤及其意义: 1. **第一步:AP发送消息给客户端** 接入点(Access Point, AP)向客户端发送一条包含随机数`ANonce`的消息。此消息还可能携带其他参数,例如组播密钥的信息。这一步的目标是让客户端知道AP已经准备好与其通信,并提供了一个新的随机数作为后续计算的基础。 2. **第二步:客户端响应AP** 客户端收到第一条消息后,生成自己的随机数`SNonce`,并将它连同之前接收的`ANonce`一起使用预共享密钥(Pre-Shared Key, PSK),通过特定算法(通常是PBKDF2-HMAC-SHA1)来计算出一对临时密钥——Pairwise Transient Key (PTK)[^1]。随后,客户端将自己产生的`SNonce`以及MIC(Message Integrity Code)返回给AP。这样做的目的在于证明客户端拥有正确的PSK,同时也完成了双方所需材料的交换以便进一步构建更复杂的加密机制。 3. **第三步:AP确认握手完成并向客户端发送安装指令** 收到客户端回复之后,如果一切正常,则意味着两者都成功基于相同的密码学原则得出了匹配的结果。此时,AP再次发回另一条带有额外指示的数据包告诉对方可以正式启用新创建出来的PTK来进行保护下的通讯操作了。此外,在这条信息里还会附带某些关于如何具体应用这些刚刚确立下来的规则细节说明比如哪些字段应该被纳入校验范围之类的内容。 4. **第四步:最终确认** 最后由发起整个流程的一方即STA做出最后回应表示接受所有设定条件结束此次交互活动标志着完整的EAPOL-Key Exchange Sequence圆满达成目标状态进入稳定运行模式下继续维持相互间联系直至下次重新启动相同程序为止[^1]。 ```python def four_way_handshake(): anonce = generate_random_number() # Step 1: Access Point generates ANonce. snonce = client_generate_random_number(anonce) # Step 2: Client generates SNonce and computes PTK. mic_code = compute_mic(snonce, anonce) # Compute MIC code using both nonces. ap_confirmation = verify_and_install_keys(mic_code) # Step 3: AP confirms handshake completion. final_acknowledgment = send_final_ack(ap_confirmation) # Step 4: Final acknowledgment from the station. return "Handshake completed successfully." ``` 以上就是Android Wi-Fi连接中涉及到的所谓‘四次握手’全过程解析图示化表达形式有助于理解各个阶段所承担的任务角色关系结构层次分明逻辑清晰便于记忆掌握实际应用场景当中能够更加灵活运用相关技术手段解决问题提高效率减少错误发生几率提升用户体验满意度水平等等诸多方面均具有重要意义价值不可忽视轻视对待应当引起高度重视认真学习研究深入探讨不断进步完善自我成长发展成就辉煌未来前景广阔无限美好灿烂明天等待着我们一起去创造实现梦想成真之路越走越宽广! 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值