为什么 WPA Enterprise 比 WPA2 更安全?

信息安全 密码学 网络 无线上网 wpa2
2021-09-03 18:59:26

在个人模式下,WPA2 比 WPA 更安全。但是,我读到 WPA Enterprise 提供比 WPA2 更强大的安全性,我不确定这是如何实现的。

4个回答

所有早期的答案都缺少一个非常重要的步骤及其含义,并且是对 EAP 的误解。

从客户端的角度来看,WPA2-PSK(又名 WPA2 Personal)基本上与 WPA2-Enterprise 做同样的事情:客户端关联到接入点,使用预共享密钥对接入点进行身份验证,接入点创建一个 256 位 PMK(成对SSID 和预共享密钥 (PSK) 中的主密钥)。然后,此 PMK 用于使用 CCMP/AES 或 TKIP 加密数据流量。

这里需要注意的重要一点是,所有客户端将始终使用相同的 PMK 加密他们的数据。因此很容易收集大量使用同一个 PMK 加密的数据。如果有人破解 PMK,他们可以解密所有用该密钥加密的数据,过去/记录和未来/实时。

WPA2-Enterprise 在幕后只有一点点不同,但安全隐患很严重:客户端与接入点关联,对接入点进行身份验证,然后将其传递给后端 RADIUS 服务器(使用 EAP,但这不是这里很重要,所以最后会更多)。当 RADIUS 服务器对客户端进行身份验证后,它会给接入点一个 OK,以及一个RANDOM 256 位成对主密钥 (PMK),以仅加密当前会话的数据流量。

嗯,这是一个很大的不同。而不是每个客户端一直使用相同的 PMK(其种子是已知的明文,因为 SSID 用作种子!),现在每个客户端使用不同的 PMK,它会更改每个会话/关联,并且种子是随机的并且未知。不仅如此,这个 PMK 将是 256 位真实熵(不是来自通常小得多的包含单词的密码的哈希),因此字典攻击是无用的。

如果有人破坏了特定的 PMK,他们只能访问一个客户端的一个会话。此外(如果使用了正确的 EAP 方法)他们无法访问用户凭据,因为它们是单独加密的。这要安全得多。

还要记住,这个 PMK 是 256 位 AES,这是目前“不可破解的”(目前认为 128 位是安全的,但不会持续太久)。WPA2-PSK(也是 256 位)的 PMK可以被破解的事实来自通常的弱密码(字典攻击)、已知种子(SSID)以及所有客户端一直使用相同 PMK 的事实,所以很多可以捕获已知明文的密文。

那么,关于可扩展身份验证协议 (EAP) 的一些内容。这本身通常被理解为一种安全协议,但事实并非如此。它基本上是从想要进行身份验证的客户端和进行身份验证的服务器传递消息的标准。EAP 本身没有安全功能,它只是指定客户端如何与 RADIUS 服务器对话。

现在,您可以将这些 EAP 消息封装在安全隧道中。就像 HTTP(一种不安全的消息传递协议)通过安全层一样,SSL/TLS 产生与 Web 服务器的安全连接。有人在另一个答案中说,有超过 100 种不同的 EAP“方法”,有些非常不安全。这是真的,因为 EAP 已经过时了,现在实施的加密标准不合标准。

但实际上,如果您需要支持最近的 Apple 或 Android 机器/设备和 Windows 机器,则只有两个选项,因为根本不支持其他选项:受保护的 EAP (PEAP) 和 TLS-EAP(好吧,我撒了谎:真的有还有一些,但它们在功能和安全性上与 TLS-EAP 基本相同)。

PEAP 就像一个 https 服务器,在客户端和 RADIUS 服务器之间建立了一个安全的 TLS 隧道(保护它们之间的整个无线和有线路径),服务器向客户端提供证书(在通常由他们自己的 CA 签名的公司中) ) 并在此证书的基础上设置安全通道。

如果客户端在其证书存储中信任 CA,它会将其用户名和密码发送到 RADIUS 服务器。如果 CA 不受信任,用户会收到有关证书的警告,就像 https 站点的证书有问题一样。凭据通常使用(旧的且现在较弱的)MSCHAPv2 协议进行保护,但这并不重要,因为所有内容都已受 256 位 TLS 保护。MSCHAPv2 协议使用 EAP 与 RADIUS 服务器通信。

一个明显的弱点是您可以设置一个虚假的访问点,提供一个您拥有私钥的虚假证书,并希望某些白痴用户收到有关不受信任的证书的警告,然后单击“信任”(该选项是未被管理员禁用)。然后你可能会捕获客户端的弱加密凭据,这些凭据相当容易破解(我不确定,因为我知道如果你有整个交换,MSCHAPv2 很容易破解,在这种情况下你只有客户端因为您没有用户密码的真实哈希值,所以您无法向客户端发送有效的随机数来完成交换)。

虽然这可能会让您通过大量工作访问真实网络(我对此表示怀疑,但如果您必须知道,请查看http://www.revolutionwifi.net/revolutionwifi/2012/07/is-wpa2上的 MSCHAPv2 -security-broken-due-to-defcon.html),它不会让您访问任何其他无线数据,因为它们是用不同的 PMK 加密的。

但对于公司来说,这可能仍然是一个问题。输入 TLS-EAP。TLS-EAP 与 PEAP 基本相同,区别在于客户端也有证书。因此,服务器将其证书提供给客户端,客户端必须信任该证书(因为 CA 在受信任的存储中,或者白痴点击了“信任”),但客户端还必须向服务器提供证书。这可以是在配置设备/工作站时放置在证书存储中的证书,但它也可能来自智能卡等。服务器必须信任此客户端证书,否则您甚至没有机会展示证书。

你们中的许多人可能都知道,这种双向身份验证也可以通过 TLS 为 HTTP 完成,但这在公司设置之外并不常见。在这种情况下,您也无法访问该网站,除非您首先显示服务器信任的证书。

所以现在假接入点不再很有用了。如果白痴单击“信任”,您可能会获得弱加密的凭据,然后您盲目地接受任何客户端证书,但是由于您没有客户端证书的私钥,因此您无法访问无线网络,也没有您仍然可以通过基于随机会话的 PMK 获得此客户端或其他客户端的加密无线数据。您可以使用凭据访问某些 Intranet,但如果他们为无线设置 CA 时遇到了麻烦,他们可能也需要客户端证书。

在公司中,通常在智能卡上拥有这样的客户端证书,然后员工需要访问所有资源:登录、网络资源、使用 smtps 的邮件、imaps、pop3s、使用 https 的内部网,任何使用 TLS 的东西都可以设置为需要客户端证书。通常它就像把它放在键盘上并输入一个 PIN 一样简单,然后当运行 TLS的受信任服务器要求时,windows 会显示它。

所以,我希望这能澄清一点。规模如下:“基本不安全”(WEP)“通过一些努力即可破解”(WPA2-PSK)“部分社会工程”(WPA2-Enterprise w/PEAP)“当前安全”(WPA2-Enterprise w/TLS-EAP 和相似的)

有一些方法可以使 WPA2-PSK 更加安全,因为破解它需要几个月而不是几分钟(预先计算的彩虹表)或几小时(字典攻击):将您的 SSID 设置为最大长度的随机字符串( 64 我认为),因为它被用作 PMK 的种子,使用最大长度的随机预共享密钥(PSK)。如果您随后每月更改密钥,您可以合理地确定没有人拥有当前的 PMK 或拥有/有权访问您的网络。

尽管您无法摆脱这样一个事实,即某人可能已经存储了所有客户的几个月的数据,并且一旦他们确实获得了当月的 PMK(可以做到,因为它不是 256 位真实熵的密钥)当您广播使用的种子时)。

另一个缺点是您将拥有一个高度唯一的 SSID,无论您走到哪里,您的无线设备都会广播该 SSID。如果有人拥有您家庭网络的唯一 SSID,那么在https://wigle.net/上查找您的 SSID并找出您居住的地方是小菜一碟。所以你基本上是带着你的手机/平板电脑/笔记本电脑四处走动,宣布你住在哪里......

如果您有隐私意识,这可能是一个很好的中间方法,可以将您的 SSID 设置为常见的,但不在前 30 名左右(这样就不太可能在线提供彩虹表)并使用随机 PSK最大长度。你虽然失去了一些熵。

如果您想要与有线相同的安全性,请将 WPA2-Enterprise 与 TLS-EAP 结合使用。(好吧,就目前而言……没有什么能阻止某人捕获和存储他们想要的所有数据并在 20 年内将其全部解密,因为我们都可以在量子计算机上租用时间并在几分钟内分解所有密钥。

据说美国国家安全局已经建立了一个数据中心来做到这一点,存储他们遇到的任何加密内容,直到他们能够破解它,所以如果它穿过互联网,这个问题也会影响电线上的所有东西。如果某些东西需要始终保持安全,请使用您在带外交换的随机一次性垫 :)

综上所述,虽然我很偏执,想要最好的安全性,因此花了两天时间让 WPA2-Enterprise/TLS-EAP 工作,但对于大多数家庭用户来说,这可能是遥不可及的(而且过度杀伤力)。如果您的网络上还没有域控制器或其他目录服务,请体验 RADIUS拥有企业会使用的所有昂贵的专业 wifi 设备,那么您很可能无法使用它。你最好设置一个永远在线的 VPN 并在你的 wifi 上运行它,这样可以为你提供所有的安全性,但没有任何有趣的调试 EAP。

PS。为简单起见,我还忽略了接入点和 RADIUS 服务器之间的通信也由预共享密钥(称为“共享密钥”)加密的事实。Afaik 这种加密在今天并不好(使用基本上被破坏的 MD5),但既然你把 TLS 放在它上面,那没关系。您可以使用合适的密钥大小(取决于实现,介于 64-128 字符 = 512-1024 位之间)。我总是尽可能地设置最大的秘密,这不会造成伤害。

WPA 和 WPA2 的 PSK 变体使用从密码派生的 256 位密钥进行身份验证。

WPA 和 WPA2 的 Enterprise 变体,也称为802.1x使用 RADIUS 服务器进行身份验证。身份验证是使用EAP协议的变体实现的。这是一个更复杂但更安全的设置。

WPA 和 WPA2 之间的主要区别在于使用的加密协议。WPA 使用TKIP协议,而 WPA2 引入了对CCMP协议的支持。

假设您有 10 个用户。在 PSK 模式下,所有 10 个用户都使用相同的密码来生成相同的密钥。因此,捕获流量并对其进行分析以找到密钥的可能性更高,流量如此之多,并且该密钥将是好的,直到所有 10 个用户同意更改密码短语(因此密钥)

如果这 10 个用户使用自己的用户名和密码登录到企业 WiFi 网络,每个用户都会向 RADIUS 服务器进行身份验证,RADIUS 服务器然后为他们的会话生成一个密钥,并将其交给 AP 以与他们的客户端一起使用。

因此具有相同密钥的流量只是一个用户流量,因此它是使用数据量的 1/10,并且下次用户登录时密钥会更改。用户验证的密码可能保持不变,但是生成的密钥对于每个会话都是唯一的。结合良好的密码习惯,WPA 企业版更胜一筹。此外,可以随时撤销单个用户的访问权限,而不会影响其他用户。

正如 Terry 所解释的,WPA2 比 WPA 更安全。您只需要了解这两种协议的个人(预共享密钥)和企业版本之间的区别。

个人版本是所有用户共享在接入点中配置的秘密密码的地方。在企业版中,有一个中央身份验证服务器,所有用户都有不同的凭据集,他们使用这些凭据来访问 WiFi。所以基本上没有单一的共享密码。