WIFI中 EAP-TLS 认证分析
1 包格式
1)请求包
2)响应包
2 流程
- 申请者首先通过客户端软件向认证方发送一个EAPoL-Start报文,开始802.1x接入的开始。
- 认证方向申请者发送EAP-Request/Identity请求帧,要求提供身份标识。
- 申请者接收到认证方的请求后,向其发送EAP-Response/Identity响应帧,提供身份标识。
- 认证方将EAP-Response/Identity响应帧封装成RADIUS Access-Request帧发给认证服务器。
- 认证服务器通过用户身份标识检索认证数据库,获知采用TLS认证机制。通过向申请者发送封装EAP-Request/EAP-TLS/TLS-Start的Access-Challenge消息,启动TLS认证过程,等待进行TLS认证。
- 认证方向申请者发送EAP-Request/EAP-TLS/TLS-Start。
- 申请者收到EAP-Request/EAP-TLS/TLS-Start消息后,通过认证方发送EAP-Response/EAP-TLS/Client-Hello消息给服务器。这个消息里面包含了自己可实现的算法列表、Client Random Value和其它一些需要的信息。
- 认证方将EAP-Response/EAP-TLS/Client-Hello响应帧封装成RADIUS Access-Request帧发给认证服务器。
- 认证服务器接收到EAP-Response/EAP-TLS/Client-Hello后,确定TLS认证已建立,并通过封装包含多个TLS记录的EAP-Response/EAP-TLS消息的Access-Challenge消息经过认证方发送给申请者。TLS记录中包含认证服务器的数字证书Server-Certificate、申请者数字证书请求Client Certificate-Request、Sever-Hello和Server Key-Exchange消息用于用交换密钥过程。Server Hello,确定了这次通信所需要的算法和Server Random Value。
- 认证方向申请者发送EAP-Request/EAP-TLS/Sever-Hello,Server-Certificate,Server Key-Exchange,Client Certificate-Request。
- 申请者校验服务器的数字证书Server-Certificate,如果合法,向认证服务器发送Client-Cert、Client Key-Exchange、Change Cipher-spec和Finished消息。Client-Cert为申请者的数字证书、Client Key-Exchange为使用认证服务器的公钥加密的定长随机串,也叫Pre Master Secert, Change Cipher-spec为申请者能够支持的加密类型。
- 认证方将EAP-Response/EAP-TLS/Client-Cert,Client Key-Exchange,Change Cipher-spec,Finished响应帧封装成RADIUS Access-Request帧发给认证服务器。
- 认证服务器校验申请者的证书Client-Certificate,如果合法,然后回复申请者以Change Cipher-spec和Finished消息,Change Cipher-spec包含了认证服务器指定使用的加密类型。
- 认证方向申请者发送EAP-Request/EAP-TLS/Change Cipher-spec,Finished。
- 申请者受到Finished消息后,给服务器一个响应EAP-Response/EAP-TLS/TLS-ACK,Finished。
- 认证方将EAP-Response/EAP-TLS/TLS-ACK,Finished响应帧封装成RADIUS Access-Request帧发给认证服务器。
- RADlUS服务器和Client都推导出主密钥MK(Master Key)。认证服务器收到TLS-ACK包后,发送Access-Accept给AP发送,其中包括主密钥MK并指示成功的认证。
- 认证方向申请者发送EAP-Success。此时完成EAP-TLS认证流程。
3 TCPDUMP包
具体包见 https://download.csdn.net/download/bobhu4201/89719300