zoukankan      html  css  js  c++  java
  • [转]WPA 4次握手

    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.     开始真正的数据传输

    2) 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。

    2.     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不用。
         

    3.     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。

    4.     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

  • 相关阅读:
    织梦开发——相关阅读likeart应用
    织梦标签教程
    织梦专题调用代码
    HIT 2543 Stone IV
    POJ 3680 Intervals
    HIT 2739 The Chinese Postman Problem
    POJ 1273 Drainage Ditches
    POJ 2455 Secret Milking Machine
    SPOJ 371 Boxes
    HIT 2715 Matrix3
  • 原文地址:https://www.cnblogs.com/cxt-janson/p/9274164.html
Copyright © 2011-2022 走看看