WPA2 KRACK Attacks 原文转载翻译[通俗易懂]

WPA2 KRACK Attacks 原文转载翻译[通俗易懂]写在前面:博主水平有限,翻译中如果出现错误,还希望大家能够指正。原文链接:https://www.krackattacks.com/KeyReinstallationAttacks(krack)key重装攻击简介我们发现了关于WPA2的重大漏洞,WPA2是一个确保所有现代无线网络被保护的协议。当攻击者在受害者的一定范围内就可以利用这些漏洞来使用KRACK攻击。具体地说,攻

大家好,又见面了,我是你们的朋友全栈君。

写在前面:博主水平有限,翻译中如果出现错误,还希望大家能够指正。
原文链接:https://www.krackattacks.com/
报告地址:https://papers.mathyvanhoef.com/ccs2017.pdf
Key Reinstallation Attacks (krack
密钥重装攻击

简介

我们发现了关于WPA2的重大漏洞,WPA2是一个确保所有现代无线网络被保护的协议。当攻击者在受害者的一定范围内就可以利用这些漏洞来使用 KRACK 攻击。具体地说,攻击者可以使用这种新的攻击技术去读取以前被认为是安全加密了的信息。这可以用于窃取敏感信息,比如信用卡号码、密码、聊天信息、电子邮件、照片等等。这种攻击突破了所有现代无线网络的保护。根据网络配置,也可以注入和操作数据。例如,攻击者可以在网站中注入勒索软件或其他恶意软件。

这个漏洞在于Wi-Fi标准本身,而不是在单个产品或设备。因此,任何WPA2的正确实现都可能受到影响。为了防止攻击,当有新的安全补丁发布时,用户必须尽快更新受影响的产品。注意,如果你的设备支持Wi-Fi,那么它很有可能受到影响。在我们最初的研究中,我们发现自己的Android,Linux,Apple,Windows,OpenBSD,MediaTek,Linksys和其他系统,都受到一些攻击的变种的影响。对于特定产品的更多信息,请查阅CERT / CC的数据库,或者联系你的供应商。

这种攻击的后续研究将会在计算机和通信安全(CCS)会议,欧洲黑帽(Black Hat Europe)会议上提出。我们的详细的研究报告已经可以下载。

示例

作为一个POC(proof-of-concept),我们将用密钥重装攻击(Krack)攻击一个Android智能手机。在这个演示中,攻击者能够解密受害者传送的所有数据。对攻击者来说,是很容易实现这一点,因为我们的密钥重装攻击(Krack攻击)对Linux和Android 6.0或更高版本来说是非常毁灭性的攻击。这是因为Android和Linux可以被(重新)安装了一个零加密密钥(all-zero encryption key)(更多信息见下文欺骗。当攻击其他设备时,一般很难解密所有数据包,尽管大量的数据包可以解密。(原句:When attacking other devices, it is harder to decrypt all packets, although a large number of packets can nevertheless be decrypted. 这里翻译的有点疑问,不知道对不对。) 在任何情况下,下面的示范说明了攻击者执行Krack攻击受Wi-Fi协议保护的网络时所能够获得的信息类型:

译者注:原文是YouTube视频链接。
https://www.youtube-nocookie.com/embed/Oh4WURZoR98?rel=0&showinfo=0&vq=hd720
这里放个国内的:
https://v.qq.com/iframe/preview.html?vid=n0561jxzagv

我们的攻击并不局限于恢复登录凭证(如电子邮件地址和密码)。一般来说,受害者的任何数据或信息传播都可以解密。此外,根据所使用的设备和网络设置,也可以向受害者发送解密数据(例如,一个网站的内容)。虽然网站或应用程序可能使用HTTPS作为一个额外的保护层,但我们要提醒,这种额外的保护(仍然)可以被绕过。例如,以前HTTPS被绕过的情况有:非浏览器软件,苹果的iOS和mac OS X,安卓应用程序,又一次Android应用程序,在银行应用程序,甚至在VPN的应用。

细节

我们的攻击主要是针对WPA2的4次握手协议。当客户想要加入一个受保护的无线网络时就会执行这个握手过程,用于确认客户端和访问点(AP)拥有正确的凭证(例如网络的pre-shared密码)。同时,4次握手还会协商一个新的加密密钥用于加密所有随后的传输数据。目前,所有现代受保护的无线网络都使用4次握手方式。这意味着所有这些网络都是受我们的攻击(或一些变体)的影响。例如,这攻击将危害个人和企业无线网络,对老的WPA标准和最新的WPA2标准,甚至对只使用AES的网络都有威胁。我们所有的攻击WPA2是使用一种新颖的技术称为key reinstallation attack (KRACK) —— 即密钥重装攻击

密钥重装攻击: high level description(高水平描述?)

Krack,攻击者诱使受害者重新安装一个已经在使用的key。这是通过操纵和重演加密握手消息取得的。当受害者重新安装key,相关参数如增量传输数据包数(即随机数)和接收包数(即重放计数器)重置为其初始值。从根本上讲,为了保证安全,key应该仅被安装和使用一次。不幸的是,我们发现这并不是WPA2协议所保证的。通过操纵加密握手过程,我们可以在实践中利用这一漏洞。

密钥重装攻击: 对4次握手的实例

就像研究论文的介绍描述的那样,Krack攻击背后的想法可以概括如下。
当客户端连接一个网络,它执行4次握手协商新的加密密钥。它将在收到4次握手中的消息3后安装key。一旦安装了key,它将使用加密协议加密正常数据帧。然而,由于消息可能会丢失或被抛弃,接入点(AP)如果没有收到一个确认合适的回应,就将重新发送消息3。因此,客户端可能会多次收到消息3。每次接收到此消息时,它将重新安装相同的加密密钥,从而调整加密协议所使用的随机数和重放计数器。我们发现,攻击者可以通过收集和重放消息3使这些nonce(随机数)重置。通过使nonce重置这种方式,可以攻击加密协议,如数据包重播、解密和/或伪造。同样的技术也可以用来攻击group key,PeerKey,TDLS,和fast BSS transition handshake。

实际的影响

在我们看来,最广泛和实际有效的攻击是对4次握手的密钥重装攻击。我们在两个观察的基础得出这个判断。首先,在我们自己的研究中,我们发现,大多数客户都受到它的影响。第二,攻击者可以使用这种攻击方式解密客户端发送的数据包,允许他们截获敏感信息如密码或cookies。解密是有可能的,因为一个密钥重装攻击将导致传输过的nonce(有时也称为 packet numbers或初始化向量)被重置为零。因此,过去使用过的随机值将导致相同的加密密钥。反过来,这将导致当加密数据包时,所有WPA2的加密协议反复使用密钥流(keystream)。假使一条重用了密钥流的消息内容已知,那么获得使用的密钥流就变得不重要了。这密钥流可以基于相同的随机数值(nonce)解密数据。当没有已知的内容时,很难解密包,但在一些情况下仍有可能解密(如:英语文本仍然可以解密)。在实践中,发现有已知内容的数据包不是一个问题,所以它应该假设任何包可以解密。

翻译的好累,水平太差,暂且翻到这,明天继续。我整理下。
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

接上文:

解密包的能力也可以用于解密TCP SYN包。这就允许攻击者去获得连接的TCP序列号,和劫持TCP连接。因此,即使使用WPA2,攻击者也可以执行目前针对无线网络的最常见的一种攻击方式:注入恶意数据加密的HTTP连接。例如,攻击者可以使用这种方式向受害者访问的网站注入勒索软件或恶意软件。如果受害者使用WPA-TKIP或GCMP加密协议,而不是AES-CCMP,那么其影响将是灾难性。对这些加密协议,nonce的重用不仅能使攻击者解密数据,而且可以伪造和注入数据包。此外,由于GCMP在两种通信方向使用相同的认证密钥,如果nonces(随机数值)被重用那么这个key就可以恢复,它将受到巨大影响。注意,GCMP的技术支持是当前推出的名叫无线千兆名义(WiGig)的技术,预计在接下来的几年里将被快速普及

数据包被解密(也可能是伪造的)的关键在于握手过程被攻击。简单说,当攻击4次握手时,我们可以解密(伪造)客户端发送的数据包。当攻击 Fast BSS Transition (FT) 握手时,我们可以解密(伪造)向客户端发送的数据包。最后,我们的大多数攻击也允许单播,广播和多播帧的重播。进一步的细节,请参阅第6节我们的研究论文

请注意,我们的攻击不恢复(recover)无线网络的密码。他们也不恢复(任何部分)的在4次握手过程中协商新的加密密钥。

Android和Linux

我们的攻击对于wpa_supplicant 2.4及以上版本,Linux上常用的无线客户端更是灾难性的。这里,客户端将安装一个零(all-zero)加密密钥,而不是重新安装真正的key。这个漏洞的成因似乎是由于wi – fi标准:一旦密钥key被第一次安装,那么就将从内存中清除加密密钥。当客户端现在收到一个转播的4次握手中的消息3,它将重新安装 now-cleared 加密密钥,有效地安装一个零(all-zero )key。因为Android使用 wpa_supplicant,所以安卓6.0及以上也包含这个漏洞。这使得拦截和操作这些Linux和Android设备发送的流量变得很简单了。请注意,目前50%的Android设备特别容易受到变种的毁灭性的攻击。

相关CVE编号:
下列通用漏洞列表(Common Vulnerabilities and Exposures,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(Tunneled Direct-Link Setup,通道直接链路建立)握手中重装TDLS PeerKey(TPK)
  • CVE-2017-13087:处理无线网络管理(WNM)休眠模式响应帧时重装组密钥(GTK)
  • CVE-2017-13088:处理无线网络管理(WNM)休眠响应帧时重装完整组密钥(IGTK)

注意,每个CVE标识符代表一个特定的实例化的密钥重装攻击。这意味着每个CVE ID描述一个特定的协议漏洞,因此许多供应商受到每个独特的CVE ID的影响。你也可以阅读CERT/CC的 漏洞记录 VU#228519 了解关于那些产品受到影响的更多细节。

PAPER 报告

我们攻击之后的研究报告名为:Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2并将于2017年11月1日星期三.的计算机和通信安全(CCS)会议上公布。

尽管本文公开现在,但它已经在2017年5月19日就提交审查。在这之后,只有微小的变化。这个报告上的发现已经数个月之久。与此同时,我们发现更容易的技术来对4路握手执行我们的密钥重装攻击。与我们新的攻击技术,现在是微不足道的开发实现,只接受加密重发4次握手中的信息 3。特别是这意味着攻击macOS和OpenBSD明显比报告上讨论的更容易。

我们想强调以下附件和正误表:

附录:wpa_supplicant v2.6和Android 6.0 +

Linux的wpa_supplicant v2.6也容易在4次握手中安装零(all-zero )加密密钥。这是由 John A. Van Boxtel 发现的。因此,所有的Android版本高于6.0 也会受到攻击,可以通过安装一个零加密密钥欺骗。新的攻击是通过注入一个伪造的消息1,与原始消息 1使用同一个 ANonce,在转发之前向受害者转播消息3。

附录:其他有漏洞的握手过程 ##

经过我们最初的研究报道,我们发现 TDLS 握手和WNM睡眠模式响应帧(WNM Sleep Mode Response frame)也容易发生密钥重装攻击。

选择勘误表

- 在图9中第三阶段的攻击,攻击者的帧传输的身份应该说ReassoReq而不是ReassoResp。

工具

我们写了个脚本去检测的4次握手,组密钥握手,或Fast BSS Transition (FT)握手的实现是否容易发生密钥重装攻击。一旦我们有时间去整理它们的用法说明,这些脚本就将会发布。

我们也做了一个在某些Android和Linux设备上利用零密钥(重新)安装攻击的概念验证(POC)脚本。这个脚本是我们的演示视频中使用的。一旦每个人都有能更新他们的设备(同时,我们有机会去准备要发布的代码仓库),它将被公布。我们声明我们的POC脚本可能取决于受害人与真正的网络的距离。如果受害者非常接近真实的网络,该脚本可能会失败,因为受害者总是直接与真实网络通信,即使受害者(被迫)到一个与这个网络不同的wi – fi频道。

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
暂时翻译到这,后面的有点不太想翻译了。。。。

问答

我们现在需要WPA3吗?

不,幸运的是可以以向后兼容的方式打补丁实现可以修补。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132798.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 钽电容规格定义_钽电容规格与封装尺寸

    钽电容规格定义_钽电容规格与封装尺寸

  • 怎么判断摄像头开没开_qt获取控制台输出并显示

    怎么判断摄像头开没开_qt获取控制台输出并显示一、系统环境介绍PC环境:ubuntu18.04Android版本:8.1Android设备:友善之臂RK3399开发板摄像头:罗技USB摄像头FFMPEG版本:4.2.2NDK版本:R19CQT版本:5.12二、QT代码关于FFMPEG库的编译、QT的环境搭建等问题,可以看上篇文章。直接上核心代码:#include”main…

  • 排序算法:快速排序

    排序算法:快速排序概述手写排序算法几乎是程序员面试必问的题目,大多数人都会选择写冒泡排序,如果此时你写的是其他改进过的排序算法,相信会让面试官眼前一亮。本文将介绍常见的排序算法中的“快速排序”。基本思想快速排序(QuickSort)是对冒泡排序的一种改进。快速排序由C.A.R.Hoare在1962年提出。它的基本思想是:从要排序的数据中取一个数为“基准数”。 通过一趟排序将要排序的数据…

  • ngx-echarts的使用

    ngx-echarts的使用

  • java system.out.print_java面试多久给答复

    java system.out.print_java面试多久给答复学了这么久的面向对象编程,那如何用一行代码体现呢?老师告诉我,如果你能自己读懂System.out.println(),就真正了解了Java面向对象编程的概念System.out.println(“helloworld”);helloworldProcessfinishedwithexitcode0首先分析System源码System就是Java自定义的一个类…

  • 最大池化[通俗易懂]

    最大池化[通俗易懂]TensorFlow最大池化由Aphex34(自己的作品) CCBY-SA4.0,通过WikimediaCommons共享这是一个最大池化的例子maxpooling&

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号