采用区块链技术的卫星编队组网安全认证设计*
2022-08-01李望
李 望
(中国西南电子技术研究所,成都 610036)
0 引 言
随着卫星需要完成的空间任务越来复杂,需要实现的相关功能也越来越多,单颗卫星已经不能满足人们日益增长的需求。为此,研究人员提出了由多颗小卫星组成编队系统协同工作的思想。在该系统中,卫星通过相互间可靠的无线通信链路来完成信息的实时交互,进而实现卫星编队的自主安全飞行以及卫星间的自主协作,完成单颗大卫星难以实现的复杂空间任务。
美国于20世纪末就已经开始开发由多颗卫星构成的卫星通信系统,随后提出了分布式卫星编队的概念,如F6计划[1-3]、TechSat-21项目[4]、LISA计划[5]等。英国则资助相关大学开展了关于分布式卫星系统演示验证的MUSTANG项目,目的在于对卫星编队飞行及其测控的关键技术进行综合的演示验证。
卫星编队所处的空间网络环境复杂,测控任务对可靠性要求极高,加上分布式网络本身具有结构松散,暴露环节多等特点,使得卫星编队测控系统的安全形势极其严峻,技术挑战性极大。卫星编队网络缺乏基础设施支持,没有中心授权和认证机构,节点网络拓扑动态变化,节点之间难以建立起信任关系,这些都使得传统的加密和认证机制在卫星编队网中难以照搬。
区块链是一种分布式数据库技术,通过维护数据块的链式结构,可以维持持续增长的、不可篡改的数据记录[6]。区块链技术以其不可篡改、去中心等特点日益受到全球学者的关注,并在近几年得到了飞速发展[8]。张颖浩等[9]基于区块链提出用卫星广播网络代替互联网进行数据广播与共识任务以降低区块链吞吐量瓶颈。刘光明等[10]提出利用“北斗”卫星定位导航授时(Positioning,Navigation,and Timing,PNT)服务的物理可信和时空可信增强区块链的鲁棒性。目前,国内暂无卫星编队系统与区块链相结合来实现星间安全认证的研究。
本文研究了基于区块链的卫星编队系统认证接入技术,将区块链技术应用到卫星编队网络中,在提高卫星编队的安全性的同时也可以解决传统基于地面测控通信系统的弊端,即不必再落回地面中心完成安全认证。
1 卫星编队通信系统安全性需求分析
卫星编队网络通信系统的安全需求主要包括满足系统对安全性的基本需求即通用性需求与满足卫星编队特殊网络结构和任务定位带来的特殊安全性需求。
在卫星编队网络中,虽然攻击的方式和途径可能与传统网络不一样,但是攻击的目标和结果对安全属性的损害却是类似的,即都是对信息的机密性、完整性、真实性、可用性、不可否认性等安全属性的破坏。设计合理的认证方案可以满足大部分安全认证需要,因此,卫星编队网络的认证机制设计对维护整个卫星编队网络安全至关重要。
卫星编队网络作为一种分布式网络,有线网络中的许多认证方案不能直接应用于卫星编队网,主要有四个方面的原因。
一是有线网络中的加密和认证应该包括一个产生和分配密钥的密钥管理中心、一个确认密钥的认证机构,以及分发这些经过认证的公用密钥的目录服务。卫星编队网络缺乏基础设施支持,没有中心授权和认证机构,节点网络拓扑动态变化,节点之间难以建立起信任关系,这些都使得传统的加密和认证机制在卫星编队网中受到极大挑战。
二是有线网络可用防火墙技术用来保护网络内部与外界通信时的安全。由于所有进出该网络的数据都通过某个节点,防火墙技术可以在该节点上实现,用来控制非授权人员对内部网络的访问、隐藏网络内部信息以及检查出入数据的合法性等。但是,卫星编队网络的拓扑结构动态变化,没有中心节点,进出该网络的数据可以由某卫星节点在任意中间节点转发,扩散至整个网络。卫星编队网络内部和外部的界限非常模糊且结构松散,任意卫星都可能被截获而成为攻击者,导致攻击从内部产生。因此,防火墙技术不再适用于卫星编队网络。
三是在卫星编队网络中,由于节点的移动性和无线信道的时变特性,使得网络拓扑结构、网络成员及其各成员之间的信任关系处于动态变化之中。此外,网络中产生和传输的数据也具有很大的不确定性。这些数据包括节点的环境信息、关于网络变化的信息、各种控制消息等,它们都有较高的动态性要求,使得有线网络服务中相对固定的数据库、文件系统和文档服务器不再适用。
四是在基于信任分散的加密方案、门限密码方案和基于口令认证的密钥交换方案等安全策略中,运用数据加密、身份认证、数字签名、证书和时间戳等安全手段来保证路由发现和数据传递的完整性和可靠性,这些安全策略是基于预防技术的,以一种被动的方式做好各种安全措施等待攻击方来破解,防止来自网络外部的攻击。如果攻击来自网络内部,这些安全策略将无能为力。
综上分析,传统有线网络的认证方案无法满足卫星编队网络的安全需求,卫星编队网络需要一种基于分布式网络结构的认证方案。针对卫星编队网络分布式的网络结构特点,应有一个新的分布式安全认证机制,建立卫星节点间的信任关系,对网络中卫星节点的身份进行核验和认证,以建立网络中各节点间的信任。
2 基于区块链的卫星编队安全认证技术可行性
区块链系统由数据层、网络层等多层组成。下面讨论区块链如何应用在卫星编队系统中。
区块链数据层主要负责区块链底层数据的结构和存储模式,通过链式结构按时间戳的先后顺序将区块关联起来,区块之间再通过一个哈希校验码来保证链上数据的完整性和不可篡改性。Merkle树结构还提供了简单支付验证(Simplified Payment Verification,SPV)功能,当要验证某个身份证书是否再区块链上时,根据Merkle 树结构卫星节点只要保存区块头即可验证。这些区块链底层数据结构还能够保证系统的安全性,适用于卫星编队系统中。
由网络层设计机理可见,区块链节点组成的P2P网络中,数据在去中心化系统的所有节点上都有备份,即使部分节点失效,只要仍存在一个正常运行的节点,区块链主链数据就可完全恢复而不会影响后续区块数据的记录与更新。所以当攻击卫星编队中的节点时,只要参与共识的卫星群中有一个卫星正常运行,区块链数据就可以恢复,抗毁性高。
共识机制可以让互相不信任的节点通过遵循预设机制最终达到数据的一致性。当有少数节点作恶时,它们的行为将不会被诚实节点承认,这也能够保证系统的安全性,满足卫星编队系统对安全性的需求。
卫星编队认证接入过程中,卫星节点将身份信息存储在区块链上这个过程并不需要代币激励,所以激励机制在卫星编队系统认证接入系统中暂时不需要考虑。
智能合约是存储在区块链中的脚本。通过解决交易来触发智能合约,然后,它根据触发交易中包含的数据,以规定的方式在系统中的每个节点上独立地自动执行。在卫星编队系统认证接入中,当新卫星节点申请加入到卫星编队系统中时,首先将该节点的身份证书信息作为交易,广播到卫星编队系统中,对该卫星身份证书达成共识后会触发智能合约,如果共识结果为该身份为合法的,则允许该节点加入卫星编队系统与其他卫星节点进行通信,否则拒绝该卫星的接入。
通过逐层分析区块链各层在卫星编队认证鉴权中所起的作用可以看出,区块链技术应用在卫星编队认证鉴权中可以实现其安全性、完整性、真实性、可用性、不可否认性以及可认证性和鲁棒性的安全需求。
3 基于区块链的卫星编队接入认证设计
3.1 卫星编队通信系统的认证需求
卫星编队身处复杂的空间环境中,周围空间具有开放性,周围的环境也在动态变化,时刻受到外来非合作目标卫星的安全威胁。尤其卫星编队多承担着军事国防等重要任务,又多是通过星间链路通信交互信息实现自主控制,自身遭受攻击的可能性大大加强。同时,卫星编队是由多个小卫星组成的分布式系统,自身组成也较为复杂,系统中的节点同样会根据测控任务安排、控制指令安排等需求动态地加入和退出系统。在这样特殊的系统中,卫星节点的身份认证应该满足如下安全要求:
(1)节点身份的合法性
在卫星编队系统中,对安全需求极高。如果有非法节点伪造身份入侵卫星编队系统,将会窃听到机密信息。通过卫星节点的身份认证来确认待接入节点的身份来确认节点的身份。身份证书是节点身份的证明,保证身份证书是由正确的机构签发来确保身份证书的合法性,恶意节点无法伪造合法的证书来攻击卫星编队系统,在使用身份证书进行身份认证时才能保证节点身份的合法性。
(2)节点权限的正确性
对于卫星编队系统,不同的节点有不同的分工,所交互的信息也不同。因此身份认证时应该对节点的权限进行区分,防止权限不同的节点相互访问造成安全信息的泄露。
(3)恶意节点的身份撤销
卫星编队系统中,如果有身份合法的节点散布恶意消息将会影响系统的安全,因此检测到恶意的节点时,应该对其身份进行撤销,阻止恶意节点的再次接入。
3.2 基于区块链的卫星编队身份认证系统
区块链的特点意味着它适配于分布式网络,其数据结构能够满足分布式网络的安全需求。在区块链的基础上,结合PKI(Public Key Infrastructure)技术,本文提出了一种基于区块链的身份认证系统。在这种系统中,对传统的公钥基础设施技术进行改进,利用区块链的安全性、不可逆、不可篡改性和透明性等优势,对存储数字证书的区块打上时间戳使其形成一个连续的、前后关联的诚实数据记录结构,有效地提升公钥基础设施体系的透明度,加强身份认证的可信度。
3.2.1 区块链数据结构
由于区块链是去中心化、集体维护的系统,区块链数据结构具有可追溯性和不可篡改的特性,卫星编队通信系统将其节点的公钥数字证书上链可以保证公钥证书的安全性、可追溯性与不可篡改性。基于Merkle 树的区块链数据结构如图1所示。
图1 区块链的数据结构
3.2.2 卫星编队通信系统的身份证书区块链设计
在基于区块链设计的身份认证系统中,区块链存储的是链上节点公信的合法数字身份证书,通过智能合约管理区块链节点的权限。在卫星编队通信网络中,新的卫星节点在入网通信前需要将其数字身份证书上链,其上链流程如图2所示。
图2 身份证书上链流程图
星编队通信系统区块链上的节点按功能分类为背书节点、排序节点和提交节点。当一个新节点加入区块链时,其身份证书上链流程步骤如下:
Step1 新卫星节点在CA实名认证后获得公钥私钥对{SKi,PKi},私钥由节点自己保存,CA为公钥生成数字证书Certi,数字证书包含新卫星节点的身份信息、公钥、有效期和由CA私钥的签名组成,数字证书作为提案发送给一定数量的背书节点。
Step2 背书卫星节点检查证书格式、有效期和签名信息合法后,返回提案背书成功信息给新卫星节点。
Step3 根据共识算法,当新卫星节点收到足够多的成功背书信息后,将其数字证书和背书信息打包后生成一个交易发送给排序卫星节点,排序卫星节点根据交易时间先后顺序排序成区块结构后向维护区块链的节点广播。
Step4 区块链里的提交卫星节点收到排序节点发送的交易包后,验证证书结构无误后将其放入区块中,并且计算下一区块的哈希值。
节点身份的撤销流程与身份入链类似。当发现恶意节点后,该节点发起一个撤销提案,通过类似的步骤将撤销信息写入区块链。
3.2.3 基于区块链的卫星编队身份认证的流程
对于数字身份证书已经上链的卫星,其数字身份证书的合法性已经在区块链上验证过。其身份认证流程如图3所示。
图3 身份认证流程
Step1 乙节点向甲节点发送接入请求,甲节点返回一个随机字符串给乙节点。
Step2 乙节点用私钥加密随机字符串后,将其身份和加密字符串发送给甲节点。
Step3 甲节点根据乙节点的身份在区块链查询,检查乙节点的证书是否已被撤销,如果是,拒绝乙节点接入;若找到乙节点的公钥,使用乙节点的公钥解密接收到的密文,解密后与原随机字符串相等后,甲节点认证乙节点成功。
相对于传统基于PKI的身份认证系统,卫星节点进行身份认证时只需要去区块链查询对应的数字身份证书记录即可,减少了证书的传输延时和证书合法性检测延时。
4 卫星编队系统的消息验证方案
4.1 卫星编队消息验证流程
由于卫星的高动态性以及高安全性需求,消息应该在极短的时间内完成验证,且要保证消息的不可追踪性和能够抵御各种攻击。基于上述消息验证的分析,通过结合考虑这些消息验证方案设计适用于卫星编队测控通信系统的消息验证方案,可以采用哈希函数来保证消息的完整性,并结合使用基于身份密码的消息验证方案来减少验证源发送节点的身份验证时间。具体的消息验证过程如下:
Step1 当卫星节点通过身份认证后,卫星编队将系统参数加密发送给节点的不可篡改单元。
Step2 卫星节点使用自己的ID和系统的主密钥生成假名。
Step3 节点将假名、消息与时间戳生成哈希摘要,完成对消息的签名。
4.2 基于不同算法进行卫星编队单次消息验证时间开销比较
在这个过程中涉及到加密算法,表1对比了各种加密算法的时间开销。加密算法运行环境采用点对点方式,模拟星间发送。考虑到卫星编队星间相对距离在百公里量级内,执行时间栏统一增加传输时延0.3 ms。
表1 各种加密算法的的时间开销
表1中,Tbp代表双线性映射加密,e(S,T)得到开销;Tsm-bp是双线性映射加密,点乘xP计算开销;Tsm-bp-s是双线性映射加密,小尺度点乘viP计算开销,vi是[1,2t]中的一个小随机数,t是一个小整数;Tpa-bp为双线性映射加密,点加法运算S+T的计算开销;Tmtp为与双线性配对相关的散列到点操作的计算开销;Tsm-ecc为椭圆加密,点乘xP计算开销;Tsm-ecc-s为椭圆加密,小尺度点乘viP计算开销;Tpa-ecc为椭圆加密,点加法运算S+T的计算开销;Th为一般哈希函数的计算开销。
如表1所示,经过比较可以得知采用椭圆加密普遍比双线性映射时间开销要小。
4.3 使用椭圆加密算法进行单次消息验证及批量消息验证的时间开销比较
在卫星编队测控通信系统中,有大量的通信消息需要在短时间内进行验证,所以可以考虑时间开销较低的椭圆加密算法。下面比较使用椭圆加密算法进行单次消息验证和使用椭圆加密算法进行批量消息验证这两种方案的时间开销。
(1)
AIDi1=wiP,
(2)
AIDi2=IDi⊕h(wiPpub),
(3)
σi=xh(AIDi)+wih(Mi‖Ti) 。
(4)
σi代表节点消息签名,{AIDi,Mi,Ti,σi}生成节点消息发送,则单次消息验证为
σiP=h(AIDi)Ppub+h(Mi||Ti)AIDi1。
(5)
n个消息的计算时间开销为(3Tsm-ecc+2Th+Tpa-ecc)n。当要对消息进行批量验证时,验证器需要选择一个向量v={v1,v2,…,vn},其中vi是[1,2t]中的一个小随机数,t是一个小整数,计算量很小。消息验证只要验证如下等式成立即可:
(6)
那么n个消息批量验证的计算时间开销为
(n+2)Tsm-ecc+nTsm-ecc-s+2nTh+(n+1)Tpa-ecc。
(7)
相对于单个消息验证来说,批量消息验证可以节省(2n-2)Tsm-ecc-nTsm-ecc-s-Tpa-ecc的计算时延,所以在卫星编队系统中采用批量消息验证。
综上所述,卫星编队系统要求能够在短时间内验证大量的消息,使用椭圆加密算法进行批量消息验证可减少验证时间。
5 结 论
卫星编队系统是未来空间技术发展的重点方向,逐渐受到各方的高度重视,但如何改进传统技术机制受限于地理位置、通信带宽、通信时延的制约的问题,实现卫星编队系统数据的安全传输,是一项迫切需要解决的核心问题。为此,本文引入了区块链技术,提出了一种基于区块链的卫星编队系统认证接入技术,论证了系统接入身份认证、身份证书更新、认证信息扩散等主要功能在卫星编队应用背景下的可行性,通过比较各种加密算法消耗的时间证明了使用椭圆加密算法进行批量消息验证可减少验证时间。