精述wifi、zigbee在链路层的安全原理:CCM模式

可鉴别加密工作模式-同时保护数据机密性和完整性(OCB、CCM、KeyWrap、EAX和GCM)第二部分 ​ 当算法用于同时保护数据的机密性和完整性时,应选取合适的可鉴别加密工作模式,例如OCB、CCM、KeyWrap、EAX和GCM等工作模式。以下总结来自GBT36624-2018国标文本(修改采用ISO/IEC 19772-2009)。 阅读详情

一.前言

物联网及无线传感器网络的特点都为低带宽,节点的存储空间、计算性能、能量供应都较低在链路层中,业界主流的协议包括Wi-fi(IEEE 802.11),zigbee(IEEE 802.15.4)和蓝牙(IEEE 802.15.1)。
Wi-fi和zigbee的安全机制我已经在之前的一篇博客中有较详细介绍,这两种协议在链路层都是基于CCM机制做扩展,Wi-fi称为CCMP,zigbee成为CCM*。但总归CCM机制是这两种协议链路层安全的主体部分。

然而CCM这个英文缩写的全称还比较绕,理解起来比较麻烦。
CCM的全称是Counter mode with CBC-MAC,而CBC-MAC的全称又是Cipher Block Chain-Message Authentication Code mode。。。
但总之,简单地说:
CCM模式由Counter mode(计数器模式)和CBC-MAC mode两种模式组成,其中Counter mode主要功能为加密,CBC-MAC主要功能为利用MAC对消息进行验证。(注意:此处的MAC并非平时说的网卡地址,而是消息验证码)

下面我们就来深入钻研下CCM到底是个什么样的存在。首先在第二部分介绍MAC,然后在第三部分介绍counter mode 和 CBC mode,最后在第四部分做总结。

二.MAC(Message Authentication Code)的机制及作用

MAC的机制:
通信双方互相约定一个对称秘钥s,发送方在要发送明文m尾部串接加上s形成整体(m+s),然后对整体利用hash函数形成摘要H(m+s),并放在原发送明文尾部形成整体(m,H(m+s))发送给接收方。
接收方收到消息(m,x)后,先把m和双方约定好的对称秘钥s串接并形成摘要H(m+s),再把此摘要和x进行比较。若相等,则消息的完整性得到验证;若否,则说明消息在传输过程中遭到破坏,比如中间人攻击(如篡改、伪造等)。

但有一个问题是MAC是否起到了对发送方的身份验证的作用?
在wikiPedia上,介绍MAC提供了身份验证机制,在tinySec的论文中也很多次提到利用MAC机制实现身份验证。
我认为MAC肯定实现了对传输信息的完整性验证(即验证消息在传输过程中没有遭到破坏);然后,鉴于通信双方确实提前约定好了对称秘钥,MAC的产生也是需要用到此秘钥的,所以也可认为MAC是提供了对发送方的身份验证。因为只有想要通信的人才拥有此对称密钥。
(当然如果攻击人获得了此对称秘钥,然后自己伪造消息形成MAC码,那接收方应该是判断不出来的。但这是另一回事了)

三.CTR、CBC、CBC-MAC及分块密码的工作模式

**具体到Counter Mode(CTR,计数器模式)和CBC Mode(密码块链接模式),这两种都是块密码(block cipher)中对密码块的不同处理方式。
首先,对称秘钥根据对原文的加密方式的不同,分为流密码(stream cipher)和块密码两种。**
**块密码的工作机制为把原文分成多个等长的模块(block)(通常为8或16字节),然后使用确定的算法和对称密钥对每组分别加密解密。DES,AES,RC5都是分块加密方式。
但需要加密的原文通常远长于16字节,所以使用k字节的分块加密方式需要把原文分成相等的n个k字节块,然后对每一块使用特别的方式进行替代、变化等多种迭代处理方式达到加密效果。对每个块的加密方式有很多种,如CTR,CBC,OFB,ECB等。其中,CBC是最为常用的工作模式,CTR很适合运用于多处理器的硬件上**

CTR模式为将块密码变为流密码,它通过递增一个加密计数器以产生连续的密钥流,其中,计数器可以是任意保证长时间不产生重复输出的函数,但使用一个普通的计数器是最简单和最常见的做法,CTR的加解密过程分别如图1,2所示。
CTR允许在解密时进行随机存取,并且加密和解密过程均可以进行并行处理,这是它很适合运用于多处理器硬件上的原因。

                       图1     CTR的加密过程

                     图2     CTR的解密过程

而在CBC模式中,每个明文块先与前一个密文块进行异或操作后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块,明文中的微小改变会导致其后的全部密文块发生改变。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。
它的主要缺点在于加密过程是串行的,无法被并行化,而且消息必须被填充到块大小的整数倍。解决后一个问题的一种方法是利用密文窃取。
但是CBC模式在解密时是可以并行化的。密文中一位的改变只会导致其对应的明文块完全改变和下一个明文块中对应位发生改变,不会影响到其它明文的内容,从两个邻接的密文块中即可得到一个明文块。

                       图3     CBC的加密过程

                       图4     CBC的解密过程

四.总结

CCM机制是保障Wifi和zigbee在链路层安全的关键。
CCM机制由counter mode 和 CBC-MAC mode两部分组成。这两种模式都是分组加密中对分组块的不同处理方式。

counter mode的作用为对传输数据进行加密,以保障数据在传输过程中不会被恶意攻击者窃听;
CBC-MAC mode的作用为对传输数据进行验证,以保障所接收数据确实来源于通信的另一方以及检验数据在传输过程中是否有丢失。
此处的MAC为message authentication code(消息验证码),并非我们平时说的MAC地址(链路层网卡地址,media access control)。

具体机制可以看第二部分和第三部分。

(参考资料:
虞志飞,ZigBee 技术及其安全性研究,计算机技术与发展,2008 年8 月;
任秀丽,ZigBee技术的无线传感器网络的安全性研究,仪器仪表学报,2007年12月
Wikipedia)

本文转载自:https://segmentfault.com/a/1190000006255737

信息安全-块对称加密 AES ECB模式 CBC模式 每次加密都会随机产生一个不同的比特序列来作为初始化向量; 无法直接对中间的明文分组进行加密,如要生成密文3,必须要凑齐明文分组1、2、3,一旦加密时中间有一个比特缺失了,也会导致明文分组的长度发生变化,这样缺失比特的位置之后的密文分组也将全部无法解密了; 解密过程中,只要密文分组的长度没有变化,中间有一个分组损坏了,解密时最多只有两个分组受到数... 阅读详情

相关推荐

网络安全攻防:ZigBee安全

1. ZigBee简介ZigBee(又称紫蜂协议)是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。ZigBee来源于蜜蜂的八字舞,由于蜜蜂(Bee)是靠飞翔和“嗡嗡”(Zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的、低功耗的近距离

an520_的博客 3397

SM4分组密码算法介绍

SM4无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位,SM4算法主要包含5种基本模式:ECB、CBC、CFB、OFB,CTR(后4种都是ECB算法模块衍生而来);与MAC结合还诞生了GCM,CCM等高级模式。CCM是CTR加密模式和CMAC认证算法的混合使用,常用在需要同时加密和认证的领域,比如WiFi安全中的WPE协议,它就使用了AES-CCM模式,所有SM4衍生的算法模式都基于SM4的基础轮函数。 SM4分组密码算法是一个迭代分组密码算法,由加解密算法和密钥扩展算法组成。SM.

leho666的博客 2万+

zigbee Mac 模式

Connect MAC模式是实现IEEE802.15.4兼容/互操作设备的通用工具,具有Connect协议栈的所有API功能和特性。MAC模式适用于需要完全符合IEEE 802.15.4的应用。在射频范围内,设备支持相互连接。该模式的网络层未实现,因此在需要时,必须由应用程序实现网络层。

wss_linux 427

GBT36624-2018《可鉴别的加密机制》笔记之三 机制2:CCM

CCM是加密认证模式,CCM = CTR加密 + CBC-MAC认证。

专注商用密码落地,方案与技术解析,分享密码技术与安全经验。 1万+

Nordic开发者必备:SEGGER Embedded Studio免费许可证申请与配置全攻略

本文为Nordic芯片开发者提供了SEGGER Embedded Studio(SES)集成开发环境的详细配置指南。内容涵盖免费许可证的合规申请流程、项目创建、Nordic SDK集成,以及编辑器优化、构建调试配置、RTT日志输出等核心功能的高效设置,旨在帮助开发者构建深度优化的专业开发环境,显著提升嵌入式开发效率。

cheese的博客 353

耶鲁大学《博弈论》课程——逆向归纳

耶鲁大学《博弈论》课程——逆向归纳

ZYLer_的博客 7870

对比Wifi、Zigbee并分析两者的安全机制

1.zigbee wifi 蓝牙的对比 zigbee的优点是可以自组网,可连接设备数量多,一个zigbee网络内最多可达65500个节点,低功耗(因为传输速率低,所以芯片功耗低),低成本。zigbee现主要用于无线传感器网络,如水质监测,环境控制等工业环境中。zigbee的不足是传输速率比较低,不适合视频等大流量的应用。而且zigbee网...

weixin_34310369的博客 724

大数据架构中的数据血缘追踪技术解析

数据血缘(Data Lineage)是指数据从源头到目标的完整流转路径,它记录了数据在整个生命周期中的变化过程。在大数据架构中,数据血缘追踪技术已经成为数据治理的核心组成部分。本文旨在全面解析数据血缘追踪的技术原理、实现方法和应用实践,帮助读者深入理解这一关键技术。本文将从基础概念入手,逐步深入到技术实现细节,最后探讨实际应用和未来趋势。数据血缘的核心概念和技术原理数据血缘的数学模型和算法实现实际项目案例和代码解析主流工具和解决方案比较未来发展方向和技术挑战。

架构师的AI之路,分享AI应用开发架构的学习与实践。 688

2024年最新密码学与物联网_移动物联网和密码学,2024年最新头条网络安全面试题

有些物联网设备选择加密自己的固件,网上能下载到固件是加密过的,用以提高分析门槛,只有在刷机时由升级程序解密写入Flash。一些设备会加密bootloader,甚至调试接口也是需要认证,此类设备通常对安全性要求很高,另一些更复杂设备会使用硬件加密,加密模块由单独的芯片提供。判断方法可能很多,binwalk解析不出来,没有有意义的字符串。从密码的角度来看,因为密文是随机的,所以加密后的固件中包含的0 bit和1 bit个数相近(注意去掉固件头信息),所以如果01相近,该固件很有可能是加密的。

2401_84520118的博客 983

【爬虫】Python实现爬取淘宝商品信息(超详细)

项目基于Python的第三方库Selenium模拟浏览器运行、PyQuery解析和操作HTML文档,获取淘宝平台中某类商品的详细信息(商品标题、价格、销量、商铺名称、地区、商品详情页链接、商铺链接等),并基于第三方库openpyxl建立、存储于Excel表格中。# 全局变量count = 1 # 写入Excel商品计数# 启动ChromeDriver服务# 关闭自动测试状态显示 // 会导致浏览器报:请停用开发者模式# 把chrome设为selenium驱动的浏览器代理;# 窗口最大化。

qq_46315152的博客 4万+

AI辅助游戏开发实战:Kimi K3提升Unity开发效率与代码质量

在游戏开发领域,有限状态机(FSM)是构建角色AI行为逻辑的核心设计模式,它通过定义明确的状态和转换条件,使游戏实体能够智能地响应环境变化。其原理在于将复杂的行为分解为离散的状态节点,并通过事件驱动状态切换,从而实现清晰、可维护的AI架构。这项技术的价值在于显著提升了游戏角色的行为真实感和开发效率,被广泛应用于NPC行为控制、角色动画管理、UI流程等场景。随着AI编程助手的兴起,开发者现在可以借助如Kimi K3这类工具,通过自然语言指令快速生成和优化FSM等复杂系统的代码框架,将更多精力投入到核心玩法与性

weixin_30430677的博客 407

2024年最新密码学与物联网_移动物联网和密码学(1),完美讲解内存缓存LruCache实现原理

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!

2401_84520118的博客 1049

华为OD机考双机位C卷 - 最左侧冗余覆盖子串 (Java)

华为OD机考双机位C卷 - 最左侧冗余覆盖子串 (Java), 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 58

2024年密码学与物联网_移动物联网和密码学(1),再不刷题就晚了

在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。许多无线协议安全(加密)选项是可选的,由于很多设备,尤其智能家居,存放位置私密,不是在家就是随身携带,就有种不需要开启安全机制的错觉,随着近源渗透带来不断攀升的安全风险,必要的保护机制才是明智之举。物联网设备五花八门,认证方式也可以多种多样,比如一个智能门锁,可以输密码(1),可以用手环(2),还可以用指纹(3)。

2401_84264244的博客 957

MuJoCo XLA (MJX) 强化学习人形机器人四足机器人入门教程(三)

MJX 是用 JAX 编写的 MuJoCo 实现,可以在 GPU/TPU 上进行大批量训练。在本笔记本中,我们将演示如何使用 MJX 训练 RL 策略。在开始大量 RL 工作负载之前,我们先从一个简单的示例开始!xml = """"""接下来,我们使用 MJX 将 MuJoCo 模型和数据放到 GPU 设备上。下面,我们将打印来自 MuJoCo 和 MJX 的 qpos。

2506_90492529的博客 2472

openbmc mctp i3c适配步骤

本文介绍了在Intel OKS平台下,BMC作为I3C从设备如何适配MCTP over I3C的实现方法。主要内容包括:1)关键术语解释,如MDB(Mandatory Data Byte)值为0xAE,DCR(Device Characteristics Register)和BCR(Bus Characteristics Register)的设置;2)适配流程说明,包括BMC作为控制器主节点分配地址后成为MCTP端点,CPU作为总线所有者的角色转换;3)测试验证步骤,展示通过mctp-client工具发送指

wit_yuan的专栏 132

鸿蒙开发进阶(HarmonyOS )对称密钥加解密算法规格

对于每种算法采用支持的加密模式,将会在具体的每个算法规格中介绍。

m0_67143533的博客 1110

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

国密(GmSSL)算法SM4之GCM模式

本文将介绍如何使用java实现SM4算法的GCM模式加解密,并提供相应的代码示例。加解密底层实现基于gmssl c 实现,通过java native方式调用。参考关志老师的国密算法实现:https://github.com/guanzhi/GmSSL本文是国密算法java实现的一系列文章内容之一。欢迎各位家人们观赏并提供宝贵意见,如您对此文章感兴趣欢迎关注和交流。GmSSL密码库的Java语言封装。

luobobaicaitou的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SM4算法工作模式(ECB、CBC、CFB、OFB、CTR、GCM、CCM 、XTS):原理、特点与应用

SM4 的 8 种工作模式,本质是为不同场景设计的 “安全工具”——ECB 是基础但脆弱的 “入门工具”,CBC、CFB、OFB 是适配传统场景的 “常规工具”,CTR 是追求性能的 “加速工具”,GCM、CCM 是兼顾安全与功能的 “全能工具”,XTS 是专为存储优化的 “专用工具”。在实际应用中,需结合业务场景的安全性、性能、兼容性需求,选择合适的模式,才能让 SM4 算法的安全价值最大化。模式名称模式类型核心特性并行性(加密 / 解密)安全能力(机密性 + 完整性 / 防篡改)关键要求。

6081

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

分组密码算法的工作模式

因为当前的SM4算法的软件实现优化主要是通过SIMD指令并行处理多个分组来达到速度提升的,而这一优化策略无法应用于CBC模式当中,目前即使是优化过的SM4软件实现,在大多数计算环境中CBC模式下能够处理的数据量不超过100MB,而CTR模式等可以兼容分组并行处理的工作模式,则甚至可以达到600MB/s以上的处理速度(单线程下),因此SM4-CCM模式中,CBC-MAC的计算会成为整个算法甚至整个业务场景的性能瓶颈。综上,笔者推荐在CBC,CFB,OFB以及CTR模式中,优先选用CTR模式。

共勉 1717

【IoT】加密与安全:对称加密算法 AES 原理与用途解析

1、AES 简介 高级加密标准 (AES,Advanced Encryption Standard),AES 加密算法涉及 4 种操作: 字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。 下图给出了 AES 加解密的流程: 从图中可以看出: 1)解密算法的每一步分别对应加密算法的逆操作; 2)加解密所有...

产品线负责人 3619

java集成国密SM4

在项目中有接触到使用国密SM4进行数据加密,因此整理一份java实现国密SM4的文档;关于SM4是对称加密算法,因此只需要一对密钥即可;根据不同的工作模式,需要提供额外的参数;

Cjh20pan的博客 2810

密码库LibTomCrypt学习记录——(2.13)分组密码算法的工作模式——CCM加密认证模式

CCM CCM是加密认证模式,CCM = CTR加密 + CBC-MAC认证。CCM模式看起来比较繁琐,尤其在参数的哦选择上,限制不断。很可能在将来某天被别的方法替代。 参考文献 NIST SP 800-38C. 加密与MAC生成流程 准备: 加密算法CIPHER 密钥K; counter generation函数 formatting函数 MAC的比特长度Tlen 输入 随...

专注商用密码落地,方案与技术解析,分享密码技术与安全经验。 7万+

密码学基础

一、密码学的四个安全特性 机密性,完整性,认证,不可否认。 对称密码算法 加密与解密的密钥相同,分为分组密码算法与序列密码算法。 2.1 分组密码 对明文进行分块加密,优点是加密速度快,安全性高,但是密钥管理困难 常见的分组密码算法:DES,3DES,AES,SM4。 3DES的加密方式是使用DES对明文数据进行加密解密再加密,如果使用的三个密钥完全相同时,向下兼容DES。 DES算法 AES算法 SM4算法

SinceZed的博客 2384

密码学工具1——对称加密算法(AES总结最全版)

AES 数据加密是一种在数学上更高效、更优雅的加密算法,由美国国家标准与技术研究院于 2001 年推出,用于替代DES算法。作为高级加密标准,AES提供三种密钥长度,分别是128 位、192 位和 256 位,密钥长度越高,破解系统或破解系统所需的时间就越多。ECB,电码本模式(Electronic Codebook Book Mode)CBC,密码分组链接模式(Cipher Block Chaining Mode)

WillsonZ的博客 7098
上一篇: 分组密码加密的几种模式
下一篇: linux C/C++服务器后台开发面试题总结
LinuxG_G
博客等级 码龄15年 58粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值