一种卫星网络中的星地轻量化认证鉴权架构
2020-04-02窦志斌白鹤峰李文屏王晓婷王金海
窦志斌,白鹤峰,李文屏,苏 曼*,王晓婷,王金海
(1.中国电子科技集团公司第五十四研究所,河北 石家庄 050081;2.中国人民解放军63921部队,北京 100094)
0 引言
卫星网络是满足国家信息保障、全球范围通信等需求的国家重要信息基础设施。卫星网通常由空间段、地面段和用户段构成。空间段包括组成网络的各类低、中、高轨卫星或星座。地面段包括卫星关口站、运维管控中心和安全保密中心等。用户段包括通过卫星终端接入卫星网络的各类陆海空天用户节点。卫星链路采用开放的无线信道,更容易受到攻击,如信息窃取、实体假冒等[1]。因此,卫星终端与卫星网络之间的双向认证鉴权必不可少,目的在于鉴别双方的身份,协商双方通信的会话密钥,保证会话的私密性和完整性。
文献[2]给出了一种深空网络中轻量级密码体制和安全算法。文献[3]针对卫星接入点的频繁切换,采用基于公钥体制的预认证机制降低切换时延。文献[4]采用基于身份的签密实现身份认证,但需要多次双线性映射计算,计算开销过高。文献[5]针对RFID的非对称信道特性,实现了标签、读写器与后端数据库三者的双向认证。文献[6]对卫星网络安全在网络层给出了轻量化的IPsec安全框架改进方案,避免卫星IP网络长时延、高误码的特性导致IPsec协商失败。文献[7]提出了物联网中面向3G-WLAN环境下的群组接入认证。文献[8]提出在Ad Hoc网络中将分布式认证与口令认证相结合,对加入网络的节点进行认证。文献[9]对卫星系统提出采用对称加密方式的集中式接入认证方案。
传统的认证鉴权模式由认证中心、卫星以及卫星终端三方实体构成。认证的过程由三方相互协调完成,协调过程发送的消息具有长度大、数目多等缺点。另外,认证中心在卫星网络中需要负责密钥的管理以及分发,这势必会增加认证中心的软硬件开销,同时也会引发安全问题,最严重的情况有可能会造成认证中心的密钥泄露。
鉴于上述分析,本文考虑星载处理能力受限,结合终端和卫星的特点,提出了一种适用于卫星网络中的轻量化认证鉴权架构。该架构依托于预共享密钥(Pre-shared Key,PSK)方案,支持卫星和终端之间的双向认证鉴权,去除了传统三方实体认证协议的认证中心的消息传递作用,解决了传统三方实体认证协议通信时延大和安全性不足的问题。
1 轻量化认证鉴权架构
目前在认证鉴权方面有互联网、移动通信网和卫星网络等典型网络系统。
1.1 互联网
根据OSI的7层模型,互联网主流安全协议包括IP层安全IPsec、传输层安全TLS/DTLS、会话层安全SSH和代理安全Socks。采用的认证鉴权方式如表1所示。
表1 互联网各类协议的认证鉴权方式汇总
Tab.1 Summary of authentication methods of various Internet protocols
1.2 移动通信网
2G/3G和LTE的认证与鉴权体制一脉相承,即基于预共享密钥的认证与鉴权。用户与终端解耦,用户以SIM/USIM卡标识,通过预先植入的密钥等参数与核心网共享[10]。该共享密钥并不用于直接通信,而是用于认证鉴权中生成对应的安全信息,以及对称业务密钥CK、完保密钥IK的生成,并以此为基础实现数据的机密性和完保性。几种系统的认证鉴权方法的优缺点与适用场景如表2所示。
表2 认证鉴权方法汇总Tab.2 Summary of authentication methods
认证与鉴权方式优缺点适用场景典型系统口令优点是简单;缺点是容易破解,安全性差;简单双方认证;客户/服务器模式基于预共享密钥(PSK)优点是计算复杂度低,协议交互开销小;缺点是密钥需提前预置,密钥分发与管理复杂,灵活性差;适用于通信双方一方资源受限或认证双方固定不变;地面移动通信基于证书的公钥优点是灵活性高;缺点是通信开销大、证书管理开销大;适用于通信双方资源(计算、存储、链路)不受限;IPsecTLSDTLS对称密码体制优点是复杂度低;缺点是服务器与第三方共享密钥;具有可信第三方的情况;Kerberos、三方认证类协议
由表2分析知,支持两方认证鉴权且具有较低复杂度和协议开销的方法只有预共享密钥一种。预共享密钥也是移动通信所采用的认证与鉴权方法。
1.3 卫星网络
目前国内外卫星通信系统多采用透明转发体制,该体制下的认证鉴权双方为用户和地面站,透明转发卫星不需要做任何处理。国内尚无处于常态化运行的基于分组交换的在轨卫星通信系统,因此面向用户的星地接入认证鉴权并无可参考的实现。星地接入认证鉴权是基于分组处理的卫星网络关键技术之一,其时延大小直接影响用户体验与系统所能支持的用户并发接入能力,时延主要受协议交互轮数、星地链路传播时延和认证过程中加解密处理时延这3个因素影响。
受工艺器件水平限制,星载计算、存储资源极其受限(星载CPU主频小于100 MHz,存储容量仅为几兆比特,远远低于地面相关器件性能1~2个数量级),无法支持现有地面认证鉴权协议。星地认证鉴权需进行轻量化设计,即尽量降低协议星地消息交互轮数、星载CPU的计算开销(主要包括协议处理、加解密算法)及认证鉴权消息长度,从而降低星地接入认证鉴权时延,支持用户的高并发接入,最终提升用户接入体验。因此本文采用预共享密钥方式进行认证鉴权设计,协议的轻量化主要体现在以下几个方面:
① 选取基于随机数的认证鉴权架构,避免基于时间戳/序列号的认证鉴权架构引入的同步开销;
② 设计精简的协议消息封装格式;
③ 通过星上缓存预共享密钥、基于随机数方式等降低协议的握手次数;
④ 采用同等强度但具有较低计算复杂度的对称加密算法。
1.4 系统架构
星地轻量化认证鉴权系统架构如图1所示,其设计参考移动通信系统的认证鉴权架构,并结合卫星网络的特点进行针对性优化。该架构支持具有星上处理的卫星与卫星终端之间的双向星地认证与鉴权。对于透明转发卫星,支持关口站的认证&鉴权中心与卫星终端之间的双向认证与鉴权。
图1 星地轻量化认证鉴权系统架构Fig.1 Architecture of lightweight satellite-ground authentication system
该架构的核心思想是星上缓存卫星终端预共享密钥,以避免或减少向Shared Key Generator(SKG)查询的交互开销,具体方式如下:
① SKG根据卫星终端ID,产生唯一对应该ID的预共享密钥,并离线预置到终端侧(如通过身份卡的形式,类似手机的SIM卡,实现身份卡与终端的分离)。SKG需要保留卫星终端ID与该预共享密钥的映射关系。
② SKG将预共享密钥推送到各个具有星上处理功能的卫星节点,实现卫星节点与卫星终端之间的双向认证鉴权。
③ 星载HSS存储终端ID与预共享密钥的映射关系,如果找不到映射,则向地面SKG发出查询申请。
图1中的各类网元功能如下:
① SKG中心:负责根据卫星终端ID生成唯一对应的预共享密钥KL,并将该终端ID与KL的映射关系推送到各个具备星上处理的卫星节点。
② 关口站的认证&鉴权中心:负责透明转发模式下,对各类卫星终端的认证与鉴权,终端ID与KL的映射关系可以向SKG查询,也可以要求SKG推送并缓存到本地。
③ 星载Authentication Center(AuC):解析认证请求消息,生成认证响应消息,判断认证结果,内部预置相关算法,包括f1~f5算法等,负责计算sk,CK,IK等。
④ 星载Home Subscribe Server(HSS):接收并维护来自SKG推送的卫星终端ID与对应KL的映射关系,向AuC提供查询功能。
⑤ 身份卡:保存由SKG设置的卫星终端ID与对应的KL,通过插入卫星终端,与星上处理的卫星节点交互实现卫星终端与卫星节点的双向认证鉴权,或者在透明转发模式下,实现卫星终端与地面关口站的认证&鉴权中心之间的双向认证鉴权。
⑥ 卫星终端:卫星终端与身份卡之间存在相应接口,身份卡生成的认证请求通过卫星终端发给对端认证方,并接收认证方的认证响应交给身份卡处理。
1.5 认证鉴权流程
星地轻量化认证鉴权流程如图2所示。
图2 星地轻量化认证鉴权流程Fig.2 Process of lightweight satellite-ground authentication
图2中,f1为伪随机数发生器,其接收0个参数,返回一个随机数;f2为对称加密算法,其接收2个参数,第1个参数为加密密钥,第2个参数为需要加密的内容,返回密文;f3为哈希函数,其接收一个参数并且返回参数的哈希值;f4为加密密钥生成函数,输入为密钥种子字符串;f5为完保密钥生成函数,输入为密钥种子字符串。
① 首先卫星终端B发起入网请求,入网请求信息携带该卫星终端的ID为IDB。
② 星载AuC根据IDB查询星载HSS,返回该IDB对应的预共享密钥KL。
③ 星载AuC通过函数f1生成随机数rA,并生成认证请求消息发送给卫星终端B,该认证请求消息为IDA||IDB||f2(KL,rA),其中“||”表示字符串串联。
④ 卫星终端B收到该认证请求,首先生成随机数rB,然后利用预共享密钥KL解开消息加密内容获得rA,并向星载AuC发送认证响应1消息,内容为IDA||IDB||f2(KL,IDA||rA||rB)。
⑤ 星载AuC根据认证响应1消息,利用预共享密钥KL解开加密消息内容取得ID’A以及r’A;若获得的ID’A,IDA不相同,则认证失败。否则,检查r’A,rA不同,则认证失败。否则,计算sk=f3(rA||rB),CK=f4(sk),IK=f5(sk)。最后,发送认证响应2消息给卫星终端B,认证响应2消息内容为IDA||IDB||f2(KL,rB||rA)。
⑥ 卫星终端B利用预共享密钥KL解密认证响应2消息,获取r’B,并比较r’B,rB是否相等,若不相等则认证失败。否则计算sk=f3(rA||rB),CK=f4(sk),IK=f5(sk)。
至此,星载AuC与卫星终端B的双向认证鉴权流程完毕,并协商完成加密密钥CK和完保密钥IK。
1.6 认证鉴权协议参考格式
该轻量化认证鉴权协议的参考格式如表3所示。考虑卫星网络的终端规模,以及预共享密钥的密码强度和计算开销,设置卫星IDA为10 bit(支持星座规模为1 024颗)、卫星终端IDB为16 bit(支持终端数量为65 536台),KL为128 bit。随机数rA,rB为128 bit。Sk,CK,IK都为128 bit。协议采用TLV格式,如表4所示,其中T为协议类型,长度为3 bit;L为内容长度,单位为Byte,该字段长度为8 Byte;V为协议内容,字段长度为8Lbit。通过分析,单条认证鉴权消息最大长度不超过40 Byte。
表3 轻量化认证鉴权协议字段设置(参考)
Tab.3 Lightweight authentication protocol field setting (for reference)
表4 协议TLV设置Tab.4 Protocol TLV Settings
协议类型T /bit内容长度L/bit协议内容V/bit388L
2 轻量化认证鉴权架构分析
2.1 性能与开销
移动通信中的认证鉴权协议与本文提出的协议不同。前者是基于时间戳/序列号的协议[11],后者是基于随机数的协议。前者需要假定双方具有同步的时钟或维持递增的序列号,且当时钟不同步或序列号出现问题时,需要设计额外的时钟校对或序列号更新协议。后者无需双方维持同步的时钟或递增的序列号。前者在时间戳/序列号同步时,所需的消息轮数比后者少,但是在时间戳/序列号失步时,会增加额外的消息轮数。
具体地,当时间戳/序列号同步时,前者需要3轮消息;当时间戳/序列号失步时,在3轮消息的基础上,首先需要额外增加2轮消息[12](卫星节点与SKG之间),随后用户需要重新发起认证请求,又需要3轮消息。因此总共需要3轮(首次认证失败)+2轮(时间戳/序列号同步)+3轮(重新认证),总计8轮星地消息。
在卫星网络中,用户接入时延主要受星地链路传播时延影响,因此轻量化认证鉴权协议的设计应尽可能降低星地消息交互轮数,从该原则出发,本文采用基于随机数的思想设计星载轻量化认证鉴权协议。在本协议中,双方需要4轮星地消息实现双向认证鉴权。假设星地链路传播时延为Rms,则在AuC查询HSS命中的前提下,认证鉴权需要花费4Rms,未命中为5Rms。
对于认证鉴权过程中用到的加密算法进行轻量化设计,AES算法计算复杂度高,并行性能较差,因此f2采用低计算复杂度,但与SNOW3G[13],AES具有同等加密强度的ZUC算法[14-15],能够抵抗现有已知的序列密码分析方法[16-17]。ZUC算法是中国自主设计的流密码算法,具有加密解密速度快,实现简单[18-19]的特点,非常适合计算、存储资源受限的星载环境,文献[20]已在低计算、低存储能力的传感器节点CC2430控制器上实现,表明ZUC具有极低的计算和存储开销。
2.2 安全性
设计的星地轻量化认证鉴权协议采用随机数方式,能够提供与时间戳/序列号方式相同的安全强度。通过星上缓存预共享密钥、基于随机数方式降低了协议的握手次数、卫星终端与SKG的交互频率,从而削减了协议通信时延。在认证鉴权过程中,f2算法采用低计算复杂度的ZUC算法,能提供与SNOW3G,AES相当的安全强度。
此外,该协议可以抵御通常的安全威胁,包括重放攻击、反射攻击、中间人攻击和冒名攻击,分析如下:
(1)针对重放攻击
本协议在每次执行时,前2轮产生了2个随机数,且这2个随机数分别由通信双方各自产生一个。因此,无论攻击者重放哪个实体的哪条消息,另一方在收到消息后,均会验证收到消息的随时数与自己生成的随时数是否相同,如果不同,则协议中断,认证失败。
综上,攻击者重放攻击成功的概率仅为实体在多次执行协议时,产生了相同的随机数才有可能攻击成功。由于协议中的随机数二进制位数与预共享密钥位数相同,因此生成的随机数出现重复的概率可忽略不计,符合密码学中规定的实体认证与密钥协商协议安全标准。
(2)针对反射攻击
本协议在第2轮执行时增加了接收实体的身份标识。因此,攻击者在进行反射攻击时:
① 如反射第1轮消息给某个实体,虽然可以得到第2轮消息,但是第2轮消息无法继续反射给该实体,因为通过反射得到的消息中,接收实体身份标识为另一方,而预期的接收实体身份标识应该是自身,二者不同,因此协议被中断,认证失败。
② 协议的第1轮消息正常发送和接收,攻击者反射第2轮消息给某个实体,则因为预期收到的消息应该为第3轮的消息,而第2轮消息中包括的随机数与第3轮消息中的随机数顺序相反,因此在验证随机数时,会出现不一致,因此协议被中断,认证失败。
③ 协议的前2轮消息正常发送和接收,攻击者反射第3轮消息给某个实体,因为协议没有第4轮消息,因此反射的消息不会被接收方响应。
(3)针对中间人攻击
本协议采用了已认证加密算法。因此,在面对中间人攻击时,攻击者对发送方的消息中任何一位的修改,都会使接收方在解密时因为密文完整性无法得到保证,因而中断协议,使得认证失败。如果攻击者不修改任何消息,则攻击者仅类似于路由器,提供消息的存储和转发功能,无法影响实体的认证结果。另外,由于会话密钥最终基于通信双方产生的随机数,而随机数在网络中传输时均为密文传递,所以攻击者难以破解得到会话密钥,也不会影响安全通信信道的建立。
(4)针对冒名攻击
本协议假定通信双方具有秘密的预共享密钥,接收方在每轮消息中均会利用该密钥验证收到消息的完整性。因此,攻击者无法通过伪造消息来冒名成任意实体。冒名攻击对本协议无效。
2.3 优缺点
三方参与的认证鉴权协议(下称三方认证)要求有可信第三方参与,所以通常假定通信双方分别与可信第三方具有预共享密钥,无需通信双方间具有预共享密钥。认证的过程由三方相互协调完成,协调过程发送的消息具有长度大、数目多等特点,会增加认证鉴权开销和时延。
与现有三方认证相比,本文提出的星载轻量化认证鉴权协议具有以下优点:
① 与传统的三方认证模式相比,本文提出的协议采用双方认证,能够有效降低消息传输次数,降低消息交互时延,提高认证速度。通过预共享密钥体制降低计算复杂度,且双向认证鉴权仅需要3条交互消息,且支持单向、双向认证鉴权。在认证鉴权流程中,能够产生业务通信的加密密钥CK、完保密钥IK。
② 本协议能够有效降低时延方差大所带来的负面影响,提高认证过程的稳定性。
③ 本协议避免了三方认证模式中认证中心作为实体进行认证传递的部分,有效降低了认证中心的负载,同时也使认证中心的职责更为单一(仅为透明转发模式提供与卫星终端的双方相互认证与鉴权),提高了整个卫星通信系统的安全性。
本协议的局限性是采用预共享密钥机制,需要对卫星终端采用的身份卡离线进行预共享密钥的预置,并未考虑认证鉴权双方采用公钥证书体制的方式,因此无法支持无身份卡的卫星终端与卫星网络之间的认证鉴权。
3 结束语
由于卫星网络星载处理能力受限以及星地链路大时延等特征,星地轻量化认证鉴权是卫星网络系统中安全架构设计的关键技术和难点。本文首先梳理和分析了当前互联网、移动通信网所采用的各类认证鉴权方法,并归纳了其优缺点和适用场景,随后提出了基于随机数的星地轻量化认证鉴权协议架构及流程设计,最后给出了该协议的性能与开销分析、安全性分析和优缺点分析。本协议与三方认证模式相比,降低了协议的开销和交互时延,提高了认证速度,可满足卫星终端与卫星网络双方认证鉴权的需求。