WiFi 基础(六)—— 认证和加密原理

认证和加密

WiFi 连接过程其实主要就做了两件事:身份认证和密钥交换

为什么要进行身份认证

为了只让特定(合法)用户使用当前网络

为什么要进行密钥交换

为了使用加密的方式进行通信,防止通信信息被第三方截获破解导致隐私泄露

如何进行身份认证

只要让 AP 知道 STA 中储存的密码是否和自己的密码相等就可以了。最简单的办法:拿到 STA 的密码。AP 将其和自己的密码进行比对,相等则代表该 STA 是合法用户,应当准许接入网络,否则,应当拒绝接入。

AP 怎样拿到 STA 的密码呢?1:STA 将密码明文传输,2:STA 将密码加密传输。第 1 种方法:密码明文发送给 AP,AP 收到后确实可以验证 STA 的身份合法性,但是由于密码是明文传输的,相当于向当前空间区域广播了此网络的密码,这样别的 STA 也可以轻松地收到密码并加入当前网络。这样其它本来非法的用户也变得合法了,显然这种方式是不可取的。那第 2 种方法呢:将密码加密传输。那试问 STA 将密码加密了,它们俩之间又实现没有同步密钥,AP 拿到数据也解不出密码呀,这种方案显然也是不可取的。

那能在不泄露密码的情况下达到身份认证的目的吗?当然可以,我们以 WPA 方式举例,WPA 的身份认证其实是在 EAPOL 阶段,采用的是 4-way handshake 手段,如下
在这里插入图片描述
其底层数学原理是哈希算法。公式如下
P T K = P R F ( A A , S A , A N o n c e , S N o n c e , P M K ) PTK=PRF(AA, SA, ANonce, SNonce, PMK) PTK=PRF(AA,SA,ANonce,SNonce,PMK)

PTK 就是加密用的密钥
PRF 可以简单理解为 sha1 算法
AA 是 Authenticator(认证者) 的 MAC 地址
SA 是 Supplicant(申请者)的 MAC 地址
ANonce 是 Authenticator 产生的随机字串
SNonce 是 Supplicant 产生的随机字串
PMK 是由密码和 SSID 信息生成的密钥,如果 STA 和 AP 拥有相同的密码,则此密钥值也会相同,反之也成立。

AP 和 STA 使用相同的算法对五元组(AA, SA, ANonce, SNonce, PMK)进行计算,其中 AA、SA、ANonce、SNonce 都已通过报文的形式明文传递成功,若两者的 PMK 相同,则就能够产生相同的 PTK ,此后还可用 PTK 对数据进行加密。那么如何确定两者拥有相同的 PTK 呢?当然不能明文传输去比较,我们进行如下操作,在操作之前,我们先对 PTK 进行如下划分
P T K = K C K + K E K + T K PTK = KCK + KEK + TK PTK=KCK+KEK+TK
其中:

KCK = L(PTK, 0, 128)
KEK = L(PTK, 128, 128)
TK = L(PTK, 256, TK_bits)

操作如下

用 KCK 对传输的数据进行计算得到 MIC,AP 收到数据后,也拿自身的 KCK 对传输的数据进行计算得到 MIC,若收到的 MIC 和 自己计算的 MIC 相等,则表明 KCK 相等,进一步表明 PTK 相等(两个 512bits 的PTK,前 128 bits 完全相等,则有理由相信两个 PTK 的所有 bit 都是相等的)。

以上,既完成了身份认证,又完成了密钥交换。

PS:完整性

其实,上述过程不仅能够确认身份合法、密钥成功交换,在接下来的数据通信中,还能保证数据的完整性,因为报文中的 MIC 位的功能本身就是信息完整性检验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li-Yongjun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值