KRACK(取自“Key Reinstallation Attack”的缩写,中文:密钥重装攻击)是一种针对保护Wi-Fi连接的Wi-Fi Protected Access(WPA)协议的攻击手段,于2017年由比利时研究员Mathy Vanhoef和鲁汶大学Frank Piessens发现。Vanhoef的研究小组于2017年10月公布了此攻击的有关细节。
此漏洞影响所有主要软件平台,包括Microsoft Windows、macOS、iOS、Android以及Linux。被Linux、Android和OpenBSD广泛使用的开源实现wpa_supplicant(英语:wpa_supplicant)尤易受到影响,其可以被操纵安装全零的加密密钥,从而在中间人攻击中有效消除WPA2的防护能力。
此攻击针对WPA2协议中创建一个Nonce(一种共享密钥)的四次握手。WPA2的标准预期有偶尔发生的Wi-Fi断开连接,并允许使用同样的值重连第三次握手,以做到快速重连和连续性。因为标准不要求在此种重连时使用不同密钥,所以可能出现重放攻击。攻击者还可以反复重发另一设备的第三次握手来重复操纵或重置WPA2的加密密钥。每次重置都会使用相同的值来加密数据,因此可以看到和匹配有相同数据的块,识别出被加密密钥链的数据块。随着反复的重置暴露越来越多的密钥链,最终整个密钥链将被获知,攻击者将可读取目标在此连接上的所有流量。WPA2通常用于移动设备至固定接入点或家庭路由器的连接,尽管某些流量本身可能被SSL/TLS等协议加密,但风险仍十分严重。
根据US-CERT(英语:US-CERT)介绍:
US-CERT已经意识到WPA2安全协议中四次握手的数个密钥管理漏洞。利用这些漏洞所能造成的影响包括解密、重放攻击、TCP会话劫持、HTTP内容注入(英语:HTTP内容注入)等等。此弱点存在于协议本身,遵循标准完成的大部分或所有协议实现都可能受到影响。CERT/CC和研究员Leuven于2017年10月16日公开披露了漏洞细节。
介绍该漏洞的文档已提供在线下载,并将于11月1日在ACM计算机与通信安全会议上正式提交。
US-CERT正在追踪此漏洞,名列VU#228519。下列CVE标识符与此KRACK漏洞相关:CVE-2017-13077、CVE-2017-13078、CVE-2017-13079、CVE-2017-13080、CVE-2017-13081、CVE-2017-13082、CVE-2017-13084、CVE-2017-13086、CVE-2017-13087、CVE-2017-13088。
用户可以更新Wi-Fi客户端(如操作系统)和Wi-Fi接入点设备固件来抵御攻击。但是,许多较旧的设备可能很晚乃至永远不会得到修复更新。