0. 准备知识

0.1 一些定义

AAD:additional authentication data

AES:Advanced Encrypthon Standard,作为数据块加密的标准,要求输入为一个key与一个128bit的数据块(data block)。

1. CCMP是什么

CCMP全称是CTR with CBC-MAC protocol(CounTeR with Cypher Block Chaining Message Authentication Code protocol),是RSNA中用于数据私密性以及完整性的协议之一。CCMP协议基于CCM算法,CCM算法基于AES标准

CCMP提供data confidentiality,authentication,integrity以及重放保护(replay protection)。

通常使用128bit 密钥,记为CCMP-128,其中MIC为8字节。

CCM每个session需要一个新的TK。每个frame需要一个唯一的nonce(CCMP用48bit的packet number(PN)实现)。PN不能重复。

如图1,CCMP-128扩展了原始的MPDU 16个字节,8个是CCMP头,另外8个是MIC。CCMP头由PN,ExtIV以及Key ID组成。

Fig.1 CCMP 帧格式[1]

Notes:

a. WEP流程结束后,MPDU相比较原始的MPDU增加了8字节。其中WEP header 为4字节,其中3个字节为IV,6bit保留,2bit为key id;ICV4字节

b. TKIP则增加了20字节。TKIP header为8字节,前4字节模拟WEP的header(TSC,WEP seed固定位),WEP header中保留的6bit有一个bit使用为ExtIV标志位,表示有扩展IV的存在,剩下5bit仍保留,后4字节为扩展IV,即TSC的高4字节;MIC为8字节;ICV占4字节

c. CCMP增加了16字节,CCMP header为8字节(如图1);MIC 8字节;不再使用ICV

各协议Header的对比如表1。TKIP中的TSC既扩充了WEP中的IV,又充当了防止重放攻击的计数器;CCMP则使用了PN防止重放攻击。

Table.1 Header比较

2. CCMP加密流程

Fig. 2 CCMP加密流程[1]

如图2,CCMP加密流程可以描述如下:

a. PN递增

b. 根据MPDU的MAC header构造AAD。

c. 构造Nonce。由PN,A2以及priority构造。A2是MPDU Address 2。

d. PN和key id放入CCMP header

e. TK,AAD,nonce,MPDU做CCM算法,得到加密的data和MIC。

f. MAC header,CCMP header以及加密的data、MIC组装得到CCMP MPDU。

那么,CCM算法加密流程又是怎样的?AES标准要求输入key和128bit的数据块处理得到加密后的数据块;而CCM的做法则是(如图3):1)首先将数据(图中的Message)按照128bit分块(如果不足则需要填充)。2)AES标准对Counter进行处理。3)得到的结果与数据块再做异或得到最终的Ciphertext。这样一来,即使数据块中的数据相同,最终的加密块也不会一样。

Fig. 3 CCM加密流程[2]

3. 小结

使用CCMP加密流程的个人无线网络就是常见的WPA2-PSK加密网络,其安全性远比WEP的改进协议TKIP来的高。而现在市面上的设备基本都支持WPA2了,因此家庭无线网络还是建议选择WPA2。

4. 参考资料

[1]IEEE Standards Association. IEEE Std 802.11-2016, IEEE standard for local and metropolitan area networks—part 11: Wireless LAN medium access control (MAC) and physical layer (PHY) specifications[J]. 2016.

[2]http://etutorials.org/Networking/802.11+security.+wi-fi+protected+access+and+802.11i/Part+II+The+Design+of+Wi-Fi+Security/Chapter+12.+AES+CCMP/AES+Overview/

[3]https://blog.csdn.net/lee244868149/article/details/52733277

[4]https://www.controleng.com/articles/wireless-security-ieee-802-11-and-ccmp-aes/

学一点Wi-Fi: CCMP相关推荐

  1. 大学生学python到底有没有有-为什么我会想建议每个大学生都学一点编程?

    原标题:为什么我会想建议每个大学生都学一点编程? 一个今年上岸.成功录取到中山大学的同学,昨天疯狂轰炸我: 他没想到导师主动联系他,让他参加非常重要的课题研究. "当初抱着试一试的心态学的编 ...

  2. 人人都要学一点深度学习(1)- 为什么我们需要它

    人人都要学一点深度学习(1)- 为什么我们需要它 版权声明 本文由@leftnoteasy发布于 http://leftnoteasy.cnblogs.com, 如需全文转载或有其他问题请联系whee ...

  3. 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践

    学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 原文 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 感谢大家在上一篇 学一 ...

  4. wifi频率和zigbee干扰_浅谈ZigBee和Wi—Fi的共存和干扰

    龙源期刊网 http://www.qikan.com.cn 浅谈 ZigBee 和 Wi - Fi 的共存和干扰 作者:姜伟 朱凯 刘童 来源:<科技视界> 2013 年第 16 期 [摘 ...

  5. 串行异步通信_每天学一点/ 电工:PLC:串行通信

    每天学一点/ 电工案例:西门子PLC STEP7-SMARTPLC:串行通信 1. 并行通信与串行通信 并行通信以字节或字为单位传输数据,已很少使用.串行通信每次只传送二进制数的一位,最少需要两根线就 ...

  6. 比较802.11ac(Wi‑Fi 5)和802.11ax(Wi‑Fi 6)

    MIMO 802.11ac仅在下行模式下,支持多用户MIMO. 802.11ax不仅下行链路:也在上行链路支持MIMO功能,因此多个用户可以同时上传视频. 调制方法 802.11ax具有更高的调制方案 ...

  7. 学一点django基础

    学一点Django基础 目录 文章目录 目录 一.Django框架的介绍 Django的安装 Django框架开发 创建项目的指令 Django项目的目录结构 URL 介绍 视图函数(view) Dj ...

  8. 【Arcgis每天学一点】从无人机航测的DSM上提取准确的高程点

    最近,想着要分享一些Arcgis软件的使用心得,但却一直无从入手,不知道写点什么.实际上在各大平台上已经有了大量的Arcgis教程,不管对于初学者,还是有点基础想要进阶的,都可以找到很多的学习资源. ...

  9. 学一点SQL注入基础

    文章目录 学一点SQL注入基础 思维导图 注入原理 MySQL三种注释 MySQL三种注入方式 联合查询注入 确定字段数 常规步骤 sqlmap的使用 跨库注入 MySQL注入获取最高权限-文件操作 ...

  10. 学一点Redis基础

    文章目录 学一点Redis基础 **Redis介绍** **安装** **配置文件详解** **数据类型** **字符串类型(string)** **==位图操作bitmap==** **列表数据类型 ...

最新文章

  1. XML配置文件的命名空间与Spring配置文件中的头
  2. oracle跨越千年处理
  3. DockOne微信分享(一三一):Juice——一种基于MesosFramework的任务云框架
  4. python代码编辑器、最好_这十大文本/代码编辑器最好用
  5. hybris recode
  6. Anonymous Shared Memory android 匿名共享内存
  7. 使用latex分割与合成PDF
  8. 计算机辅助工程分析及应用论文,毕业论文:《浅谈计算机辅助工程(CAE)》.doc...
  9. cpu顶盖怎么看步进_【有趣】第19期:如何从CPU顶盖获取有用信息(上)?
  10. 阿里云推送ReactNative简单集成
  11. Codefroces 760 B. Frodo and pillows
  12. 天天向上python题目答案_Python入门习题3.天天向上
  13. PPT文件带有打开密码怎么解决
  14. 妹子:我都这样给你讲类加载器了,还不懂!
  15. ADT: Graph 图
  16. python设计模式篇3---创建型模式
  17. 关于 华为freelace蓝牙耳机 配对电脑的教程
  18. 胆汁酸代谢物质靶向代谢检测
  19. Flash 安装失败
  20. 深度学习中的embedding

热门文章

  1. shell脚本中编写SQL中 以传参(${accdate})的方式 动态:求 前12个月的日期和求 前一周(7天的日期)
  2. 三菱系统m70计算机连接错误,这可能是最齐全的三菱M70错误代码大全了
  3. uniapp之adbWIFI调试
  4. 「化学」相对分子质量
  5. 小米游戏本退出安全模式/win10安全模式密码
  6. 用scrapy+selenium+Firefox爬取腾讯新闻
  7. 普通程序员怎么去【小】厂面试?
  8. Android app内截屏监听
  9. 2021最新短信验证码接收平台收费价格对比「二」:亿佰云、秒嘀科技、极光短信、华信云通信
  10. Windows 打开本地组组策略编辑器