本文将无线安全协议包括 WEP、WPA、WPA2 和 WPA3。对于它们中的每一个,我们将尝试指出它们的优点和缺点,并描述一些可能的攻击。
WEP作为 1997 年批准的原始 802.11 标准的一部分引入,它可能是最常用的 WiFi 安全协议。它的 10 位或 26 位十六进制数字(40 位或 104 位)的密钥非常容易识别。2004 年,两者WEP-40和WEP-104都被宣布弃用。有128-bit(最常见的)和256-bitWEP 变体,但随着计算能力的不断提高,攻击者能够利用许多安全漏洞。总而言之,这个协议已不能满足安全的需要。
它使用 RC4 密码来确保隐私,并使用 CRC-32 校验和来确保传输数据的完整性。首先,网络用户之间共享一个密钥 k(协议未指定如何共享)要发送消息 M,必须计算消息的完整性校验和c(M)并将其连接:现在有Mc(M)。然后,通过与由 k 生成的 RC4 流和名为 v 的 24 位公共初始化向量 (IV) 进行异或运算来加密<Mc(M)> 。我们将其记为RC4 (v, k)。 结果C =<Mc(M)> ⊕ RC4(v, k)被发送到网络,知道 k 的用户可以通过 XORing C 与 RC4(v, k) 得到消息。
第一个是 RC4-Key Scheduled Algorithm (KSA
),它将长度为 1 到 256 位的密钥转换为数字 0 到 N 的初始排列 S。RC4 的内部状态由两个数字 i 和 j 组成,用作指针为 S 的元素。
第二种算法是 RC4-伪随机生成算法 (PRGA
)。它从 RC4 的当前内部状态生成单个字节的密钥流,然后更新内部状态。最初,N=255,但该算法可以使用不同的 N 值。
使用 CRC32,原始消息与 32 位常量进行异或运算,后跟尽可能多的 0,以达到消息的长度。结果成为新的“消息”并重复操作,直到结果的长度低于常数的长度。需要注意的是,这个散列函数是线性的且无键的。
这允许外部人员在网络上生成大量流量,而无需以任何方式与之关联。首先,他必须捕获特定类型的数据包。尽管隐藏在加密后面,但可以根据数据包大小轻松猜测数据包类型。
一个 ARP 请求包总是 28 个字节。通过将其重新注入网络,AP 将响应此伪造请求,向合法客户端发送数据包。额外的流量用于更快地收集加密数据包,并且数据包越多,他就越有可能更快地破坏 WEP。
假身份验证攻击允许攻击者加入受 WEP 保护的网络,即使他不知道根密钥。客户端可以通过两种方式在 WEP 保护的网络中对自己进行身份验证: 第一种方法是开放系统认证,基本上没有保护。 第二种方法称为共享密钥身份验证。这个使用秘密根密钥和质询-响应身份验证。客户端要求 AP 连接,AP 发送一个包含挑战(随机字节字符串,明文)的帧,客户端使用 WEP 加密帧进行回答。如果没问题,AP 会成功回复。 嗅出握手的攻击者可以加入网络本身。除了 AP 挑战,第 3 帧中的所有字节都是恒定的。挑战在第 2 帧以明文形式传输,因此攻击者可以恢复用于加密第 3 帧的密钥流(和 IV)。有了它,他现在可以启动身份验证握手并构造一个有效的帧(编号 3)。
由 Fluhrrer、Mantin 和 Shamir 于 2001 年发布,它基于RC4 弱点与 IV(初始化向量或随机数,每个数据包密钥的 3 个字节)的意识相结合。
攻击者可以对 RC4 进行操纵,使他能够猜测密钥的一个字节(5% 的概率)。如果密钥错误,攻击者会使用新密钥重试。为了达到 50% 的成功率,攻击者需要捕获大量数据包(最多 600 万个)。 如果我们知道每个数据包密钥的前“l”个字节,我们可以模拟RC4-KSA. 不想在这里的数学太深入,基本上下一个字节的密钥取决于(有点相关)当前的字节,可以用来检查我们是否在正确的轨道上。每次迭代,我们都会多得到一个字节的密钥,并最终对其进行测试。如果它是错误的,则密钥的字节正在与另一个可能的值切换并重新启动过程。
这是基于 FMS 攻击(首次出现在netstumbler 论坛,2004 年),但让攻击者更快地找到密钥。
也由“KoreK”发现,它反对利用 RC4 的弱点,它攻击 WEP 协议本身(CRC32 校验和和缺乏重放保护)。它使攻击者能够在不知道密钥的情况下解密数据包。
翻转密文中的一位,然后计算必须翻转加密的 CRC32 值中的哪一位,以使数据包仍然有效。经常提到的方法是取出最后一个字节并尝试猜测它的值。
如果当前没有客户端连接到接入点,则可以运行很好的攻击。类似于 ChopChop 攻击,它通过将任意数据包注入 AP 来加速破解过程。它将产生足够的流量来捕获大量 IV,从而提高破解密钥的机会 (aircrack-ng)。“aireplay-ng”和“packetforge-ng”是这种攻击的标准工具包。
Pyshkin Tews Winmann (PTW) 攻击,于 2007 年发布。
使 PTW 比所有其他攻击更强大的原因在于它可以利用捕获的每个数据包。它实现了一个键排序策略,而不是尝试所有可能的键组合,而是选择一组可能的键并基于这些键继续 RC4 算法。使用不同的投票策略,攻击者可以在树中的每个决策中选择最有可能的密钥字节来确定正确的密钥。
测试表明,只需 35,000 到 40,000 个数据包即可获得 50% 的成功概率。其他消息来源指出,我们可以在 85,000 帧中获得 95% 的概率。
WPA 于 2003 年推出,它是 Wi-Fi 联盟对 WEP 加密标准日益明显的漏洞的直接响应和替代。最常见的 WPA 配置是WPA-PSK(预共享密钥)。WPA 使用的密钥是,比WEP 系统中使用的和密钥256-bit显着增加。64-bit128-bit
注意:WPA-PSK 基本上意味着 Wi-Fi 网络有一个密码,由每个 Wi-Fi 网络客户端共享。 WPA 包括消息完整性检查(以确定攻击者是否已捕获/更改在接入点和客户端之间传递的数据包)和临时密钥完整性协议 (TKIP)。TKIP 采用了每包密钥系统,它比 WEP 使用的固定密钥系统更加安全。TKIP 加密标准后来被高级加密标准 (AES) 取代。 TKIP 使用与 WEP 相同的底层机制,因此容易受到许多类似攻击(例如 Chop-Chop、MIC 密钥恢复攻击)的攻击。 通常人们不会直接攻击 WPA 协议,而是使用 WPA 推出的补充系统——Wi-Fi Protected Setup (WPS)。 注意:TKIP(临时密钥完整性协议)——RC4流密码与128-bit每个数据包密钥一起使用,这意味着它为每个数据包动态生成一个新密钥。虽然仍在使用,但在 2009 年被 CCMP 取代后被认为已过时。
攻击者取消对站点的身份验证,然后捕获 ARP 数据包。接下来,他将执行修改后的 ChopChop 攻击以恢复数据包的 ICV(完整性检查值)和 MIC。这样,攻击者需要猜测数据包的最后一部分,即 IP 地址。最后,他反转MICHAEL算法并获得MIC密钥。有了它,他现在可以将自定义数据包注入网络。 对策:禁用 QoS。
Pairwise Transient Key (PTK) – 用于保护单播数据帧 组临时密钥 (GTK) – 用于保护组寻址数据帧(例如广播 ARP 帧) 攻击者发送一个 ARP 请求(带有他的 MAC 和 AP 的 IP 地址),因此其他客户端更新他们的 ARP 表。这样,所有客户端都会将他们的数据包发送给攻击者。攻击者将收到AP解密的数据包,并用自己的密钥重新加密它们。每个人都可以使用 GTK 构建和广播虚假数据包。使用组密钥发送的消息没有针对欺骗的保护。
当然,WPA2 取代了 WPA。认证于 2004 年 9 月开始,从 2006 年 3 月 13 日起,所有新设备都必须带有 Wi-Fi 商标。最重要的升级是强制使用 AES 算法(而不是之前的 RC4)和引入 CCMP(AES CCMP,具有块链接消息验证码协议的计数器密码模式,128 位)作为 TKIP(WPA2 中仍然存在)的替代品,作为后备系统和 WPA 互操作性)。
与以前的版本一样,对 WPS 的攻击是最常见的攻击。
注意:WPA/WPA2 MGT(管理)表示密码不是预加密密钥,而是使用身份验证服务,通常是验证 Wi-Fi 网络客户端的用户名/密码的 RADIUS 服务。MGT 最常与企业/专业环境相关联。
该攻击针对用于在 WPA2 协议中建立随机数(一种“共享秘密”)的四次握手。WPA2 标准预计 WiFi 偶尔会断开连接,并允许在第三次握手时使用相同的值重新连接(以实现快速重新连接和连续性)。因为该标准不要求在这种类型的重新连接中使用不同的密钥,这可能随时需要,所以重放攻击是可能的。
对策:接入点具有可在密钥安装期间禁用 EAPOL-Key 帧重新传输的配置选项。 有用:密钥重新安装攻击:在 WPA2 中强制 Nonce 重用
2018 年 8 月 4 日,针对使用 WPA/WPA2-PSK(预共享密钥)的 Wi-Fi 网络发布了新的漏洞利用。该漏洞允许攻击者获取用于特定 SSID 的 PSK。
该攻击是在寻找攻击新 WPA3 安全标准的新方法时意外发现的。
与其他攻击相比的主要区别在于,在此攻击中,不需要捕获完整的 EAPOL 4 次握手。新的攻击是针对单个 EAPOL 帧的 RSN IE执行的。 不再需要普通用户——因为攻击者直接与 AP 通信(也称为“无客户端”攻击)。 您无需等待普通用户和 AP 之间完成 4 次握手。 不再重传 EAPOL 帧(这可能导致无法破解的结果)和普通用户发送的无效密码。 当普通用户或 AP 距离攻击者太远时,不会丢失 EAPOL 帧。 不再需要修复 nonce 和重播计数器值(导致速度稍高)。 不再有特殊的输出格式(pcap、、hccapx等)——最终数据将显示为常规的十六进制编码字符串。
对策:建议在 WPA/WPA2-PSK 网络上禁用 802.11r。
WPS 于 2006 年推出,该协议的目标是允许对无线安全知之甚少的家庭用户设置 Wi-Fi 保护访问,以及无需输入长密码即可轻松将新设备添加到现有网络.
2011 年 12 月,一个漏洞被发现影响了具有 WPS 功能的无线路由器。该漏洞允许远程攻击者通过暴力攻击在几个小时内恢复 WPS PIN,并使用 WPS PIN 恢复网络的WPA/WPA2预共享密钥。
WPS 使客户端能够向接入点发送 8 位引脚,接入点对其进行验证,然后允许客户端连接。Pin 仅包含数字,WPS 存在延迟,因为攻击者需要等待 AP 响应。因此,攻击者可以每秒尝试几个键(或每几秒一个键)。 我们这里有 8 个数字和 10 个数字,10 8 (100.000.000)。这太多了。第 8 位是前 7 位的校验和,所以我们有 10 7。此外,用于验证的密码分为两半,因此我们可以独立验证前 4 位和后 4 位数字。一次猜测 4 位数 2 比 8 位数 1 要容易得多。最后,数学最终得到:10 4 + 10 3 = 11,000 次猜测。
虽然这种策略过去需要几个小时,但较新的 WPS Pixie-Dust 攻击可以在几秒钟内破解网络。自 2011 年以来,许多路由器现在具有检测和减速(速率限制)或关闭 Reaver 类型攻击(锁定过多失败的 PIN 尝试)的保护。
路由器更新了一些设置以防止 WPS,但它们实施加密的方式仍然存在缺陷。创建真正的随机数相对困难,这是产生强加密所必需的。为了实现这一点,通常有一个函数接受“种子”并产生一个伪随机数。
如果使用长的或可变的“种子”数字,您可以获得与实际上随机的数字相同的结果,但如果您使用容易猜到的“种子”,或者更糟糕的是,一次又一次地使用相同的“种子”,你最终会具有易于破解的弱加密。这就是那些更新的路由器所发生的事情,WPS Pixie-Dust 攻击利用的东西。
对策:关闭WPS功能。
这依赖于捕获 WPA 握手,然后使用单词列表或暴力破解密码。根据密码强度(长度、字符集),在“合理”的时间内破解它可能很困难或不可能。
对策:使用长密码 (12+) 和不同的字符集(字母数字、特殊字符、大写/小写)。
2018 年 1 月,Wi-Fi 联盟宣布 WPA3 替代 WPA2。新标准128-bit在 WPA3-个人模式(WPA-PSK预共享密钥)或192-bitWPA3-企业(RADIUS 身份验证服务器)中使用加密。
WPA3 将更难被攻击,因为它的现代密钥建立协议称为“同时验证相等”(SAE)或蜻蜓密钥交换。SAE 提高了初始密钥交换的安全性,并针对离线字典攻击提供了更好的保护。
但它同样容易受到中间人攻击,并且无法抵御邪恶的WiFi钓鱼攻击。