文章目錄
  1. 1. 认证
  2. 2. wpa的4次握手
  3. 3. 密钥重装漏洞
  4. 4. 参考资料

网上已经有不少的分析文章,也有分析的比较好的文章。由于这是一系列漏洞,多个CVE,而且涉及到不了解的WPA协议。所以一开始看起来感觉有些无法掌控。其实这里主要掌握的知识点一个是WPA的4次握手协议。

先看一下WPA的4次握手。4次握手主要有两个作用,一个是完成了客户端和服务端的双向身份认证,同时进行了密钥交换。确定了通信密钥。

简单点说是以个基于共享密钥的身份认证和密钥交换协议。在网上找到一个华为的专利一种基于预共享密钥的密钥分发方法。本质上是使用了基于挑战的身份认证

认证

通常登录一个web应用的时候,是直接将密码发送到服务器进行验证的。类似于下图这样。

但是wifi这个场景如果直接发送明文密码给服务器,就会直接导致密码的泄露了。

所以有了基于挑战的身份认证方式:

ap下发一个随机数(挑战)给sta,sta生成一个随机数B,sta对两个随机数加上pwd1做hmac,将hmac的结果和随机数B发给ap。ap收到之后按照同样的算法做hmac,如果结果相同,则认为sta具有跟ap一样的密码。sta的认证通过。同理,ap将自己hmac的结果发给sta,sta对比一致确认ap具有同样的密码,这样就完成了双向的身份认证。整个过程中没有密码的传输,只有hmac。

wpa的4次握手

wpa的4次握手就是上图的一个工程实践,基本原理一致。

具体可以参考论文的4次握手部分。

4次握手抓包分析:

密钥重装漏洞

这个漏洞的一个简单点的利用模型就是重放message3,导致sta重新install这个message3对应的密钥。本来sta每次连接经过4次握手之后都会生成不一样的临时密钥,由于重放导致使用了之前使用过的密钥进行数据加密传输。

使用同样的密钥导致的问题在论文中只是说可导致数据被解密,并没有详细描述。可能是属于密码学中比较基本部分。但是我一开始也不是很理解。经过一些学习,应该是类似流加密算法XOR解密
这样一些攻击收到导致数据被解密。而全零的这个bug才是一个真正比较有真实利用价值的高危漏洞。adlab的WPA2 “KRACK”漏洞简介与重现对密钥重装的过程和全零漏洞的分析比较清晰。

参考资料

https://paper.seebug.org/512/
http://jasonye.xyz/2016/03/17/stream-cipher-xor/
http://www.cnblogs.com/wsine/p/5608975.html

文章目錄
  1. 1. 认证
  2. 2. wpa的4次握手
  3. 3. 密钥重装漏洞
  4. 4. 参考资料