首页 理论教育 ZigBee技术中的安全和加密措施

ZigBee技术中的安全和加密措施

时间:2023-06-29 理论教育 版权反馈
【摘要】:SSP是通过ZDO进行初始化和配置的,要求实现高级加密标准。此处实施的安全措施采用了一个会话密钥,它只能被另一个拥有该钥匙的设备所认证和解密。ZigBee联盟添加了一个网络层安全选项以便加入在MAC层无法实现的功能,包括拒绝不能被验证的数据帧的能力。安全方案的名称表明对称加密算法、模式和完整性码的长度。对于ZigBee技术标准中的所有安全方案,使用的都是高级加密标准算法。

ZigBee技术中的安全和加密措施

在ZigBee技术中,采用对称密钥的安全机制,密钥由网络层和应用层根据实际应用需要生成,并对其进行管理、存储、传送和更新等。

安全机制由安全服务提供层提供。然而值得注意的是,系统的整体安全性是在模板级定义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安全。

每一层(MAC、网络或应用层)都能被保护,为了降低存储要求,它们可以分享安全钥匙。SSP(Security Service Provider,安全服务提供)是通过ZDO(ZigBee Device Object)进行初始化和配置的,要求实现高级加密标准(AES)。ZigBee规范定义了信任中心的用途。信任中心是在网络中分配安全钥匙的一种令人信任的设备。

大部分ZigBee解决方案都需要某种级别的安全性。ZigBee提供了一套基于128位AES算法的安全类和软件,并集成了802.15.4的安全元素。ZigBee协议栈类为MAC、网络和应用层定义了安全性。它的安全服务包括针对关键进程建立设备管理框架保护的方法。

如果开发人员选择使用一个公共的ZigBee类,那么就已经为其应用做出了安全决策,因为在该类中已经对安全性进行了预定义。即使开发人员打算创建一个专有类的应用,他仍可以在若干个ZigBee预定义的栈类中挑选一种安全模式。

在这个层上,开发人员需要决定这样一些问题:是否需要对数据帧的载荷进行加密,以及附着在数据帧末尾的认证码长度(8 bit、16 bit或64 bit)。基本的应用也许不需要认证,因而可以受益于一个较小的数据包载荷。这些数据完整性方面的选项使得开发人员可以在消息保护和额外开销之间进行权衡。

开发人员还必须决定在哪个层上施加安全机制,即是在MAC层、网络层还是应用层。如果应用需要尽可能强大的安全保护,那么就在应用层保护它。此处实施的安全措施采用了一个会话密钥,它只能被另一个拥有该钥匙的设备所认证和解密。这种方法既能防止内部攻击也能防止外部攻击,但需要更多的存储器来实现它。

在MAC层和网络层的安全性实质上服务于相同的目的:确保单跳传输的安全。MAC层仲裁对共享媒介的访问并控制相邻设备之间的单跳传输。ZigBee联盟添加了一个网络层安全选项以便加入在MAC层无法实现的功能,包括拒绝不能被验证的数据帧的能力。这两个安全层采用的是该网络上所有ZigBee设备都共享的全局密钥。MAC层和网络层的安全性适合需要防止对特定基础设施攻击的应用,如防止一个非法设备恶意侵入网络。如果开发人员需要在两个设备之间建立路由,而该网络层的框架又是不安全的,那么非法设备可能会截取数据包。

设备在ZigBee安全模式下工作时,可能使用安全方案。安全方案由一组在MAC层的帧上所执行的操作组成,以提供安全服务。安全方案的名称表明对称加密算法、模式和完整性码的长度。对于ZigBee技术标准中的所有安全方案,使用的都是高级加密标准(AES)算法。每一个实现安全的设备都支持AES-CCM-64安全方案,并且可选择附加或者不附加其他安全方案。

ZigBee技术规定的安全方案将使用以下几种方法:位顺序、串接、整数编码和计时器增加、计数模式(CTR)加密、密码链块-信息鉴权码(CBC-MAC)验证、计数模式和密码链块-信息鉴权码(CCM)的加密和验证、高级加密标准(AES)加密、个域网信息库(PIB)的安全要素。

下面我们来看看什么是AES高级加密标准。(www.xing528.com)

AES的全称是Advanced Encryption Standard,即高级加密标准。该项目由美国国家标准技术研究所(NIST)于1997年开始启动并征集算法,在2000年确定采用Rijndael作为其最终算法,并于2001年被美国商务部批准为新的联邦信息加密标准(FIPS PUB 197)。

FIPS PUB 197中说明该标准的正式生效日期是2002年5月26日。NIST每5年对该标准重新评估一次。

AES采用的Rijndael算法的设计者是Joan Daemen(Proton World Int.l)和Vincent Rijmen(Katholieke Universiteit Leuven,ESAT-COSIC),算法的名字来自两人名字中字母的组合。Rijndael是一个对称的分组加密算法,分组长度和密钥长度都可变,可分别单独指定为128 bit、192 bit和256 bit。但AES中的数据分组长度只采用了Rijndael中的128 bit,而不使用192 bit和256 bit,密钥长度和Rijndael的一致,也分别为128 bit、192 bit和256 bit,并分别被称为AES-128,AES-192,AES-256。

AES和传统的分组密码算法不同的是它不采用Feistel结构(DES中采用),而是采用了3个不同的可逆一致变换层:线性混合层、非线性层、密钥加层。

70年代的数据加密标准为DES。在安全领域,一个协议的生命周期比较长一般来说是件好事。但是,在数据加密标准的案例中,这样长的生命期并不是件好事。DES的瑕疵是各种类型的攻击利用的安全漏洞,其较短的密码长度意味着蛮力攻击可以在很短的时间内奏效。

高级加密标准算法从很多方面解决了这些令人担忧的问题。实际上,攻击数据加密标准的那些手段对于高级加密标准算法本身并没有效果。如果采用真正的128 bit加密技术甚至256 bit加密技术,蛮力攻击要取得成功需要耗费相当长的时间。

虽然高级加密标准也有不足的一面,但是,它仍是一个相对新的协议。因此,安全研究人员还没有那么多的时间对这种加密方法进行破解试验。我们可能会随时发现一种全新的攻击手段攻破了这种高级加密标准。至少在理论上存在这种可能性。

当你考虑性能需求的时候,高级加密标准具有理论上的优势,因为这种算法效率更高,特别是与3DES加密标准相比更是如此。然而,需要指出的是,在这种协议应用的早期阶段,在硬件中对这种加密算法的支持还没有像硬件支持老式的3DES算法那样成熟。因此,你可能会发现在某些平台上,3DES在数据吞吐量方面仍比AES-256速度快。在有些平台上,AES-256的速度快一些。正如你怀疑的那样,AES-128总是比AES-256速度快一些。在对各类厂商的市场营销材料进行了快速调查之后发现,数据吞吐量的差别通常在10%至30%之间。

所以,同以往一样,各个机构采用这个新标准的合适的时间是不同的。一些机构认为,额外的安全功能值得牺牲一点性能。有些机构需要做好预算才能购买新的支持高级加密标准的硬件产品。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈