前言
wifi的加密协议WPA2已经被破解,影响范围包括所有支持wifi的设备,包括Android,Linux,Apple,Windows,OpenBSD,联发科技,Linksys等。其中对Android和Linux的影响尤其严重,41%的Android设备(Android 6.0及以上)将受到严重影响。介绍这些并非是为了造成恐慌,而是引起我们的重视,在使用wifi时候,我么会经常社交和支付软件的使用,如果这些被破解,造成的损失非常巨大,对于企业更是如此。本文不是对论文,是论文官网对论文介绍的翻译。作者是Mathy Vanhoef和imec-DistriNet,大家感兴趣可以搜他们的其他论文,本篇论文下载地址,后面有。
引言
我们发现WPA2协议的严重弱点,WPA2是保护Wi-Fi网络的协议。受害者范围内的攻击者可以利用重放攻击(KRACK)来利用这些弱点。具体来说,攻击者可以使用这种新颖的攻击技术来读取先前被认为已经安全加密的信息。这种攻击可能被滥用来窃取敏感信息,如信用卡号,密码,聊天信息,电子邮件,照片等。该攻击影响所有现代受保护的Wi-Fi网络。根据网络配置,还可以注入和操作数据。例如,攻击者可能能够将ransomware或其他恶意软件注入网站。
弱点在于Wi-Fi标准本身,而不是单独的产品或实现。因此,WPA2的正确实施可能会受到影响。为了防止攻击,用户必须在安全更新可用时立即更新受影响的产品。请注意,如果你的设备支持Wi-Fi,则很有可能会受到影响。在我们初步的研究中,我们发现Android,Linux,Apple,Windows,OpenBSD,联发科技,Linksys等都受到一些攻击变体的影响。有关特定产品的更多信息,请查阅CERT / CC数据库,或与你的供应商联系。
攻击背后的研究将在计算机和通信安全(CCS)会议和黑帽欧洲会议上发表。我们的详细研究论文已经可以下载了。
英文论文下载地址:https://papers.mathyvanhoef.com/ccs2017.pdf
演示
作为一个概念验证,我们对Android智能手机执行了重要的重放攻击。 在这个演示中,攻击者能够解密受害者发送的所有数据。 对于攻击者来说,这是很容易完成的,因为关键重放攻击对Linux和Android 6.0或更高版本是非常破坏性的。 这是因为Android和Linux可以被欺骗(重新)安装一个全零加密密钥(有关详细信息,请参阅下文)。 当攻击其他设备时,解密所有数据包是困难的,尽管可以解密大量数据包。 在任何情况下,以下演示突出显示攻击者在对受保护的Wi-Fi网络执行关键重放安装攻击时可获得的信息类型。
我们的攻击并不限于恢复登录凭据(即电子邮件地址和密码)。通常,受害者传送的任何数据或信息都可以被解密。此外,根据所使用的设备和网络设置,还可以解密向受害者 发送的数据(例如,网站的内容)。虽然网站或应用程式可能会使用HTTPS作为额外的保护层,但是在特殊情况下,这种额外的保护措施(仍然可以)被绕过。 例如,HTTPS以前在非浏览器软件,Apple的iOS和OS X,Android应用程序,银行应用程序甚至VPN应用程序中都被绕过。
细节
我们的主要攻击是针对WPA2协议的四次握手。当客户端希望加入受保护的Wi-Fi网络时,执行此握手,并用于确认客户端和接入点都具有正确的凭据(例如网络的预共享密码)。同时,4次握手还协商一种新的加密密钥,用于加密所有后续流量。目前,所有现代保护的Wi-Fi网络都使用4次握手。这意味着所有这些网络都受到我们攻击的(某些变体)的影响。例如,攻击针对个人和企业Wi-Fi网络,针对较旧的WPA和最新的WPA2标准,甚至针对仅使用AES的网络。我们对WPA2的所有攻击都使用一种称为重放攻击(KRACK)的新技术:
重放攻击:高级描述
在关键的重放攻击中,攻击者将重放已经在使用的密钥。这是通过操纵和重播加密握手消息来实现的。当受害者重放密钥时,诸如增量发送分组号(即随机数)和接收分组号(即重播计数器)的相关参数被重置为其初始值。本质上,为了保证安全性,只能安装和使用一次密钥。不幸的是,我们发现这不是WPA2协议的保证。通过操纵加密握手,我们可以在实践中滥用这种弱点。
关键重放攻击:针对4次握手的具体示例
如研究论文的介绍所述,关键重放攻击背后的想法可以归纳如下。当客户端加入网络时,它执行四次握手来协商一个新的加密密钥。在接收到4次握手信息3后,将会安装该密钥。一旦安装了密钥,它将用于使用加密协议对正常数据帧进行加密。然而,由于消息可能丢失或丢失,如果接收点(AP)没有收到适当的响应作为确认,则将重传消息3。结果,客户端可以多次接收消息3。每次收到该消息时,它将重新安装相同的加密密钥,从而重置增量发送分组号(随机数),并接收加密协议使用的重播计数器。我们显示,攻击者可以通过收集和重播4次握手的消息3的重传来强制这些随机复位。通过以这种方式强制重复使用,可以攻击加密协议,例如可以重放,解密和/或伪造数据包。同样的技术也可以用来攻击组密钥,PeerKey,TDLS和快速BSS过渡握手。
实际影响
在我们看来,最广泛和最具影响力的攻击是四次握手的关键重放攻击。我们根据两个观察结果作出判断。首先,在我们自己的研究中,我们发现大多数客户受到影响。第二,对手可以使用此攻击来解密客户端发送的数据包,从而拦截敏感信息,如密码或Cookie。分组的解密是可能的,因为密钥重放导致传输随机(有时也称为分组号或初始化向量)被重置为零。使得和过去已经使用的随机数值一起使用相同的加密密钥。反过来,这导致WPA2的所有加密协议在加密数据包时重新使用密钥流。如果重用密钥流的消息具有已知内容,则导出所使用的密钥流变得微不足道。然后,该密钥流可以用于使用相同的随机数来解密消息。当没有已知的内容时,解密数据包是困难的,尽管在几种情况下仍然是可能的(例如,英文文本仍然被解密)。实际上,找到具有已知内容的数据包不是问题,因此应该假设任何数据包都可以被解密。
解密数据包的能力可用于解密TCP SYN数据包。这允许对手获取连接的TCP序列号,并劫持TCP连接。因此,即使使用WPA2,对手现在可以对打开的Wi-Fi网络执行最常见的攻击:将恶意数据注入未加密的HTTP连接。例如,攻击者可以滥用这种方式将篡体改或恶意软件注入受害者访问的网站。
如果受害者使用WPA-TKIP或GCMP加密协议,而不是AES-CCMP,这种影响尤其是灾难性的。针对这些加密协议,nonce重用使得对手不仅可以解密,而且可以伪造和注入数据包。此外,因为GCMP在两个通信方向上使用相同的认证密钥,并且如果随机数被重用,则该密钥可以被恢复,所以特别受到影响。请注意,目前正在以无线千兆(WiGig)的名义推出对GCMP的支持,预计在未来几年内将以高速率采用。
数据包可以被解密(可能被伪造)的方向取决于握手被攻击。简化,当攻击4次握手时,我们可以解密(和伪造)客户端发送的数据包。当攻击Fast BSS Transition(FT)握手时,我们可以解密(和伪造)发送给客户端的数据包。最后,我们的大多数攻击还允许播放单播,广播和多播帧。有关详细信息,请参阅我们研究论文的第6节。
请注意,我们的攻击无法恢复Wi-Fi网络的密码。它们也不会在四次握手期间恢复(任何部分)新协商的加密密钥。
Android和Linux
我们的攻击对于2.4以上的wpa_supplicant(通常在Linux上使用的Wi-Fi客户端)尤其严重。在这里,客户端将安装一个全零加密密钥,而不是重新安装真正的密钥。这个漏洞似乎是由Wi-Fi标准中的一个注释造成的,建议在第一次安装之后,从内存中清除加密密钥。当客户端现在接收到四次握手的重传消息3时,它将重放现在已经清除的加密密钥,有效安装全零密钥。由于Android使用wpa_supplicant,Android 6.0及更高版本也包含此漏洞。这使得拦截和操纵这些Linux和Android设备发送的流量变得微不足道。请注意,目前,41%的Android设备容易受到我们攻击的特别破坏性变体的影响。
分配的CVE标识符(CVE是一个漏洞库,对漏洞进行了严格的定义和说明)板面
CVE-2017-13077:在四次握手中重新安装成对加密密钥(PTK-TK)。
CVE-2017-13078:在四次握手中重新安装组密钥(GTK)。
CVE-2017-13079:在四次握手中重新安装完整性组密钥(IGTK)。
CVE-2017-13080:在组密钥握手中重新安装组密钥(GTK)。
CVE-2017-13081:在组密钥握手中重新安装完整性组密钥(IGTK)。
CVE-2017-13082:在处理它时接受重发的快速BSS过渡(FT)重新关联请求并重新安装成对加密密钥(PTK-TK)。
CVE-2017-13084:在PeerKey握手中重新安装STK密钥。
CVE-2017-13086:在TDLS握手中重新安装隧道直连设置(TDLS)PeerKey(TPK)密钥。
CVE-2017-13087:处理无线网络管理(WNM)睡眠模式响应帧时重新安装组密钥(GTK)。
CVE-2017-13088:处理无线网络管理(WNM)睡眠模式响应帧时重新安装完整性组密钥(IGTK)。
请注意,每个CVE标识符表示密钥重新安装攻击的特定实例。这意味着每个CVE ID都描述了特定的协议漏洞,因此许多供应商都受到每个CVE ID的影响。您还可以阅读CERT / CC的漏洞注释VU#228519,了解哪些产品已知会受到影响。
论文
我们在攻击背后的研究论文题目是重新安装攻击:强制WPA2中的Nonce重用,并将在2017年11月1日星期三的计算机和通信安全(CCS)会议上进行介绍。
虽然这篇文章现在公布,但已经在2017年5月19日提交审查。之后,只做了微小的改变。因此,文中的调查结果已经有几个月了。与此同时,我们发现了更轻松的技术来进行四次握手的重要重新安装攻击。使用我们的新型攻击技术,现在无需利用只接受4次握手消息3的加密重传的实现。特别地,这意味着攻击macOS和OpenBSD比本文中讨论的容易得多。
工具
我们制作了脚本来检测4路握手,群组关键握手或快速BSS过渡(FT)握手的实施是否容易受到重要的重新安装攻击。一旦我们有时间清理使用说明,这些脚本将被公开。
我们还制作了一个概念验证脚本,利用了某些Android和Linux设备中存在的全零关键(重新)安装。这个脚本是我们在演示视频中使用的脚本。一旦每个人都有合理的机会更新他们的设备(我们有机会准备发布的代码库),它将被释放。我们指出,我们的概念验证脚本的可靠性可能取决于受害者对真实网络的接近程度。如果受害者非常接近真正的网络,脚本可能会失败,因为受害者将始终直接与真实网络通信,即使受害者(强制)在与该网络不同的Wi-Fi信道上。