注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

WPA 4-Way Handshake  

2014-03-20 10:47:06|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//轉
WPA系统在工作的时候,先由AP向外公布自身对WPA的支持,在Beacons、Probe Response等报文中使用新定义的WPA信息元素(Information Element),这些信息元素中包含了AP的安全配置信息(包括加密算法和安全配置等信息)。STA根据收到的信息选择相应的安全配置,并将所选择的安 全配置表示在其发出的Association Request和Re-Association Request报文中。WPA通过这种方式来实现STA与AP之间的加密算法以及密钥管理方式的协商。

  支持WPA的AP工作需要在开放系统认证 方式下,STA以WPA模式与AP建立关联之后,如果网络中有RADIUS服务器作为认证服务器,那么 STA就使用802.1x方式进行认证;如果网络中没有RADIUS,STA与AP就会采用预共享密钥(PSK,Pre-Shared Key)的方式。

   STA通过了802.1x身份验证之后,AP会得到一个与STA相同的Session Key, AP与STA将该Session Key作为PMK(Pairwise Master Key,对于使用预共享密钥的方式来说,PSK就是PMK)。随后AP与STA通过EAPOL-KEY进行WPA的四次握手(4-Way Handshake)过程,如图所示。

 
WPA 4-Way Handshake - BCB-DG - BCB-DGs Blog
 
 在 这个过程中,AP和STA均确认了对方是否持有与自己一致的PMK,如不一致,四次握手过程就告失败。为了保证传输的完整性,在握手过程中使用了名为 MIC(Message Integrity Code)的检验码。在四次握手的过程中,AP与STA经过协商计算出一个512位的PTK(Pairwise Transient Key),并将该PTK分解成为五种不同用途的密钥,如图所示:
WPA 4-Way Handshake - BCB-DG - BCB-DGs Blog

  其中前128位用做计算和检验EAPOL-KEY报文的MIC的密钥,随后的128位作为加密EAPOL-KEY的密钥;接下来的128位作为 AP与该STA之间通信的加密密钥的基础密钥(即由该密钥再经过一定的计算后得出的密钥作为二者之间的密钥);最后两个64位的密钥分别作为AP与该 STA之间的报文的MIC计算和检验密钥。

  由PTK分解出来的这一组(五个)密钥是AP与该STA之间使用的密钥(所以也叫每用户密 钥,用于AP与STA之间的单播报文的加密),这些密 钥永远也不会以任何形式出现在无线网络上。在确认双方所持的PMK一致后, AP会根据自身是否支持每用户密钥的能力来指示STA是否安装并使用这个每用户密钥。

  为了使现有的设备能够通过软件/固件升级实现 WPA,协议规定AP可以不采用PTK方式,而是利用下面将要描述的GTK作为AP向STA发送单 播报文时的密钥。如果AP通知STA安装并使用PTK,那么STA在向AP发送一个EAPOL-KEY相应报文后,再把相应的密钥安装到无线网卡中。

   四次握手成功后,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 4-Way Handshake - BCB-DG - BCB-DGs Blog
 

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

  评论这张
 
阅读(748)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017