重安装键攻击

简化的WPA

简化版WPA2流程

第一次握手

  • Client向AP发出验证请求,这里验证请求可以设置为任意字符串,例如Authentication_Request.

  • AP收到请求后,生成一个随机数ANonce。

  • AP将ANonce和r发送给Client,这里r为计数器,AP每发送一次信息给Client, r 增加1

第二次握手

  • Client 收到 ANonce后,生成另外一个随机数CNonce。

  • Client 根据ANonce, CNonce以及MasterKey , 计算出传输密钥TK。TK将被用于加密用户想要上传的数据包。

  • Client将CNonce和r发送给AP, 这里的r即是AP在四步握手的第一步使用的r。

第三次握手

  • AP收到CNonce后,和已有的ANonce和MasterKey一起,计算出传输密钥TK。这里算出的TK应与Client算出的TK相同。

  • AP发送ACK和r+1 给Client。r+1表示这是AP发送的第二条信息。ACK为一个字符串,用于告知Client,已经收到CNonce。

第四次握手

Client收到ACK后,发送ACK和r+1 给AP。r+1表示这是Client发送的第二条信息。ACK为一个字符串,用于告知AP,四步握手完成。

加密算法

TK是一个长度为128bit的密钥,用于加密用户想要传输的数据。它由ANonce, CNonce和MasterKey产生。简便起见,可直接将ANonce, CNonce和MasterKey字符串串联后,计算所得字符串的哈希值。将所得哈希值作为TK使用。
WPA2中应用最广泛的加密算法是CCMP。它采用的是一种计数器模式下的AES。我们采用简化版实现,忽略AES中的细节.

在这里插入图片描述
加密流程如下:

  1. 获取本机MAC地址,如84-3A-72-3D-3A

  2. 将MAC和当前Nonce串联,作为IV使用。

  3. 通过IV和TK生成本次加密的流密码(128bit)。简便起见,可直接将IV和TK串联,计算所得字符串的哈希值。

  4. 将所得哈希值作为流密码与本次加密的明文异或,生成密文。这里明文的长度也为128bit。当需要发送超过128bit的数据时,应将数据分成多个128bit的块(不足128bit的块在末尾补0),分块加密。由于Nonce每次使用过后都会增加1,因此加密每个数据块的流密码都不同。

猜你喜欢

转载自blog.csdn.net/magic_jiayu/article/details/83626207