一个完整的802.1X认证的交互
来源:互联网 发布:欧文季后赛数据 编辑:程序博客网 时间:2024/06/05 16:12
http://blog.csdn.net/winterth/article/details/8082504
首先是802.11的连接,如图:
前2个交互是相互发现的一个过程。之后,先做auth,再做association。
在WPA/RSN中,802.11的auth用的都是open的方式。这是第一个阶段,也就是802.11的认证。
当association完成后,接下来做EAP 802.1X认证,这是WPA/RSN的认证。
802.1X认证完成后,Supplicant和Authenticator得到PMK,可以做4次握手,生成PTK。如果是PSK认证,则没有这一步,Authenticator和Supplicant可以自己生成PMK用以4次握手。
4次握手的过程如下:
上图是针对WP2,也就是RSN的,这种情况下,GTK在3/4时生成。
在WPA1中,4次握手仅仅是产生PTK。GTK是通过4次握手后的一个2次握手完成的,如下图:
至此,完整的802.1X认证完成。单播报文可以用PTK加密/校验,多播报文用GTK加密/校验。
WPA/RSN使用四次握手(4-Way Handshake)的方式生成所需的密钥。
作用
四次握手通过一系列的交互,从PMK(Pairwise Master Key)生成PTK(Pairwise Transient Key)。PMK来自MSK(Master Session Key),是MSK的前256位,32字节。
本文的主要目的是讲PTK,所以暂时忽略PMK和MSK。
PTK的内容
PTK包含3个部分,KCK(Key Confirmation Key),KEK(Key Encryption Key),TK(Temporal Key)。
PTK的总长度根据加密方式不同而不同。
当加密方式是TKIP时,PTK长512位,按顺序分别为KCK占128位,KEK占128位,TK占256位。
当加密方式是CCMP时,PTK长384位,按顺序分别为KCK占128位,KEK占128位,TK占128位。
KEK和KCK是给EAPOL-Key,也就是四次握手时,加密和完整性验证用的。TK用于后续的数据加密。
四次握手的报文都是基于EAPOL-Key的。EAPOL-Key的结构如下:
PTK的生成
生成PTK,需要5个必要元素,PMK,ANonce(Nonce 1),SNonce(Nonce 2),Authenticate MAC(MAC 1),Supplicant MAC(MAC 2)。如下图:
2个Nonce分别是Authenticator和Supplicant生成的随机数。
这张图里的输出包含4个部分,其实Data Encr和Data MIC合起来就是前面提到的TK。而EAPOL Encr/MIC分别对应前面的KEK和KCK。
四次握手的交互过程
下面的交互仅仅是一个流程,对内部的一些数据的处理就不细说了。
1/4:Authenticator -> Supplicant
Authenticator把ANonce送给Supplicant。Supplicant收到1/4后,就有了生成PTK的所有元素。因为1/4里同时也包含了Authenticator的MAC地址。
2/4:Supplicant -> Authenticator
Supplicant计算出PTK,把SNonce和自己的MAC地址送给Authenticator。同时,从2/4报文开始,后面的每个报文都会有MIC。1/4没有。
3/4:Authenticator -> Supplicant
Authenticator向Supplicant证明自己有有效的,同样有MIC加入其中
4/4:Supplicant -> Authenticator
仅是对3/4的一个ACK。说明PTK已经装好,后面的数据可以加密了。
- 一个完整的802.1X认证的交互
- 一个完整的802.1X认证的交互
- 一个完整的802.1X认证的交互
- 一个完整的802.1X认证的交互
- 发誓要写一个802.1x的认证客户端
- 802.1X认证的问题
- asp.net 写一个完整的 Forms身份认证
- 一个完整的交互设计流程是怎样的?
- 一个完整的交互设计流程是这样的
- 简单完整的一个 rtsp 交互过程 live555-openRTSP
- 致立男:完整的一个java web交互流程
- dwr前后端交互的一个完整demo(新手)
- 802.1X 的wpa认证流程
- 802.1x认证的具体配置过程
- 基于802.1X协议的认证系统
- 802.1X 的wpa认证流程
- OSX:通过代理/802.1x认证网络恢复系统的一个方法
- 一个完整的Struts2.X+Spring3.X+MyBatis3.X配置搭建文档
- 健忘
- 【UML入门教程】——动态部分(上):状态图、活动图
- 26日上午网易等多家网站无法访问“剖析”
- Struts2做下载
- jxl.read.biff.BiffException #11133 读取excel报出异常. workbook 解析excel 基本代码格式
- 一个完整的802.1X认证的交互
- Android导入项目出现bin/res错误
- <c:if test="${fn:contains(name, searchString)}">
- Android anr异常测试
- org.hibernate.HibernateException: No Session found for current thread
- auto_ptr解析
- NodeJs连接Mysql数据库
- 题目1156:谁是你的潜在朋友
- Python 超简单的聊天程序