介绍
我们发现WPA2严重的弱点,即确保所有的现代保护的Wi-Fi网络的协议。内的受害者的范围内的攻击者可以利用使用这些弱点一个秘钥安装攻击(KRACKs)。具体而言,攻击者可以利用这个新的攻击技术来读取先前假定为安全的加密信息。这可以被滥用来窃取敏感信息,如信用卡号,密码,聊天消息,电子邮件,照片,等等。 该攻击的原理对所有现代保护的Wi-Fi网络。根据网络的配置,也可以注入和操纵数据。例如,攻击者可能能够注入勒索软件或其他恶意软件到网站中。
弱点是在Wi-Fi标准本身,而不是单个产品或实现。因此,任何正确实施WPA2很可能受到影响。为了防止攻击,用户必须尽快安全更新可用更新受影响的产品。请注意,如果您的设备支持Wi-Fi,它是最有可能受到影响。在我们最初的研究中,我们发现自己,安卓,LINUX,苹果,Windows中,OpenBSD的,联发科,Linksys公司,和其他人,都受到的一些攻击变种。有关特定产品的详细信息,请参阅CERT / CC的数据库,或联系您的供应商。
背后偷袭的研究,将在提交计算机与通信安全(CCS)会议,并在黑帽欧洲会议。我们详细的研究论文已经可以下载。
示范
作为证明的概念,我们对执行的Android智能手机一键重装攻击。在这个演示中,攻击者能够解密受害人传输的所有数据。对于攻击者,这是很容易做到的,因为我们的主要攻击重新安装对抗的Linux和Android 6.0或更高格外毁灭性的。这是因为Android和Linux可以被欺骗(重新)安装一个全零的加密密钥(见下文获取更多信息)。当攻击其他设备,这是很难解密所有的数据包,尽管大量数据包的仍然可以被解密。在任何情况下,下面的演示强调了在执行对受保护的Wi-Fi网络键重装攻击时,攻击者可以获取的信息的类型:
我们的攻击不限于恢复登录凭证(即电子邮件地址和密码)。通常,任何数据或信息,受害者发送可以被解密。此外,取决于所使用的设备和网络设置上,但也可以解密朝向受害者发送的数据(例如,网站的内容)。虽然网站或应用程序可能使用HTTPS作为一个附加的保护层,我们警告说,这种额外的保护可能(仍然)可以在情况令人担忧号旁路。 例如,HTTPS以前绕过在非浏览器软件,在苹果的iOS和OS X,在Android应用中,Android的应用程式再次,在银行业的应用甚至在VPN应用。
细节
我们的主要攻击是针对WPA2协议的4次握手。当客户端要加入受保护的Wi-Fi网络,并用于确认客户端和接入点具有正确的凭据(如网络的预共享密码)此握手执行。与此同时,在4次握手协商也将被用于加密所有后续通信新鲜的加密密钥。目前,所有的现代保护的Wi-Fi网络使用4次握手。这意味着所有这些网络是由(的一些变体)我们的攻击的影响。例如,攻击的原理是对个人和企业Wi-Fi网络,对旧的WPA和WPA2最新标准,甚至对网络,只能使用AES。 我们对所有的WPA2攻击使用一种新的技术被称为关键重装攻击(KRACK):
重点重新安装攻击:高层次的描述
在关键的重装出击,对手的招数受害者到重新安装已在使用的关键。这是通过操纵和重放加密握手消息来实现。当受害者重新安装该键相关联的参数,例如增量发送分组数(即随机数)和接收的分组数(即,回放计数器)被复位到其初始值。从本质上讲,为了保证安全性,一个密钥只能安装并使用一次。不幸的是,我们发现这不是由WPA2协议保证。通过操纵加密握手,我们可以滥用其在实践中的这一弱点。
重点重新安装攻击:对4次握手具体的例子
正如所描述的引进研究论文,背后的关键重装攻击的想法可以总结如下。当客户端加入网络时,其执行4次握手协商一个新的加密密钥。接受4次握手的消息3后,将安装此密钥。一旦密钥安装,它将被用于加密使用加密协议正常的数据帧。然而,因为消息可能丢失或丢弃时,接入点(AP)将重传消息3,如果它没有接收作为送达确认适当的响应。其结果是,客户机可以接收消息3分多次。每次它接收到该消息时,它将重新安装相同的加密密钥,并从而复位增量发送分组数(随机数),并接收由所述加密协议使用重放计数器。我们表明,攻击者可以通过收集和重播4次握手的消息3的重发强制这些随机数复位。通过迫使随机数回用这种方式,加密协议可以被攻击,例如,数据包可以被重放,解密,和/或伪造的。同样的技术也可以被用来攻击组密钥,PeerKey,TDLS和快速BSS过渡握手。
实际的影响
在我们看来,最广泛和最实用有影响力的攻击是针对4次握手的关键重装攻击。我们立足于两点意见作出判决。首先,我们自己的研究过程中我们发现,大多数客户都受到它的影响。其次,对手可以使用这种攻击来解密由客户端发送的数据包,使他们能够截取敏感信息,如密码或饼干。分组的解密是可能的,因为一个密钥重新安装攻击导致的发射的随机数(有时也被称为分组号或初始化向量)被复位到零。其结果是,相同的加密密钥用于与已经在过去使用的随机数的值。反过来,这会导致WPA2的所有加密协议重用密钥流加密数据包时。在的情况下重用的密钥流具有已知内容的消息时,它变得微不足道以导出使用的密钥流。然后,该密钥流,可以使用以相同的随机数进行解密的消息。当没有已知的内容,这是很难解密的数据包,但在一些情况下仍然有可能(如英文文本仍然可以解密)。 在实践中,与已知的内容找到数据包是没有问题的,所以应该假定任何数据包进行解密。
解密数据包的能力可以用来解密TCP SYN数据包。这允许敌手以获得连接的TCP序列号,并劫持TCP连接。其结果是,即使WPA2时,对手可以立即执行的对开放的Wi-Fi网络最常见的攻击之一:注入恶意数据到未加密的HTTP连接。例如,攻击者可以滥用这种注入勒索软件或恶意软件成受害者正在访问的网站。
如果受害人使用的,而不是AES-CCMP无论是WPA-TKIP或GCMP加密协议,影响尤为灾难性的。 针对这些加密协议,现时再利用使对手不仅解密,而且还伪造和注入数据包。此外,由于使用GCMP在两个通信方向相同的验证密钥,如果随机数被重复使用此键可以恢复,特别受影响。请注意,对于GCMP支持目前正在姓名无线千兆(WiGig联盟)下推出,并预计将在一个较高的速度通过了在未来几年。
在其中的报文可以被解密(并且可能伪造的)的方向取决于握手被攻击。简化,攻击4次握手的时候,我们可以解密(和伪造)发送的数据包的客户端。当攻击快速BSS转换(FT)握手,我们可以解密(和伪造)发送的数据包向客户端。最后,我们的大多数攻击也允许单播,广播和多播帧的回放。有关详细信息,请参见第6节我们的研究论文。
请注意,我们的攻击不收回Wi-Fi网络的密码。他们还没有恢复(的任何部分),这是4次握手期间协商新鲜的加密密钥。
Android和Linux的
我们的攻击是违反2.4版本尤其是灾难性的,上面的wpa_supplicant的,一个Wi-Fi客户端通常在Linux上使用。在这里,客户端将安装重新安装真正关键的全零的加密密钥来代替。该漏洞出现在了Wi-Fi标准,建议一旦被安装,第一次从内存中清除加密密钥的言论而引起的。当客户端现在收到4次握手的重传消息3时,将重新安装现已清除加密密钥,有效地安装一个全零的关键。由于Android采用的wpa_supplicant,安卓6.0及以上版本也包含此漏洞。这使得它微不足道的拦截和操纵这些Linux和Android设备发送的流量。 需要注意的是目前Android设备的41%,很容易受到我们的攻击的这个特别毁灭性的变种。
分配的CVE标识符
下面的通用漏洞披露(CVE)标识符被分配到跟踪哪些产品是我们的重点重新安装攻击的具体实例的影响:
- CVE-2017-13077:在4次握手的成对的加密密钥(PTK-TK)的重新安装。
- CVE-2017-13078:在4次握手的组密钥(GTK)的重新安装。
- CVE-2017-13079:在4次握手的完整性组密钥(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)PeerKey(TPK)在TDLS握手键的重新安装。
- CVE-2017-13087:群密钥处理无线网络管理(WNM)睡眠模式响应帧时(GTK)的重新安装。
- CVE-2017-13088:完整性组密钥处理无线网络管理(WNM)睡眠模式响应帧时(IGTK)的重新安装。
请注意,每个CVE标识符是一个关键重装攻击的具体实例。这意味着每个CVE ID描述了一个特定的协议的脆弱性,并且因此许多供应商是由每个单独的CVE ID的影响。您还可以阅读漏洞说明VU#228519 CERT / CC的关于其产品的已知受影响的更多细节。
纸
我们背后偷袭研究论文的题目是重点重新安装攻击:在WPA2强制杜撰重用,并将在提交计算机与通信安全(CCS)在发布会上周三1月2017年。
虽然本文现已公开,它已经提交审查的2017年5月19日之后,只有轻微的变化作了。其结果是,在纸的研究结果已经好几个月了。在此期间,我们发现容易技术来进行我们对4次握手键重装攻击。随着我们新的攻击技术,现在是微不足道的利用实现,只接受4次握手的消息3的加密重传。特别地,这意味着攻击MacOS和OpenBSD是比在本文讨论显著更容易。
我们想强调以下几点增编和勘误表:
附录:V2.6的wpa_supplicant和Android 6.0+
linux的的wpa_supplicant V2.6也容易安装在4次握手的全零的加密密钥。这是由John A.范·博克斯特尔发现。其结果是,所有的Android版本高于6.0也受到攻击,因此可以被欺骗安装一个全零的加密密钥。新的攻击通过注入伪造的消息1,具有相同的ANonce与原消息1中使用,转发重发的消息3到受害者之前。
附录:其他弱势握手
报道在报纸我们的初步研究之后,我们发现,TDLS握手和WNM睡眠模式响应帧也容易重新安装的关键攻击。
选择勘误
- 在图9中在攻击阶段3中,从对手发送给验证者的帧应该说ReassoReq代替ReassoResp。
工具
我们已经取得了脚本来检测4次握手,组密钥握手,或快速BSS转换(FT)握手的实现是否是脆弱的关键重装攻击。一旦我们必须清理自己的使用说明时,这些脚本将被释放。
我们也做了验证的概念,一个脚本,利用全零键(重新)安装存在于某些Android和Linux的设备。这个脚本是我们在使用的一个演示视频。将发布一次每个人都有一个合理的机会来更新他们的设备(我们有机会准备发布的代码库)。我们注意到证据的概念我们的脚本的可靠性可能取决于受害者多么接近实际网络。如果受害者是非常接近真实的网络,脚本可能会失败,因为受害人将总是直接与真实网络上的其他Wi-Fi信道比这个网络进行通信,即使受害人(强制)。
Q&A
难道我们现在需要WPA3?
不,幸运的是实现可以在向后兼容的方式进行修补。这意味着客户端修补仍然可以用一个未打补丁接入点进行通信,反之亦然。换句话说,一个补丁的客户端或接入点发送完全相同的握手消息和以前一样,和在完全相同的时刻,在时间上。但是,安全更新将确保关键只安装一次,防止我们的攻击。如此反复,更新所有设备一次安全更新程序。
我应该改变我的Wi-Fi密码?
更改您的Wi-Fi网络的密码不能防止(或减轻)的攻击。所以,你不必更新您的Wi-Fi网络的密码。相反,你应该确保所有设备进行更新,你也应该更新你的路由器的固件。更新你的路由器之后,您可以任意更改的Wi-Fi密码作为额外的预防措施。
我使用WPA2只有AES。这也是脆弱?
是的,网络配置也是很脆弱。该攻击的原理对阵双方WPA1和WPA2,对个人和企业网络,以及对任何加密套件使用(WPA-TKIP,AES-CCMP和GCMP)。所以每个人都应该更新自己的装置,以防止攻击!
您在使用本网站的“我们”这个词。谁是我们?
我用的是“我们”,因为这是我已经习惯了在论文写作。在实践中,所有的工作都是由我完成的,跟我在一起马西·文霍夫。我真棒监督员的条件下加入名誉作者的研究论文,他出色的一般性指导。但是,所有真正的工作是我自己完成的。因此,作者名单的学术论文并不代表分工 :)
我的设备脆弱?
大概。使用无线网络连接的任何设备可能是脆弱的。有关更多信息,请联系您的供应商。
如果有对我的路由器没有任何安全更新?
我们的主要攻击是针对4路握手,并没有利用接入点,而是目标客户。因此,它可能是您的路由器并不需要安全更新。我们强烈建议您联系您的供应商了解更多详情。虽然在一般,你可以尝试通过禁用客户端功能(这是例如在中继器模式下使用)和禁用802.11r标准(快速漫游),以减轻对路由器和接入点的攻击。对于普通家庭用户来说,你的重点应该是更新客户端,如笔记本电脑和智能手机。
你是如何发现这些漏洞?
在最后(即照相制版)版本工作时另一篇论文,我仔细检查我们关于OpenBSD的执行4次握手中提出了一些索赔。从某种意义上说,我懈怠了,因为我本来是要刚刚完成的文件,而不是在盯着代码。但是有我在,检验一些代码,我已经读了百遍,以避免对下一段工作。正是在这个时候,以一个特定的呼叫ic_set_key引起我的注意。处理该4次握手的消息3时,此函数被调用,并且它安装成对密钥给驾驶员。虽然在该行的代码盯着我以为“哈。我不知道这是否函数被调用两次发生什么。”。那时的我(正确地)猜测,称这两次可能会重置相关联的密钥的随机数。而且,由于消息3可以通过无线接入点进行重传,在实践中可能确实被调用两次。“好记的那个。其他厂商也可以称这种功能的两倍。但是,让我们先完成这篇论文......”。几个星期后,完成论文和完成一些其他工作后,我更详细地研究了这个新的想法。剩下的就是历史。
4握手是数学证明是安全的。如何为你的攻击可能吗?
简要的回答是,正规的证明并不能保证一个密钥安装一次。相反,它只是保证了谈判的关键是保密的,并且握手消息无法伪造。
较长的答案中提到我们推出的研究论文:我们的进攻不违反在4次握手的形式分析证明了安全性。特别是,这些证据指出,协商的加密密钥的保密性,以及客户端和接入点(AP),两者的身份被确认。我们的攻击不会泄露的加密密钥。此外,虽然普通的数据帧可以如果使用TKIP或GCMP伪造,攻击者不能伪造握手消息,因此握手期间不能模拟客户端或AP。因此,在4次握手的正式分析,证明了性质仍然为真。然而,问题是,证据不模型的关键设备。换句话说,当应安装协商密钥的正式模型没有定义。在实践中,这意味着相同的密钥可以多次安装,
在纸张的一些攻击似乎很难
我们有后续的工作使我们的攻击(针对例如MacOS和OpenBSD系统)显著更普遍,更容易执行。所以,虽然我们认同的一些报纸上的攻击情形是相当不切实际的,不要让这种欺骗你相信键重装攻击无法在实践中被滥用。
人们利用这种在野外?
我们不是在一个位置,以确定是否该漏洞已经(或正在)在野外积极开拓。这就是说,按键的重新安装其实可以自发地出现没有对手存在!如果握手的最后一条消息是由于背景噪声的丢失,从而导致前一消息的重传例如,这可能发生。当处理此重传消息,钥匙可能会重新安装,导致现时重用就像一个真正的攻击。
我应该暂时使用WEP,直到我的设备进行修补?
没有!继续使用WPA2。
将Wi-Fi标准进行更新,以解决这一问题?
似乎是在Wi-Fi标准进行更新,以便明确地防止我们的攻击的协议。这些更新可能会随着WPA2的旧的实现向后兼容。时间会告诉我们的标准是否以及如何将被更新。
是Wi-Fi联盟也解决了这些漏洞?
对于那些不熟悉的Wi-Fi时,Wi-Fi联盟是一个证明,Wi-Fi设备符合互操作性的某些标准的组织。别的不说,这保证了来自不同供应商的Wi-Fi产品很好地协同工作。
在Wi-Fi联盟有一个计划,以帮助弥补WPA2发现的漏洞。总结,他们将:
- 需要他们的全球认证实验室网络中的这个漏洞测试。
- 提供任何Wi-Fi联盟成员使用漏洞检测工具(此工具是根据我自己的检测工具,确定是否设备很容易被一些发现关键重装攻击)。
- 从广义上传达这一漏洞,包括补救措施细节,设备供应商。此外,鼓励供应商与他们的解决方案提供商合作,以快速集成所有必要的修补。
- 通信用户的重要性,以确保他们已经安装了设备制造商建议的最新安全更新。
为什么使用match.com作为演示视频的例子吗?
用户共享网站上大量的个人信息,如match.com。所以这个例子强调所有的敏感信息,攻击者就可以得到,并希望用这个例子的人也更好地实现潜在的(个人)的影响。我们也希望这个例子让人们意识到所有这些交友网站可以收集信息。
如何预防这些类型的错误?
我们需要协议实现的更严格的检查。这需要从学术界的帮助和更多的研究!连同其他研究人员,我们希望举办研讨会(S),以改善和验证安全协议实现的正确性。
为什么域名krackattacks.com?
首先,我知道,KRACK攻击是赘言,因为KRACK代表ķ EY [R einstallation 一个 TTA CK,因此已经包含这个词的攻击。但域名押韵,所以这就是为什么它的使用。
你收到此错误赏金?
我没有申请任何错误赏金呢,也有我收到一个了。
这是如何攻击比较对WPA2其他攻击?
这是对的WPA2协议,不依赖于密码猜测的第一次进攻。事实上,对启用WPA2-网络等攻击反对周边技术,如Wi-Fi保护设置(WPS) ,或者是对老年人的标准,如攻击,WPA-TKIP。换句话说,没有一种现有的攻击是对的4次握手或反对的WPA2协议中定义的密码套件。相比之下,我们对4次握手(和对其他握手)键重装攻击凸显出WPA2协议本身的漏洞。
是否有其他协议也受键重装攻击?
我们预计某些其他协议的实现可能会受到类似的攻击。所以这是一个好主意,审核安全协议实现与这次攻击一点。但是,我们认为这是不可能的,其它的协议标准是由类似袭击的影响(或至少所以我们希望)。尽管如此,它仍然是审计其他协议是个好主意!
是否有标志的更高分辨率的版本?
是的,有。和一个大感谢你去那做标志的人!
你什么时候开始通知有关漏洞的供应商?
我们发出通知,谁的产品,我们测试自己周围7月14日2017年与这些供应商沟通后,我们意识到我们发现有弱点多么普遍(这时我才厂商真正说服自己,这的确是一个协议的弱点,而不是一组执行错误)。在这一点上,我们决定让CERT / CC与漏洞的披露帮助。反过来,CERT / CC发送到供应商的广泛通知上2017年8月28。
为什么OpenBSD的默默释放禁运前的补丁?
OpenBSD的是2017年7月15日通知的漏洞,之前参与了协调CERT / CC。很快,西奥德若特说,并批评了初步披露的最后期限:“在开源的世界里,如果一个人写一个diff和有坐了一个月,这是非常令人沮丧”。请注意,我写的,其中包括OpenBSD系统建议DIFF已经,而且在当时的临时披露截止日期是八月左右结束。作为妥协,我让他们静静修补漏洞。事后看来,这是一个错误的决定,因为别人可能会通过检查他们的无声的补丁重新发现的漏洞。为了避免将来出现此问题,OpenBSD的现在会收到通知的漏洞更接近于禁运的结束。
所以,你希望找到其他Wi-Fi漏洞?
“一切才刚刚开始。” -士官长,最后一战