WIFI中EAP-PEAP 认证分析

                                   WIFI中EAP-PEAP 认证分析

一 协议层模型

PEAPv2 packets may include TLVs both inside and outside the TLS tunnel.

The term "Outer TLVs" is used to refer to optional TLVs outside the TLS tunnel, which are only allowed in the first two   messages in the PEAPv2 protocol. That is the first EAP server to peer message and first peer to EAP server message. If the message is fragmented, the whole set of messages is counted as one message.

The term "Inner TLVs" is used to refer to TLVs sent within the TLS tunnel.

 In PEAPv2 Part 1, Outer TLVs are used to help establishing the TLS tunnel, but no Inner TLVs are used. Therefore the layering of PEAPv2 Part 1 is as follows:

In PEAPv2 Part 2, TLS records may encapsulate zero or more Inner TLVs, but no Outer TLVs.  EAP packets (including EAP header fields) used within tunneled EAP authentication methods are carried within Inner TLVs. Therefore the layering of PEAPv2 Part 2 is as follows:

二 包格式

   

三 流程

3.1PEAP用户接入流程

  1. WLAN UE向WLAN AN发送一个EAPoL-Start报文,开始802.1x接入的开始。
  2. WLAN AN向WLAN UE发送EAP-Request/Identity报文,要求WLAN UE将用户信息送上来。
  3. WLAN UE回应一个EAP-Response/Identity给WLAN AN的请求,其中包括用户的网络标识。用户ID,对于PEAP-mschchap v2认证方式的用户ID是由用户在客户端手动输入或者配置的。此次用户名建议同用户的portal认证用户名密码。
  4. WLAN AN以EAP Over RADIUS的报文格式将EAP-Response/Identity发送给Radius,并且带上相关的RADIUS的属性。
  5. Radius收到WLAN AN发来的EAP-Response/Identity,根据配置确定使用EAP-PEAP认证,并向WLAN AN发送RADIUS-Access-Challenge报文,里面含有Radius发送给WLAN UE的EAP-Request/Peap/Start的报文,表示希望开始进行EAP-PEAP的认证。
  6. WLAN AN将EAP-Request/PEAP/Start发送给WLAN UE。

E2  建立TLS通道

  1. WLAN UE收到EAP-Request/Peap/Start报文后,产生一个随机数、客户端支持的加密算法列表、TLS协议版本、会话ID、以及压缩方法(目前均为NULL),封装在EAP-Response/TLS/Client Hello报文中发送给WLAN AN。
  2. WLAN AN 以EAP Over RADIUS的报文格式将EAP-Response/ TLS /Client Hello发送给认证服务器Radius,并且带上相关的RADIUS的属性。
  3. Radius收到Client Hello报文后,会从Client 的Hello报文的加密算法列表中选择自己支持的一组加密算法+Server产生的随机数+Server 证书(包含服务器的名称和公钥)+证书请求+Server_Hello_Done属性形成一个Server Hello报文封装在EAP消息中,使用Access-Challenge报文发送给WLAN AN。
  4. WLAN AN把Radius报文中的EAP-request消息发送给WLAN UE.
  5. WLAN UE收到报文后,进行验证Server的证书是否合法(使用从CA证书颁发机构获取的根证书进行验证,主要验证证书时间是否合法,名称是否合法),即对网络进行认证,从而可以保证Server的合法。如果合法则提取Server证书中的公钥,同时产生一个随机密码串pre-master-secret,并使用服务器的公钥对其进行加密,最后将加密的信息ClientKeyExchange+客户端的证书(如果没有证书,可以把属性置为0)+TLS finished属性封装成EAP-Rsponse/TLS ClientKeyExchange报文发送给WLAN AN.如果WLAN UE没有安装证书,则不会对Server证书的合法性进行认证,即不能对网络进行认证。
  6. WLAN AN以EAP Over RADIUS的报文格式将EAP-Response/TLS ClientKeyExchange发送给认证服务器Radius,并且带上相关的RADIUS的属性
  7. Radius收到报文后,用自己的证书对应的私钥对ClientKeyExchange进行解密,从而获取到pre-master-secret,然后将pre-master-secret进行运算处理,加上WLAN UE和Server产生的随机数,生成加密密钥、加密初始化向量和hmac的密钥,这时双方已经安全的协商出一套加密办法了。Radius将协商出的加密方法+TLS Finished消息封装在EAP over Radius报文Access-Challenge中,发送给WLAN AN。
  8. WLAN AN吧Radius报文中的EAP-Request消息发送给UE。
  9. WLAN UE回复EAP Response/TLS OK消息。
  10. WLAN AN将EAP Response/TLS OK消息封装在Radius报文中,告知Radius建立隧道成功。至此WLAN UE与Radius之间的TLS隧道建立成功。

E3  认证过程

  1. WLAN AN把Radius报文中的EAP域提取,封装成EAP-request报文发送给WLAN UE。
  2. WLAN UE收到报文后,用服务器相同的方法生成加密密钥,加密初始化向量和hmac的密钥,并用相应的密钥及其方法对报文进行解密和校验,然后产生认证回应报文,用密钥进行加密和校验,最后封装成EAP-response报文发送给AP,AP以EAP Over RADIUS的报文格式将EAP-Response发送给认证服务器Radius Server,并且带上相关的RADIUS的属性,这样反复进行交互,直到认证完成。在认证过程中,Radius Server会下发认证后用于生成空口数据加密密钥(包括单播、组播密钥)的PMK给WLAN UE。
  3. 服务器认证客户端成功,会发送Access-Accept报文给WLAN AN,报文中包含了认证服务器所提供的MPPE属性。
  4. WLAN AN收到RADIUS-Access-Accept报文,会提取MPPE属性中的密钥做为WPA加密用的PMK,并且会发送EAP-success报文给WLAN UE。

E4  地址分配

  1. WLAN UE和WLAN AN间的空中数据报文进行加密传送,与WLAN AN进行DHCP流程交互,直至WLAN UE获取IP地址

E5 计费开始

  1. WLAN UE通过RADIUS-Accounting-Request(Start)报文通知Radius开始进行计费,含有相关的计费信息。

Radius向WLAN UE回应RADIUS-Accouting-Response(Start)报文,表示已开始计费。

3.2 MS-CHAP V2认证流程

  1. Radius在TLS通道内发起EAP-reuqest/Identity认证请求.
  2. AP把Radius报文中的EAP域提取,封装成EAP-request报文发送给Client.
  3. Client发送一个 给Ap一个EAP-Response报文,内容为Client的Identity(通常为用户名),.
  4. Ap把报文封装成Radius报文,送给Radius.
  5. Radius收到后,通过Radius报文,返回给AP一个16 字节的随机数.
  6. AP把Radius报文中的EAP域提取,封装成EAP-request/EAP-MS CHAP V2 Challenge报文发送给Client. (CODE=1:Challenge)
  7. Client收到后:
  1. Client产生一个 16字节的随机数,称为“端认证质询”,
  2. client 将Radius server中收到的16字节质询,及其产生的16字节端认证质询,以及client的用户名进行SHA1算法的HASH,取结果的开始8字节。   
  3. client 将b产生的8 字节质询加密用windows nt hash  函数生成的本地口令HASH值(16字节),产生24字节的响应(MD4算法);
  4. client 将24字节的响应,结果封装在EAP-Response/EAP MS CHAP V2 Response报文中发送给AP. (CODE=2:Response)
  1. Ap把报文封装成Radius报文,送给Radius.
  2. Radius server收到后:
  1. 使用跟Client相同的方法进行用户口令的哈希值加密响应值,如果结果与质询值相同,则客户端认证通过
  2. Radius server 使用16字节的端认证质询和client 的哈希过的口令,一起创建一个20字节的认证者响应,封住成Radius报文发送给Ap.
  1. AP把Radius报文中的EAP域提取,封装成EAP-request/EAP-CHAP V2 Success报文发送给Client.(CODE=3:Success)
  2. Client收到后,使用与服务器相同的方法计算一个认证者响应,如果与收到的响应一致,则server 通过认证,发送一个认证成功报文,封装成Eap—response/EAP Ms chap v2 ACK报文给Ap.
  3. Ap把报文封装成Radius报文,送给Radius.
  4. 服务器和客户端均认证成功,Radius server会发送Access-Accept报文给AP,报文中包含了认证服务器所提供的MPPE属性(MPPE密钥算法请参阅引用[18])。

AP收到RADIUS-Access-Accept报文,会提取MPPE属性中的密钥做为WPA加密用的PMK,并且会发送EAP-success报文给客户端.

四 TCPDUMP包

具体见 https://download.csdn.net/download/bobhu4201/89720728

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值