PMK = PSK = key_derivation_func(wifi_passwd)
本文旨在分享与WiFi安全相关的研究,并分析几个实际的攻击案例,如PMKID、KARMA和Krack等。WiFi起源于无线局域网协议(WLAN),经过多年的发展,WLAN基本上等同于WiFi。LAN的起源可以追溯到1971年ALOHAnet提出的多址接入思想。然而,我们将直接跳到1985年,当时美国联邦通信委员会(FCC)首次开放2.4GHz等频段,允许节点在这些频段上使用扩频技术进行通信,为无线局域网的发展奠定了基础。扩频通信有许多方法,其中蓝牙使用跳频,而WiFi使用直序扩频。
随后,在1989年,第一个无线局域网产品WaveLAN问世;次年,IEEE 802.11委员会正式成立,开始构建无线局域网的专用协议。期间,WaveLAN经历了许多部署尝试,在产业界积累了实践基础。WiFi,正确写法应该是Wi-Fi(Wireless-Fidelity),即无线高保真。WiFi最初是一个独立的完整协议,其主要内容后来被IEEE 802.11委员会接受,并成为802.11a标准。
1999年,Wi-Fi联盟成立,这是一个由多个厂商发起的非盈利联盟,致力于解决工业界的兼容性和统一问题,填补学术界和工业界之间的实现差异。同年,IEEE颁布了802.11b协议,这是WiFi协议的里程碑,早期笔记本电脑和PS游戏机中的无线功能都基于802.11b。同时,苹果也推出了基于WiFi原理的Airport技术。一年后的2000年,802.11a才正式通过,但由于当时5GHz开放的信道有限,802.11a并没有得到广泛推广。
2003年,802.11g协议标准颁布,修正了802.11a的不足,采用了2.4GHz频段上的OFDM技术。2004年,802.11i标准颁布,关注WiFi安全性。2009年,802.11n标准发布,引入了MIMO(多输入多输出)技术。2014年,802.11ac标准发布,引入了下行MU-MIMO技术。2019年,802.11ax标准发布,也被称为WiFi6,引入了双向MU-MIMO技术。当然,这只是其中几个关键的标准。我们可以在802.11_Timelines中查看所有802.11标准的发布时间。根据演进的方向,可以概括为下图:
WPA/WPA2/WPA3是WiFi的常见安全保护访问方式。WPA是WiFi联盟为解决WEP中存在的安全问题而推出的解决方案。最初,WPA只是作为草案发布,并为后续更完善的WPA2铺平道路,这两者都定义在802.11i标准中。目前,我们广泛使用的WiFi安全保护访问是WPA2标准。在2018年1月,WiFi联盟推出了WPA3,在WPA2的基础上进行了一些安全增强。WPA是标准,而我们常见的WPA-PSK TKIP/AES-CCMP是具体的加密模式和加密方法。
在WiFi安全中,四路握手起着重要的作用。四路握手的目的是安全地验证和交换密钥,验证对端的合法性,防止中间人攻击。四路握手涉及的一些术语如下所示:
握手1/4:AP向客户端发送随机数ANonce。
握手2/4:客户端生成PTK并发送SNonce给AP。
握手3/4:AP使用SNonce计算PTK,并将加密的组播秘钥GTK发送给客户端。
握手4/4:客户端告知AP秘钥已收到。
根据秘钥的唯一性,可以分为两种类型:Pairwise Key(单播秘钥)和Group Key(组播秘钥)。根据秘钥的类型,可以分为两类:PSK(预共享密钥)和EAP(扩展认证协议)。
除了四路握手,本文还介绍了一些常见的WiFi安全攻击案例。暴力破解是一种常见的攻击方式,通过不断尝试不同的密码来获取PSK/PMK。PMKID攻击是一种利用握手包中的RSN PMKID字段进行本地暴力破解的攻击方法。KARMA和MANA攻击利用伪造的热点信息诱使客户端连接恶意热点。Krack攻击利用重放握手信息来重新安装秘钥,从而解密加密的数据。Kr00k攻击是一种利用芯片驱动实现中的漏洞,通过解密置零的PTK来获取数据的攻击方法。
总结起来,WiFi安全问题是一个复杂的领域,涉及协议设计和实现的安全性。通过了解这些问题,我们可以更好地保护自己的WiFi网络安全。同时,无线网络的安全性也在不断提升,得益于学者、开发者和安全研究人员的共同努力。
参考资料: