吴 滢 马 睿 邹成智 王紫怡
(中国民航大学电子信息与自动化学院 天津 300300)
(wuycauc@163.com)
飞机通信寻址与报告系统(aircraft communication addressing and reporting system, ACARS),是一种飞机系统与地面系统之间进行双向数据通信的系统,现已成为民用客机的主用系统之一,并且得到普遍使用.相比较话音系统而言,ACARS的数据通信传输更加高效快捷,同时其信息的准确度及辨识度也远高于话音通信系统.ACARS系统极大地促进了航空业的发展,在航空公司的飞机运行控制、机务维修、地面和气象服务以及空中交通管理相关操作控制等方面都得到了广泛应用[1].由此,ACARS系统的安全可靠性变得至关重要.
图1 上行链路传输过程
目前ACARS系统安全性方面确实存在一些问题,在报文数据未进行加密的情况下,报文真实内容仅需利用普通的射频收发器经过简单的解析就能获取,在传输损耗或传输环境变化后数据就有被窃听和篡改的风险,造成很大的安全隐患,并且存在硬件、线路、系统、人员使用等问题,数据的缺失或被篡改很可能造成航空公司的经济损失,甚至威胁到飞机上的乘客及机组人员的生命安全.
本文主要研究并解决ACARS数据信息的安全问题,针对真实的ACARS报文数据,使用国产SM2算法和SM4算法进行加密处理.结果表明本文的加密方法可以实现航空地空数据链ACARS的数据安全和隐私保护,并且通过实验找出了最适宜ACARS数据加密的算法,确保我国对信息系统的安全自主可控.
ACARS主要通过3种链路进行通信传输:甚高频、高频和卫星通信.在上行链路数据传输过程中,航空公司或空管应用子系统产生符合ARINC-620规范的报文,经由合适的地面专用线路发送出去,ACARS数据处理子系统NMDPS接收到报文后,完成符合ARINC-618规范的报文格式转换,再通过专用线路传输至相应的地面站子系统RGS[2].最后机载MU单元接收到通过空-地上行链路传输的来自RGS站的报文后,将其分发给相应的机载设备进行进一步显示.下行链路的传输过程基本与上行链路传输过程相反.其过程如图1、图2所示[2]:
图2 下行链路的传输过程
ACARS报文有110多个种类,其分为上行链路报文和下行链路报文[3].不同的报文类型中含有不同的自由文本信息.在飞机与地面之间发送的报文被称为空-地通信ACARS报文.无论上行或是下行报文都是由报头、正文、报尾、BCD校验码4部分组成[4].其基本结构如表1、表2所示:
表1 空-地通信上行报文格式
表2 空-地通信下行报文格式
地面用户和数据链服务供应商(DSP)发送的报文称为地-地通信ACARS报文.上下行链路传输在内容上基本相同,只是上行报文中不含目的地址,并且用报文确认标志替代了飞机标志变位.报文格式如表3、表4所示:
表3 地-地通信上行报文格式
表4 地-地通信下行报文格式
作为航空系统的重要组成部分ACARS系统发挥着极其重要的作用.考虑到航空系统中的链路兼容性和紧急问题,该系统中大多数使用未加密的通信也带来了相应的隐患.目前有数据泄露、数据欺诈、实体伪装和拒绝服务攻击网络4个安全隐患.引起ACARS数据链安全隐患的原因主要有以下2方面:
1) 数据未加密容易被窃听.ACARS消息是在空对地通信过程中以明文形式传输的,未经过任何手段加密处理,因此任何人都可以通过无线电收发设备窃听和伪造ACARS消息,并且可以通过简单分析获得消息的真实内容.这些信息不仅仅包括飞机的航班号、起降时间、当前地理位置,还包括气象信息等.ACARS 系统不仅应用于民用航空,也应用于军用航空.若相关军事情报被盗取将严重影响国家安全.目前数据泄露是最大的安全隐患,本文对此进行研究,采用国产密码算法对ACARS数据链进行数据加密.
2) 数据链没有接入认证措施容易造成实体伪装攻击.实体伪装就是伪装者通过相关设备伪装成飞机.目前数据链路网络首先检查航空公司的接口路由器的IP地址,但只向合法的IP地址提供服务,向航空公司提供用户服务.当用户航空公司登录时该用户名将会被验证,只有通过了该验证DSP网络控制中心才会停止对该用户身份的认证,然后向该用户传递它所需要的信息.但这2种安全措施的实施不在同一个网络层,所以没有办法通过相关信息来认证登录用户的信息,这就可能存在假冒的航空公司用户.未被授权的实体可能不仅得到访问权,还篡改了资源,使系统资源遭到破坏.这带来了巨大的安全风险,并可能使飞机安全飞行产生严重后果.就当前技术而言,无法从根本上解决实体伪装这一安全隐患.
国密算法是我国自主研发创新的一套数据加密处理算法,SM1,SM2,SM3,SM4这4种算法分别实现了对称、非对称、摘要等算法功能[5].考虑ACARS系统的带宽和资源有限原因,本实验方案采用SM2和SM4加密算法对ACARS报文进行加解密,并对2种算法进行比较.
SM2算法和RSA算法都是我国具有自主知识产权且公钥公开的算法,但SM2算法在安全性能和速度性能方面都优于RSA算法,故SM2算法已替代RSA算法作为商用[6].
SM2算法是使用椭圆曲线方程算法的原理实现的.在ACARS数据加密过程中,接收用户A选择1条适于加密的椭圆曲线(例:y2=x3+ax+b,记为Ep(a,b)).在SM2椭圆曲线算法的标准中,通过指定a和b的值来确定唯一的标准曲线.同时该用户取椭圆曲线上1点,作为基点P,通过点P作1条切线,交与点2P′,在点2P′作1条竖线,交于点2P,点2P便是点P的2倍点[7];同理可计算出3,4倍点,倍数即为私钥d,用户选择1个私有密钥d,并生成公钥Q=dP,即可进行后续加密操作.
在此基础上,用户B将ACARS报文明文编码发送到椭圆曲线的1点M上,并产生了1个随机整数r,由此计算点C1=M+rQ,C2=rP,即为通过SM2加密所得到的密文[8],将其发送给用户A.而接收用户A根据接收到C1,C2以及密钥d计算C1-dC2,可得到点M,再对点M进行解码就可以得到ACARS明文数据.
在这个加密通信中,如果有一个偷窥者H,他只能看到椭圆曲线Ep(a,b),Q,P,C1,C2,而通过Q,P求d或通过C2,P求r都是相对困难的,因此,H无法得到A,B间传送的明文信息[9].具体的加密算法过程框图如图3所示:
图3 SM2加解密过程
SM4算法是一种分组密码算法[10].其分组与密钥长度均为128 b.加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32 b)为单位进行加密运算,每一次迭代运算均为一轮变换函数F[11].
具体的加密算法如下:
Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=
Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki),
i=0,1,…,31.
为了使最终加密的排列顺序与后面解密算法的排列顺序相同,还需再对最后1轮迭代后的ACARS报文转化的比特流数据进行反序处理,即
(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=
(X35,X34,X33,X32).
具体的加密算法过程框图如图4所示[12]:
图4 SM4加密算法过程
由图4不难看出,SM4加密就是将所要加密的ACARS报文数据按照相同的长度进行分组成字,这里分成了4组,然后每一轮使用1个轮密钥对字进行加密得到新的密文,该密文也是1个字的长度,将其再结合前3个字迭代进行新一轮的加密操作,如此迭代32轮后进行1次反序运算,最终产生4个字的比特流密文,再经过处理即可得到所需要的ACARS报文密文.解密算法与加密算法流程相同,只是加密时轮密钥的使用顺序是(rk0,rk1,…,rk31),而解密时轮密钥的使用顺序是(rk31,rk30,…,rk0)[12].
本文利用了SM2和SM4分别对所提供的ACARS报文信息进行加密解密,并通过实际所得的加解密报文效果及加解密过程中所耗费的时间效率对比分析2种加密算法的性能效果.
本文演示平台的搭建使用了C#编程语言,利用C#的集成开发环境Visual Studio实现SM算法对ACARS报文的加密和解密功能,同时结合WPF桌面应用程序开发插件,编程实现实验操作界面中报文明文信息输入、弹窗提示相关功能.加密时,由飞行员通过多功能显示单元MCDU输入生成应用数据,通过机载总线发送给通信管理组件CMU,CMU将接收到的数据封装成ACARS报文,对其报文信息进行SM2或SM4算法加密后提交给甚高频收发信机,进而传输至地面站;解密时,由甚高频收信机接收到来自地面站的ACARS数据信息密文,对该密文信息先进行对应的解密处理后,由CMU从明文中提取应用数据,进而分发到相关机载单元进行处理.具体测试环境如图5所示:
图5 测试环境
如图6所示,最终完成的操作平台主要分为以下几个部分:
图6 实验操作界面
1) 报文明文信息输入.根据之前的ACARS报文信息内容和格式的分析,已知上行和下行的报文所包含的信息是有所不同的,因此据此平台将上行和下行的报文分开进行输入,用户可以根据自身需求进行选择.
2) 加密方式选择.因为SM2和SM4均能够对ACARS的报文信息进行加密,为比较2种算法的性能,平台设计了SM2和SM4的2种加密方式的选择,便于我们在同一报文信息的基础上比较2种加密算法的优缺点,操作方便.
3) 加密解密报文的生成和显示.如图6所示,当按下灰色方框按钮“生成加密解密报文V.V”后,则会在加密报文和解密报文后对应的空白处显示相应的报文内容,此区域用户只能查看不可更改,同时在生成加密和解密报文的过程中会出现弹窗显示加密和解密2个过程分别所耗费的时间,易于比较2种算法的性能.
4) 所有内容清除.如图6所示,当按下灰色方框按钮“清除T.T”后,之前在演示平台界面上所输入的报文信息内容和显示的加解密报文会被一键清除,便于用户能够后一步对新的报文内容输入并进行加解密的操作.
5) 信息填写提示弹窗.由于ACARS报文有其规定的格式,所以为完成对指定内容进行加解密,避免时间和资源的浪费,系统会在填写的内容不规范或缺失等情况下自动弹出提示窗口,且弹窗根据缺少部分的不同提示用户不同关键词,如图7、图8所示:
图7 Mode信息填写不规范提示弹窗
图8 Address信息填写不规范提示弹窗
图9 SM2加解密操作界面
用户可根据以上平台划分部分的介绍,结合自身需求,在弹窗提示的帮助下完成SM算法的加解密操作.以下行报文信息为例,图9、图10分别是SM2和SM4加解密操作界面.
图10 SM4加解密操作界面
1) 测试数据——下行起飞报
明文:〈SOH〉2.G-YMEG〈NAK〉QQ6〈STX〉M37AVS0201VHHHEGLLI549323210〈ETX〉〈BCS〉〈DEL〉.
SM2密文: 〈SOH〉2.G-YMEG〈NAK〉QQ6〈STX〉0446A1FA799F7D3FA85330628EA143579 6716A94AF819D91DBF965D9AFE5BDA23444D ABE1A27A12D15B38A2C8DB02B72C32F5FB2A EE797D08495D6D4062ED55B77BA2D1BB0ADE 045C4F2DC4DS3SF6D82071DE0DC0A7592F883 E960A083C7480CCD33F1EAA5437E4F769581E C8B13F4BBSCD3B1DAD7ABF99133163D6CE〈ETX〉〈BCS〉〈DEL〉 .
SM2加密时间:第1次为61.971 4 ms;第2次为19.652 1 ms;第3次为11.726 1 ms.
SM2解密时间:第1次为6.410 9 ms;第2次为6.507 ms;第3次为8.393 6 ms.
SM4密文:〈SOH〉2.G-YMEG〈NAK〉QQ6〈STX〉040f694888e04665f3c2bb41d1f3023e2d4e7 8a696f89b42e05fbb2fdaf00e9c〈ETX〉〈BCS〉〈DEL〉.
SM4加密时间:第1次为2.178 1 ms;第2次为0.091 1 ms;第3次为0.034 7 ms.
SM4解密时间:第1次为0.746 7 ms;第2次为0.037 ms;第3次为0.056 6 ms.
加密性能分析:原报文字符数是28,SM4加密后密文字符数是64,SM2加密后密文字符数是249,是SM4加密后字符数的3倍还要多.由于是程序第1次运行,SM2和SM4的加密解密时间第1次相对于后面几次对于相同的报文进行加密解密的时间要长,对同一报文多次加密后,SM2加密时间基本稳定在11~20 ms内,解密时间基本稳定在3~8 ms内;SM4加密时间基本稳定在0.03~0.09 ms内,解密时间基本稳定在0.03~0.07 ms内,显然SM2加密和解密时间长于SM4.
2) 测试数据——下行位置报
明文:〈SOH〉2.N12353〈NAK〉5Z2〈STX〉M44AMU6745POSCAS 143,LAT N24.216,LON E108.253,ALT4124,UTC082513〈ETX〉〈BCS〉〈DEL〉.
SM2密文:〈SOH〉2.N12353〈NAK〉5Z2〈STX〉04D119445036AE9C075BB5339398A8D1D C6616ABB9E7B39D42718C2EC661286455D1C1E F845F83EF9D03F734B730041FCB2ED079F8309 C4CD12DF67546204184A1643E5910D518EF91A 113270FA0ED5D3E489B00EE04A68735F33E522 F5AB4E38C305E5FC862F405881FBA378C517C A5792ECAF9FD2B92DFF085D2FFC1C99CAE95 750594977692586C877A0482379C50BFED071EE FB03172C07BE9CEE〈ETX〉〈BCS〉〈DEL〉.
SM2加密时间:第1次为13.648 5 ms;第2次为10.393 5 ms;第3次为12.132 7 ms.
SM2解密时间:第1次为6.821 1 ms;第2次为5.885 7 ms;第3次为5.378 2 ms.
SM4密文:〈SOH〉2.N12353〈NAK〉5Z2〈STX〉cbSfed489544d1a98b17326a54687c22e06 d19c26d1476e1d7789e8dbfb7b40760cc851cb3fb62 9e20e0376f355705d4c4e3105c425a3659f058510ca6 e0ee48〈ETX〉〈BCS〉〈DEL〉.
SM4加密时间:第1次为0.050 3 ms;第2次为0.092 5 ms;第3次为0.091 1 ms.
SM4解密时间:第1次为0.086 5 ms;第2次为0.089 8 ms;第3次为0.085 2 ms.
加密性能分析:原报文字符数是63,SM4加密后密文字符数是128,SM2加密后密文字符数是314,是SM4加密后的字符数的2倍还要多.对同一报文多次加密后,SM2加密时间基本稳定在11~13 ms内,解密时间基本稳定在3~8 ms内;SM4加密时间基本稳定在0.03~0.09 ms内,解密时间基本稳定在0.05~0.08 ms内,显然SM2加密和解密时间长于SM4.
综合以上加密结果对比分析:SM4和SM2加密后的密文均是可传输的ACARS字符,均不具有可读性.
SM4加密后的字符数明显小于SM2加密的字符数,有效节约了ACARS系统运行的成本和存储容量,SM4分组加密算法对ACARS报文数据进行加解密时,操作流程和使用的密钥基本上都是相同的,仅是改变了密钥的顺序排列,这就极大地简化了程序的复杂度,缩减了程序的运行时间;而SM2加密算法不仅需要公钥,还需要和公钥配对的私钥才能完成解密过程,相比来说加密算法复杂,且不易实现.随着目前航空器发展越来越多的情况下,频率资源和频带带宽越来越紧缺,在保证数据链路信息传输安全的基础上,SM4加密算法有更高的可用性.
从安全角度来看,SM4分组密码算法的S盒设计水平与欧美不相上下,线性置换的分支数达到最优,具有很强的抵抗能力[13],同时SM4算法的密钥长度是128 b,根据当前的密钥搜索速度,不可能在短时间内完成解码.因此,SM4算法可以有效抵御密集型攻击.另外,SM4算法的密钥生成算法和加密算法基本相同,不需要重写解密算法,因此提高了加密和解密的效率.
综合上述分析,考虑到ACARS系统资源和带宽受限这一主要因素,SM4算法相比于SM2算法而言计算所占资源更小,加解密速度更快速,并且具备一定的安全性优势,对于整个ACARS系统来说工作效果最佳.
本文针对ACARS数据链路通信中存在的数据泄露这一主要安全隐患,结合面向字符型的数据编码,基本实现了基于国产密码SM2和SM4算法的航空地空数据链ACARS数据保护技术的实验方案,通过利用C#语言,Visual Studio开发环境实现算法对ACARS报文加密和解密功能,并利用Visual Studio里的WPF桌面应用程序开发插件完成对ACARS报文数据加解密的界面设计.通过该演示平台对真实ACARS报文的加密测试,研究表明本文所提出的安全保护方案具有很高的可行性,对ACARS数据链路通信系统安全隐患有一定的有效保护性,为ACARS数据链路安全性的研究提供了理论方面的价值基础和应用前景.
由于一些条件的限制,本文研究实现的ACARS系统数据链路加密系统和实际的ACARS数据链通信系统还是有很大区别,民航业中实际运用到的ACARS系统环境要远比实验中设想得复杂.本次实验在理论研究和操作环境背景设置等方面还有很多需要改进的地方,暂时还无法运用到真实的ACARS系统中.今后将重点研究ACARS数据链路安全实际应用问题,为我国的航空安全通信保障尽自己的一点绵薄之力.