这篇差不多是翻译和一些补充以及一些很多人容易误解的地方,欢迎各路英语、信息安全、密码学大神斧正。(反正我翻译的也够仓促的,基本上等于没校对。有一些术语可能翻译的不准确,还望指正。文章内容略有删节)
TL;DR太长不看版本
WPA/WPA2(包括Personal和Enterprise以及使用各种加密套件)协议本身被发现存在一些漏洞,更具体的说也就是四路握手中客户端可以被诱导重装密钥(甚至是全零密钥)导致客户端发送的报文可以被解密的漏洞。
注意的是,需要客户端打安全补丁来确保不会重装相同密钥。估计大部分Android设备都完蛋了(亲儿子祖国放心系列除外),Linux发行版、Apple的产品和Windows基本上都已经释出了安全更新。
别一天天瞎说什么WPA2加密协议已遭破解,Wi-Fi不再安全已经沦陷了,形如虚设什么的。破解破解破解,听起来真是骇人耸听,不了解细节就瞎说那怎么能行。想要抓到四路握手包还得信号足够强呢,这信号也得足够强啊,是吧。
所以啊,说了这么多,只有HTTPS是不够的,HSTS和HSTS Preload List更是刚需啊;别SSH的时候忽略警告啊,警告啊警告啊,另一边是悬崖啊,警告是不能忽视的啊。
哦对了,搞不到Wi-Fi密码的,搞不到的(但是说不定能搞到更有价值的东西啊),想要搞Wi-Fi密码,抓四路握手然后跑字典吧。
PS,今早RSA也被曝出现问题,ROCA: Vulnerable RSA generation,其实这个是英飞凌的实现问题。英飞凌的某些产品中使用了不够健壮的伪随机数,导致可以快速进行质因数分解。RSA本身是没有问题的啦。
本文来源
KRACK Attacks
KRACK:Key Reinstallation Attacks 密钥重装攻击
Breaking WPA2 by forcing nonce reuse 通过强制重复使用nonce来破解WPA2
介绍
我们在大多数现代保护Wi-FI网络的WPA2协议中发现了严重的安全漏洞。在受害者范围之内,攻击者可以以"密钥重装攻击"的方式利用这些漏洞。更进一步的说,攻击者可以利用这种新奇的攻击方式在之前被认为是安全的加密的网络中获取信息。这种方式可以用于窃取敏感信息,比如说信用卡卡号,密码,聊天信息,电子邮件,照片等等。这种攻击方式适用于所有受保护的(译者注:WPA2/WPA)Wi-Fi网络。根据不同的网络配置,也可能注入、操纵数据,比如说攻击者可能会把勒索软件、恶意软件注入到网站之中(译者注:HTTP网站)。
漏洞的成因在于Wi-Fi标准自身,而不是产品或者实现的设计缺陷。因此,任何对WPA2协议的正确实现均很有可能收到影响。为防止此种攻击,用户必须尽快在安全补丁发布之后升级受影响的设备。注意,如果你的设备支持Wi-Fi,那么很有可能会受到此漏洞的影响。在我们最初的研究中,我们发现Android,Linux,Apple,Windows,OpenBSD,MediaTek,Linksys和其他的一些全部都到此漏洞的变种攻击。
演示
我们在一部Android手机上执行了一次KRACK攻击。在这次演示中,攻击者可以解密受害者传输的所有数据。对于攻击者来说,这样的攻击很容易实现,因为KRACK攻击在Linux和Android 6.0及更高版本特别有效。这是因为Android和Linux可以被诱发到安装(重装)全零加密密钥(all-zero encryption key)。在攻击其他设备时,尽管能够解密大量数据,但是也很难解密全部数据。无论如何,下面的演示将在受保护的Wi-Fi中进行KRACK攻击时可以获取到的信息进行了高亮显示。
视频来源YouTube,需要翻墙
译者注:视频中使用了SSL降级攻击,这说明,HSTS和HSTS Preload是非常重要的。
我们的攻击并不被限制于获取登录信息。通常来说,受害者传输的任何数据均可被解密。另外,依赖于使用的设备和网络设置,也有可能解密发送给受害者的数据(比如说网站内容)。尽管网站和应用可能会使用HTTPS作为额外的保护措施,我们要警告在多种情况下,这种附加的保护依旧可以被绕过。比如说,在之前HTTPS可以以多种方式绕过,包括非浏览器应用,Apple的iOS和macOS,Android的应用(例1,例2),银行应用甚至是VPN应用。
细节
图片来源于维基百科,按照CC协议授权。漏洞发生在第三步GTK+MIC中。
我们主要攻击WPA2协议的四路握手。当客户端想要加入受保护的Wi-Fi网络时将会使用四路握手,并使用四路握手来确认客户端与接入点持有正确的认证信息(也就是PSK,俗称Wi-Fi密码)。同时,四路握手也会协商出来一个用户加密随后通信的全新的加密密钥。目前,所有的现代受保护的Wi-Fi网络均使用这种四路握手的机制。这也就是说这些网络都会收到我们的攻击(和一些变种)的影响。比如说,攻击可以针对个人和企业Wi-Fi,可以针对更古老的WPA标准,也可以针对最新的WPA2标准,甚至是只是用AES的网络。我们的所有攻击方式均使用了一种新颖的、被称作KRACK(密钥重装攻击)的手段。
密钥重装攻击:高级描述
在密钥重装攻击中,攻击者诱导受害者重装一个已使用密钥。这由操纵和重放密码握手信息(cryptographic handshake messages)实现。受害者重装密钥时,像是自增传输分组序号(incremental transmit packet number,也就是nonce)、重放计数器(replay counter)这类参数会被重置到初始值。本质上来说,为了保证安全,密钥应该只被安装并使用一次。不幸的是,我们发现WPA2协议并没有强制要求这一点。通过操纵密码握手信息,我们可以在实践中利用这一弱点。
密钥重装攻击:四路握手的实际攻击案例
如在研究中提出的,密钥重装攻击的思路可以被总结为如下步骤:
客户端链接到网络时,它会执行四路握手并协商一个全新的加密密钥。它会在四路握手的第三步的报文安装这个密钥。当密钥安装之后,设备会使用加密协议和此密钥来加密正常的数据帧。然而,由于报文可能会丢失或者丢弃,无线接入点(AP)在没有收到合适的响应时会重传第三段报文。因此,客户端可能会收到多个第三段报文,每次收到这个报文,客户端都会重新安装相同的密钥,然后重置自增传输分组序号(incremental transmit packet number,nonce)和重放计数器(replay counter)。我们已经演示了攻击者可以通过收集、重放四路握手的第三个报文(Message 3)来强制重置nonce。通过如此强制重置nonce,加密协议便可遭受攻击,比如:分组可以被重放、解密或者伪造。同样的攻击手段也可以被用于攻击组密钥(group key),PeerKey,通道直接链路建立(Tunneled Direct Link Setup,TDLS),快速基本服务设置转换(fast BSS transition)握手。
实际影响
我们认为,传播广泛、影响最大的攻击手段是针对四路握手的密钥重装攻击。我们在两种观察情况下做出这个判断。一是,在我们的研究中,我们发现大多数客户端都受此影响;二是,攻击者可以通过这种手段来解密客户端发送的报文,允许他们截获如密码、cookies在内的敏感信息。由于密钥重装攻击会促使传输nonces(有时会被称为报文分组或者初始化向量)被设置为0,因此解密通信变得可能。因此,使用了以前使用过的同样的nonce的加密密钥(the same encryption key is used with nonce values that have already been used in the past)。随后,这就导致WPA2所有的加密协议重复使用密钥流来解密分组。如果一段已知信息重复使用了加密,提取出已使用的加密流就很容易了(In case a message that reuses keystream has known content, it becomes trivial to derive the used keystream.)。之后,这个密钥流就可以用来解密同样nonce值的通信。当没有已知内容(known content)时,很难解密通信,尽管在某些案例下(比如说英文文档还是可以被解密的)。实际中,找到已知内容(known content)的分组并不是什么问题,所以可以假设任何报文均可以被解密。
这种解密报文的能力可以用于解密TCP的SYN握手包。这会使得攻击者获取到一个TCP连接的序号,劫持TCP通信。因此,即使是使用了WPA2,攻击者也可以像开放式网络做出最常见的攻击:在未加密的HTTP中注入恶意信息。比如说,攻击者可以利用此手段在受害者访问的网站中加入勒索软件、恶意软件。
如果受害者使用WPA-TKIP(译者注:临时密钥完整性协议,已被弃用)和GCMP而不是AES-CCMP(译者注:CCMP 计数器模式密码块链消息完整码协议),影响就更惨烈了:在这些加密协议上,重用nonce不仅可以使攻击者解密通信,还可以使攻击者伪造、注入通信。而且,由于GCMP在通信的双向都是用同样的认证密钥,如果重用nonce,那么这个密钥也可以被获知。需要注意的是, WiGig(无线千兆联盟)已经不再支持GCMP。
报文能够被解密(以及伪造)的方向取决于握手包被攻击。简单的说,攻击四路握手的时候,我们可以解密(伪造)客户端发送的报文;攻击Fast BSS transition(快速基本服务设置转换)握手时,我们可以解密(伪造)发送给客户端的报文。最终,多数的攻击行为都能允许重放单播、广播、多播帧。
需要注意的是,这种攻击方式并不会窃取到Wi-Fi密码,也不会窃取到四路握手过程中全新加密密钥(以及它的任何一部分)
Android 和Linux
攻击在wpa_suplicant版本号为2.4以上特别有效。wpa_suplicant是一个广泛被Linux使用的应用程序。在这里,客户端会安装全零加密密钥(all-zero encryption key)而不是重装真正的密钥。此漏洞貌似是因为Wi-Fi标准建议在第一次安装密钥之后从内存中清除加密密钥。当客户端接收到重传的第三段报文时,它会重装已清除的加密密钥,也就是全零密钥。因为Andorid使用wpa_suplicant,所以Android 6.0及以上也包含此漏洞。这使得截获、操纵由此类Linux和Android设备发送的报文变得非常容易。注意,现在大概有一半的Android设备受到此漏洞的影响。
译者注:标准建议在第一次安装密钥之后在对应的内存区域中清除加密密钥,所以再次收到重传的时候可能会诱导安装全零密钥;但是Windows的实现是拒绝重传,尽管没符合标准的建议,但是却巧妙的绕开了这个漏洞。不过别大意,10个CVE呢……
标准:怪我咯。
论文
略……
论文已经发布很久啦,我们也研究了更容易的执行KRACK攻击的手段。攻击macOS和OpenBSD也比论文中讨论的容易多啦。
工具
略……
我们制作了几个脚本来检测你是否会受到KRACK攻击。
我们也有PoC……但是我先不发。
Q&A
我们需要WPA3吗
不需要!幸运的是实现可以以向后兼容的方式打补丁。就是说,打了补丁的客户端可以连接到未打补丁的无线接入点,反过来也行。换句话说,打补丁的客户端还像以前那样四路握手,只不过会保证只会安装一次密钥。
译者注:根本就没有WPA3好不好,TLS1.3好歹也是草案呢!
我需要改Wi-Fi密码吗
改Wi-Fi密码也没办法阻止、减轻此种攻击,所以没必要改了。反之,你需要确保你的设备进行安全更新。不过,把客户端设备和路由器都更新了之后,改Wi-Fi密码也从来不会是坏主意。
我只使用WPA2-AES,这是易受攻击的吗
是,依然易受攻击。KRACK可以攻击WPA1和WPA2,Personal和Enterprise,任何加密套件(WPA-TKIP,AES-CCMP,GCMP)。所以大家都需要更新设备来阻止攻击。
我的设备易受攻击吗?
可能。使用Wi-Fi的设备均可能易受攻击。
如果我的路由器没有安全更新,怎么办?
我们主要是攻击四路握手包,也就是客户端,而不是无线接入点。所以可能你的路由器不需要安全更新。我们强烈建议你联系厂商来获得更多细节。通常来说,你应该尝试关闭客户功能(中继模式,译者注:无线桥接时会用到),禁用802.11r(快速漫游)来减轻攻击。对于一般的家庭用户,你的首要任务是更新笔记本、手机等客户端。
译者注:如果你的路由器是用来无线桥接的话,也就是Client+AP模式,那么还是会受到此漏洞的影响。
四路握手已经在数学上被证明是安全的了,你们的攻击怎么会可能?
简短的回答是,这个攻击和之前证明的并不矛盾,之前的证明默认密钥之被安装一次。相反,它只保证协商密钥不被其他人知道,这也意味着握手报文不会被伪造。
长篇大论……略
如果攻击者能进行MITM(中间人攻击),他为什么不能直接解密全部数据?
在演示中我们已经提及了,攻击者首先在受害者和真正的Wi-Fi网络中获得中间人攻击的位置。然而,这种MITM不会让攻击者解密报文。此种MITM只能让攻击者稳定可靠的延迟、重放、阻断加密报文。所以自然是不行的啦……实际上,这种延迟、阻断报文的技术被用来执行密钥重装攻击。执行成功,之后,报文可以被解密。
有人在搞这个漏洞吗?
咱不知道是不是已经有人利用了这个漏洞了……反正我们暂时还没发PoC和Exploit。
我是不是应该临时使用WEP协议,直到我的设备收到补丁?
不!继续使用WPA2
译者注:用WEP就等着被十分钟破解吧。
和其他针对WPA2的攻击相比,此方式有何不同?
这是第一个针对Wi-Fi协议、不依赖猜测密码的攻击。实际上其他针对WPA2的攻击方式,比如说WPS,或者更古老的WPA-TKIP都是靠猜测密码(暴力破解的)
反正你就记住这是搞四路握手包的啦,是协议本身的问题啦。
一些从其他地方看到的不准确的说法
路由器被破解被入侵
都说了,这玩意是针对客户端进行的,而且攻击者没办法拿到你的Wi-Fi密码,充其量也就是会拿到解密通信。当然了,人品足够好,可能就解密了客户端登录路由器时的账号和密码。
更改密码、隐藏SSID、MAC地址绑定、MAC地址过滤
这些统统都是无法减缓这个漏洞的(这四个小伎俩只能用来防小白,遇到懂行的人开airmon-ng就搞定了),只要你用了WPA/WPA2,这就是无解的,要是用了WEP,那更是五分钟解决啦。
求大家不要再说WPA/WPA2协议被破解了,给人的感觉好像是随意一个脚本小子都能够拿个东西搞定,实际上这只是一个比较容易堵上的安全漏洞啦……(比较容易堵并不等于厂商们会屁颠屁颠的给你发补丁哦)
总结:一般人该怎么做
一般来说,咱身边是很少有这种类型的变态的吧(估计抓握手包的人可能都不太多,遇见我,算你倒霉嗯~ o(* ̄▽ ̄*)o)。再加上现在没有PoC也没有Exploit,还需要比较高级的手段而不是像EternalBlue那样一键完成。与其担心这个漏洞,还不如先把自己的Wi-Fi密码从12345678改成比较复杂的密码来抵抗抓四路握手包然后跑字典(哦对了当然还有拒绝使用Wi-Fi万能钥匙什么的0
当然是等厂商的更新了,还有就是大力推广HTTPS+HSTS,视频中很明显被降级了,要是有HSTS那么就可以在很大程度上抵抗降级攻击。要是实在不放心,咱开个VPN好吧。
签到成功!签到时间:2017-11-04 14:15:08,每日打卡,生活更精彩哦~
嗯,现在原创的博客越来越少了,2017 且行且珍惜~