应用CCSDS空间数据链路安全协议的卫星遥控安全方案探讨

2020-05-15 00:00陈杰熊晓将陈亮亮齐海铭
航天器工程 2020年2期
关键词:密钥遥控指令

陈杰 熊晓将 陈亮亮 齐海铭

(中国空间技术研究院通信卫星事业部,北京 100094)

随着我国通信卫星的出口,以东方红四号平台为代表的国产通信卫星逐渐迈向欧洲、美洲等成熟的运营商市场。成熟运营商对测控协议设计和运行管理提出了更为苛刻的要求,如卫星用户对卫星测控系统的遥控功能应采用空间数据系统咨询委员会(CCSDS)标准,同时要采用高级加密标准(AES)加密标准实现对遥控数据的安全保护。然而,国内卫星普遍采用脉冲编码调制(PCM)遥控体制,加解密算法也是基于任务需求的专用算法,没有基于某一个通用标准开展加解密系统设计。

随着卫星复杂度和类型的增加,卫星任务的物理环境更为复杂,现行相关标准已无法完全支持新技术发展的要求,因此需要开展与CCSDS标准对标和国家相关标准制定的工作。而对于CCSDS安全协议标准,若有类似文献[1]中的应用实例,即针对每种指令数据类型给出协议的任务配置数据及遥控流程,其易用性会大大提升。同时,随着近些年CCSDS安全协议发展,目前CCSDS安全协议体系已较为完善,从总则[2]、协议[3]、算法[4]、密钥管理[5]到扩展流程[6],已能够全面支持卫星在轨应用。文献[7]中对CCSDS空间数据链路安全协议[3]进行了详细介绍,并且对该协议在国内空间任务中应用提出了若干建议,但对CCSDS空间数据链路安全协议的应用参考价值不大,无法指导安全协议系统的实际设计。文献[8-9]中研究了加密认证算法应用于CCSDS分包遥控数据链路层的性能,并且基于OPNET仿真平台,给出了性能分析,但仅仅给出了采用AES/SHA-256/GCM算法的数据加解密结果,同样无法指导安全协议系统的实际设计。

本文针对国内卫星遥控数据安全保护和遥控体制国际化的需求,应用CCSDS空间数据链路安全协议,设计了一套遥控安全方案,并且针对该遥控安全方案给出了应用实例,针对该应用实例进行了定性仿真验证分析,有助于CCSDS安全协议的应用和本地化,可为我国卫星遥控体制与国际接轨提供参考。

1 遥控安全方案设计

本文的遥控安全方案选择在数据链路层实现数据保护机制,数据保护对象为传送帧。由于数据链路层位于传送层和信道编码层之间,在数据链路层实施数据保护具有操作简单的优点。因此,在安全协议的选择上,本文遥控安全方案使用CCSDS空间数据链路安全协议[3]。在安全业务的选择上,采用的安全业务为认证和加密认证,选用的算法为基于密文的消息认证码(CMAC)[10]和Galois/计数器模式(GCM)[11],分别对应认证和加密认证业务。

1.1 安全协议定制

空间数据链路安全协议的应用,重点在于其数据格式与算法的匹配。本文遥控安全方案选用CMAC和GCM分别作为认证和加密认证业务算法,针对这两种安全业务的格式定制如图1~3所示。表1为安全头字段意义,对于认证业务,使用CMAC算法,在安全头中不需要“初始向量”和“填充长度”数据域,因此安全头长度为48 bit。安全尾(消息认证码(MAC))的长度为128 bit。对加密认证业务使用GCM算法,通常采用简单的加法计数器作为初始向量(IV),不需要设置单独的防重放序列号,因此安全头长度为112 bit。安全尾与认证业务的安全尾一致。

图1 采用CMAC算法的安全头Fig.1 Security header (CMAC algorithm)

图2 安全尾Fig.2 Security trailer

图3 采用GCM算法的安全头Fig.3 Security header (GCM algorithm)

表1 安全头字段意义

Table 1 Field meaning of security header

字段名称字段意义SPI用于标志安全关联(SA)的索引IV对于应用加密认证业务的系统而言,可作为计数器序列号包含防重放序列号,用于防重放攻击填充长度算法处理中填充字节的总长度,为字节的整数倍

1.2 业务管理

1.2.1 SA管理

SA的概念来自互联网安全协议(IPSec),是2个应用IPSec系统(主机、路由器)间的一个单向逻辑连接,是安全策略的具象化和实例化,它给出了保护通信的具体细节。在空间通信应用中,需要对其进行修改,以适应空间通信的特点。在CCSDS空间数据链路安全协议[3]中指出,发送端和接收端都必须创建1个SA,在SA使用前将其和密钥进行关联,并激活密钥。多个SA的参数可以在卫星发射前进行静态定义。如果需要,SA的参数也可以动态创建,甚至在其他SA生效时也可以创建。SA间的激活状态切换机制在应用层进行实现,协商SA参数属于应用层的功能。

针对上述需求,本文遥控安全方案选用下述SA管理业务[6],实现SA的在轨管理工作。①启动SA(SA Start):开始使用信道上特定的SA;②停止SA(SA Stop):停止使用信道上特定的SA;③密钥更新(SA Rekey):在激活SA之前将密钥与SA相关联;④SA到期(SA Expire):将原密钥与原SA去关联;⑤新建SA(SA Create):根据业务用户提供的参数初始化SA;⑥删除SA(SA Delete):完整删除1个SA;⑦设置防重放计数器(SA SetARC):根据业务用户提供的值初始化SA的防重放序列号;⑧设置防重放窗口(SA SetARCW):根据业务用户提供的值初始化SA的防重放窗口;⑨查询SA状态(SA Status):查询SA当前状态。

本文遥控安全方案选取SA的4种状态,即无SA状态(NULL)、未与密钥关联状态(Unkeyed)、与密钥关联状态(Keyed)及SA运行状态(Operational)。从图4中可以看到,通过SA管理指令,即可实现SA状态的转换,其中“设置防重放计数器”、“设置防重放窗口”、“查询SA状态”3项SA管理业务不会引起SA状态的转换。

图4 安全关联管理的状态模型Fig.4 State model for security association management

1.2.2 算法管理

本文遥控安全方案采用的CMAC和GCM均为对称密码算法,即星地使用的密钥相同。针对CMAC算法,对于一段需要被验证的消息M,有2种操作,如图5所示。AES-K是带密钥K的AES算法。消息M被分成M_1,M_2,…,M_n,除了M_n,前面每块长度等于128 bit。最后一块M_n的长度,不大于128 bit。K1是图5(a)所用子密钥;K2是图5(b)所用子密钥。K1和K2由子密钥生成算法生成。如果输入消息块的尺寸等于128 bit的整数倍,最后的块将和K1异或;否则,最后的块将被填补10∧i(表示“1”后补i个“0”),使其长度等于128 bit,然后和K2异或。上述过程的结果将是最后加密操作的输入。CMAC的输出T(即安全尾)为整个输入消息M提供了数据完整性。星上的解密过程就是将安全尾重算一遍,比较计算结果是否与收到的安全尾结果一致:一致,则通过验证;否则,验证无效。CMAC算法详见文献[10]。

图5 CMAC算法流程

针对GCM算法,同样需要将明文P按照128 bit分组,用n和u表示明文总长度为(n-1)×128+u,1≤u≤128。即明文由一系列的n组数据组成,最后一组数据长度为u,其他长度均为128 bit。这些明文数据块记为P1,P2,P3,…,Pn-1,Pn。密文C的数据块记为C1,C2,C3,…,Cn-1,Cn。Pn和Cn的长度均为u。附加鉴别数据A的数据块记为A1,A2,…,Am-1,Am。Am长度为v,A总长度为(m-1)×128+v,1≤v≤128。这里附加鉴别数据的含义是需要用于进行认证但不需要进行加密的数据。CIPHK是带密钥K的AES算法。inc是递增函数;J0为IV|0311,表示IV和0311(即31个“0”与1个“1”级联组成的比特序列)级联;MSBt为截取某序列最左边t个比特的序列;[len(·)]64为返回64 bit的数据串长度;GCTRK和GHASHH为特殊函数,GCTRK表示AES计数器模式运算,GHASHH表示加密哈希函数运算,2个函数的定义详见文献[11]。

按照图6(a)所示的流程,即可完成数据加密认证。按照图6(b)所示的流程,即可完成数据的解密认证。比较计算得到的T′与收到的T的字符串:一致,通过验证;否则,验证无效。GCM算法详见文献[11]。

图6 GCM算法流程

1.2.3 密钥管理

本文遥控安全方案对密钥进行分层控制[5],分为主密钥和会话密钥。其中,主密钥为最高等级密钥,一般在卫星发射前通过安全信道固化在卫星存储器中。主密钥又可进一步细化为密钥加密密钥,用于加密或加密认证会话密钥,或者用于会话密钥的生成,或者用于加密或加密认证指定的星上加解密单元指令和流程。会话密钥,又称为数据加密密钥,为最低等级密钥,用于保护卫星的通信信道,实现加密、认证或其他类型业务。

对于密钥生命周期,选取如下4个状态[12]。①预激活态(Pre-Activation):刚生成的密钥应处于预激活态;②激活态(Active):进入激活态的密钥应开始其工作生命周期;③去激活态(Deactivated):密钥已处于其工作生命周期的终点,但未被毁坏;④毁坏态(Destroyed):密钥已处于其工作生命周期的终点,且被毁坏。针对上述密钥生命周期,采用如图7所示的密钥管理业务。

图7 密钥生命周期Fig.7 Cryptographic key lifecycle

实现密钥生命周期的管理包括以下几个方面。①无线密钥更新(OTAR):将新会话密钥从发起者安全传送至接收者;②激活密钥(Key Activation):激活通信两端的密钥,使密钥处于激活态,可用于加解密操作;③去激活密钥(Key Deactivation);去激活通信两端的密钥,使密钥处于去激活态,不可用于加解密操作;④毁坏密钥(Key Destruction):删除通信两端的密钥;⑤密钥认证(Key Verification):对接收端的处于激活态的会话密钥进行认证。

2 实例验证

2.1 验证系统

本文遥控安全方案可由计算机和目标机搭建的验证系统,基于典型应用场景进行验证,其中计算机模拟地面站,目标机模拟目标卫星的遥控单元,各设备均配置本文设计的遥控安全协议。验证系统配置3层密钥进行控制,即主密钥、密钥加密密钥和会话密钥。其中:主密钥用于传送密钥加密密钥和应急恢复;密钥加密密钥用于传送会话密钥;会话密钥用于上传日常指令和数据。

验证系统设置如下4个SA用于卫星在轨操作。①SA1:key用作主密钥,采用加密认证业务,SPI为0x0001,MAP63;②SA2:key用作密钥加密密钥,采用加密认证业务,SPI为0x0002,MAP1;③SA3:key用作会话密钥,采用认证业务,SPI为0x0003,MAP2;④SA4:key用作会话密钥,采用认证业务,SPI为0x0004,MAP0。其中:SA1的所有信息存储在目标机的Flash中;SA2~SA4的所有信息存储或创建在目标机的静态随机存取存储器(SRAM)中。另外,SA3用于数据注入,而SA4用于直接指令。

2.2 验证结果

以上述验证系统环境为基础,设计主控计算机向目标机上注遥控指令的实例。这里考虑2种应用场景:①对卫星进行日常操作,包括数据上注和指令上注,对数据/指令认证后上传卫星,见图8;②对卫星进行应急操作,包括密钥上注,对密钥加密认证后上传卫星,见图9。

注:CRC为循环冗余校验;M(X)为CRC编码中输入的数据块,G(X)为生成多项式,L(X)为预置多项式。图8 发送端遥控认证业务Fig.8 TC authentication operation of sending end

图9 发送端遥控加密认证业务Fig.9 TC authenticated encryption operation of sending end

对于场景①,发送端的数据/指令流转过程如下,接收端的数据/指令流转过程相反。

(1)用户数据/指令进行包封装;

(2)根据用户数据/指令类型选择SA,按照本文设计的安全协议进行认证载荷封装;

(3)将认证载荷及密钥送入CMAC算法,得到安全尾;

(4)按照遥控数据链路协议进行传送帧封装;

(5)将传送帧送入编码子层进行BCH(63,56)编码后,组成通信传送单元(CLTU)送入物理层传输。

对于场景②,发送端的数据/指令流转过程如下,接收端的数据/指令流转过程相反。

(1)用户数据/指令进行包封装;

(2)根据用户数据/指令类型选择SA,按照本文设计的安全协议进行认证载荷封装;

(3)将认证载荷、IV、加密载荷、密钥送入GCM算法,得到密文和安全尾;

(4)按照遥控数据链路协议进行传送帧封装;

(5)将传送帧送入编码子层进行BCH(63,56)编码后,组成CLTU送入物理层传输。

从上述2个应用场景的验证中可以看到:本文遥控安全方案能够实现卫星在轨正常操作和应急操作,同时具备卫星在轨安全关联和密钥管理能力。该方案侧重于协议和功能的实现与验证,但受限于当前验证系统的资源和软件实现的复杂度,还无法支持性能测试,因此仅从定性角度进行了验证和分析,没有定量试验结果展示。

从本文遥控安全方案的应用效果来看,主要有以下优点。①通过SA管理,可以使遥控数据安全保护机制更为灵活,既可以建立不同SA与虚拟信道的关系,针对不同遥控数据实现不同的安全业务,又完全不影响原有数据的保护策略,可显著提高遥控安全系统的灵活性、可扩展性。②利用密钥分层结构,可以保护密钥强度,延长密钥生命周期;同时,也可实现密钥在轨灵活管理,将更多的自主权交给卫星用户,提升卫星的好用易用性。

3 结束语

在遥控体制与国际接轨的背景下,本文在调研CCSDS测控协议体系的基础上,针对不同的遥控安全业务,分别设计了定制遥控帧格式、安全关联、算法管理及密钥管理业务,并在地面验证系统中通过2个典型应用场景仿真验证了该方案具备在轨保护遥控数据安全的可行性。后续将继续完善地面验证系统,并在地面验证系统中进行定量仿真验证分析,为我国测控体制与国际接轨提供支持。

猜你喜欢
密钥遥控指令
幻中邂逅之金色密钥
幻中邂逅之金色密钥
“遥控”老师
《单一形状固定循环指令G90车外圆仿真》教案设计
新机研制中总装装配指令策划研究
他是如何遥控引爆的
关于ARM+FPGA组建PLC高速指令控制器的研究
Android密钥库简析
遥控赛车
遥控提琴