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

  • 相关阅读:
    江城子 -- 地信四十二帅图
    Oracle11g配置st_geometry
    Thinkpad X1 Carbon 6th(2018)更换电池
    C#子线程更新主线程控件方法汇总
    在启用了Hyper-V的主机上运行 VM Workstation
    ArcGIS创建要素提示表已经被注册(Table already registered)
    WIN10安装Linux子系统以及设置
    Apache Tomcat 版本说明
    WindowsTerminal设置
    操作系统、软件版本号说明
  • 原文地址:https://www.cnblogs.com/cxt-janson/p/9274164.html
Copyright © 2011-2022 走看看