基于字典攻击的WiFi密码破解原理概述


1 计算

key.jpg

WPA/WPA-PSK密码验证总过程:
S S I D , p a s s p h r a s e → p d k d f 2 P S K → P R F P T K → 0 − 16 b y t e K C K → h a s h M I C SSID, passphrase \stackrel{\mathrm{pdkdf2}}{→} PSK \stackrel{\mathrm{PRF}}{→} PTK \stackrel{\mathrm{0-16byte}}{→} KCK \stackrel{\mathrm{hash}}{→} MIC SSID,passphrasepdkdf2PSKPRFPTK016byteKCKhashMIC
WiFi发送者(如路由器)和连接客户端(如手机)都通过WiFi名称(SSID)和密码(passphrase)预先计算得到预共享秘钥PSK,再结合双方的MAC地址与双方各提供的一个随机数计算得到PTK。取PTK的前16字节对自己即将要发送的信息进行哈希计算得到MIC,将MIC附带到要发的消息中。MIC用于校验,如果双方最终计算的MIC是一致的,则说明密码正确,认证通过。

【认证加密模式对比】

WEP = = RC4(数据传输加密算法) + CRC32(数据完整性编码校验算法)

WPA-PSK = = Pre-shared Key(身份校验算法) + TKIP(数据传输加密算法) + MIC(数据完整性编码校验算法)

WPA2-PSK = = Pre-shared Key(身份校验算法) + AES(数据传输加密算法) + CCMP(数据完整性编码校验算法)

1.1 PSK生成

P S K = P M K = p d k d f 2 ‾ S H A 1 ( p a s s p h r a s e , S S I D , S S I D   l e n g t h , 4096 ) PSK=PMK=pdkdf2\underline{ }SHA1(passphrase, SSID, SSID\ length, 4096) PSK=PMK=pdkdf2SHA1(passphrase,SSID,SSID length,4096)

【名词解释】

pdkdf2:Passphrase-Based Key Derivation Function 2,基于密码的密钥派生函数2

SHA1:Secure Hash Algorithm 1,安全哈希算法1

PSK:Pre-shared Key,预共享秘钥

PMK:Pairwise Master Key,成对主密钥,PMK即PSK

SSID:Service Set Identifier,服务集标识,即WiFi名称

passphrase:WiFi密码

SSID length:WiFi名称长度

PMK即预共享秘钥PSK,PMK需要经过4096次哈希迭代计算才能得到,这是整个计算过程中最费算力的环节,基于字典爆破WiFi速度的快慢也主要取决于这个环节。

1.2 PTK生成

P T K = P R F − X ( P M K , " P a i r w i s e   k e y   e x p a n s i o n " , M i n ( A A , S A ) ∣ ∣ M a x ( A A , S A ) ∣ ∣ M i n ( A N o n c e , S N o n c e ) ∣ ∣ M a x ( A N o n c e , S N o n c e ) ) PTK = PRF-X(PMK, "Pairwise\ key\ expansion", Min(AA,SA) || Max(AA,SA) || Min(ANonce,SNonce) || Max(ANonce,SNonce)) PTK=PRFX(PMK,"Pairwise key expansion",Min(AA,SA)∣∣Max(AA,SA)∣∣Min(ANonce,SNonce)∣∣Max(ANonce,SNonce))

【名词解释】

PTK:Pairwise Transit key,成对传输密钥

PRF:Pseudo-Random Function,伪随机函数

Pairwise key expansion:成对密钥扩展

AA:Acess Point Address,无线接入点(AP)地址,可以理解为路由器的MAC地址

SA:Station Address,终端站点(STA)地址,可以理解为接入路由器的手机的MAC地址

ANonce:AP产生的随机数

SNonce:STA产生的随机数

PTK由预共享秘钥和双方的mac地址与提供的随机数进行异或操作的值,通过一个伪随机函数计算得到。

1.2.1 PTK分解

PTK包含4个部分:KCK(Key Confirmation Key),KEK(Key Encryption Key),TK(Temporal Key),MIC(Message Integrity Code)

img

  • 当加密方式是**TKIP(WPA)**时,PTK长512位,按顺序分别为KCK占128位,KEK占128位,TK占128位,MIC占128位

img

  • 当加密方式是**CCMP(WPA2)**时,PTK长384位,按顺序分别为KCK占128位,KEK占128位,TK占128位,没有MIC

img

MIC计算:
M I C = H M A C ‾ M D 5 ( K C K , 16 , 802.1 x   d a t a ) MIC = HMAC\underline{ }MD5(KCK, 16, 802.1x\ data) MIC=HMACMD5(KCK,16,802.1x data)

【名词解释】

MIC:Message Integrity Code,消息完整性代码

HMAC_MD5:Hash-based Message Authentication Code_Message-Digest Algorithm,基于哈希的消息认证

KCK: Key Confirmation Key,密钥确认密钥,取PTK前16字节(128位)

802.1x data:要发送的无线数据

基于字典攻击的原理是,通过捕获客户端连接的握手报文,得到输入参数SSID、AA、SA、Anonce、Snonce与输出参数MIC。再通过预设一系列可能的秘钥值带入计算,直至计算出来的MIC‘与MIC一致,则说明秘钥正确。

在这里插入图片描述


2 交互

4-handshark.jpg

终端连接wifi,经过鉴权(authentication)和关联(association)环节后,进入握手环节(eapol)。

2.1 四次握手报文分析

以下是4次握手报文(EAPOL)的抓包分析。

image.png

  1. 生成PTK需要5个条件,所以第一步AP会向station发送一个报文,带着AP生成的随机数(Anonce)还有AP的mac地址,通过报文可以看到,除了Nonce之外,其他的都是为0。

    image.png

  2. 在station收到ap的第一个包之后,自己会生成一个随机数(S-nonce),加上自己的mac地址还有PSK,已经有条件生成PTK了,所以station会生成一个PTK,这个PTK根据使用的不同的加密方式,分为512位(WPA)和384位(WPA2)两种格式。PTK是由KCK、KEK、TK三部分组成。生成PTK之后,station会发送第二个报文给ap,带着station生成的随机数(S-nonce),因为已经生成PTK,所以会用KCK将发送的数据计算产生一个校验码MIC一起发送过去。

    image.png

  3. ap收到第2步station发过来的报文之后,已经具备了生成PTK的条件,会生成PTK和GTK,然后计算数据的MIC,如果MIC等于station发过来的MIC,那么校验通过,会进行第3次握手,否则,握手失败。在校验通过之后,ap会使用KEK将生成的GTK加密,然后发送给station,还有数据的MIC一起。

    image.png

  4. station收到第3次握手的报文之后,会校验MIC,如果MIC校验成功,会进行第4次握手,告知ap可以安装使用PTK和GTK了。相同,ap收到第4次握手包之后,会校验MIC,如果成功,安装使用PTK和GTK。

    image.png

若进行字典攻击研究,我们需要获取SSID、AA、SA、Anonce、Snonce、MIC这6个关键参数。由于SSID、AA、SA在终端连接和交互过程中很容易捕获,所以只需考虑捕获握手过程中的Anonce、Snonce、MIC。Snonce只出现在2/4 eapol,Anonce出现在1/4和3/4 eapol,而MIC出现在2/4、3/4、4/4 eapol。所以我们只需要捕获到eapol中的第一二或第二三个包即可

v2-a1b0ec17861c8a57f4a859105ac0972b_r

在WPA和WPA2模式下,由于管理帧不受保护,中间人可以通过伪造虚假的去认证消息使客户端断连,以捕获重连过程中的握手报文,这就是aircrack这类工具的运作原理。而到了WPA3模式,管理帧进行了保护,且握手过程进行了加密,安全性极大提高,使得字典攻击不再可行。根据WPA发展进程,WEP(1999)-WPA(2003)-WPA2(2004)-WPA3(2018),最晚应将在2032年左右全面推广WPA3,届时将淘汰此类字典攻击技术。


3 参考

wifi技术篇4-接入认证(四次握手协议)_wifi第四次握手中交互mic的作用-CSDN博客

结合wireshark抓到的报文,讲解wpa2-psk四次握手过程_wireshark 抓取的wifi连接过程的报文-CSDN博客

WPA/WPA2安全认证加密原理详解_wpa加密算法-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值