转载:深入 WEP和 WPA密码原理


概述  
目前情况下: 
WEP的破解为利用加密体制缺陷,通过收集足够的数据包,使用分析密算法还原出密码。 
WPA目前没有加密体制的缺陷可被利用,破解WPA密码使用的是常规的字典攻击法。 
所以在破解方式上WEP和WPA有很大差异。 
 

WEP 
2.1  (Wired EquIValent
PrIVacy,WEP) 
叫做有线等效加密。掌握WEP破解的人,肯能会说WEP不如有线的安全性高。但这 
发生在WEP的很多弱点被发现之后。也是由于WEP的弱点导致WPA的出现。 
 
2.2 
(WEP)算法  
WEP算法是一种可选的链路层安全机制,用来提供访问控制,数据加密和安全性检验
等。802.11
定义了 WEP  算法对数据进行加密。 
 
2.3 
加密过程如图所示。  
IV为初始化向量, PASSWORD 为密码 
KSA=IV+PASSWORD。 DATA为明文  CRC-32
为明文的完整性校验值 
PRGA=RC4(KSA)  的伪随机数密钥流  XOR 异或的加密算法。
ENCRYPTED
DATA为最后的密文。最后 IV+ENCRYPTED
DATA一起发送出去。  
 
2.4 
接收端的解密过程如图所示。  
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通过分析子密码还原密码的过程。  
 
 
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的安全弱点 
A.802.2头信息和简单的rc4流密码算法 
导致攻击者在有客户端并有大量有效通信时,可以分析出WEP的密码。 
B.IV重复使用 
导致在攻击者在有客户端。少量通信或者没有通讯时,可以使用
arp重放的方法获得大
量有效数据。 
C.无身份验证机制,使用线性函数
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 
四次握手 
通信过程如图  
 
 
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的派生图 
 
 
 
 
 
 
passphares 
SSID 
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  AP
MAC 
ANonce 
802.1x data 3.5 
AP和STATION 之间的加密通信 
3.5.1  通讯使用的临时KEY
的派生图 
 
 
3.5.2 
使用KEY 进行加密通信 
3.5.2.1 
TKIP 
 
 
3.5.2.2 
CCMP 
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
)<Michael>,信息编码完整性机制。 
解说:动态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,5 
Fragment 
此类攻击对于WPA无效。 
解说: 
a. 
虽然TKIP使用的是和WEP一样的加密算法RC4, 但是TKIP中使用Per-Packet 
Key 加密机制配合
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 
寻找可以攻击的信息元素 
字典攻击作为一种常用的攻击手段要明白的是从那里开始攻击。
要寻找和密码有有联系
的信息元素。在WPA中和密码有联系的信息有数据的传送包和四次握手包。由于无法知道
明文,和
WPA的数据加密算法的复杂性。在数据传输包上要找到可以攻击的信息元素基本
上很难实现。
所以只能在握手包里寻找有密码有联系的信息。在上面的四次握手包的图片中
很清楚的表明,在四川握手中主要传递的有如下数据:SSID,AP_MAC,STATION_MAC,
SNonce,ANonce,802.1x 
data,MIC。前面 6 个元素很清楚,一般不会和密码有联系的。
只有最后一个
MIC和密码有所联系。通过MIC的派生图我们知道,MIC是通过上面六个信
息元素和密码通过三个主要的算法派生出来的。
那么我们是不是只要找到这三个算法的逆反
算法就可以根据上面的7个信息元素把密码计算出来了呢。的确实这样。但是这三个算法有
一个共同的名字叫HASH
函数。 
 
4.1.1  HASH
函数 
HASH
函数是不可能从生产的散列值来唯一的确定输入值。 
a.  单向性(one-way)。HASH
函数是没有反函数的。 
b.  抗冲突性(collision-resistant)。要寻找两个
hash值相同的原值十分困难。 
c. 
映射分布均匀性和差分分布均匀性。不像普通函数那样数值分布有一定规
律。 
由于上面的pdkdf2_SHA1,SHA1_PRF,HMAC_MD5
是HASH 函数。所以我们就基
本上无法直接计算出密码。对于HASH 函数比较有效的攻击就是建立 HASH
字典攻击。
HASH 字典就是把预先算好的HASH 值按照线性排列然后组成一个数据库。
当我们知道
一个HASH 值时在这个数据库里能马上找到他的原值。
当然这个过程是通过数据库实现
的而不是 HASH 的逆反函数。所以有些 HASH
值在这样的数据库里是找不到原值的。
由于 HASH 库是线性的所以。所以在 HASH
库里找数据是十分迅速的。下面的链接让
你体验一下 HASH 线性库的速度
http://www.cmd5.com/。还有一点有的人也知道的国内
的王小云教授对于部分HASH
算法有突出贡献的。她的主要贡献是寻找碰撞值。暴力破
解的话就是大概需要2^80量级的 MD5  HASH
运算。被王教授提高到只需要 2^69量级
的MD5 HASH 运算就能够找到一个碰撞。我们有这样两个对付HASH
函数的方法。那
么对我们破解我怕密码是不是如虎添翼了呢?  
 
4.1.2 
HMAC (HASH Message Authentication
Code)哈希消息校验算法 
这里我承认我刚才有骗过你。pdkdf2_SHA1,SHA1_PRF,HMAC_MD5
不是
HASH
函数。当然我骗你我也有我的理由啦。第一我以前被别人骗过,某论坛上说建立HASH
库然后进行WPA破解的。能建立HASH
库那三个函数不是 HASH 函数那是什么啊。第
二我不是故意的。了解 HASH 函 数,有助于 你理 解 HMAC 算法
。所以
pdkdf2_SHA1,SHA1_PRF,HMAC_MD5是 HMAC算法。不是HASH
函数。HMAC算法就是用一个密码,和一个消息。最后生成一个HASH值。由上面的介绍,我们可以看出,
HMAC算法更象是一种加密算法,它引入了密钥,其安全性已经不完全依赖于所使用的
HASH
算法。 所以上面对 HASH 的攻击,对于 HMAC 是没有效果的。HMAC
特别是
象“挑战/响应”身份认证应用中,由于攻击者无法事先获得 HMAC
的计算结果,对系
统的攻击只能使用穷举或“生日攻击”的方法,但计算量巨大,基本不可行。所以,在
目前的计算能力下,可以认为HMAC算法在“挑战/响应”身份认证应用中是安全的。 
 
4.1.3 
四次握手包 
有上面的 HMAC 的特性我们也不难得出
SSID,AP_MAC,STATION_MAC,
SNonce,ANonce,802.1x data,这些信息元素都是上面的
HMAC算法里的消息。HMAC
算法里的密码在 pdkdf2_SHA1 算法里是 WPA 的密码,在 SHA1_PRF 算法里是
PMK,
在HMAC_MD5算法里是PTK。最后才得出 MIC值。由于这些消息和这个
MIC值都有
关联性。所以四次握手吧的后面三次是缺一不可的。而且是有时效性的。不能把不是同
一次的握手包拼起来使用的。当然第一次握手包的SSID
和 AP-MAC是可以后获取的。
这里你也明白了四次握手中根本是不是在传递一个简单的 HASH
值。而是要传递一个
HMAC 值。如果是传递一个简单的 HASH
值,那么我们只要获取后重播这个值就可以
欺骗 AP 获得认证了。都不要知道这个 HASH
值对应的原值。但我的这么好的想法被
HMAC给打破了。 
 
4.1.4 
面向于四次握手包的字典攻击。 
字典攻击,就是把密码的可能性罗列起来组成一个密码字典。然后把字典里的密
码和
SSID,AP_MAC,STATION_MAC,SNonce,ANonce,802.1x 
data,这些信息元
素。通过 pdkdf2_SHA1,SHA1_PRF,HMAC_MD5 这些算法最后生成 MIC’
(具体过程看
上面 MIC派生图)。当在字典里找到一个密码他的 MIC’等于握手包中的
MIC。这时字
典破解成功。这就是我们要的那个密码。如果把字典里的所有密码都找遍了还有没有符
合上述条件的。那么破解失败。 
 
4.2 
WPA-PSK 密码规范和可能的密码空间 
4.2.1  HEX
模式 
64个的十六进制数字。 
4.2.2 
ASCII模式 
密码至少8位最大不能超过63位。字符要求a~z,A~Z,任意字符包括空格。所
以一共可是使用的字符个数为95
个。 
这两种模式的密码的穷举字典(罗列所有的可能性)是超乎想象的大(不包括那
想象特别大的人)。我们就拿HEX
模式的穷举打个比方吧。如果用一个水分子比作是一
个密码的话。 那么穷举字典里的密码组成一个圆球。这个球的直径是 2.4光年。 而
ASCII
模式密码空间,你别逗了!我们可能观察到的最广阔宇宙空间的直径只可能在150亿光
年这样的范围之内。这样水球都还需要在那个基础上在大上百万倍。密码空间有时会形
成超天文数字的。当然我们不需要尝试像上面一样如此多的数值。因为
MIC值只有 128
位,我们只需要上面的球和月亮这么大的尝试就能找到一个符合的
MIC。但是这个找到
的值可能可以成功握手。但不一定能正常通讯。这样的值可能就是一个
MIC的碰撞值。
他的 MIC 是相同的但是 PMK 是不同的。所以需要尝试所有 PMK 的可能性,而 256

PMK 的穷举组成的水球直径还是 2.4光年。根据
WPA的密码规范,使用字典攻击法,
如此大的密码空间足以让人类计算机的总和望而却步。  
4.3 
弱密码字典 
WPA-PSK的密码空间用浩瀚来形容一点不为过,
所以直接进行字典攻击是傻子的行为。
但是作为一个密码对字典攻击来说有强密码和弱密码的区别。
强密码就是破解希望极其渺茫
的密码。弱密码是很有希望破解的密码。当然强弱也是个相对概念,他也是依赖于加安全制
的。银行的密码一般都为6位。像这样密码空间如此小的密码。普通情况下都为弱密码。但
是银行的
ATM 一天只让你试三次。三次密码不对锁卡。有这样的机制。6
位的就不再是弱
密码了。由弱密码组成的字典叫弱密码字典。当然一般的弱密码有以下几种。 
 
4.3.1 
密码空间太小的密码 
什么叫密码空间。密码可能字符个数为 n 密码的位数为 p  那么 n 的 p
次幂就是密
码空间,例如一个6位数子的的密码他的密码空间
6M=10^6。密码空间的大小也是个相
对概念,这个和安全体制有关系的。还有就是尝试密码的速度。在WPA-PSK
的破解中。
我们可以无限次的尝试。尝试密码的速度也和设备有关系。WPA-PSK
分布式破解无疑
是用速度来换取同等时间里更大的密码尝试空间。在下面的攻击预算里会对这一部分内
容做详细的补充。 
 
4.3.2 
社会工程学的弱密码 
就是密码中带有一定的社会工程学属性。也就是说密码中带有和个人有关系的信
息。这里列出一个mm做的社会工程学字典方便理解。 
19602008.txt  
1960-2008年的生日组合 
mydic.txt     
自己弄的常用字典 
abc-birth.txt 
任意三字母+所有的生日组合; 
shouji10.txt 10
位的手机号 
shouji11.txt
11位的手机号 
shouji.txt   
上海的手机号 
8-af16.txt  8位的abcdef和123456
的任意组合 
8-qrafzv.txt  
qwerasdfz 
当然你可以看到社会工程学字典中穷举法的影子。 WPA-PSK
破解中一般情况下我
们没有办法知道设置密码的人的具体信息。所以 WPA-PSK
破解就没法生成针对性很强
的社会工程学字典。 
 
4.3.3 
有一定联系性规律性弱密码 
例子:有人曾破如此一个WPA-PSK 密码
IX1V7051242。如果你不了解这个密码的
背景你肯能会觉得很神奇,这么强的密码也能破。这样的密码是在西班牙的 tele2
这样
的 AP 上有,而且这样 AP_ESSID 里都有 tele2 字段。这样的密码后面的 8
位是相同的有
真正的密码只有四位。四位密码其密码空间很小很容易被字典攻击出来。这个也是
AP
的默认密码。所以这个密码被破解是因为
AP本身产生的随机密码就是个弱密码。是AP
的厂家自己降低了安全性的做法。 
 
4.3.4 
暴露过的强密码 
密码这个名字就告诉我们他是不能见光的。见光即死。见光的方式很多被偷窥了,
被窃听了等。这里讲个典型点的例子:有些人具备一定的安全知识的。知道要设置一个
密码空间很大的强密码如
[email protected]#$%,这个密码破之实在不易。但是这个 AP
的密码还是被破解了。原因何在。因为这个人比较懒,他在任何地方都是使用的这个强密码。
由此他注册了一个论坛。习惯性的输入自己的强密码。但是那个不怀好意的论坛的后台
有个密码收集工具。他的密码被收录进字典。用这样的字典破他的
WPA-PSK 不是很容
易吗。你是不是这样的人啊?至少我碰到一个就是他的
blog密码和银行卡是一个密码。
《剑鱼行动》中那个黑客是如何在一分钟进入国家安全信息网的啊。就是网络上工作着
为他收集密码的程序。而他就是通过这样的字典迅速破解的。而这样的字典真正的黑客
也是不愿意发布出来的。原因还是那句话密码见光即死。 
 
4.4 
强密码 
看名字你就应该知道破解强密码的希望是十分渺茫的。怎么样的密码算一个强密码,第
一肯定不能有上面弱密码的属性。第二是需要足够的密码空间。关于
WPA-PSK
中什么
形式的密码可以被称之为强密码了,在下面的攻击预算里会指出来的。 
 

攻击预算 
拿分布式攻击来说。 开始破解一个WPA-PSK 包。我们知道他是
8位的全字符一个密码。
然后我们征集到万人自愿参加这个工作。可是一破破解了一周这个密码没有任何动静。这时
人数减少了
50%,之后又破了一月,人数减少到 10%。这个 10%是很好的支持者,他们坚
持数月。密码还是没有出现。这下就剩下
5%的绝对拥护者了。但是花开花又落密码还是没
有出来。这时没有人在坚持了。这个密码最后还是没有被破解出来。那么我们的时间精力是
不是都白花了呢。的确是这样。但是如果有这些人开始这个巨大的工程前,如果我们进行了
预算。我们就会知道这1万个人即使进行全速破解这个密码,而且都是使用的
4 核心的处理
器。那么他们也需要花上 27 年。看到这样的预算我想当时的 1 万人会有 99.9% 。还有
10
个人为什么不放弃。这还用问吗,他们都是愚公的子孙。很厉害的,山都能铲平。还搞不定
你一个密码了。只要你的密码有限,而我的子子孙孙无穷匮也。攻击预算的意义就在此,提
前让我们知道做这件事所需要的代价和所能获得的意义。不行进预算也是一种不成熟的表
现。当然搞分布式计算的人可能知道这一点。他们早就强调分布式破解只是思路。不是破解
方案。破不出来也没有关系。这样的人最可气,自己知道不可行也不说,害人误入歧途。空
欢喜。 
 
5.1 
攻击预算的意义 
预算运用的地方很广。
迅雷下个大的电影他都会预算一下大概需要花多少时间完成这个
任务。做大的工程预算更加不能少。字典攻击这样的常规攻击,理论上是能可行的但实际上
不一定可行的。而攻击预算要解决的问题就是:在均衡了攻击代价后,攻击是否具有实际可
行性?一般情况下攻击的代价主要是时间和资源。有强大的资源支持就可以节省时间(分布
式破解就是走的这条路线)。当时间合适的话。而使用的资源远大于攻击带来的意义。那么
这样的攻击也不具备现实意义。
当然在一开始我用会使用极值的方式评估攻击方案的可行性
的问题。即考虑最佳情况,如果还不行可以直接放弃。最差的情况,如果亦有可能值得深入。  
 
5.2 
WPA-PSK 中攻击预算 
WPA-PSK 中的攻击预算是很容易的事。Aircrack
软件会告诉你详细的数据。让你进行
攻击预算的。
无论是你直接字典攻击还是建库都会明确的告诉你他的效率和所花的时间。而
且他的数据是比较准确的。破解 WPA
是最好要在纯命令行下进行。在破解 WEP 的时候,
由于现在计算机的速度比较快,
你很难比较纯命令行模式和图形界面的执行的效率差异。但是WPA字典攻击是及其耗费资源的。在命令行模式下会执行的更快。他们的速度差异是:
命令行最快398.24
k/s,windows下次之 264.93 k/s,  xwindwos下最慢  158.95 k/s。像
linux
这么难用又ugly的系统,要不是他有惊人的执行效率。他早就淘汰了。所以破解
WPA在纯
命令行模式下有更高效的优势。下面是我在纯命令行模式下实测数据。 
密码尝试数度398.24key/s 
产生
PMK 的速度是193PMK/s PMK 库的增长数度是24.6kb/s 
(没有想到吧PMK
库的增长速度这么慢。还不如宽带快。) 
直接PMK
库尝试密码的速度为57136.97key/s 
也许你会说这是我计算机的上速度对其他计算机没有用。
当然要通过上面的值换算成其他计
算机的精确值是不行的。但作为估算是不需要进行精确换算的。那么性能不同的计算机一般
是按什么指标换算其运算能力的呢?是按
GFLOPS(10
亿次扩展双精度能力/秒)。那些超级
计算机等于多少台普通台式机不是实测出来的。也是通过上面的值进行换算出来的。我的计
算机的这个数值是10.3GFLOPS。如果你想转化成其他计算机的数值,只需要下载我提供的
EXCEL表格他是会自动给你计算的。 
 
5.3 
WPA-PSK 中的隐蔽规则 
上面你也看到我的密码尝试数度只有 398.24key/s。WPA-PSK
中曾经提及过设计者是知
道字典攻击是唯一有效进攻WPA-PSK的手段。为此他也是在允许条件下对这一点严加防范。
导致我的计算机尝试密码的速度只有这么点。他是如何防范的,四次握手生成
PMK 的函数
PSK=PMK=pdkdf2_SHA1(passphrase,SSID,SSID
length,4096),在这个函数里的输入值都
很明了除了这个4096。这就是设计者加入的防范。他的意思让函数迭代
4096次。主要目的
就是大大的降低字典攻击的效率。同时也增加了函数的复杂性。这个函数的消耗的时间占派
生一个
MIC 的总时间的 99.3%。也就是 SHA1_PRF,HMAC_MD5 这两个函数消耗的时间只
占不到总时间的
0.7%。看到这里你也该明白所谓的建库破解是怎么回事了。就是先完成时
间上99.3%的任务。产生一个 PMK
库。破解时只要完成时间上 0.7%的工作了。这也就解释
了为什么建库比较慢。这里我们建的库叫 PMK 库。或叫 HMAC
预运算库。根本不是什么
叫Rainbow Hash表。而且PMK 的值还要经过那两个非线性的HMAC函数才是
MIC值。我
们建立的库怎么会有线性的特点。虽然建立了
PMK库是提高了速度。但不要说线速破解。
线速只有在按线性值排列了Rainbow Hash表里有。PMK
值根本没有按线性排列,也没有这
个必要。排列他只会浪费时间,而起不到任何作用。如果要线速破解你还是去建立 MIC

的线性库吧。这样能实现线速了。就是这个库只能对一个握手包有用。建立这样的线性库有
意思吗。下面这个网站用
JAVA 实现了派生 PMK 的过程,和教程里的 PMK
相同吧。
http://www.xs4all.nl/~rjoris/WPAPSK.html  
产生
PMK 如此费时,为什么硬件条件差的 AP 在握手时如此的迅速。实际是在你选择用
WPA-PSK 模式后。AP 就开始用密码和
ESSID 产生 PMK(WPA-PSK 初始化)以后他都保
存了这个PMK值。
除非你改ESSID或密码否则AP都不会花时间去生产PMK。 所以STATION
和 AP 握手如此的快速。所以增大上面算法中
4096 的值只会增加初始化时间而,不会对握
手和传输数据有任何时间上的影响。但是对攻击者就不同了,如果增大 10
倍那么字典攻击
的速度就只有原来的1/10了。 
 
5.4 
隐蔽规则的作用 
在05年的一片对WPA-PSK 安全分析的文章上指出。 对于一个安全的WPA-PSK
密码当
时最新PC也是没有希望破解的。当然3 年过去了。一切都会变化。如今破解 WPA-PSK

情况怎么样呢。首先我们例举一个密码,看看目前计算机的破解能力吧。这个密码是
8位的
全字符密码。
当然我们选当今世界上能查到的最好的计算机进行破解。这个计算机叫走鹃浮
点能力是1.026PFLOPS。他穷举这个一个8
位的密码,按照目前WPA-PSK 的算法,需要 5
年时间。而破解密码至少要尝试一半的可能性。这样也需要
2.5年的。而已上情况都是建立
在那台超级计算机置国家安全于不顾。全力帮你破解密码的基础上的。你问我为什么不用库
破解。8位的全字符的穷举PMK
库是782PB。而那个超级计算机需要 10 年的时间才能建完
这个库。而且这么个库跑一边也要花掉走鹃 13 天的时间。所以想模仿
Rainbow  Hash 表在
WPA-PSK 中根本不现实。而14 位的 Rainbow
Hash表有多大?走鹃目前的速度相当于 5 万
台左右的个人PC(四核) 。但是分布式破解在 5 万台左右的个人
PC上的表现肯定不如走鹃
的。因为别人帮忙挂机时可能是下着电影看着高清进行的。也许你会说人多力量大。但是
08年500
强计算机的总和破解这样的密码也要花费5.6 个月。
所以该是时候认真考虑一下所
谓分布式破解或建库的意义的时候了。 
 
5.5 
WPA-PSK 的强密码 
刚才使用超级计算机极值估算的方式,我们知道了一个8
位的全字符密码在WPA-PSK
里可以称得上是一个强密码了。所以 WPA-PSK
的强密码第一没有上面弱密码的特性。第二
满足下面的要求,使得密码有足够大的密码空间。 
字符类型 
等效密码长度(位) 
10位纯数字  15.82 26位纯字母 
11.18 
36位字母+数字 
10.17 
52位大小写字母 
9.22 
62位大小+数字 
8.83 
95位全字符  8.00 
HEX密码长度 
13.14 
有些人爱抬杠。会说我上面列出的强密码也被破解过。我不否认有些人有心灵感应的潜
能。别人设的强密码都设置到你的头脑里了,你不用破解直接知道密码。还有那种人是上帝
的恩宠。别人再强壮的密码你的字典里都有的。如果你不是上面的两种人。如果你破了一周
的密码还没有出来就放弃吧。
你怎么就知道这个密码不是个强密码。有时还是需要理智放弃。
网上破解WPA-PSK
的教程很多。都是几分钟就破解的。有些密码还很强。教程吗都不是实
战。都是知道密码在破密码。所以不要让那些教程误导了。以为破解
WPA-PSK 很容易。
WPA-PSK
密码破解很长时间都不出来千万不要钻牛角尖。 
 
5.6 
WPA-PSK 的弱密码攻击 
到现在我们明白了针对 WPA-PSK 的攻击目前唯一有实际价值的是弱密码字典攻击。

于弱密码攻击 WPA-PSK 的成功。就有人否定 WPA-PSK
的安全性。难道弱密码攻击就是
WPA-PSK
的安全性的弱点吗?这个例子可能大家都知道。一个人在旅馆里丢了钱包。钱包
里有身份证、银行卡。结果银行卡里的前被盗了。原因是这个人用的是生日做的密码。而使
用弱密码导致卡内资金被盗银行是没有责任的。同里所以你使用了弱密码WPA-PSK
被破解
AP 和 WPA
的设计者都是没有责任的。在仅用密码保护的安全体系里,弱密码一项都是问
题所在。我认为银行也不是一点责任都没有。信息高度敏感性的银行应该像网上的密码学习
主动根据客户的信息判断是否为弱密码。发现弱密码该主动提醒客户并给客户补充安全知
识。如果我们的AP也加入评估机制的话。破解WPA-PSK
就更加雪上加霜了。那些说WPA
漏洞百出的。你怎么不去说银行的系统不可靠呢。WPA不会给你假币吧。但ATM会。 
 
5.7 
良好的弱密码字典 
良好的弱密码字典对于破解WPA目前还是有一定作用的。但是由于以后安全措施的提
高这样的字典最后也会失效。但是产生一个良好的弱密码字典并不是容易的。这样的字典需
要收集很多的密码然后进行分析。最后总结出大众设置密码的特点。绝不是意想得来的。上

mm
的字典不错,但是他如果知道他的字典普通的机器要跑一边要花上几个月的时间这
个字典从时间上来看也太大了点。三跑两跑少女变老太了。而这么大的字典如同别人所说的
手机号后面加个@这个字典就得挂。所以好的弱密码字典在于精而不在于大。而且上面的字
典如此大传输也不方便。实际上面的字典也很容易压缩小。使用的时候完全可以边生成字典
边破解。这就需要有个linux下工作的字典生成器了。配合这样的生成器字典就能变得很小
了。
700m的字典需要4~5天的时间。 而这样长的时间一般人也能接受。 而且正好能刻个盘。
比较实际。如果是DVD
的字典需要1.5月才能跑完实用性也不强。 
 
5.8  PMK
库的意义 
PMK 的有点是速度,但为之牺牲的是漫长的建库时间,巨大的磁盘空间,SSID
的针对
性也是PMK 库的主要问题。所以PMK 主要用于对付那种使用十分广泛的默认
SSID。一般
陌生的SSID 没有必要为他建立 PMK。还有SSID
带有唯一性的。如新出的TP-LINK。默认
SSID 变成了 TP-LINK+MAC 的前六位。这个做法无疑是想废了我们给
TP-LINK 做的 PMK
库。从另一个角度来说 TP-LINK 无疑是一个很注重安全的生产商。对于这样的 SSID
一般不要为他生成PMK 库。陌生的SSID 为什么没有建立PMK
库的必要。要么那个人不注重安
全的他不会改密码。你破解了一次长期能用。要么他注重安全改个安全点的密码或有天他想
个性化一下把SSID
改成了他们家小狗的名字。任何一条导致我们辛苦建起来的库直接残废
了。而唯一的用武之地就是别人不改
SSID,每次还改个你字典里有的弱密码让你破。所以
为陌生的 SSID 建立 PMK 库意义不大。使用范围相当狭窄。精选
250m 左右的字典。这样
单SSID 的PMK 库为7G一个DVD
正好带的下。方便携带,也不会占用硬盘空间。这样一
个DVD
光盘普通计算机一半30分钟就能历遍了。这样的光盘对WPA的破解比较有实际意
义。关于网络上的SSID
库就没有那么有有用了。太大下了没有地方放。边下边破可以考虑,
但是目前宽带满足不了PMK
速率的要求。但是比直接的密码破解会快上几倍。 
 
5.9 
WPA-PSK 安全性 
这里我们可以说 WPA-PSK
模式和一个强壮的密码配合完全能胜任安全要求比较高的
场所。 
 

结尾 
与其把精力放在没有多少意义的分布式破解上,不如集中到下面。 
配合
airodump-ng 的针对于 WEP/WPA-PSK 的窃听攻击。WEP
的窃听比较容易有密码就能
随时任意窃听。WPA的比较复杂。需要从握手开始窃听。并且在WPA有更新数据加密密码
的机制。这样的窃听工具。就是把加密在WEP或
WPA里的 IP包解开来。有了这样的工具。
我们可以很容易的解决关闭HDCP时陌生网段所使用的IP配置。 也能从
IP包里捕获明文帐
号和密码了。如 AP 的登录密码。QQ 帐号等。科莱和 CAIN
也能完成上面的工作他们和窃
听工具有什么区别。科莱和 CAIN 是通过 ARP
欺骗来获取数据的。这样捕捉的效率不如窃
听工具。而且会使合法客户端链接不稳定。导致合法客户端使用了 ARP
绑定上面的攻击就
无法使用了。
窃听工具是工作在数据链路层的。在知道了密码的情况下这样的窃听防不胜防。
如果那个高手把这样的工具弄出来告诉我一声哦。 
 
梵音天 
2008年9
月23 日

转载:深入 WEP和 WPA密码原理,码迷,mamicode.com

时间: 2024-07-28 23:07:38

转载:深入 WEP和 WPA密码原理的相关文章

使用 Aircrack-ng 破解 WEP 和 WPA/WPA2 加密的 Wi-Fi 密码。(转)

1.首先请不要使用此方法去搞破坏,去蹭Wi-Fi,因为不装逼地说,我认为技术本身的价值很大,尤其是在学习这个技术的过程中解决遇到的问题,当经过重重困难最后终于成功之后的喜悦又怎么能拿去蹭网呢.我在此过程中都是用自己路由做的测试,相信大家也可以从文中看到,所以请不要用技术做一些不好的事情. 2.欢迎使用Kali Linux 的朋友互相交流,大家共同进步学习. 索引: 1.工具 2.需要了解的知识 3.破解WEP 4.破解WPA/WPA2 5.其他 6.Q&A 7.参考文章 1.用到的工具: Air

如何使用Reaver-PJ-Wi-Fi网络的WPA密码

在正式开始之前,我还是要不厌其烦强调一下:知识就是力量,但是拥有力量不代表着可以为所欲为.触犯法律.同样,骑白马的不一定是王子,会开锁的也不一定是小偷.本文只是关于某些技术的实验与验证,只适用于学习.你知道的越多,就能够越好的保护自己. 准备工作 首先,无需成为一名网络专家,学会使用复杂的命令行工具,你只需要准备一张空白DVD.一台能连接WiFi的电脑,并腾出几个小时时间,这就是我们基本需要的东西.要安装Reaver,可以有很多方法,但是这里我们建议你按照下面的指南来做: The BackTra

WPA破解原理简要——无线网络破解续

一.破解密码的基础 关于密码的破解我再重复一次好了.密码破解就两大类方法.一是字典解密,而是暴力解密. 暴力解密就是采用穷举的方法——你密码是怎么组成的呢?无非就是数字.字母.符号,暴力解密就是采用一切可能的组合方式排列组合出所有的搭配方式,然后一个一个地去试,看哪个能试对.——当然不是由人工去暴力,那效率太低.而是由相应的软件进行暴力穷举.——暴力破解的缺陷在于,可能需要花费大量的时间,像WPA那种位数一多的密钥,你暴力穷举一下,估计花个几年也破解不出来.而且据密码复杂程度而定. 字典解密说的

同样明文同样算法得到不同密码原理

同样明文同样算法得到不同密码原理: 用户每次登陆明文是一样的,对用户而言密码没有改变,但加密后的密码每次都不相同,主要是由于时间戳(年月日时分),服务器会产生两个密码: 1.当前时间的密码 2.提前一分钟的密码 例如:用户 11:23 登陆------>服务器会产生两个密码:11:23&11:22 一分钟以内总有一个密码是正确的

转载:AbstractQueuedSynchronizer的介绍和原理分析

简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础.使用的方法是继承,子类通过继承同步器并需要实现它的方法来管理其状态,管理的方式就是通过类似acquire和release的方式来操纵状态.然而多线程环境中对状态的操纵必须确保原子性,因此子类对于状态的把握,需要使用这个同步器提供的以下三个方法对状态进行操作: java.util.concurrent.locks.Abstra

如何获得WPA握手包&amp;EWSA破解WPA密码教程[zz]

获得WPA\WPA2 握手包的方法有很多,下面介绍通过aircrack-ng工具包来载获握手数据包. 1.下载aircrack-ng工具包. 2.终端里输入 sudo airmon-ng start wlan0 启动数据监控模式. 3.终端里输入 sudo airodump -w wpa mon0 ( 此时监控端口应该为 mon0 ,DATA保存到以wpa命名的文件中了). 这时大家就可以看到要抓包的AP DATA为0 4.依次:网络连接图标->点鼠标左键->鼠标移到要抓取握手数据包的AP上面

【转载】深入研究Windows内部原理绝对经典的资料

原文:深入研究Windows内部原理绝对经典的资料 另一篇资料:深入研究Windows内部原理系列 (为了方便大家下,我打包了放在一下地址: 1-6:http://download.csdn.net/detail/wangqiulin123456/4601530 7-12:http://download.csdn.net/detail/wangqiulin123456/4601508 13-16:http://download.csdn.net/detail/wangqiulin123456/4

【转载】Spark系列之运行原理和架构

参考 http://www.cnblogs.com/shishanyuan/p/4721326.html 1. Spark运行架构 1.1 术语定义 lApplication:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序,包含了一个Driver 功能的代码和分布在集群中多个节点上运行的Executor代码: lDriver:Spark中的Driver即运行上述Application的main()函数并且创建SparkCon

【转载】游戏外挂的编写原理和思路

原文:游戏外挂的编写原理和思路 游戏外挂的编写原理(一) 一. 前言 所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作.修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将.虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧. 不管游戏外挂程序是不是“合法”身份,但是它却是具有一定的技术含量的,在这些小小程序中使用了许多高端技术,如拦截Sock技术.拦截API技术.模拟键盘与鼠标技术.