WPA2 企业 EAP-TLS 密钥交换

信息安全 tls openssl x.509 半径 wpa2-eap
2021-09-01 12:37:47

我正在使用 FreeRadius 和 EAP-TLS(基于相互 TLS 证书的身份验证)实施 802.1x WPA2 企业身份验证。

我很想了解实际协议如何协同工作以及它们如何保证我们的 WiFi 网络安全。

我了解使用 pub/priv 密钥的基于证书的身份验证的基础知识。我也知道,在常规 HTTPS 中,客户端会创建一个会话密钥,并将其发送到服务器,但是 EAP-TLS 似乎不是这样工作的。

我在看这张图:http ://tldp.org/HOWTO/8021X-HOWTO/images/8021X-KeyManagement.png

我的理解(看了上图之后)是TLS auth成功后,FreeRadius服务器会生成一个Master Key,然后派生一个Pairwise Master Key(PMK)。然后它将以某种方式将 PMK 发送到客户端请求者和接入点,然后他们将使用 PMK 生成其他会话密钥来加密实际数据。

但是,在我的笔记本电脑和 FreeRadius 服务器上执行了一些 tcpdump 之后,除了以下内容之外,我没有看到任何正在发送或接收的密钥......在来自 Freeradius 服务器的捕获中,在最终的 Access-Accept 数据包中是发送到 AP,我看到 MPPE-Send 和 MPPE-Recv 密钥,这很奇怪,因为我没有使用 MSCHAPv2 .....

在客户端(笔记本电脑)端捕获,在最终 EAP 成功(基本上是空的)和 4 次 WPA2 握手开始(此时必须知道 PMK)​​之间,我看不到任何东西

在此处输入图像描述

所以我的问题是,PMK 在哪里从 FreeRadius 发送到 AP 和客户端?

谢谢!

2个回答

这是Layer3的另一张图 Layer3 EAP-TLS 图

所以......服务器将其证书发送给客户端以验证其身份,客户端也执行相同操作,之后如果需要任何其他内部身份验证协议。

MSK(主会话密钥)通过单向函数从 TLS 主密钥派生而来。正是在这个 MSK 中生成了 PMK。

MSK 分为两半,前半部分称为 Peer(STA/Client/Supplicant) to Authenticator Encryption Key (32 octets) 是 PMK 或 Enc-RECV-Key,后半部分是 Authenticator to Peer(STA/Client/请求者)加密密钥(也是 32 个八位字节)或 Enc-SEND-Key。

MK 由密码生成,由请求者(客户端)和 Radius 服务器分别完成。
然后 PMK 由 Client 和 Radius 服务器分别派生。Radius 服务器通过线路将 PMK 发送到 AP。