我想将 WiFi 从“WPA2 个人”模式升级到“WPA2 企业”模式,因为我知道,原则上,在使用“WPA2 个人”保护的 WiFi 上,知道 PSK 的设备一旦捕获了站点与 AP 之间的关联,就可以嗅探彼此的流量。为了减少 WiFi 上单个受感染设备的影响(在“WPA2 个人”模式下,如果它之前在混杂/监控模式下捕获了来自其他客户端的“关联请求”,它将能够解密其他未受感染的 WiFi 客户端的流量),我想将 WiFi 升级到“WPA2 企业”安全模式,据我所知,这不再可能。
现在,不幸的是,对于“WPA2 Enterprise”,您需要一个 RADIUS 服务器。
现在,据我所知,RADIUS 服务器仅执行身份验证,但不执行加密或密钥材料交换。因此,基本上,AP 从 STA 获得关联请求,客户端提供凭据,然后 AP 将其传递给 RADIUS 服务器,RADIUS 服务器说“凭据正常”,然后 AP 让 STA 关联,否则不允许。
这是正确的模型吗?如果是这样,那么 RADIUS 服务器基本上只是一个充满用户凭据(用户名和密码对)的数据库。如果是这样,那么我很好奇他们为什么需要一台功能齐全的服务器机器,因为即使对于数千名用户来说,用户名和密码也不是很多需要存储的数据,而且验证凭据是一项相当基本的任务,所以看起来这也是 AP 本身可以轻松完成的事情。那么为什么需要专用服务器呢?
所以也许我搞错了,RADIUS 服务器不仅用于身份验证,还用于实际加密?如果 STA 使用“WPA2 Enterprise”将数据发送到网络,它会使用某个会话密钥对其进行加密,然后 AP 会收到加密数据,但与“WPA2 Personal”相反,它无法解密数据,因此它会将数据传递给 RADIUS 服务器,该服务器具有解密它的密钥材料(和计算能力)。RADIUS 获得明文后,会将未加密的材料传回有线网络。就是这样做的吗?
我想知道这一点的原因如下。我这里有一个相当旧的设备,上面运行着一个 RADIUS 服务器。但是,就像我说的,这个设备相当旧,因此实施了具有已知安全漏洞的旧版本的 RADIUS。现在我想知道如果将其用于“WPA2 Enterprise”模式加密,这是否会危及我的 WiFi 安全。如果攻击者可以在未经身份验证的情况下与 RADIUS 服务器通信,这可能会危及我的网络的安全,所以我不应该这样做。另一方面,如果攻击者只能与 AP 通信,而 AP 又与 RADIUS 服务器通信以检查凭据,那么“易受攻击的 RADIUS 服务器”可能不是什么大问题,因为攻击者不会进入 WiFi 网络,因此首先就无法与 RADIUS 服务器通信。与 RADIUS 服务器通信的唯一设备是 AP 本身,用于检查凭据,所有密钥材料都在(未受损害的)AP 本身上生成和执行加密。攻击者将被撤销,因此无法加入网络并利用潜在易受攻击的 RADIUS 服务器上的弱点。
那么 RADIUS 服务器究竟是如何参与“WPA2 Enterprise”安全性的呢?
答案1
WPA2 Enterprise 基于 802.11i 的部分内容,而 802.11i 又基于 802.1X。802.1X 不需要 RADIUS 服务器,但由于遗留原因,通常都是这样做的。
RADIUS 服务器的作用仅在于连接开始时,但它确实比您提到的多做了一件小事。作为身份验证机制的一部分,密钥材料在 RADIUS 服务器上安全地生成(并且相同的密钥材料也在 WPA2 客户端上生成)。在 RADIUS 服务器告诉 AP 接受该连接请求后,RADIUS 服务器将该密钥材料在 RADIUS“密钥”消息中(它们重用了 Microsoft 率先推出的 RADIUS MPPE-KEY 消息/属性)发送给 AP,因此 AP 知道该会话要使用哪些每个用户每个会话的密钥(包括成对临时密钥或 PTK)。这结束了 RADIUS 服务器的参与。
您说得完全正确,运行 RADIUS 服务器确实不需要太多的服务器马力。就像小型网络或域的 DHCP 服务器或 DNS 服务器一样,您确实不需要“服务器级”硬件来运行它。任何小型低功耗嵌入式网络盒都可以。现代网络中有很多协议,其中“服务器”端按当今标准不需要太多马力。不要因为您听到“服务器”一词就认为它需要重型服务器硬件。
背景故事
您会看到,RADIUS 最初是一种将身份验证从拨号调制解调器 PPP 服务器移到集中式服务器的方法。这就是它代表“远程身份验证拨入用户服务”的原因(它应该是“拨入用户远程身份验证服务”,但 DIURAS 听起来不如 RADIUS 好)。当 PPP 开始用于 DSL 身份验证(PPPoE、PPPoA)和 VPN 身份验证(PPTP 和 L2TP-over-IPSec 都是“加密隧道内的 PPP”)时,继续使用相同的 RADIUS 服务器对企业的所有“远程访问服务器”进行集中身份验证是很自然的。PPP 的原始身份验证机制存在缺陷,需要大量标准机构的参与才能创建新的机制,因此最终创建了可扩展身份验证协议 (EAP),作为类似 PPP 身份验证的身份验证类型插件系统。当然,RADIUS 服务器和 PPP 客户端是需要支持 EAP 的第一批地方。当然,您可以让您的拨入调制解调器/PPP 服务器、VPN 服务器、PPPoE/PPPoA(实际上是 L2TP PPP)服务器或其他服务器在本地实现 EAP,但到目前为止,RADIUS 的部署非常广泛,因此主要是 RADIUS 服务器实现了它。
最终,有人想要一种方法,要求在有人插入大厅或会议室中无人看管的以太网端口时进行身份验证,因此为此创建了“LAN 上的 EAP”。众所周知的“EAPoL”被标准化为 802.1X。802.1X 后来应用于 IEEE 802.11i 中的 802.11 网络。Wi-Fi 联盟围绕 802.11i 创建了一个互操作性认证/品牌/营销计划,并将其称为 Wi-Fi 保护访问 2 (WPA2)。
因此,虽然您的 802.11 AP 本身可以独自完成整个 802.1X (WPA2-Enterprise)“身份验证器”角色(无需 RADIUS 服务器的帮助),但这并不常见。事实上,在一些能够独立执行 802.1X 的 AP 中,它们实际上在其固件中构建了开源 RADIUS 服务器,并通过环回通过 RADIUS 进行 802.1X 身份验证,因为这样更容易连接,而不是尝试实现您自己的 EAP 身份验证器代码,或者从某些开源 RADIUS 服务器软件中复制代码并尝试将其直接集成到您的 AP 固件的 802.11 相关守护程序中。
鉴于这一背景,并且取决于您提议的 RADIUS 服务器有多旧,重要的问题是它是否实现了您想要在网络上用于身份验证的 EAP 类型。PEAP?TTLS?
另请注意,RADIUS 传统上使用 RADIUS 客户端(RADIUS 客户端是“网络访问服务器”:在这种情况下是 AP,或者在其他情况下是 VPN 或 PPP 服务器或其他“远程访问服务器”)和 RADIUS 服务器已知的“共享密钥”,以对 RADIUS 客户端和服务器进行相互身份验证,并加密其通信。大多数 RADIUS 服务器允许您根据 AP 的 IP 地址为每个 AP 指定不同的共享密钥。因此,您网络上的攻击者必须能够接管该 IP 地址并猜测该共享密钥,才能让 RADIUS 服务器与其通信。如果攻击者尚未进入网络,则攻击者只能尝试发送 AP 将通过 RADIUS 中继到 RADIUS 服务器的特制/损坏的 EAP 消息。如果您担心的安全问题可以通过格式错误的 EAP 消息被利用,那么您仍然可能遇到问题。
答案2
WPA Enterprise(带有 EAP 的 WPA)允许您使用许多其他身份验证方法,例如数字证书、RSA 令牌等。它应该使用 radius 服务器来实现,因为所有这些方法都超出了简单的用户名+密码的范围,并且 radius 协议是大多数需要 AAA(身份验证、授权、记帐)系统的事实上的标准。
话虽如此,
1)RADIUS 服务器可以轻松受到防火墙规则的保护,只接受来自 AP 的数据包(WiFi 客户端永远不会直接与 RADIUS 服务器通信)
2)使用旧的 radius 可能不起作用,我建议使用最新的 freeradius 服务器之一
关于其工作原理以及您需要做什么的更多详细信息: http://wiki.freeradius.org/guide/WPA-HOWTO#Why-Would-I-Want-WPA?
答案3
FreeRadius 可以在 Raspberry PI 上运行。通常的操作系统是 Raspbian,它是 Debian 的一种,因此它可以完成您可能希望服务器执行的所有操作,例如 DHCP/DNS。它很便宜 - 一块裸板只需 40 美元 - 但预算 80 或 90 美元可以购买“可选”附加功能 - 例如外壳和电源... 我已经在 Pi 上运行 radius 几年了 - 24/7。它还有 zenmap 和 Wireshark。它是一个用于尝试各种事物的创建平台,因为它使用 SD 卡运行,您可以将 SD 卡复制到您的 PC。尝试一些东西,如果您弄乱了它,请从您的 PC 恢复 SD。