WPA2-PSK 如何防止恶意双密码网络钓鱼?

信息安全 wpa2 wpa2-psk
2021-08-22 04:39:37

假设我们有一个 WPA2-PSK 安全 AP,并且有几个客户端(如智能手机和笔记本电脑)会自动连接到它。
现在,如果有人要创建另一个从外部看起来完全一样的 AP(相同的通道、相同的加密、相同的 SSID、相同的 BSSID 等......),但信号更强。AP 背后的软件是否有可能仅通过让客户端尝试对邪恶双胞胎进行身份验证来收集对原始 AP 进行身份验证所需的信息?

从我读到的和听到的,这是不可能的。但我真的不明白为什么。我知道在身份验证过程中客户端和 AP 之间会来回进行某种握手,但是如果邪恶的双胞胎在该过程中只是扮演中间人,它是否能够获得所需数据?

我想这个问题一定是以前被问过的,我尽力找出是否有,但我找不到任何东西。所以......如果这是重复的,我提前道歉。

2个回答

在 4 次握手期间从未发送过密码,因此无法进行网络钓鱼。

当客户端使用 WPA2-PSK 连接到接入点 (AP) 时,密码或预共享密钥 (PSK) 顾名思义,双方都知道。所以没必要再换了。

不要将此与其他没有预共享密钥可用的情况相混淆。(比如说,您通过 SSL 连接到一个网站,并且需要事先执行Diffie-Hellman 密钥交换。)

天真地,客户端和 AP 可以简单地继续使用对称加密(例如AES)进行保密通信。他们将使用 PSK 作为唯一的加密密钥,无需任何事先握手或额外的密钥交换。但是,这种方法是有缺陷的,因为它对每条消息使用相同的密钥,并且任何一方都不必证明自己的身份,从而为重放攻击打开了大门。

因此,4 次握手的目的不是交换密码,而是向对方证明您确实知道 PSK(分别是您可以认为等效的 PMK)​​并建立成对的临时密钥(PTK )。该 PTK 组合了最终将用于实际加密数据传输的密钥。

当双方使用 PSK 生成消息完整性代码 (MIC) 时,就会证明知道 PSK,该代码将在握手期间与随机 nonce 值一起发送。因此,你的邪恶双胞胎和合法客户之间的握手将如下所示:

  • 您的恶意 AP 生成一个随机 nonce ( ANonce ) 并将其发送给客户端。
  • 客户端选择一个随机数(SNonce)并且现在能够计算 PTK。它发送随机数以及从密钥生成的 MIC。
  • 现在您的 AP 必须用相应的 MIC 发回一个组临时密钥 (GTK)。由于您在不知道 PSK 的情况下无法生成 MIC,因此客户端将拒绝您的响应并且身份验证失败。

引用维基百科上的描述:

四次握手

四次握手旨在使接入点(或身份验证器)和无线客户端(或请求者)可以独立地相互证明他们知道 PSK/PMK,而无需泄露密钥。接入点和客户端不是公开密钥,而是相互加密消息——只能通过使用他们已经共享的 PMK 来解密——如果消息解密成功,这证明了 PMK 的知识。四次握手对于保护 PMK 免受恶意接入点(例如,攻击者的 SSID 冒充真实接入点)至关重要,因此客户端永远不必告诉接入点其 PMK。

所以基本上 AP 和客户端从不告诉对方任何关于密钥的细节,除非他们互相证明他们都知道它。另见零知识密码证明