博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android加密中RSN是什么,2. RSN数据加密及完整性校验[29][30]
阅读量:6371 次
发布时间:2019-06-23

本文共 1884 字,大约阅读时间需要 6 分钟。

RSN中数据加密及完整性校验算法有两种,分别是TKIP和CCMP。下面分别来介绍它们。

规范阅读提示 规范中还有一种广播/组播管理帧完整性校验的方法,叫BIP(Broadcast/Multicast Integrity Protocol)。请读者自行阅读规范11.4.4节以了解相关内容。

介绍TKIP前,先介绍WPA。WPA是802.11i规范正式发布前用于替代WEP的一个中间产物。相比WEP,WPA做了如下改动。

WPA采用了新的MIC(Message Integrity Check,消息完整性校验)算法用于替代WEP中的CRC算法。新算法名为Michael。

采用TKIP(Temporal Key Integrity Protocol,临时密钥完整性协议)用于为每一个MAC帧生成不同的Key。这种为每帧都生成单独密钥的过程称为密钥混合(Key Mixing)。

(1)TKIP加密

下面简单介绍TKIP的加密过程,如图3-34所示。

79ac5fa8ae502cac14fdf0ade75ba915.png

左下角:用于数据完整性校验的Michael算法的输入包括两部分,一部分是MIC Key(由厂商负责实现),另一部分是MAC帧头中的DA、SA、Priority和MAC帧数据。Michael算法的输出为Data和MIC。它们将作为后续加密算法的输入(等同于图3-31中加密前的Data+ICV)。

左上角:TKIP的密钥计算分为两部分。首先是第一阶段的密钥混合,其输入有TA(Transmitter Address,32位)、TK(Temporal Key,128位)和TSC(TKIP Sequence Counter,序列号计数器。共48位,此处取其前32位)。此阶段密钥混合段的产物是TTAK(TKIP-mixed Transmit Address and Key,长80位)。注意,TK的来历见后文关于密匙派生的知识。

中间部分:Phase 2 key mixing属于密钥计算的第二部分。本阶段计算的输入有TTAK和TSC(取其后16位),其产物可用作后续加密计算的WEP种子(包括一个128位的ARC4密钥以及IV,可参考图3-31)。

最后一步:利用WEP的加密方法进行数据加密,其过程即先利用WEP种子和PRNG生成密钥流(由于每一个待加密的帧都会有不同的TSC,导致在进行PRNG前,每次输入都有不同的WEP Key),然后使用XOR操作对Data和MIC进行异或。

由上述内容可知,TKIP将为每一帧数据都使用不同的密钥进行加密,故其安全性比WEP要高。另外,由于生成密钥和计算完整性校验时会把MAC地址(如DA、SA、TA)等信息都考虑进去,所以它可以抵抗几种不同类型的网络攻击[30]。不过,从加密本身来考虑,TKIP和WEP一样都属于流密码加密。

(2)CCMP加密

CCMP出现在WPA2中,它比TKIP更安全,因为它采用了全新的加密方式CCMP(Counter Mode with CBC-MAC Protocol,计数器模块及密码块链消息认证码协议),这是一种基于AES(Advanced Encryption Standard,高级加密标准)的块的安全协议。

CCMP加密过程如图3-35所示。

fa848ac31cb9e946599fa12dc7f513d2.png

左下角:PN(Packet Number,帧编号,48位)和KeyId(Key Identifier,密钥标示符,每帧使用一个密钥)共同构成一个8字节的CCMP头(CCMP Header)。另外,每一帧的PN都会累加,所以图中有一个“Increment PN”处理框(注意,重传包的PN不累加)。

左上角:Plaintext MPDU(注意不是MSDU)意味着整个MAC帧(包括Head)都是输入参数。MPDU被拆分成三个部分,其中A2(Address 2字段)、Priority和PN共同构成Nonce(即临时的随机数,用一次后就丢弃不再使用)。MPDU中的MAC头信息将构成AAD(Additional Authentication Data,附加认证数据)。

AAD、Nonce、MPDU中的MAC数据(Payload)以及TK(Temporary Key)共同作为加密算法的输入,最终得到加密后的数据及消息校验码(Message Integrity Check,MIC)。

CCMP Header、MAC Header、加密后的Data以及MIC共同构成了MPDU包。

关于RSN中的加密算法TKIP及CCMP就介绍到此。由于加解密工作上由硬件来完成,读者仅需了解其中涉及的概念即可。

转载地址:http://azuqa.baihongyu.com/

你可能感兴趣的文章
UNIX进程环境
查看>>
学习面试题Day03
查看>>
我最喜欢的jQuery插件模板
查看>>
【云计算】Docker 多进程管理方案
查看>>
[LeetCode] Best Meeting Point 最佳开会地点
查看>>
基于InstallShield2013LimitedEdition的安装包制作
查看>>
【转】从Shell脚本内部将所有标准输出及标准错误显示在屏幕并同时写入文件的方法...
查看>>
iOS开发小技巧--利用MJExtension解决数据结构复杂的模型转换
查看>>
Python中的图形库
查看>>
Linux操作系统分析 ------------------中国科技大学
查看>>
Apache多站点实现原理和配置
查看>>
javascript类型系统——包装对象
查看>>
Android4.4中不能发送SD卡就绪广播
查看>>
解决:sudo: 无法解析主机:dinphy-500-310cn: 连接超时
查看>>
Asp.Net多线程用法1
查看>>
exFAT是支持Mac和Win的
查看>>
(转)postman中 form-data、x-www-form-urlencoded、raw、binary的区别
查看>>
js Date操作
查看>>
判断用户密码是否在警告期内(学习练习)
查看>>
sp_executesql的执行计划会被重用(转载)
查看>>