WPA 4次握手

https://blog.csdn.net/dlmu2001/article/details/51712292

WPA 4-way handshake

dlmu2001

tomorrow_cyz@163.com

一、why EALOP 4-way handshake
为了解决无线传输不安全,需要对无线连接的接入进行控制,并实现帧传播的加解密。
WPA 4-way handshake有点相当于一个“安全”地协商“交换”秘钥的过程。

这个秘钥就是PTK(PairwiseTransient Key),成对传输秘钥。

二、WPA 4-way handshake过程

  1. 一个简单的4-way handshake图
    

在这里插入图片描述

图1 4-wayshake overview

以WPA/WPA2-PSK为例,AP/STA在4-wayshake前各自都知道密码(也就是用户连接某SSID输入的密码)
1)AP(Authenticator)在1/4的时候把自己的随机数(ANonce)传给STA,STA在收到ANonce后,已经可以生成PTK

2)2/4的时候把自己的随机数(SNonce)传给AP,同时加了MIC(对应于PTK中的KCK,也就是秘钥确认秘钥)。AP收到SNonce以后,就可以生成PTK了,将收到的MIC和自己生成的MIC比较进行完整性校验,如果校验失败,握手失败。校验成功,AP生成PTK和GTK(GroupTransient Key,用来加密组播和广播)

3)3/4中将GTK和MIC一起发给STA,因为此时双方都已经知道PTK,所以会对
GTK进行KEK加密。
4)STA发送ACK进行确认

4次握手完成以后,之后的帧传播就都会以加密的方式进行。

2 . 4-way shake在AP/STA通讯中的位置
1) open方式下的connect
在这里插入图片描述

图2 open方式的connect过程

a. Open System AuthencicationProcess ,就好比把网线插入AP的有线口

b. Association:完成802.11layer-2的negotiation,建链,成功后AP会分配给STA一个AssociationID

c. 开始真正的数据传输

  1. wpa/wpa2-psk方式下的connect
    在这里插入图片描述

图3wpa/wpa2-psk方式下的connect

a.Authenciation,同上

b. Association,同上

c EAPOL 4-way shake

d.真正的数据传输

3)wpa/wpa2-eap方式下的connect
在这里插入图片描述

图4wpa/wpa2-eap方式下的connect

在2)的基础上,wpa/wpa2-eap有个802.1x的auth过程,用于在认证服务器上认证,以获取MSK

三、具体

  1. PTK的生成
    

生成PTK,需要5个必要元素,PMK,ANonce(Nonce 1,AP生成的随机数),SNonce(Nonce2,STA生成的随机数),AuthenticateMAC(MAC1,如AP的MAC),SupplicantMAC(MAC2,如STA的MAC)。
在这里插入图片描述

图5 PTK的生成

图的四个输出里面,DataEncr和DataMIC合起来就是前面提到的TK,EAPOLEncr/MIC分别对应KEK和KCK。

  1. PTK的组成
    

图4的输出就是PTK的组成。主要产生两种秘钥,一种在EAPOL4-way shake的时候用,一种在数据传输的时候用。每种又分成加密用和计算完整性用。PTK共64位,具体可以分成如下4个部分

1) EAPOLKCK(key confirmation key),16位,对应于图5中的EAPOLMIC,以及图1中的MIC,用来在EAPOL4-way shake时校验完整性

2) EAPOLKEK(key encryption key),16位,对应于图5中的EAPOLEncr,用于在EAPOL4-way shake的3/4的时候来加密GTK等数据

3) TK(TemporaryKey),16位,对应于图5中的DataEncr,用于加密单播数据

4) Data Mic,16位,对应于图5中的DataMIC,具体又可分为8位的Tx key和8位的Rx key,用于数据传输的时候TKIP方式的Michael完整性校验。CCMP不用。

  1. PMK的生成
    

PMK,PairwiseMaster Key

在WPA-PSK中,PMK=pdkdf2_SHA1(passphrase,SSID, SSID length, 4096)

而在802.1x+EAP中,PMK=L(MSK,0,256)

其中MSK(Mastersession key)由802.1x交换获得

在4-wayhandshake前,AP/STA已经知道了PMK。

  1. GTK
    

GTK,GroupTransient Key,用于对组播和广播加解密

在图5中,AP在3/4的时候会生成GTK,传给STA

GTK由GMK(Groupmaster key)和成对秘钥扩展获得

GTK=PRF-X(GMK,”Group key expanision”,AA|GN)

其中GN是Authenticator生成的Nonce,AA是Authenticator的MAC

GMK=MMK?

GTK只包含数据传输部分的Key,也就是GroupEncryption Key(加解密)和Michael Authenticator MIC Key(完整性校验),没有包含EAP-Key部分,所以只有32位。

参考

  1. https://en.wikipedia.org/wiki/IEEE_802.11i-2004
    
  2. https://supportforums.cisco.com/document/9879826/80211-wlan-roaming-and-fast-secure-roaming-cuwn#WPAWPA2-PSK
    
  3. http://blog.csdn.net/kyokowl/article/details/8500557
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值