航空甚高频VHF数据链安全通信技术

2022-08-03 01:30邹嘉旭郭江鑫薛佳萌曾令金
中国民航大学学报 2022年3期
关键词:数字证书公钥数据链

岳 猛,邹嘉旭,胡 玥,郭江鑫,薛佳萌,曾令金

(中国民航大学a.安全科学与工程学院;b.电子信息与自动化学院,天津 300300)

航空甚高频(VHF, very high frequency)地面通信系统是航空器与地面控制中心进行信息交换的媒介,也是最重要的民航通信导航系统之一。飞机通信寻址与报告系统(ACARS,aircraft communicationaddressing and reporting system)是一种基于VHF 数据链的系统架构,其不仅使空地通讯摆脱了语音通信的局限,减轻了飞行员和地面人员的工作量,同时也保证了航空器和地面人员在雷达无法覆盖地区的正常通信。ACARS技术经过数十年的发展与完善,已被广泛应用于气象服务、位置报告、OOOI 状态数据传输、发动机监控等方面,成为航空器飞行安全的重要保障。

但ACARS 数据链本身存在安全方面的不足:报文的正文部分未经过加密处理,若被截获,专业人士经过简单处理便可获知其中内容;同时,由于缺少认证机制,导致通信双方在空地通信过程中无法侦测到对报文的伪造、重放等攻击。一旦ACARS 数据链被窃听、篡改,将直接影响到飞行安全[1]。

使用传统手段攻击航空电子系统成本昂贵,所以空地数据链安全问题并未受到航空通信部门过多的重视。近年来,软件定义无线电(SDR,software defined radio)技术的兴起使得攻击成本大幅度降低,数据链安全问题日益严峻。针对该问题:吴志军等[2]提出在空地数据链中引入数字证书以解决实体认证问题;王剑等[3]提出使用国产分组密码算法SM4 对ACARS 数据链报文正文部分进行加密;吴滢等[4]在引入SM4 算法的基础上,尝试使用国产公钥密码算法SM2 对数据链正文进行非对称加密,实验结果表明,SM4 算法在加解密效率及载荷长度方面均显著优于SM2 算法。

由于单独采用加密算法或认证方法均无法同时保证航空甚高频通信的机密性、完整性和不可否认性,本研究将基于ACARS 数据链,以国产密码算法为依托,在数据链报文处理的过程中引入对称密码算法、数字认证方法等密码技术,从而提出一种使用国产密码算法对航空甚高频通信数据链进行完备的安全性优化方案。该方案在不改变原有通信流程前提下可大幅提高航空甚高频数据链安全性,保障了数据链安全服务的自主可控。

1 ACARS 数据链加密方法

当前,ACARS 数据链多采用明文传输,数据泄露风险极大。一些航空公司为防止重要数据泄露,通常采用置换密码等经典密码体制进行加密,但这种加密无法抵挡专业人士的攻击。1974 年,IBM 公司提出DES 对称密码体制加密算法。对称密码体制具有密文载荷小等优点,可在保持高加密效率的情况下,对于带宽较为有限的ACARS 数据链具有非常高的可应用性。国家密码管理局在2012 年发布了SM4 国产分组密码标准,本研究将主要采用SM4 分组密码对ACARS数据链进行加密。

1.1 负载转码

考虑到ACARS 数据链传输速率低,不利于负载较大的信息传输,故需要对报文的正文部分降低载荷。

由于ACARS 数据链正文部分使用的字符采用美国信息交换标准代码字符集(ASCII)低128 位中的非控制字符,且小写英文字母并不常见于报文,因此,考虑将常用的64 个字符以6 bit 的形式进行负载转码[3],如表1 所示。经过负载转码后,在保证ACARS 正文部分高可读性的情况下,其有效载荷可降低25%。

表1 负载转码对照表Tab.1 Payload conversion set

1.2 数据填充算法

SM4 分组密码算法的分组长度为128 bit,即16 B,但经过负载转码后的正文长度无法保证为16 B 的倍数,为正常加密,还需要对其进行数据填充。

常用的数据填充算法包括ZeroPadding、PKCS7-Padding 以及PKCS5Padding 算法。鉴于ZeroPadding算法单纯使用0 进行填充,当元数据尾部也为0 时,无法区分填充数据,故不对该方法进行讨论。

PKCS7Padding 算法对元数据按块长度(block size)进行取模。当模为0 时,表示已经对齐,需填充一段长度为块长度,且每个字节均为该值的数据;当模不为0 时,表示未对齐,需要填充一段长度为块长度和模的差值,且每个字节均为该值的数据。这样,在还原时就可以根据填充后数据的最后一个字节及该字节出现次数将元数据完整复现。

PKCS5Padding 算法是PKCS7Padding 算法的子集,块大小固定为8 B,利用该算法即可将负载转码后的正文填充为适用于SM4 分组密码算法的信息。

1.3 SM4 分组密码算法

SM4 分组密码算法是中国完全自主设计的分组对称密码算法,其密钥长度和数据分组长度为16 B,密钥扩展算法与加解密算法以字为单位,且采用32轮

非线性迭代进行运算。

1.3.1 参量产生

SM4 算法密钥长度为128 bit,可表示为MK =(MK0,MK1,MK2,MK3),轮密钥rk=(rk0,rk1,…,rk31)由密钥扩展算法生成,需要系统参数FK=(FK0,FK1,FK2,FK3)和固定参数K=(CK0,CK1,…,CK31)参与运算。上述参数中,MKn和FKn(n=0,1,2,3)及rki和CKi(i=0,1,…,31)均为字,且字长均为32 bit。

1.3.2 轮函数F

轮函数F 可表示为

式中:Xi+4为每轮运算的输出值和下一轮运算的输入值;rki为第i 轮生成的轮密钥;⊕符号为异或,其运算法则为p⊕q=(┐p∧q)∨(p∧┐q);T 为合成置换,由非线性变换τ 和线性变换L 复合形成,即T(·)=L(τ(·))。

非线性变换τ 中的S 盒是一种在分组密码中用于置换运算的基本非线性结构,采用16 进制数据表示。由4 个并行的S 盒构成非线性变换,经过非线性运算后的输出值作为输入值进入线性变换L,即

式中:B 为非线性变换τ 的输出值;C 为B 经过线性变换L 后的输出值;<<为左移运算符,用于将一个数的各二进制位向左移若干位,经过左移后,溢出的高位舍弃,空出的低位用0 填补。

1.3.3 密钥扩展算法

根据已知的加密密钥、系统参数和固定参数可生成轮密钥rki,即

式中:Ki为中间参数,初始参数(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3)将其输入到式(3)中进行32 次轮变换;T′将T 中的L 替换为L′,即

1.3.4 加解密算法

SM4 加密算法由32 轮迭代运算和1 次反序变换构成,其将明文按每组128 bit 进行分组,每组划分为长度相等的4 部分,即X0,X1,X2,X3,并将其作为运算输入。输入明文是整数集,输出密文(Y0,Y1,Y2,Y3)∈迭代运算由轮函数F完成;反序变换为最后一次迭代运算结果的逆序,可表示为

SM4 解密算法和加密算法具有相同的结构,逆向使用加密过程中的轮密钥即可进行解密[5]。

2 ACARS 数据链认证方法

ACARS 数据链由于缺少实体认证和消息认证的方式,无法检测和抵挡数据伪造、数据重放及拒绝服务(DoS,denial of service)攻击。将数字签名和公钥数字证书技术应用于数据链通信中,可在抵御上述攻击的同时,还能保证数据链传输的机密性、完整性和不可否认性,为空地通信安全提供有效保障。本研究将引入SM3 国产密码杂凑算法以及SM2 国产椭圆曲线公钥密码算法实现ACARS 数据链的认证。

2.1 数字证书

数字证书作为数字通信中标志各方身份信息的一种数字认证,是经过可信证书颁发机构(CA,Certificate Authority)认证并使用该机构私钥签名生成的文件,其中包含了证书所有者的公钥及相关信息。本研究使用的ACARS 数据链数字证书均遵循公钥基础设施(PKI,public key infrastructure)标准。

2.1.1 数字证书的颁发

数字证书申请过程如图1 所示。

图1 数字证书申请过程Fig.1 Application process of digital certificate

在建立ACARS 数据链会话之前,航空公司需要分别为地面站数据服务商(DSP,Datalink Service Provider)以及机载通信管理单元(CMU,communication management unit)设备生成密钥对(私钥和公钥),并将航空公司实体信息、公钥以及加密算法一起发送给CA以申请数字证书。

当CA 接收到申请请求后,会对请求信息进行审核。审核通过后,会根据公钥和对应的实体信息制作符合X.509 标准的数字证书并返回给航空公司,同时将该数字证书及证书吊销列表(CRL,certificate revocation list)一并存入证书库中。航空公司收到CA 返回的数字证书后,开始监听地面和飞机以确认二者是否建立ACARS 数据链会话,一旦建立,航空公司便将私钥和对方的数字证书分别发送给DSP 和CMU,便完成了数字证书颁发的整个流程。

2.1.2 数字证书的验证

在航空公司传送数字证书给双方前,还要验证证书是否仍然有效,需要进行以下几个检查步骤:①验证证书中的CA 签名是否正确;②验证证书有效期并确定其是最新的;③根据数字证书扩展项中的CRL 地址,检查证书是否被吊销,或发送包含证书序列号的在线证书状态请求包,以确认证书的有效性。

如果检测均通过,可继续建立空地安全会话;否则,航空公司将重复证书的颁发步骤。

2.2 数字签名

当空地双方均持有对方的有效数字证书后,意味着双方已获知对方的公钥,利用非对称密码体制的特性,即可通过数字签名构建安全会话。其中,上行报文签名及验证过程如图2 所示,下行同理。

图2 上行报文签名及验证过程Fig.2 Uplink message signature and verification process

2.2.1 生成签名

使用SM2 算法生成签名之前,需要进行预处理,即利用用户身份标识ID、ID 比特长度ENTL,系统曲线参数a、b 身份标,基点xG、yG以及利用公钥得出的xA、yA以获取用户的可辨别标识杂凑值,即

Z=SM3(ENTL‖ID‖a‖b‖xG‖yG‖xA‖xB),然后,经过以下7 个步骤即可获取消息M 的签名:

(2)计算e=Hv(),其中e 为杂凑函数作用于M的输出值,Hv是杂凑值长度为v 的密码杂凑函数,本研究使用v=256 bit 的SM3 密码杂凑算法;

(3)产生随机数k∈[1,n-1],其中n 为椭圆曲线基点G 的阶,为素数;

(4)计算(x1,y1)=kG,并将x1的数据类型转化为整数,其中x1和y1分别为首个椭圆曲线基点的横坐标和纵坐标,由G 乘以随机数k 获得;

(5)计算第1 个整数r=(e+x1)mod n,若算得r=0 或r+k=0,则回到步骤(3),其中,r 为 中间变量;

(6)计算第2 个整数s=((1+d)-1·(k-r·d))mod n,若s=0,则回到步骤(3),其中,s 为 中间变量,d 是签名者的私钥;

(7)将计算得到的r 和s 转化为字节串得(r,s),即为针对消息M 的签名。

2.2.2 验证签名

验证签名需要以下6 个步骤:

(1)检验r∈[1,n-1]和s∈[1,n-1]是否成立,不成立则验证失败;

(3)计算e=Hv(,Hv和生成签名时一样使用SM3密码杂凑算法;

(4)将r 和s 转化为整数,并计算t=(r+s)mod n,若t=0,则验证不通过,其中t 为中间参数。

(5)计算(x1,y1)=sG+tP,其中P 为签名方公钥;

(6)将x1转化为整数,并计算R=(e+x1)mod n,若R=r 条件成立,则通过验证[6],其中R 为中间参数。

3 实现和测试分析

为验证将上述内容应用于空地数据链通信的合理性,本研究将对ACARS 数据链报文的加密和实体验证进行软硬件模拟,并针对有效载荷损失、报文处理效率和传输效率进行比对分析。

3.1 重新设计正文格式

由于每次加密后的正文和对应的签名值长度都存在差异,直接替换原有报文会导致无法区分两部分内容而导致验证和解密失败,所以需要重新设计ACARS数据链正文格式。ACARS 数据链正文限制在220 B内,单字节(8 bit)即可表示任意长度的正文,可使正文的前两个字节分别存入加密后的数据长度和该数据对应的签名值长度,从第3 个字节开始,存储加密数据和签名值。

3.2 模拟实验环境

根据ARINC 618[7]和ARINC 620[8]协议,当终端发送上行报文时,地面会将符合ARINC 620 规范的报文发送至DSP,DSP 将该报文转化为ARINC 618 格式并发送至远程地面接收站(RGS,remote ground station),并随即向机载CMU 设备传输。下行报文传输是上行的逆过程[9]。

本实验在该流程的基础上,结合本研究所要达成的目标,对发送和接收过程进行相应改进,如图3 所示,并据此构建了模拟环境。

图3 模拟环境Fig.3 Simulation environment

3.3 模拟实现

软件端模拟平台使用Java 语言开发,利用Swing框架搭建GUI 界面。整套实验环境包含两个独立程序:地面站和机载CMU,通过TCP/IP 协议模拟报文的双向传输。硬件端使用软件定义无线电技术对报文进行调制解调,并利用HackRF 设备进行模拟传输。

3.3.1 报文处理

在机载CMU 设备连接到DSP 之前,航空公司分别为CMU 和DSP 生成对应的密钥对并申请数字证书,并确定双方用于对称加解密的密钥,在建立地空数据链会话后分发给各设备。

处理原始报文时,首先,设备提取该报文有效载荷进行负载转码和填充,并通过SM4 分组密码加密;其次,再利用私钥对密文进行数字签名得到签名值;最后,按照3.1 节中所述格式整合成新的有效载荷进行原内容替代。

当对方设备接收到报文后,首先从有效载荷提取出密文和签名值进行验证。如果验证失败,代表报文已遭到攻击,直接抛弃该报文;如果验证成功,根据建立会话时协议的对称密钥对密文进行解密并进行填充还原和转码还原,以得到原始明文。将以上过程进行简化,可得报文处理流程如图4 所示。

图4 报文处理流程Fig.4 Message processing

3.3.2 可视化平台实现

地面站包含了两部分的模拟:航空公司和地面站DSP。航空公司可根据具体的地面站DSP 和CMU 设备信息进行证书申请,如图5 所示。

图5 模拟申请证书Fig.5 Simulation of certificate application

航空公司建立安全会话工作完成后,机载CMU设备即可和地面站DSP 进行连接和通信。发送方可以对待发送报文进行预览如图6 所示。接收方接收报文并将报文以ARINC620 协议规范的格式输出,以方便终端用户浏览关键信息,如图7 所示。

图6 报文预览Fig.6 Message preview

图7 报文接收及格式化输出Fig.7 Message receiving and formatted output

当接收方检测到报文被篡改或被重放时,弹出失败警告,如图8 所示,同时直接丢弃该报文。

图8 验证失败警告Fig.8 Warning of validation failure

3.3.3 硬件模拟

在软件模拟的基础上,使用SDR 平台模拟ACARS数据链报文的传输,基于GNU Radio的报文发送流程图如图9 所示。

图9 报文发送流程图Fig.9 Message transmission process

首先,读取软件生成的报文,由编码器将该报文包装成带有标头、访问代码以及前导数的数据包,并通过高斯最小频移键控(GMSK,Gaussian filtered minimum shiftkeying)方式调制,通过HackRF 设备以131.450 MHz频率将该数据包输出。

报文接收是报文发送的逆过程,其流程如图10所示。在通过GMSK 解调并解码出数据后,以二进制存储在文件中。由脚本对该二进制文件进行处理并得到ACARS 报文。经过实体认证和解密,最后进行报文打印,报文内容打印如图11 所示。

图10 报文接收的流程图Fig.10 Message receiving process

图11 报文内容打印Fig.11 Printing message content

3.4 性能分析

为了检验处理效率及经过处理后的有效载荷损耗,对不同长度的报文正文进行多次测试。同时,引入公钥加密算法进行比对,结果如表2 所示。

通过表2 可以看出,利用SM4 分组密码进行加密时,当原始正文长度较短时,处理后的正文长度相对较大。随着原始正文长度的增长,原始正文长度与处理后的正文长度差距逐渐缩小。当处理后的正文长度即将达到最大载荷(220 B)限制时,可承载的原始信息可达到190 B,损耗仅为13%。使用SM2 公钥密码算法对报文进行相同处理时,在原始载荷很短的情况下,处理后的数据也超过了正文长度限制,需拆分成多个报文进行传输,无法对单一报文的安全性起到保障性作用。

表2 效率测试Tab.2 Efficiency test

效率方面,对于不同长度的正文,其转码加密时间、签名时间以及解密、转码时间较为稳定,分别保持在0.216~0.236 s,0.002~0.003 s 和0.266~0.285 s,报文处理效率不会明显降低。

综合以上实验分析,充分说明了相较于明文传输,将SM4 分组密码算法和数字签名技术引入ACARS 数据链,在可接受效率损失下,空地通信的安全性有了较大幅度提升。

4 结语

本研究基于ACARS 报文对航空甚高频数据链暴露出的安全性问题进行探究并提出相应的解决方案。通过引入国产商用密码算法,保障了数据链安全通信服务的自主可控。在不改变原有数据链通信流程的情况下,应用对称加密算法和数字认证技术处理有效载荷,大幅提高了航空甚高频数据链的安全性,同时未造成系统效率的降低。

但是,本研究仅考虑了针对单报文的安全机制,对于ACARS 这种传输速率低的数据链,会给信道带来巨大负担。因此,所提出的技术还无法完全应用于航空甚高频领域。下一步研究将提出一种基于安全套接字层协议的方法,即在建立信道前完成认证、协商操作,建立安全信道后可直接传输经密钥协商对称加密后的密文,其长度和原始报文长度大致相同,可解决研究存在的不足。

猜你喜欢
数字证书公钥数据链
多平台通用数据链助力未来战场
基于深度学习的无人机数据链信噪比估计算法
快递也有污染,绿色发展在即 以数据链净化快递行业生态链
神奇的公钥密码
盾和弹之间的那点事(十六)
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
PKI技术在SSLVPN中的应用
数字签名保护Word文档
一种公开密钥RSA算法的实现