赞
踩
目录
1、标准无线802.1x协议交互逻辑
无线PEAP认证分为几个阶段,802.11无线关联阶段、PEAP认证阶段、无线Key配置阶段、客户端IP地址获取阶段、正常网络访问阶段以及最后的下线阶段,接下来我们就依照下图对认证过程中的各个阶段进行详细描述。
一、 802.11无线关联阶段
STA(WorkStation,通常指个人PC)上的认证客户端(Supplicant)通过无线开放模式和无线设备之间建立连接。
1) 第一对交互过程用于客户端请求希望关联的SSID,无线设备进行请求应答。
2) 接下来的一对交互过程使用开放模式进行认证,真正的身份校验放到了PEAP阶段完成。
3) 最后一对交互过程是在进行无线关联,通过该对话可以协商出双方所支持的通讯速率、无线数据传输时的密钥传递、管理和加密方式。
客户端和无线设备完成上述交互过程后,无线关联过程也就完成了。
二、PEAP认证阶段
A 、802.1X认证起始阶段
1)客户端向无线设备发送一个EAPoL-Start报文,开始802.1X认证;
2)无线设备向客户端发送EAP-Request/ID报文,要求客户端将用户信息送上来;
3)客户端回应EAP-Response/ID给无线设备,该报文中包含用户标识,通常为认证用户ID(由于PEAP的TLS安全通道内依然使用EAP协议进行认证,而EAP认证过程中会再请求一次用户ID,那么方案设计者可以通过本次的Response/ID来隐藏真实;
4)无线设备以EAP Over Radius的形式将EAP-Response/ID传送给Radius服务器。
B 、协商PEAP认证并建立TLS安全通道
5)Radius服务器收到EAP-Response/ID后根据配置确定使用PEAP认证,并向无线设备发送Radius Access-Challenge报文,报文中包含Radius服务器发送给客户端的PEAP-Start报文,表示希望使用PEAP方法进行接下来的认证;
6)无线设备将EAP-Request/PEAP-Start发送给认证客户端;
7)客户端收到EAP-Request/PEAP-Start报文后,生成客户端随机数、客户端支持的加密算法列表、TLS协议版本、会话ID等信息,并将这些信息封装到PEAP-Client Hello报文中发送给无线设备;
8)无线设备以EAP Over Radius的形式将PEAP-Client Hello发送给Radius服务器;
9)Radius服务器收到客户端发来的PEAP-Client Hello报文后,会从PEAP-Client Hello报文的加密算法列表中选择自己支持的一组加密算法并同Radius服务器产生的随机数、Radius服务器证书、证书请求信息、Server_Hello_Done属性形成一个Server Hello报文封装在Access-Challenge报文中,发送给客户端;
10)无线设备提取Radius报文中的EAP属性,将其封装成EAP-Request报文并最终发送给客户端;
11) 客户端收到来自服务器的EAP-Request报文后,验证Radius服务器的证书是否合法。如果合法则提取Radius服务器证书中的公钥,同时产生一个随机密码串(称为Pre-Master-Secret),并使用服务器的公钥对其进行加密,最后将加密后的信息(称为Client-Key-Exchange)以及客户端的数字证书(可以设置成空)、TLS Finished等属性封装成EAP-Rsponse/TLS OK报文并发送给无线交换机;
12)无线设备以EAP Over Radius的形式将EAP-Response/TLS OK报文发送给Radius服务器;
13)Radius服务器收到客户端发送过来的报文后,用自己的证书私钥对Client-Key-Exchange进行解密,从而获取到Pre-Master-Secret,然后将Pre-Master-Secret进行运算处理,加上Client和Server产生的随机数,生成加密密钥、加密初始化向量和 HMAC的密钥,这时双方已经安全的协商出一套加密办法了(Radius服务器借助HMAC的密钥,对TLS通道内的认证信息做安全的摘要处理,然后和认证消息放到一起。借助加密密钥,加密初始化向量来加密上面的消息,封装在Radius Access-Challenge报文中,通过无线设备传送给客户端);
至此PEAP协议的TLS安全通道已经建立成功,后续的认证过程将使用协商出的加密密钥和摘要密钥进行数据的加密和校验。
C 、通道内认证
14)无线设备提取Radius报文中的EAP属性,并将其封装成EAP-Request报文后发送给客户端;
15)客户端收到Radius服务器发来的报文后,用服务器相同的方法生成加密密钥,加密初始化向量和HMAC的密钥,并用相应的密钥及其方法对报文进行解密和校验,然后产生认证回应报文,用与服务器相同的密钥进行加密和校验,最后封装成EAP-Response报文并发送给无线设备;
16)无线设备同样以EAP Over Radius的报文格式将来自客户端的EAP-Response发送给Radius服务器,这样反复进行通道内的认证交互,直到认证完成;
17)Radius服务器完成对客户端的身份校验后,会发送Radius Access-Accept报文给无线设备,该报文中包含了Radius服务器所提供的MPPE属性;
18)无线设备收到Radius Access-Accept报文后,会提取MPPE属性中的密钥做为无线
WPA加密用主密钥(PMK)。同时无线设备会发送EAP-Success报文给客户端通知其PEAP认证成功;
19)无线设备给Radius服务器发送Radius记账开始报文,通知服务器开始对用户进行计费。
三、无线密钥设置阶段
客户端同无线设备间通过EAPoL-Key交互完成无线加密密钥的配置,最终客户端会将加密密钥(Key)信息通过网卡驱动接口设置到网卡中,供网卡对进出网卡的数据进行加密解密处理。无线设备也会配置相同的加密密钥,完成空口数据的无线加密解密。 接下来PC和无线设备间的通讯数据均为密文通讯。
注意:在无线设备和客户端的数据传输过程中,为了保证数据的安全 ,WPA要求定时或定量(包的数目)进行单播密钥更新,当更新的时间或者数据传输的数目到了,无线设备会发起密钥更新协商。
四、客户端DHCP地址获取阶段
客户端同无线设备使用DHCP协议进行交互,完成IP地址获取。
五、正常网络访问阶段
获取到IP地址后,PC就可以正常访问互联网了。无线设备会将来自客户端所在PC的密文进行解密后发送到相关设备最终传输到互联网。
六、认证下线阶段
1)客户端发送DHCP Release报文给无线设备,释放之前获取的IP地址;
2)客户端发送EAPoL-Logoff报文给无线设备,通知该设备此次PEAP认证过程结束;
3)无线设备收到EAPoL-Logoff报文后,发送Radius记账结束报文给Radius服务器,告知Radius服务器该用户已经下线。
七、解除802.11无线关联阶段
最后一个阶段是客户端请求无线设备解除无线关联。
2、TLS 安全通道内的几种典型认证方法
一、EAP-MS-CHAP v2
EAP-MS-CHAPv2 是微软提出的一套EAP 认证协议,该协议通过双向挑战握手实现双向身份校验,不但可以让Radius 服务器校验客户端的合法性,而且可以让客户端在认证过程中完成对服务器的身份校验。其在PEAP 所构建的TLS 安全通道内的交互过程如下图所示:
1)Radius 服务器首先发起对客户端的请求,请求客户端的认证ID,通常情况下所请求的是用户的认证用户名;
2)客户端收到来自Radius 服务器的用户名请求后回应Response/ID,该报文中携带了用户的认证用户名;
注意:过程1 和2 与普通的EAP-MD5 认证没有任何区别。
3)Radius服务器给客户端发送Request/Challenge报文,Radius服务器发送到客户端的报文中携带有其自身产生的Challenge挑战值以及服务器主机名等内容;
4)当客户端接收、解密并解析了来自Radius服务器的Request/Challenge报文后,使用Radius服务器发送来的Challenge和自身的材料来产生Response/Challeng [EAP-MS-CHAPv2 Response/Challenge 报文包括MS-CHAPv2头部(6bytes)+ Client Challenge(16) + Reserve (8) + NT-Resposne(24) + flags(1) + userID];
5)接下来这个过程由服务端发送EAP-MS-CHAPv2 Success/Failure报文给客户端;
6)客户端根据解析后的报文内容来相对应的回复给Radius服务器EAP-Success ACK 或者EAP-Failure ACK;
至此,EAP-MS-CHAPv2认证已经全部完成。
二、EAP-MD5
EAP-MD5协议是一种典型的Challenge(挑战握手)认证协议,主要应用于用户名/密码的验证环境中,对服务器发送来的Challenge数值、用户密码以及一些报文附加参数统一进行MD5 hash后传递给服务器,服务器做同样运算最后比对客户端运算的数值和服务器是否一致,如果一致则认为用户身份合法。安全通道内的交互过程如下图所示:
三、EAP-OTP
EAP-OTP 全称基于EAP 的One-Time Password(一次性密码或随机密码或动态密码),这个OTP 是一个概念和协议轮廓,是一种可以通过不同方式实现的用户身份校验方法。
其典型的应用场景及方法如下:
1、购物网站给用户手机发送携带有随机密码的短信,用户每次认证时所收到的密码均不相同,用户可以使用该密码登录购物网站,该密码在指定时间范围内仅能使用一次;
2、 银行给用户提供的网络银行密保卡,卡片上纵横都有数字,每次认证的时候使用系统要求的某行某列数字的组合作为一次认证密码,使用过后该密码作废。其他时间使用卡片上其他的纵横排列。通过这种随机密码用户可以很方便的登录网上银行系统;
3、 网络游戏公司给玩家发放的一种小型密码生成器(电子设备),其在同一时刻所生成的密码同服务器生成的一致,而其自身在不同时刻所生成的密码均不相同,用户可以很方便的使用该设备上生成的随机密码登录到网络游戏平台。
上述三种身份认证方式虽然产生密码的逻辑不同,但是均是以一次性的随机密码为校验基础,最终实现一次一密,随用随丢的效果。
对于EAP-OTP 并没有某一篇标准规范其必须使用某一算法进行密码生成,EAP-OTP仅仅是强调EAP中所携带的密码是一次性的随机密码。对于具体的报文交互实现可以是类似EAP-PAP方式的明文密码携带,也可以类似EAP-MD5的使用Challenge这样的挑战握手方式进行密码处理。
一、简述
由于PEAP 已经在无线认证领域被广泛支持,锐捷网络也依据协议标准实现了自己的PEAP 认证协议。锐捷网络所实现的无线环境下的PEAP 协议基于RFC PEAPv0 草案。为了方便网络的管理及维护,锐捷网络在标准PEAP 的基础上还设计了一些补充协议,这些补充协议虽然是私有协议,但并未破坏PEAP 原有标准架构。锐捷网络所实现的PEAP 协议工作在如下网络拓扑环境中,为用户的无线准入提供空中通路授权。
二、TLS 安全通道内的认证方法
锐捷网络PEAP 协议构建的TLS 安全通道内运行的认证协议为EAP-MS-CHAP v2,不同的是锐捷网络在EAP-MS-CHAP v2标准协议中增加了一些私有属性信息,这些私有属性信息的增加是在标准允许范围内进行的,不会破坏标准协议架构。所增加的这些私有属性信息最终会应用于客户端与“SAM第三方兼容性组件”的通讯过程中,主要用于锐捷私有协议报文的加密解密。这些私有属性包括加密密钥、加密初始化向量、通讯IP 以及通讯端口等属性。
补充:
1、报文交互解析
锐捷网络实现的无线PEAP协议交互过程和标准PEAP交互过程大体一致。但锐捷网络在无线PEAP认证过程中新增的客户端同Radius服务器的交互过程,这个交互过程被称为“锐捷补充协议”。
2、锐捷补充协议
锐捷补充协议是锐捷认证客户端同“SAM第三方兼容性组件”进行通讯的报文。那么什么是锐捷“SAM第三方兼容性组件”呢?这个组件又用来做什么呢?
“SAM第三方兼容性组件”是一台独立部署的服务器,其存在的核心目的是隔离认证用户同SAM服务器的直接通讯,保障SAM服务器的安全,避免和减少认证用户SAM服务器进行有意和无意的攻击。该服务器会将认证客户端发送过来的锐捷私有协议解析成SAM能够理解的报文形式并最终传递给SAM,SAM将回应信息传递给“SAM第三方兼容性组件”,该组件服务器会将信息封装并加密成认证客户端可识别的格式,最终通过UDP报文发送给客户端。
锐捷补充协议实现了如下功能:
1、管理员发送实时文字信息给认证用户,用于对指定用户的信息通告;
2、管理员踢指定用户下线;
3、客户端定期发送保活心跳报文给认证服务器,表明客户端依然在线;
4、客户端所在PC 的IP地址等参数信息上传。
该协议的源端口和目的端口可以在SAM上进行配置,在认证时(EAP-MS-CHAPv2报文中)下发给客户端,客户端完成认证后开始监听来自此端口的数据。这些UDP报文内的数据均被加密,通过抓包无法捕捉到有实际含义的数据。该协议默认使用UDP53(SAM服务端监听)端口和UDP138(客户端监听)端口,也可以根据实际情况进行变更。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。