ITPub博客

首页 > IT基础架构 > 网络安全 > 浅论密钥重装攻击KRACK

浅论密钥重装攻击KRACK

网络安全 作者:IT168GB 时间:2018-07-24 16:23:58 1 删除 编辑

KRACK 即为 Key Reinstallation Attacks ,中文译为密钥重装攻击。是由比利时鲁汶大学信息安全研究人员 Mathy Vanhoef 提出的一种针对 WPA2 的攻击方式。


itpub

Mathy Vanhoef

时间线

•       2017.5.19    论文被提交

•       2017.6.16    向攻击涉及的供应商发出通告

•       2017.8.28   CERT/CC 向所有供应商发出通告

•       2017.10.15   作者在 https://www.krackattacks.com 公开披露细节,并演示了一个攻击实例

•       2017.11.1  论文在 CCS 会议报告

 

灵感的来源

“Ha. I wonder what happens if that function is called twice.”

      athy 在写另一篇论文时,注意到 WiFi 标准中一个安装密钥的函数,通常只会被调用一次,他猜想调用两次将会重置相关参数。

在正式开始介绍之前,为了便于理解,我先给出一些名词。

•        成对临时密钥 (Pairwise Transient Key ,PTK) 作为会话密钥。

•        成对主密钥  (Pairwise Master Key, PMK)

•        接入端 随机数 Anonce

•        客户端随机数 Snonce

•        临时密钥 (Temporal KEY, TK)

•        预共用密钥 (PSK)  同一无线路由器底下的每个用户都使用同一把密钥,区别于 802.1X 认证服务器来分发不同的密钥给各个终端用户

•        接收计数器 (Receive Sequence Counter,RSC)

•        信息完整性校验码 (MIC)

  接下来正式开始介绍

 

1  背景知识

1.1  WPA 的产生

WPA 全名为 Wi-Fi Protected Access ,有 WPA 和 WPA2 两个标准,是一种保护 无线网络 安全的系统。它是研究者为了解决在前一代的 有线等效加密 ( WEP )系统中找到的几个严重的弱点:

•         WEP 不是强制使用的,使得许多设施根本就没有启动 WEP

•         WEP 并不包含 钥匙管理协定 ,却在用户间共用一个 秘密钥匙 。

•         RC4 所用的 24 比特的 IV (初始向量)并没有长到足以担保不会重复

而产生的。商业联盟   Wi-Fi Alliance 制定了 WPA 标准,对 WPA 标准的实际运用检验从 2003 年4 月 开始,并于 2003 年11 月 变成强制性。

1.2  WPA 与 802.11i 的关系

由于 WEP 已被证明不够安全,人们需要更安全的加密标准,但制定 802.11i 的工作比原先预期的久了很多,在大家越来越关心无线安全的同时,该标准的制定花费了四年才完成。芯片厂商已经迫不及待的需要一种更为安全的算法,并能成功兼容之前的硬件,所以, WPA 包含了与 WEP 兼容的 802.11i 子集合 , 实现了 IEEE   802.11i 标准的大部分,先于完整的 802.11i 推出。在完整的 802.11i 标准于 2004 年6 月 通过之后, Wi-Fi Alliance 于 2004 年9 月 推出了实现了 802.11i 强制性元素的 WPA2 。

1.3  WPA2 的改进

WEP 所使用的 CRC ( 循环冗余校验 )先天就不安全,在不知道 WEP 密钥的情况下,要篡改所载数据和对应的 CRC 是可能的,而 WPA 使用了名为 “Michael” 的更安全的 消息认证码 (在 WPA 中叫做 消息完整性查核 , MIC ), WPA2 采用了计数器模式密码块链消息完整码协议 CCMP ( Counter CBC-MAC Protocol ),其安全性已被严格地证明了。

WPA 仍使用 RC4 ,使用可以动态改变密钥的 “ 临时密钥完整性协议 ” ( Temporal Key Integrity Protocol , TKIP ),以及 48 位的 IV 。 WPA2 中 RC4 被 AES 取代。

 

2  攻击原理

2.1   四次握手

WPA 和 WPA2 均使用 802.11i 中定义的四次握手,客户端( Station, STA )和接入点( Access Point, AP )通过四次握手相互验证和协商名为成对临时密钥( Pairwise Transient Key, PTK )的会话密钥。 PTK 通过成对主密钥( Pairwise Master Key, PMK )、 AP 随机数 ANonce 、 STA 随机数 SNonce 和双方 MAC 地址等计算生成,其中 PMK 由登录密码等双方均已知的信息计算生成。而后续正常数据加密所使用的临时密钥( Temporal KEY, TK )即派生自 PTK 。各密钥、参数的关系如下图所示。


itpub

图  2-1  四次握手中各密钥、参数关系


itpub

图  2-2  四次握手中所用数据报文格式  

itpub


图  2-3  四次握手过程

消息 1,2 与攻击关系不大,略过不提, WPA2 所遵循的 802.11i 标准中规定, AP 在发起连接时就安装组密钥 GTK, 客户端接收到消息 3 将安装 PTK 和组密钥 GTK, 发送消息 4 作为回应, AP 收到消息 4 安装 PTK, 未收到消息 4 将重发消息 3.

为了完成密钥重装,攻击者需要嗅探、重放四次握手过程中的第 3 个消息报文,强制重置协议加密使用到的 nonce 值及重放计数,重安装加密密钥。而会话密钥与双方 MAC 地址有关,所以,普通的中间人攻击是无法奏效的,需要运用 channel-based MitM 技术,伪造同名同 MAC 不同信道热点。

 

3  不同场景的攻击

3.1   接受明文重传消息 3 ,不安装全 密钥 itpub


攻击者作为中间人,首先放行消息 1,2,3 ,阻塞客户端对消息 3 的回复消息 4 。此时客户端安装了 PTK, 将发送以此 PTK 加密的数据, nonce 为 1 ,攻击者将此数据阻塞。


itpub

AP 未接收到消息 4 ,将重发消息 3 ,攻击者将其转发给客户端。客户端重装 PTK, 此时,攻击者将先前拦下的消息 4 发送给 AP ,此后发送的加密数据将重用 PTK, 且 nonce 被重置为 1

nonce 重用引发的后果与所采用的数据保密协议密切相关。三种数据保密协议:

•       临时密钥完整性协议 TKIP

•       计数器模式密码块链消息完整码协议 CCMP

•       伽罗瓦 / 计数器模式协议 GCMP

所采用的数据加密算法分别为流密码 RC4 、认证加密算法 AES-CCM 和认证加密算法 AES-GCM ,其中 AES-CCM 和 AES-GCM 的加密部分都是基于 CTR 模式的流式加密。明文数据与算法生成的密钥流按比特逐位异或后得到密文数据。流式加密的问题是在密钥固定的条件下重用 nonce 时总会生成相同的密钥流。这一特性可以被利用来解密数据包。

     用 KeyStream 表示密钥流, P1 和 P2 表示两组明文数据, KeyStream , P1 , P2 具有相同的比特长度,则两组明文对应的密文分别为:

•       C1 = P1  ⊕ KeyStream

•       C2 = P2  ⊕ KeyStream

攻击者可以通过网络收集到密文 C1 和 C2 ,如果攻击者知道密文 C 1 对应的明文 P1 ,则可以据此恢复明文 P2 的信息:

•       P2 = C2  ⊕ keystream = C2 ⊕(P1 ⊕ C1)

在实际情况中,通常能找到已知内容的数据包,所以可以认为在密钥固定的条件下重用 nonce 时获得密文数据包可根据上述过程解密。即使已知内容的数据包确实无法获得,当对消息类型有足够的知识(比如消息为英文字符)的条件下,也可能解密还原出明文。

    WAIT!!!!!!!! AP 安装 PTK 了吗 ?

itpub

客户端重装 PTK 之后,发送的消息 4 将被加密 , 而此时 AP 尚未安装 PTK, 无法识别,消息 4 将被丢弃,攻击失败了吗?

     802.11 标准表述存在瑕疵:

“On reception of message 4, the Authenticator verifies that the Key Replay Counter field value is one that it used on this 4-way handshake.”

注意其表述为“ one” ,也就是只要先前用过的都行。凡是照此实现的算法,均可用之前的消息 4 取代。使得攻击者可以完成一个完整的四次握手过程,使 AP 安装 PTK 。进而实现对通信数据包的解密。此时,攻击者并不知道实际安装的密钥。

 

3.2   接受明文重传消息 3 ,安装全 密钥

在 Linux 和 Android 系统中,实现 WPA2 的是 wpa_supplicant. 由于其 2.3 版本以上对协议的错误实现


itpub

使得安装 PTK 后将 TK 置 ,客户端再次收到消息 3 重装密钥时,会从内存中取回 TK 。在这种情况下,则会导致安装全 密钥 TK ,使得攻击者不仅能解密数据包,还能进行流量劫持。


itpub

基本步骤与前例一致,区别只在于此时安装的 TK 是全 ,攻击者知道了 TK, 可以进行流量劫持,监控并篡改客户端发出的全部数据

3.3   接受加密重传消息 3 (转变为接受明文重传)

在 Linux 和 Android 系统中,虽然设定为接受加密重传的消息 3 ,但其也会接受明文重传的消息 3 ,只要重传的消息 3 紧跟在原始消息 3 之后。

     无线网卡会将其送入 CPU 的接收队列中。

    CPU 先处理第一条消息 3 ,发出第一条消息 4 后 , 发出命令,让无线网卡安装密钥。

    CPU 再处理第二条消息 3 ,发出第二条消息 4  ,无线网卡使用 PTK 对其加密。 CPU 发出命令 , 无线网卡重装密钥, nonce 被重用为 1 。被转化为接收明文重传消息 3 。


itpub

图 2-7        接受加密重传消息 3 (被转变为接受明文)

3.4   仅接受加密重传消息 3

攻击者先等待客户端完成一次完整的四次握手,在第二次的四次握手过程中,阻塞消息 3 ,等待 AP 重传的消息 3 到来,一起交付给客户端的无线网卡。

     无线网卡使用当前的 PTK 将其解密,送入 CPU 的接收队列。

    CPU 先处理第一条消息 3 ,发出第一条消息 4 后 ,  发出命令,让无线网卡安装新的密钥 PTK’ 。

     系统并不对对消息 3 加密的密钥进行检查,所以尽管第二条消息 3 是用以前的 PTK 进行的加密,对其不加区别。所以 CPU 直接发出第二条消息 4  ,发出命令,让无线网卡重装密钥, nonce 被重用为 1.


itpub

3. 5   不听话的孩子幸免于难?

itpub


Windows 和 iOS  违背 802.11 标准,不接受消息 3 重传,所以其免疫四次握手攻击。

但是,组密钥握手攻击, Fast BSS ( Basic ServiceSet )  Transition ( FT )握手攻击然有效。


itpub

最后,我们一起来看一个攻击实例 , 视频演示可在 https://www.krackattacks.com 查看

 

4 攻击实例

利用安卓设备存在的可被强制安装全 密钥漏洞,获取用户登录名及密码等敏感的个人信息

4.1   工具

工具

•       探测漏洞是否可用的脚本,

•       漏洞利用脚本

•       https 降级工具 sslstrip

•       抓包工具 wireshark

4.2   攻击过程

安卓手机在没有恶意设备接入时连接到 WPA2 加密的无线网络


itpub

图 4-1        接入加密网络

手机访问 macth.com, 安卓手机默认开启 SSL (安全套接层)


itpub

图 4-2        网站开启 SSL

启动攻击脚本 krack-all-zero-tk.py ,各项信息如下

真实热点 Real AP :

Ssid :  testnetwork

MAC : bc:ae:c5:88:8c:20

Channel : 6

被攻击客户端 target :

MAC: 90:18:7c:6e:6b:20

伪造同名同 MAC 热点( Rouge AP ):

Ssid :  testnetwork

MAC : bc:ae:c5:88:8c:20

Channel : 1

  itpub


图 4-3        启动攻击脚本

启动 enable_internet_forwarding.sh 脚本,使得钓鱼热点可用


itpub

图 4-4        使钓鱼热点可用

启动 sslstrip, 去除 SSL 保护

itpub


图 4-5        去除 SSL 保护

接下来,使用 wireshark 抓包,手机再次连接无线网络。 itpub


图 4-6        再次连接

此时,手机首先依然连接到真实热点,通过构造 CSA(Channel Switch Announcement  信道切换公告 ) 信标 (beacon) 的方式来强制切换到钓鱼热点。

itpub


图 4-7       CSA 元素格式


itpub

图 4-8        攻击成功

手机再次连接网页, SSL 保护已去除 itpub


图 4-9        SSL 保护已去除

输入账号密码登录 itpub


图 4-10  登录

查看 wireshark 捕获数据 itpub


图 4-11   WPA2 保护已被绕过


本文转载至“安全客”( https://www.anquanke.com/post/id/152210   ),原文编辑:边边

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31510736/viewspace-2158424/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2017-12-11

  • 博文量
    156
  • 访问量
    345279