解密.docx
《解密.docx》由会员分享,可在线阅读,更多相关《解密.docx(24页珍藏版)》请在冰豆网上搜索。
![解密.docx](https://file1.bdocx.com/fileroot1/2023-1/29/89219ddc-3399-462e-82c5-c2c998e8c32b/89219ddc-3399-462e-82c5-c2c998e8c32b1.gif)
解密
目录
一、概述-1-
二、WEP-1-
2.1 (Wired EquIValent PrIVacy,WEP)-1-
2.2 (WEP)算法-1-
2.3 加密过程如图所示。
-2-
2.4 接收端的解密过程如图所示。
-3-
2.5 WEP算法通过以上的操作试图达到以下的目的-3-
2.6 WEP 算法之死-4-
2.7 WEP的破解理论是在01 年8月就变得可行了-4-
2.8 CRC-32 算法缺陷-5-
2.9 WEP密码如何被破解出来的-5-
2.9.1 监听模式被动破解(这个就是有客户端并有大量有效通信)-5-
2.9.2 主动攻击(有客户端。
少量通信或者没有通讯)-6-
2.9.3 主动攻击(没有客户端的模式)-6-
2.10 WEP的安全弱点-7-
2.10.1802.2 头信息和简单的rc4 流密码算法-7-
2.10.2IV重复使用-7-
2.10.3无身份验证机制,使用线性函数CRC32进行完整性校验。
-7-
2.11 WEP窃听-7-
2.12 WEP的现状-7-
三、WPA-1-
3.1 WPA加密算法的的两个版本介绍-1-
3.2 WPA 认证方式-1-
3.3 WPA-PSK-1-
3.4 四次握手-2-
3.4.1 WPA-PSK 初始化工作-2-
3.4.2 第一次握手-2-
3.4.3 第二次握手-2-
3.4.4 第三次握手-3-
3.4.5 第四次握手-3-
3.4.6 MIC的派生图-3-
3.5 AP和STATION 之间的加密通信-5-
3.5.1 通讯使用的临时KEY 的派生图-5-
3.5.2 使用 KEY 进行加密通信-5-
3.5.2.1 TKIP-5-
3.5.2.2 CCMP-6-
3.5.3 WPA安全规则-7-
3.5.4 WPA 安全机制作用-7-
3.6 针对 WPA的破解攻击-8-
3.6.1 抓取数据传输包进行破解-8-
3.6.2 抓取WPA-PSK 的四次握手包进行破解-8-
3.6.3 断线攻击-9-
3.6.4 间接攻击-9-
3.7 WPA安全性的前景-9-
3.8 WPA 的窃听-9-
3.9 WPA评价-10-
四、字典攻击-10-
4.1 寻找可以攻击的信息元素-10-
4.1.1 HASH 函数-10-
4.1.2 HMAC (HASH Message Authentication Code)哈希消息校验算法-15-
4.1.3 四次握手包-16-
4.1.4 面向于四次握手包的字典攻击。
-16-
4.2 WPA-PSK 密码规范和可能的密码空间-16-
4.2.1 HEX 模式-16-
4.2.2 ASCII模式-16-
4.3 弱密码字典-17-
4.3.1 密码空间太小的密码-17-
4.3.2 社会工程学的弱密码-18-
4.3.3 有一定联系性规律性弱密码-18-
4.4 强密码-15-
五、攻击预算-15-
5.1 攻击预算的意义-16-
5.2 WPA-PSK 中攻击预算-16-
5.3 WPA-PSK 中的隐蔽规则-17-
5.4 隐蔽规则的作用-18-
5.5 WPA-PSK 的强密码-19-
5.6 WPA-PSK 的弱密码攻击-20-
5.7 良好的弱密码字典-20-
5.8 PMK 库的意义-21-
5.9 WPA-PSK 安全性-21-
六、结尾-21-
一、概述
目前情况下:
WEP的破解为利用加密体制缺陷,通过收集足够的数据包,使用分析密算法还原出密码。
WPA目前没有加密体制的缺陷可被利用,破解WPA密码使用的是常规的字典攻击法。
所以在破解方式上WEP和WPA有很大差异。
二、WEP
2.1 (Wired EquIValent PrIVacy,WEP)
WEP叫做有线等效加密。
掌握WEP破解的人,肯能会说WEP不如有线的安全性高。
但这发生在WEP的很多弱点被发现之后。
也是由于WEP的弱点导致WPA的出现。
2.2 (WEP)算法
WEP算法是一种可选的链路层安全机制,用来提供访问控制,数据加密和安全性检验等。
802.11 定义了WEP 算法对数据进行加密。
2.3 加密过程如图所示。
图表1
IV为初始化向量,PASSWORD 为密码KSA=IV+PASSWORD。
DATA 为明文CRC-32为明文的完整性校验值PRGA=RC4(KSA) 的伪随机数密钥流XOR 异或的加密算法。
ENCRYPTED DATA 为最后的密文。
最后IV+ENCRYPTED DATA一起发送出去。
2.4 接收端的解密过程如图所示。
图表2
CIPHERTEXT 为密文。
它采用与加密相同的办法产生解密密钥序列,再将密文与之XOR 得到明文,将明文按照CRC32 算法计算得到完整性校验值CRC-32′,如果加密密钥与解密密钥相同,且CRC-32′= CRC-32,则接收端就得到了原始明文数据,否则解密失败。
2.5 WEP算法通过以上的操作试图达到以下的目的
采用WEP加密算法保证通信的安全性,以对抗窃听。
采用CRC32算法作为完整性检验,以对抗对数据的篡改。
2.6 WEP 算法之死
95 9 月RC4 潜在的威胁性(wanger)
00 10 月通过分析wpe包获取密码(walker)
01 5 月针对于明文攻击的一个推论(Arbaugh)
01 7 月针对于CRC32的攻击(Borisov, Goldberg,Wagner)
01 8 月针对于RC4的攻击(S。
Fluhrer, I。
Martin 和 A。
Shamir)
01 8 月airosnort发布
02 2 月改进的攻击算法(h1kari)
04 8 月chopchop攻击出现
04 7/8 月aircrack出现(Devine,Sanchez )
2.7 WEP的破解理论是在01 年8月就变得可行了
S.Fluhrer, I.Martin 和A.Shamir 合作研究发现了对无线局域网安全性最致命的攻击。
利用WEP 帧的数据负载中部分已知信息来计算出该WEP 帧所使用的WEP 密钥。
由于WEP 加密算法实际上是利用RC4 流密码算法作为伪随机数产生器,将由初始矢量IV 和WEP 密钥组合而成的种子生成WEP 密钥流,再由该密钥流与WEP 帧数据负载进行异或运算来完成加密运算。
而RC4 流密码算法是将输入种子密钥进行某种置换和组合运算来生成WEP 密钥流的。
由于WEP 帧中数据负载的第一个字节是逻辑链路控制的802.2 头信息,这个头信息对于每个WEP帧都是相同的,攻击者很容易猜测,利用猜的第一个明文字节和WEP 帧数据负载密文就可以通过异或运算得到PRNG 生成的密钥流中的第一字节。
另外,种子密钥中的24比特初始矢量是以明文形式传送的,攻击者可以将其截获,存到初始矢。
S.Fluhrer, I.Martin 和A.Shamir 证明:
利用已知的初始矢量IV 和第一个字节密钥流输出,并结合RC4 密钥方案的特点,攻击者通过计算就可以确定WEP密钥。
2.8 CRC-32 算法缺陷
CRC-32 算法作为数据完整性检验算法,由于其本身的特点非但未使WEP 安全性得到加强,反而进一步恶化。
首先CRC 检验和是有效数据的线性函数,这里所说的线性主要针对异或操作而言的,即C(x?
y)=C(x)?
C(y)。
利用这个性质,恶意的攻击者可篡改原文P 的内容。
特别地,如果攻击者知道要传送的数据,会更加有恃无恐。
其次,CRC-32检验和不是加密函数,只负责检查原文是否完整,并不对其进行加密。
若攻击者知道P,就可算出RC4(v,k) (RC4(v,k)=P?
(P?
RC4(v,k)),然后可构造自己的加密数据C'=(P',C(P'))?
RC4(v,k)和原来的IV一起发送给接收者(802.11b 允许IV重复使用)。
2.9 WEP密码如何被破解出来的
2.9.1 监听模式被动破解(这个就是有客户端并有大量有效通信)
根据已知的的信息。
我们知道要还原出WEP的密码关键是要收集足够的有效数据帧,从这个数据帧里我们可以提取IV 值和密文。
与对于这个密文对应的明文的第一个字节是确定的他是逻辑链路控制的802.2 头信息。
通过这一个字节的明文,还有密文我们做XOR运算能得到一个字节的WEP密钥流,由于rc4 流密码产生算法只是把原来的密码给打乱的次序。
所以我们获得的这一次字节的密码就是就IV+PASSWORD 的一部分。
但是由于RC4 的打乱。
不知道这一个字节具体的位置很排列次序。
当我们收集到足够多的IV 值还有碎片密码时,就可以进行统计分析运算了。
用上面的密码碎片重新排序配合IV使用RC4算法得出的值和多个流密码位置进行比较。
最后得到这些密码碎片正确的排列次序。
这样WEP的密码就被分析出来了。
下图就是WEP破解过程。
有助于你理解破解WEP通过分析子密码还原密码的过程。
图表3
2.9.2 主动攻击(有客户端。
少量通信或者没有通讯)
-3 ARP-request attack mode攻击抓取合法客户端的arp请求包。
如果发现合法客户端发给AP的arp请求包,攻击者就会向AP重放这个包。
由于802.11b 允许IV重复使用。
所以AP接到这样的arp请求后就会回复客户端。
这样攻击者就能搜集到更多的IV了。
当捕捉到足够多的IV就可以按上面的2.9.1里的进行破解了。
如果没有办法获取arp请求包我们就可以用-0 攻击使得合法客户端和AP断线后重新连接。
-0 Deautenticate攻击实际就是无线欺骗。
这样我们就有机会获得arp请求包了。
2.9.3 主动攻击(没有客户端的模式)
先和AP进行伪链接-1 fakeauth count attack mode。
这样就能产生数据包了。
收集两个IV 相同的的WEP 包,把这两个包里的密文做XOR 运算。
得到一个XOR 文件。
用这个XOR文件配合伪造arp包的工具。
利用CRC-32的特点伪造一个arp包和原来的IV一起发给AP。
这样就可以按上面2.9.2 里的进行破解了。
其中-2 Interactive,-4 Chopchop,-5 Fragment 都是属于上面这个攻击类型的。
2.10 WEP的安全弱点
2.10.1802.2 头信息和简单的rc4 流密码算法
导致攻击者在有客户端并有大量有效通信时,可以分析出WEP的密码。
2.10.2IV重复使用
导致在攻击者在有客户端。
少量通信或者没有通讯时,可以使用arp 重放的方法获得大量有效数据。
2.10.3无身份验证机制,使用线性函数CRC32进行完整性校验。
无身份验证机制,导致攻击者能使用-1 fakeauth count attack mode和AP建立伪链接。
进而获得XOR 文件。
使用线性函数CRC32 进行完整性校验,导致攻击者能用XOR 文件伪造一个arp包。
然后依靠这个包去捕获大量有效数据。
2.11 WEP窃听
由于 WEP 全局都是用IV+WEP 密码来保护明文的。
当有了密码后攻击者可以使用同样的算法能随时任意窃听任意STATION 至AP 之间的通讯。
这样的窃听对于网银这样的双向认证的安全不会有影响。
但是在ip 包里的明文用户名和密码就很容易被窃听到了。
例如登录AP 的用户名和密码。
由于无线网络窃听的存在,在使用交换机的有线网络中用关闭dhcp 设置陌生网段的来禁止非法访问的方式。
不在适合于无线网络。
攻击者完全能根据窃听到的合法客户端数据包配合已知密码来分析出ip的真实配置。
2.12 WEP的现状
WEP真的不是一种强壮的加密方式对于那种不怀好意的攻击者。
无法胜任在安全要求比较高的场所。
对于安全较低的厂所只能说有胜于无。
三、WPA
3.1 WPA加密算法的的两个版本介绍
WPA = 802.1x + EAP + TKIP + MIC
= Pre-shared Key + TKIP + MIC
802.11i(WPA2)
= 802.1x + EAP + AES + CCMP
= Pre-shared Key + AES + CCMP
这里802.1x + EAP,Pre-shared Key是身份校验算法(WEP没有设置有身份验证机制)
TKIP和AES是数据传输加密算法(类似于WEP加密的RC4 算法)
MIC和CCMP数据完整性编码校验算法(类似于WEP中CRC32算法)
3.2 WPA 认证方式
802.1x + EAP (工业级的,安全要求高的地方用。
需要认证服务器)
Pre-shared Key (家庭用的,用在安全要求低的地方。
不需要服务器)
EAP 扩展认真协议,是一种架构。
而不是定义了算法。
常见的有LEAP,MD5,TTLS,TLS,PEAP,SRP,SIM,AKA 其中的TLS 和TTLS 是双向认证模式。
这个和网络银行的安全方式差不多。
这个认证方式是不怕网络劫持和字典攻击的。
而md5 是单向认证的。
不抗网络劫持,中间人攻击。
关于企业级的如何破解就不讨论了。
因为论坛上也很少提到。
本身EAP模式是个协议,不是算法。
3.3 WPA-PSK
论坛上破解WPA 也主要是集中在这个模式上的。
我们都知道破解WPA-PSK 不是和WEP一样抓很多包就能破解的。
关键是要获取握手包,这个握手包叫4way-handshake 四次握手包。
那么我们就从这个四次握手包开始。
3.4 四次握手
通信过程如图
图表4
3.4.1 WPA-PSK 初始化工作
使用 SSID 和passphares使用以下算法产生PSK 在WPA-PSK 中PMK=PSK
PSK=PMK=pdkdf2_SHA1(passphrase,SSID,SSID length,4096)
3.4.2 第一次握手
AP广播SSID,AP_MAC(AA)→STATION
STATION 端使用接受到的SSID,AP_MAC(AA)和passphares使用同样算法产生PSK。
3.4.3 第二次握手
STATION 发送一个随机数SNonce,STATION_MAC(SA)→AP
AP端接受到SNonce,STATION_MAC(SA)后产生一个随机数ANonce
然后用PMK,AP_MAC(AA),STATION_MAC(SA),SNonce,ANonce 用以下算
法产生PTK。
PTK=SHA1_PRF(PMK, Len(PMK), "Pairwise key expansion",MIN(AA,SA) ||
Max(AA,SA) || Min(ANonce,SNonce) || Max(ANonce,SNonce))
提取这个PTK 前16 个字节组成一个MIC KEY
3.4.4 第三次握手
AP发送上面产生的ANonce→STATION
STATION 端用接收到ANonce 和以前产生PMK,SNonce,AP_MAC(AA),STATION_MAC(SA)。
用同样的算法产生PTK。
提取这个PTK 前16 个字节组成一个MIC KEY
使用以下算法产生MIC值
用这个MIC KEY 和一个802.1x data 数据帧使用以下算法得到MIC值
MIC = HMAC_MD5(MIC Key,16,802.1x data)
3.4.5 第四次握手
STATION 发送802.1x data ,MIC→AP
STATION 端
用上面那个准备好的802.1x 数据帧在最后填充上MIC值和两个字节的0(十六进制)让后发送这个数据帧到AP。
AP端
收到这个数据帧后提取这个MIC。
并把这个数据帧的MIC部分都填上0(十六进制)这时用这个802.1x data 数据帧,和用上面AP产生的MIC KEY 使用同样的算法得出MIC’。
如果MIC’等于STATION 发送过来的MIC。
那么第四次握手成功。
若不等说明则AP 和STATION 的密钥不相同,或STATION 发过来的数据帧受到过中间人攻击,原数据被篡改过。
握手失败了。
3.4.6 MIC的派生图
图表5
SSID passphares
PSK=PMK=pdkdf2_SHA1(passphr
ase, SSID, SSID length, 4096)
PTK=SHA1_PRF(PMK, Len(PMK),
"Pairwise key expansion",MIN(AA,
SA) || Max(AA,SA) || Min(ANonce,
SNonce) || Max(ANonce,SNonce))
MIC KEY=提取PTK 的前16 个字节
MIC = HMAC_MD5(MIC Key,16,
802.1x data)
SNonce
STATION MAC APMAC
ANonce
802.1x data
3.5 AP和STATION 之间的加密通信
3.5.1 通讯使用的临时KEY 的派生图
图表6
3.5.2 使用 KEY 进行加密通信
3.5.2.1 TKIP
图表7
3.5.2.2 CCMP
图表8
PTK – X bit
Pairwise Transcient Key
EAPOL-Key
confirmtion Key
128 bits
EAPOL-Key
Encryption Key
128 bits
Temporal
Encryption Key
128 bits
Temporal AP
Tx MIC Key
64 bits
Temporal AP
Tx MIC Key
64 bits
X = 512 (TKIP)
X = 384 (CCMP)
Bit 128-256
KEK
Bit 256-384
TEK(=TK)
Bit 384-447
TMK1
Bit 447-511
TMK2
Bit 0-127
KCK
3.5.3 WPA安全规则
针对于WEP的安全漏洞WPA 也相应更新了安全规则:
A. 增强至48bit的IV。
B.Sequence Counter,防止IV重复。
C.Dynamic key management,动态key管理机制。
D.Per-Packet Key加密机制,每个包都使用不同的key加密。
E.MIC (Message Integrity Code ),信息编码完整性机制。
解说:
动态key管理机制
在通讯期间:
如果侦测到MIC错误,将会执行如下程序。
记录并登录MIC错误,60 秒內发生两次MIC错误。
反制措施会立即停止所有的TKIP通讯。
然后更新数据加密的用的TEK。
3.5.4 WPA 安全机制作用
a. 加密通信流程图、Per-Packet Key 加密机制、动态key 管理机制使得使用类似于WEP中分析子密码攻击的方案,在WPA 中将变得异常困难,和不可实现。
b. 身份验证机制杜绝了-1 fakeauth count attack mode,建立伪连的攻击。
c. 增强至48bit 的IV、防止IV 重复、MIC 信息编码完整性机制。
使得要伪造一个合法数据包变得异常的困难。
同时也致使-2 Interactive,-4 Chopchop,5Fragment 此类攻击对于WPA 无效。
解说:
a. 虽然TKIP使用的是和WEP一样的加密算法RC4,但是TKIP中使用Per-PacketKey加密机制配合RC4。
这样弥补了RC4 加密算法的不足。
抵抗基于RC4 漏洞的攻击。
WPA2 中的AES比TKIP有更高的安全性,对他的破解难度就更高了。
b. 使用非线性的MIC信息编码完整性算法,取代线性的CRC-32。
增加了攻击者伪造合法数据的难度。
有以上结论我们不难得出一个事实。
类似于WEP中的无客户端破解密码的做法在WPA 中是不存在的。
3.6 针对 WPA的破解攻击
3.6.1 抓取数据传输包进行破解
上面已经明确的指出无论数据传输算法是TKIP还是AES。
使用类似于WEP中捕获数据包进行分析破解的方式对于WPA几乎是不可能的。
3.6.2 抓取WPA-PSK 的四次握手包进行破解
可以说 WPA-PSK 安全体系是十分完善的。
但他始终是用一个密码保护的。
对于这种用密码保护的安全体系。
一般情况下我们都可以用一种叫字典攻击的常规攻击手段。
所以针对WPA-PSK 可以进行的直接攻击,目前就只有字典攻击这一种方式。
而这种常规的攻击方式将在字典攻击里详细讨论。
当然我们WPA-PSK 的设计者也很明确这点,所以在WPA-PSK 的安全体系中加入了潜规则加以对抗。
这点将在攻击预算里做详细的讨论。
在WPA-PSK 的四次握手包中包含着和密码有联系的信息,依靠这个信息进行字典攻击。
3.6.3 断线攻击
由于 WPA-PSK 是单向认证的。
所以可以使用-0 Deautenticate攻击。
这样有助于我们获取握手包。
在获得握手包时-0 攻击不要太多,否则适得其反的。
有些AP几次握手不成就会认为有攻击。
禁止客户端和AP的链接30秒。
(可能基于WPA EAP TLS 这样双向认证的就不怕断线攻击了)
3.6.4 间接攻击
例子:
别人输密码你在哪里偷看。
使用美人计骗取密码。
有技术含量点的。
原来WEP时他的计算机有漏洞你给他下了木马。
改成WPA 后木马把密码发给你的。
或你整天窃听他的WEP通信,他改密WPA 模式时发给路由的密码让你截获了。
比较狠一点的,AP是你卖给他的AP的系统里添加了你的后门。
3.7 WPA安全性的前景
WEP 由原来的安全到今天的不安全。
你是否同样也会担心是不是很多年之后的WPA也会是同样的命运。
但我们也要看到WEP 的破解不是某个算法的漏洞导致的。
而是整个WEP的安全体系有很多漏洞所共同导致的。
而WPA的安全体系很强壮。
使用的大多是混合算法。
所以某一个算法的弱点往往不能给WPA 这样的安全体系以致命的打击。
WPA 这种依靠算法的安全体系也许某一天会被破解。
但是可能WPA 被完全破解的那一天比WPA 废弃的那一天都晚。
如果这样的话,那么的确该说WPA 是一种很强壮的安全体系。
3.8 WPA 的窃听
WP-PSK 没有密码几乎没法窃听他的通信。
在有了密码的情况下WPA 的窃听也不具有WEP 中窃听的随意性。
在WPA 中SNonce,ANonce 也很好的起到了加密数据防止窃听的作用,所以作为攻击者我们必须从握手开始窃听。
而且会同步更替数据加密密钥。
所以WPA-PSK 的安全性都依赖于密码。
3.9 WPA评价
无论是WPA还是WPA2 在目前都是有很好的安全性的。
企业级EAP的安全模式更为WPA的安全性如虎添翼。
我很欣赏WPA = PSK + TKIP + MIC这个模式。
因为原来WEP的设备只需要更换代码就能升级到这个模式了。
所以这个模式使用较低的成本就可以实现很高的安全性,还有便捷性。
成本当然也是一个东西是否能普及重要因素。
而WPA2 AES+CCMP的更高的安全性对硬件的要求也是要高一点的。
四、字典攻击
4.1 寻找可以攻击的信息元素
字典攻击作为一种常用的