抓握手包破解wifi密码前传:WPA/WPA2加密小结

最近在学Hacking,网络知识渣渣的我看一堆英文缩写真真是头晕目眩真的好渴……
破解wifi密码之前,原理神马的还是要学习一下啊。

WPA/PWA2 PSK是现在家庭无线网络流行的,也比较牢靠的加密模式。咱就来探探它的加密流程。

定义

从定义开始吧,捋捋这些个缩写啊专业名词啊啥的。

WPA/WPA2 口令(passphrase): 由网络所有者选择和输入的8~63个ASCII字符的字符串。该口令是配置在接入点(AP, Access Point)的,从连接到APs无线网络的客户端设备通过手动输入。

请求者(Supplicant): 任何企图接入APs服务集的设备。

PSK(Pre-Shared Key, 预共享密钥): 口令(passphrase)经PSK映射转换算法处理后得到的结果。

PMK(Pairwise Master Key, 成对主密钥): 密钥大师(master)哈哈,最高等级的密钥,由PSK生成。

GMK(Group Master Key, 组主密钥): 由认证器(接入点)生成,是组临时密钥 (GTK)的种子。

4次握手: 使用伪随机函数来创建和分发动态加密密钥的过程。

Nonce: 一个随机生成的值,只使用一次。

PTK(Pairwise Transient Key, 成对临时密钥): 最终用于加密单播数据流的加密密钥。

GTK (Group Temporal Key, 组临时密钥):最终用于加密广播和组播数据流的加密密钥。

加密流程分步解说

下面这张图是我觉得比较好看……也比较清楚的密钥加密流程图。

下面一步一步解说:

1. 选择口令(passphrase)

第一步是选择一个口令(passphrase)并在路由器管理界面里输入口令。要注意口令 (passphrase)不同于密码 (password)。应避免使用字典中有的单词、你的名字、地址、电话号码、宠物名字、等等等等等……最好是选择一个完全随机生成的口令,这里有一个随机口令生成器 挺好使。

WPA/WPA2 口令是静态的,容易受离线字典攻击(就是拿字典里的词去匹配你的口令),所以使其完全随机才能最大限度的保证无线网络的安全。

2. 口令 (passphrase) - PSK映射

口令需在要连接APs的客户端设备上手动输入来验证该设备,并在后台经“口令-PSK映射”函数,转换成一个256位的预共享密钥 (PSK)。
PBKDF2 (Passphrase-Based Key Derivation Function 2):

PSK = PBKDF2(PassPhrase, ssid, ssidLength, 4096, 256)

口令 - PSK映射的意义在于简化普通家庭网络用户的网络配置。毕竟相较于一个256位的PSK码,8~63个字符长的口令更好记吧!(尽管本人老忘记密码……ORZ)

3. 生成主密钥

PSK会转化成PMK,本质上讲PMK就是PSK。
认证器(也就是接入点APs)还生成GMK,它将用来产生GTK。GTK将被AP和所有已认证的客户端用于加密组播和广播数据流。

4. 四次握手(重头戏来了!)

先上图:

4次握手就是认证器(Authenticator)和请求者(Supplicant)之间的4次消息交换的过程(不包括确认)。“4次握手”用一个伪随机函数(PRF, pseudo-random function)来生成PTK,参数包括PMK、认证器Nonce(ANonce)、请求者Nonce(SNonce)、认证器的MAC地址(AA)和请求者的MAC地址(SPA)。

PTK = PRF (PMK + ANonce + SNonce + AA + SPA)

消息1

4次握手开始于验证器(AP),它产生一个随机的值(ANonce)。ANonce作为重放保护,必须是这个PMK之前没用过的值。验证器在消息1中发送ANonce给请求者。

消息2

请求者也产生了它自己的随机SNonce,然后用这两个Nonces以及PMK生成了PTK。请求者回复消息2给验证器,即它自己的Nonce,还有一个MIC(message integrity code,消息验证码)作为PMK的验证。

消息3

现在认证器也有了2个Nonces,可以生成PTK了,它先要验证请求者在消息2中发来的MIC等信息,验证成功后,如果需要就生成GTK。然后发送消息3,包括:GTK、告诉请求者安装PTK和GTK、接收顺序计数器(RSC,receive sequence counter)——即当前GTK的顺序号,并允许请求者检测重播的广播消息。

消息4

请求者收到消息3,验证MIC,安装密钥,发送消息4,一个确认信息。验证器收到消息4,验证MIC,安装相同的密钥。此时,双方安装了相同的PTK和GTK,并且确认了对方知道PMK。


好了,至此,请求者和接入点之间的通路打通了,可以安全的收发数据流了……好累……

  • 12
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值