10月中旬网上传出WPA/WPA2被攻破的消息,跟导师讨论了一下,想知道是什么原理,习惯性的百度了这条消息,结果全都是一些媒体新闻,这些新闻的质量也不敢恭维,看起来非常像一个抄一个抄出来的,只好google了一下,找到了这个攻击方法发现者—Mathy Vanhoef 的网站 https://www.krackattacks.com/,Vanhoef在这里对KRACK(密钥重安装攻击)进行了简单介绍,也在此挂上了攻击演示视频,有需要的人可以上这个网站上看一下,主要的是找到了Vanhoef关于此次攻击的论文《Key Reinstallation Atacks: Forcing Nonce Reuse in WPA2》,本文介绍的是我在阅读论文后的理解,期望达到让有一点计算机网络知识的人能看懂的程度。
先来介绍一下KRACK对WPA/WPA2破解的程度,KRACK的攻击对象包括客户端和AP,针对的是两方在密钥认证结束后的以协商消息加密密钥为目的的四次握手阶段,对大家平时所说的wifi密码不构成直接威胁(wifi密码早就可以暴力破解,尽量把wifi密码设的复杂一点,无意义一点),而是对连接wifi后你与AP交互过程中的产生的信息构成直接威胁,直观地说,你连接wifi后发送的用户名密码、聊天消息等信息会被人截取并部分破解或者对你的信息进行重放攻击。(不了解WPA、AP的人可百度)
1、这个攻击方法的名字是什么?
中文名:密钥重安装攻击
英文名:Key Reinstallation Atacks(下文统一用KRACK代替)
2、KRACK的目的是什么?
目的:
(1)拦截并解密通过无线网络传输的数据
(2)进行重放攻击
(3)进行伪造数据包攻击
解释:
(1)一般来说,客户端与AP的数据传输都是用密钥加了密的,拦截与解密就很好懂了
(2)重放攻击的基本原理就是把以前窃听到的数据原封不动地重新发送给接收方。很多时候,网络上传输的数据是加密过的,此时窃听者无法得到数据的准确意义。但如果他知道这些数据的作用,就可以在不知道数据内容的情况下通过再次发送这些数据达到愚弄接收端的目的。例子:假设网上存款系统中,一条消息表示用户支取了一笔存款,攻击者完全可以多次发送这条消息而偷窃存款
(3)伪造数据包,更改数据包的内容并进行发送
3、进行KRACK需要的条件是什么?
(1)能连接上待攻击的wifi网络
(2)能进行中间人攻击(可以看做是做一个中间转发的路由,目的是能按照攻击者意愿拦截、发送帧)
4、攻击的是什么环节?
KRACK 针对的是WPA/WPA2,他们受攻击的原因是都遵循802.1x的标准(握手的方法和细节规定)
客户端与AP交流的第一阶段是认证阶段,此阶段双方验证密码
而攻击发生在之后的四次(4-way)握手阶段和组密钥(Group key)握手阶段
另外,PeerKey握手(端到端握的协议)和BSS过渡(FT)握手也会收到攻击(这个协议触发于在两个AP间切换时,比如北邮很大,会有很多AP覆盖校园,你连上了北邮的校园网,并在校园内行走,为了完成AP的流畅切换,这个协议产生了)
下图是各阶段握手示意图,四路握手交换的四个消息,下文会用消息1、2、3、4来表示,下面简单介绍一下四路握手
为什么四次握手?
答:协商秘钥PTK!
PTK用来干嘛?
答: PTK+报文数据经过AES或TKIP算法生成密文和签名
四次握手流程是怎么样的?(STA可以当做客户端理解)
答:
1、AP先把A-nonce(AP端随机数)传递给STA,STA生成PTK
2、STA把S-nonce(STA端随机数)传给AP,同时加了MIC,AP接到后比较MIC,AP生成PTK、GTK
3、AP将GTK和MIC发给STA(此时两边都有PTK)
4、STA发送ACK进行确认
5、KRACK的具体攻击过程原理和方法
由于不同的厂商在实现802.11协议时具体细节不同,所以针对不同设备的攻击方法和攻击效果也略有不同
这个攻击的名称叫做密钥重安装攻击,那么问题来了
谁被迫进行了重安装?
什么时候以及为什么重安装了?
重安装了什么?
如何实现重安装攻击
为什么重安装了就危险了呢,就能进行解密、重放等攻击了呢?
(1)针对四路握手的攻击(客户端接受明文重发的消息3)
1、谁被迫进行了重安装?
客户端
2、什么时候以及为什么进行重安装了?
这是漏洞所在,在接受AP重传的消息3的时候,客户端会进行重安装
3、重安装了什么?
重安装了PTK(加密密钥),重置重传计数器(用来分辨是否接受过某个帧)
4、如何实现重安装攻击?
客户端与AP要进行四次握手才能协商密钥
在客户端发送出消息4之后安装好PTK时,攻击者劫持消息4,AP没有收到消息4,就会重发消息3
客户端再次收到消息3,就会触发重安装,客户端重安装PTK,会重置重传计数器
5、重安装攻击的危险之处
这会导致什么呢?导致客户端同意接受一些之前收到过得信息,这就导致了重放攻击成功