目录
STA通过802.1x接入网络的流程
STA上线流程
Wlan——STA上线流程与802.11MAC帧讲解_静下心来敲木鱼的博客-CSDN博客
802.1x理论以及802.1x有线接入流程
802.1x认证和MAC认证讲解_静下心来敲木鱼的博客-CSDN博客
802.1x认证只是对用户进行接入认证
对于用户数据传输的加密,还需要再进行加密阶段
Wlan认证与加密算法
802.1X认证过程 通过(PEAP-EAP-MS-CHAPv2认证方式进行认证)
1、STA关联无线信号
2、对STA进行PEAP认证
主要分为三个阶段:认证初始化、建立TLS通道、通道内对无线用户进行认证
3、生产数据加密的密钥
生成密钥的材料是由802.1x认证之后的Radius认证成功的那个报文中提取出来的
4、STA就可以获取地址,进行网络访问
数据通过动态密钥密钥结合TKIP/CCMP加密算法进行加密和完整性校验
5、用户进行认证下线
6、无线解关联
PEAP简述
PEAP本身不指定认证方法,仅仅只是在请求方和认证服务器之间建立TLS加密通道
在此TLS隧道中使用EAP的其它认证方法(EAP-MS-CHAPv2)对用户进行认证
CHAPv2为双向认证,CHAP为单向认证
不过,此方式需要认证服务器申请数字证书作为自己的身份校验凭证,请求方安装CA根证书来校验服务器身份的合法性
无线关联
无线关联主要分为三个部分
扫描:分为主动扫描和被动被动扫描(针对于STA而言)
链路认证:有开放认证(不认证)和WEP预共享密钥认证(厂商此阶段的默认都是开放认证)
此处一般使用开放认证,然后在接入后续的其它认证方式对设备进行认证
此处的认证一定会通过,只是证明自身是个无线设备
关联:终端和AP协商参数,发送连接请求,进入接入认证
用户接入认证
认证初始化
认证客户端为STA,接入设备为AC,认证服务器为Radius服务器
- 客户端发送认证接入请求
- 接入设备要求用户提供用户名(封装在EPOL-Packet中)
- 客户端发送用户名给接入设备(封装在EPOL-Packet中)
- 接入设备将此报文封装在Radius报文中发送给认证服务器
认证服务器收到用户名之后,接下来服务器就会发起TLS通道建立请求
建立TLS通道
- 服务器决定使用PEAP进行用户的接入认证,发起建立TLS通道隧道的请求(接入交换机将Radius报文解封装,然后封装EPOL发送给用户)
- 用户收到之后,会发送一个Client hello报文;包含自己的TLS版本、以及自身支持的加密集,去协商使用哪一种加密算法加密TLS隧道,还会携带随机数(用于后面生成加密隧道的密钥)(接入交换机将EPOL报文解封装,然后封装Radius发送给服务器)
- Radius服务器会选择双方能够支持的最好的加密算法进行隧道加密;然后检查TLS版本是否支持并生成随机数(TLS版本不支持会认证失败);然后发送一个Server hello报文,包含自己的TLS版本的服务器证书、随机数、选择的加密算法发给用户(用户通过证书校验服务器)
- 终端收到之后会校验服务器的证书是否合法,校验成功后会生成随机密钥串(和随机数一样也是用于生成加密的密钥),然后使用服务器证书的公钥为随机密钥串加密,发给服务器
- 服务器通过私钥解密,得到随机密钥串;然后服务器根据随机密钥串、终端随机数、服务器随机数结合之前协商的算法去计算出TLS隧道使用的加密密钥;然后告诉终端使用此加密算法和密钥
- 终端同意后后对其回应,TLS通道建立成功
服务器证书的作用
1、终端校验证书的合法性
2、合法性通过之后,用于终端通过证书公钥加密自己随机生成的密钥串
注意事项
Windows7只支持公有证书的校验,如果服务器使用私有证书或者证书过期,则Windows7可能会校验失败
可以在Windows取消证书校验,或把服务器的证书换为公有证书
通道内对无线用户进行认证
通过采用CHAPv2的方式进行对用户进行认证(双向认证)
紫色 服务器认证用户 蓝色用户认证服务器
- 服务器去请求用户的用户名
- 用户将用户名提交给服务器
- 服务器生成16字节随机数发给终端
- 终端收到后,本身也生成随机数,然后利用两个随机数、用户名、此用户名对应的密码计算出一个24字节的密文,将此密文和自己生成的16字节随机数发给服务器
- 服务器收到客户端的随机数后,根据两个随机数,服务器上配置的用户名和对应的密码生成24字节密文;将其与收到的密文做对比,如果一致则说明用户认证通过了,服务器认证用户是合法的;此时用户还需要认证服务器是否合法,因此服务器把之前计算出来的24字节密文再进行计算(2者的随机数、用户名、密码对此密文计算)发给客户端
- 客户端收到此密文后,同样对之前加密了的24字节密文再此进行计算,将其结果与接收到的密文对比,两边一致则服务器的认证通过;发送认证通过报文给服务器
- 服务器收到后发送EAP认证成功报文;其中包含了MPPE密钥(微软的点对点加密,里面含PMK可以生成PKT数据加密密钥)
根据需要进行计费(认证通过之后计费)
生成加密密钥
这个阶段交互的报文都加密了
利用MPPE中的PMK与AC做4次握手生成对应的PTK(通过交互EAPOL-KEY报文实现)
然后将对应的PTK设置到对应的网卡,去做数据的加解密
STA获取地址
STA通过DHCP请求IP地址,DHCP报文没有加密
后续获取到地址后的上网报文是被加密了的(通过生成的加密密钥结合TKIP/CCMP算法进行数据加密)
无线用户认证下线和解关联
无线用户撤销DHCP的地址,然后解除Radius的计费,并下线