这是完全由英文文档翻译的,译得 不好,紧作为自己的学习笔记
ZigBee集群库由单独的章节组成,如本章。有关所有章节和文档的列表,请参见ZigBee集群库中列出的文档列表和所有章节。章节之间的引用使用X.Y ,表示X是这一章,Y是这一章的子部分。对外部文档的引用包含在第1章中,并使用[Rn]符号表示。
11.1 介绍
11.1.1目的:
本章的目的是为空中图像的升级提供详细的技术要求。
本章介绍了使用现有的OTA升级集群实现OTA升级集群的清晰方法
ZigBee栈、ZigBee集群库和这个OTA集群。
空中升级集群的主要目标是为来自不同制造商的设备提供一种可互操作的方法来升级彼此的形象。此外,OTA升级集群定义了一种机制,通过提供一个解决方案来访问安全凭据、日志和配置文件类型。
11.1.2范围:
本章只描述那些需要实现ZigBee OTA升级的特性(集群)认证。其他可选特性,包括使用组播发送升级消息和(升级)克隆,将不在本文档中讨论。
目前,为了支持ZigBee OTA升级集群,只需要应用程序引导加载器支持。
目前不支持MAC引导加载程序升级。
11.1.3术语:
应用标准或标准-这是一个名词,指的是任何应用标准规范,其中包括该规范。例如:ZigBee家居自动化、ZigBee智能能源等。
11.2一般的描述
11.2.1介绍:
现有的OTA升级方法是特定于平台的,而不是OTA可互操作的,也不提供支持多种平台和设备组合的升级网络的公共框架
无线个域网栈供应商。
本章的目的是为部署在现场的设备提供一个可互操作的OTA升级新图像。只要该设备支持OTA升级集群,并且通过了批准的测试机构的认证,其镜像就可以由同样或不同的制造商的另一台设备升级,该制造商也实施并认证了OTA升级cluster。
OTA升级集群(cluster)还要求,为了支持OTA升级,设备需要安装一个应用程序引导加载程序,以及足够的内存(外部或内部)来存储新加载的映像。应用程序引导加载程序使用正在运行的ZigBee堆栈和应用程序来检索和存储新映像。根据制造商的不同,映像可能由引导加载程序映像、ZigBee栈映像或应用程序映像的补丁组成。无论包含发送到节点的OTA升级映像的内容是什么,它都与ZigBee OTA集群无关,它都与ZigBee OTA集群无关,并且超出了范围。
要使用应用程序引导加载程序,设备需要有足够的内存(内部或外部)来存储新下载的OTA升级映像。这样,在成功下载新映像之前,不会覆盖当前运行的映像。它还允许节点在其内存中保存镜像并将该镜像转发到另一个节点。当设备决定下载新的OTA升级映像以及当设备决定切换到运行新映像时应用程序引导加载提供了灵活性。
由于引导加载是在应用程序级别完成的,所以它自动利用ZigBee网络层和应用程序子层(APS)已经提供的各种特性,包括引导加载多个跳转之外的设备的能力、消息重试以提高可靠性和安全性。它还允许网络在引导加载过程中继续正常运行。此外,它支持引导加载睡眠(RxOnWhenIdle=FALSE)设备。应用程序引导加载消息构建在典型的ZigBee消息之上,附加了ZigBee集群库(ZCL)头和payload,以及ZigBee OTA集群特定的payload。当然,包含此规范的应用程序标准可能会添加此处未定义的需求和依赖项。该标准不应通过将此处的特性从强制更改为可选来放松需求,但它可以指定它认为是强制的特性,这些特性在本规范中是可选的。例如:ZigBee智能能源标准有特定的OTA集群安全特性要求,这些要求在ZSE规范中被定义为强制性的,但在这里是可选的
11.2.2 cluster 列表
升级客户端是一种需要升级新映像的设备。升级服务器是一个设备,它有要发送给客户机的新映像。本文档将指定客户机如何发现服务器、客户机和服务器之间的空中消息格式,以及服务器发出信号让客户机切换到运行新映像的方法。
升级服务器可能有来自不同厂商的多个OTA升级映像。升级服务器如何接收这些OTA升级映像以及如何存储和管理这些映像不在本文的讨论范围之内。除了向客户机设备传输新固件映像的典型用例之外,OTA升级集群还可以用于传输特定于设备的文件类型,如日志、配置或安全凭证(从SE 1.0或SE 1.1升级到SE 2.0需要这些文件类型)。集群在OTA头和一组可选命令中提供了灵活性,这些命令使得传输此类文件类型成为可能。
11.3OTA 升级
11.3.1 概括:
有关定义集群体系结构、修订、分类和标识等的一般集群概述,请参见第2.2节。
集群提供了一种通过OTA消息升级网络设备的标准方法。因此,升级过程可以在来自不同制造商的两个设备之间执行。为了成功地实现集群,设备需要有应用程序引导加载程序和额外的内存空间。
当更新镜像可用时,服务器有责任通知客户机。客户端可以升级或降级。升级服务器知道要升级哪个客户机设备以及升级到哪个文件版本。升级服务器可以通过后端系统得到此类信息的通知。对于ZR客户机,当有可用的新的镜像时,服务器可能会发送一条消息通知设备。假定ZED客户机在未醒来时,是不会接收到新的可用的镜像通知。所有客户机(ZR和ZED)都应该定期查询(轮询)服务器,以确定服务器是否为它们提供了镜像更新。镜像通知是可选的。
集群的实现方式是客户端、服务端同时在ZED和ZR设备上工作。对于所有服务器设备,必须能够处理轮询,而能够发送通知是可选的。因此,所有客户机设备都必须能够使用轮询机制向服务器发送查询消息,以便查看服务器是否有新文件。轮询机制还将更少的资源放在升级服务器上。理想的状态是让服务器尽可能少地维护状态,因为当网络中有数百个客户机时,这将会扩展。升级服务器不需要跟踪特定客户端接收到的镜像片段;相反,客户应该这样做。最后,poll使需要特别设置以准备接收镜像的设备更有意义,比如解锁flash或为新图像分配空间。
11.3.1.1历史版本
global mandatory ClusterRevision属性应反映已实现集群规范的修订,该规范中列出的一个或多个集群标识符标识了已实现集群规范(参见2.3.6.1)
11.3.2安全性
OTA升级集群的安全性包括以下领域:镜像验证、镜像传输和镜像加密。应用程序标准中的安全机制规定了空中映像升级的安全级别。例如,具有严格安全策略的应用标准(如智能能源)可能在网络层和APS层都支持镜像签名和加密;而其他应用程序标准可能只支持网络加密。每个应用程序标准必须决定使用OTA升级集群所需的安全策略列表。
11.3.2.1术语:
安全有很多方面。这些可以分解为以下几个领域:机密性、完整性、身份验证、可用性和不可否认性。授权和审计也可以视为安全性的一部分。
机密性(Confidentiality)--这是一个要求,即任何第三方都不能读取不适合该方的数据。这将在下面的镜像加密中讨论。
完整性(Integrity)--这是安全性的属性,在此属性中,接收方可以验证数据在最初由发送方分发到预期接收方接收期间没有被修改。可以检测到第三方对数据的修改。这将在下面的图像验证中讨论。
身份验证(Authentication)--此属性可由预期的接收方验证数据发送方的身份。这将在下面的图像验证中讨论,
有效性(Availability)--这指的是资源在需要时可用,并且不能被攻击者不公平地使用的属性。OTA升级集群没有解决这个问题;因此,将不再进一步讨论这个问题。
Non-repudiation--这是指发送方/接收方不能否认发生了安全交换的属性。OTA升级集群没有解决这个问题;因此,将不再进一步讨论这个问题。
11.3.3镜像验证
11.3.3.1真实性和完整性的非对称验证:
强烈建议使用一种方法来验证引导加载映像的真实性和完整性。这通常通过非对称加密技术(即公钥/私钥)实现,其中只有一个设备能够创建数字签名,但是许多设备能够验证它。引导加载映像可以由制造商的私钥签名,并将该签名附加到传输到设备的映像上。一旦收到完整的图像,就使用签名者的公钥验证签名。
设备可以使用创建签名的设备的证书(公钥)预安装,也可以通过无线方式接收证书。如何获取签名者的安全数据被认为不在OTA升级集群的范围内,而且是特定于制造商的。当通过空中发送签名者证书而没有预先安装时,建议使用来自可信源的加密来传输证书,以减少攻击者将自己的签名者证书注入设备的机会。
内置验证机制的镜像可以通过不安全的通信机制传输,同时仍然保持其真实性和完整性。事实上,升级映像的发起者(制造商)很可能不会直接连接到任何ZigBee网络,因此在到达ZigBee网络之前,将升级映像分发到其他媒介(如internet)。在这种情况下,图像验证独立于通信媒介是至关重要的。任何篡改签名或数据本身的尝试都必须被检测到,并将导致目标设备拒绝升级映像。攻击者制作自己的签名图像并试图让其被接受,将被拒绝,因为该图像不会由制造商的签名机构签名
确定图像验证的最低要求取决于每个应用程序标准。例如:对于ZigBee智能能源标准,NEMA SG-AMI 1-2009已经包含了一组最低的安全要求。OTA升级集群将通信用于基本图像验证的方法。个别制造商可以自由地对此进行扩展,并提供自己的扩展。这些扩展超出了OTA升级集群的范围。
如果没有非对称加密技术,设备对图像的身份验证能力将受到限制。镜像可以使用对称密钥加密,这样只有那些需要解密图像的设备才能访问密钥。然而,该系统的安全性依赖于所有访问对称密钥的设备的安全性。
11.3.3.2 通过哈希值验证完整性
对于不需要非对称验证方法的应用标准,OTA图像的真实性无法验证。但是,可以使用第11.7.2节中的哈希值方法验证OTA图像的完整性。将不会涉及签名者证书或任何签名
11.3.4镜像传输
当有一种方法可以验证引导加载映像的真实性时,以安全方式传输映像对完整性和真实性几乎没有提供额外的安全性。安全传输提供的是一种方法,用于通信有关设备何时应该执行升级或升级到哪个版本的策略。
安全的ZigBee网络对所有消息都使用网络安全,但不提供点对点安全。应该使用APS安全性来确保只从可信源(升级服务器)发送消息。这将用于提供升级服务器关于设备何时启动bootload事件的隐式和显式授权。
不建议通过广播或多播消息分发升级映像,因为它缺乏点对点安全性。通过广播或多播接收升级映像不应推断为升级服务器发起升级的授权。在这种情况下,接收图像并对其进行升级的行为应该被分解为单独的事件。后一种通信应该通过单播完成,以验证升级服务器已授权设备升级到先前接收的映像。应用程序必须确定升级服务器所需的授权级别。
11.3.5镜像签名
应用程序标准可能要求OTA升级集群提供对OTA文件签名的机制,以保护图像的真实性和完整性
11.3.6镜像完整性代码
应用程序标准可能要求OTA升级集群提供哈希机制,以防止意外的数据损坏。