假设我有一个受密码保护的无线网络。
入侵者可以采取什么程序来访问我的无线网络,或者至少能够将我发送的数据包解密为可以理解的东西?这种方法需要多长时间?
例如,究竟如何aircrack
获得访问权限?
这个相关问题是关于一旦攻击者知道密码会发生什么:我对他们如何获取密码感兴趣。
假设我有一个受密码保护的无线网络。
入侵者可以采取什么程序来访问我的无线网络,或者至少能够将我发送的数据包解密为可以理解的东西?这种方法需要多长时间?
例如,究竟如何aircrack
获得访问权限?
这个相关问题是关于一旦攻击者知道密码会发生什么:我对他们如何获取密码感兴趣。
首先,这完全取决于接入点使用的加密。有几种可能的加密类型。主要在消费者无线接入点上,这些是:
让我们首先深入了解 WEP。WEP 是第一个用于保护无线接入点的算法。不幸的是,人们发现 WEP 存在一些严重的缺陷。2001年,在伯克利工作的3名研究人员发表了一篇名为“ WEP算法的(In)Security ”的论文。他们在 WEP 中发现了以下缺陷:
基于欺骗接入点的主动攻击来解密流量。
字典构建攻击,在分析了大约一天的流量后,允许实时自动解密所有流量。
他们关于 WEP 技术问题的论文摘录:
WEP 使用 RC4 加密算法,称为流密码。流密码通过将短密钥扩展为无限的伪随机密钥流来进行操作。发送者将密钥流与明文进行异或以产生密文。接收者拥有相同密钥的副本,并使用它来生成相同的密钥流。将密钥流与密文异或产生原始明文。
这种操作模式使流密码容易受到多种攻击。如果攻击者翻转密文中的位,则在解密时,明文中的相应位将被翻转。此外,如果窃听者截获两个用相同密钥流加密的密文,则有可能获得两个明文的异或。这种异或的知识可以使统计攻击能够恢复明文。随着使用相同密钥流的密文越来越多,统计攻击变得越来越实用。一旦知道其中一个明文,恢复所有其他明文是微不足道的。
WEP 可以防御这两种攻击。为确保数据包在传输过程中未被修改,它使用数据包中的完整性检查 (IC) 字段。为了避免使用相同的密钥流加密两个密文,初始化向量 (IV) 用于增加共享密钥并为每个数据包生成不同的 RC4 密钥。IV 也包含在数据包中。但是,这两种措施都执行不正确,导致安全性差。
完整性校验字段被实现为 CRC-32 校验和,它是数据包的加密有效负载的一部分。但是,CRC-32 是线性的,这意味着可以根据接收它们的消息的位差来计算两个 CRC 的位差。换言之,翻转消息中的位 n 会导致 CRC 中的一组确定性位,必须翻转这些位才能在修改后的消息上产生正确的校验和。因为翻转位在 RC4 解密后进行,这允许攻击者翻转加密消息中的任意位并正确调整校验和,以使生成的消息看起来有效。
WEP 中的初始化向量是一个 24 位字段,它以消息的明文部分形式发送。如此小的初始化向量空间保证了相同密钥流的重用。一个繁忙的接入点以 11Mbps 持续发送 1500 字节数据包,将在 1500*8/(11*10^6)*2^24 = ~18000 秒或 5 小时后耗尽 IV 的空间。(时间可能更短,因为许多数据包小于 1500 字节。)这允许攻击者收集使用相同密钥流加密的两个密文并执行统计攻击以恢复明文。更糟糕的是,当所有移动台使用相同的密钥时,IV 冲突的可能性更大。例如,朗讯的普通无线网卡在每次初始化网卡时都会将 IV 重置为 0,并将每个数据包的 IV 加 1。这意味着大致同时插入的两张卡将为攻击者提供大量的 IV 冲突。(更糟糕的是,802.11 标准规定随每个数据包更改 IV 是可选的!)
其他一些有趣的阅读材料可以在aircrack-ng.org找到。
第二个是WPA。WPA 最初是作为 WEP 的包装器来解决由 WEP 引起的不安全问题。实际上,它从来都不是安全标准,而只是在 WPA2 可用之前的快速修复。
它有两种操作模式:
WPA 通常使用临时密钥完整性协议 (TKIP)。TKIP 由 IEEE 802.11i 任务组和 Wi-Fi 联盟设计,作为无需更换旧硬件即可替代 WEP 的解决方案。这是必要的,因为 WEP 的破坏使 WiFi 网络失去了可行的链路层安全性,并且需要为已经部署的硬件提供解决方案。TKIP不是一种加密算法,但它用于确保每个数据包都使用唯一的加密密钥发送。
TKIP 实现了一个更复杂的密钥混合功能,用于将会话密钥与每个数据包的初始化向量混合。这可以防止所有当前已知的相关密钥攻击,因为每个数据包密钥的每个字节都取决于会话密钥的每个字节和初始化向量。此外,每个数据包中都包含一个名为 MICHAEL 的 64 位消息完整性检查 (MIC),以防止对 WEP 中已知的弱 CRC32 完整性保护机制的攻击。为了防止简单的重放攻击,使用了一个序列计数器(TSC),它只允许数据包按顺序到达接收器。
针对 TKIP 的已知攻击有两种:
然而,这两种攻击都只能解密一小部分数据,从而损害机密性。他们不能给你的是访问网络。为了让您了解可以恢复多少数据,单个 ARP 帧大约需要 14-17 分钟才能获取纯文本。
除了某些路由器的固件缺陷外,唯一知道的攻击是暴力破解 WPA 密钥。一般key的生成方式如下:
Key = PBKDF2(HMAC−SHA1,passphrase, ssid, 4096, 256)
考虑到该算法旨在防止散列密码被破坏,它可能需要大量时间。唯一合理的攻击是使用字典攻击(因此使用包含字符、数字和字母的长密码很重要)。
另请注意,您需要将 SSID 更改为非常随机的值。已为前 1000 个使用的 SSID生成彩虹表。
WPA 还支持 AES(可以用来代替 RC4)。这仍然意味着使用了 TKIP-MIC。
WPA2 支持与 WPA 相同的模式,只是它不使用 TKIP 而是使用 CCMP 进行加密封装。
CCMP 是一种增强的数据加密封装机制,专为数据机密性而设计,基于 AES 标准的 CBC-MAC (CCM) 计数器模式。这用于替换 TKIP 以实现消息机密性。
但是,某些接入点仍然可以配置为同时使用 TKIP 和 CCMP。这样做是因为否则人们需要升级他们的硬件。
Wi-Fi Protected Setup (WPS;最初是 Wi-Fi Simple Config) 是一种计算标准,它试图允许轻松建立安全的无线家庭网络。它为家庭用户提供了轻松的安全性,但仍然使用更安全的 WPA 而不是 WEP。永远不要使用WPS ,因为它存在很大的设计缺陷。WPS 会“按一下按钮”生成用户可以输入的 PIN 码。这背后的想法是提高可用性。这带来了一个问题:即使使用 PBKDF2,任何计算机都可以快速处理的可能性减少到 10.000.000。
EAP 用于 WPA(2)-Enterprise,是一种身份验证框架,而不是特定的身份验证机制。它提供了一些常见的功能和认证方法的协商,称为 EAP 方法。目前定义了大约 40 种不同的方法。有些人有自己的缺陷,但考虑到大量的可能性,我建议您自己查找它们。
这取决于网络上使用的确切加密,但对于 WEP(最容易破解),只需几分钟。最常见的攻击是Fluhrer、Mantin 和 Shamir 攻击,其中涉及寻找可用于对密钥的部分进行逆向工程的重用 IV(初始化向量)。它们应该是唯一的,但是对于 WEP 使用的短 IV,它们会经常重复。
由于在每个块的开头部分 WEP SNAP 标头是已知的,对于某些 IV,如果攻击者知道密钥流的第一个字节,他们可以从他们最后知道的那个中确定密钥的下一个字节。因此,攻击一开始只知道 WEP SNAP 数据包的开头是什么,但每次看到特定类型的 IV 时,都可以获知下一个密钥字节。这可以在繁忙的网络上非常快速地生成完整的 16 字节密钥,因为唯一需要的是网络使用必要的 IV。
如果网络不够繁忙,有一些方法可以诱使网络进行更多通信,这有助于恢复密钥,尽管可能会检测到这些更激进的方法。
Wikipedia 的 WEP 页面上的缺陷部分还包含有关该攻击的更深入信息,因为它适用于 WEP 以及何时达到的速度。
对于 WPA,它有点复杂。它本质上不那么弱,但几次攻击通常被证明是成功的。第一个是针对网络密码的彩虹表攻击。任何基于弱密码的 WEP 密钥都可以很容易地从彩虹表中破解,因为作为密钥派生的一部分,对于给定的 SSID,加盐不是唯一的。
Wifi Protected Setup 中也存在一些弱点,可以恢复 WPS 引脚。使用 WPS,他们只使用 7 位密码,并且每一半都单独验证,因此您只需猜测 3 位和 4 位数字即可访问。