吳 瀅 馬 睿 鄒成智 王紫怡
(中國民航大學(xué)電子信息與自動(dòng)化學(xué)院 天津 300300)
(wuycauc@163.com)
飛機(jī)通信尋址與報(bào)告系統(tǒng)(aircraft communication addressing and reporting system, ACARS),是一種飛機(jī)系統(tǒng)與地面系統(tǒng)之間進(jìn)行雙向數(shù)據(jù)通信的系統(tǒng),現(xiàn)已成為民用客機(jī)的主用系統(tǒng)之一,并且得到普遍使用.相比較話音系統(tǒng)而言,ACARS的數(shù)據(jù)通信傳輸更加高效快捷,同時(shí)其信息的準(zhǔn)確度及辨識度也遠(yuǎn)高于話音通信系統(tǒng).ACARS系統(tǒng)極大地促進(jìn)了航空業(yè)的發(fā)展,在航空公司的飛機(jī)運(yùn)行控制、機(jī)務(wù)維修、地面和氣象服務(wù)以及空中交通管理相關(guān)操作控制等方面都得到了廣泛應(yīng)用[1].由此,ACARS系統(tǒng)的安全可靠性變得至關(guān)重要.
圖1 上行鏈路傳輸過程
目前ACARS系統(tǒng)安全性方面確實(shí)存在一些問題,在報(bào)文數(shù)據(jù)未進(jìn)行加密的情況下,報(bào)文真實(shí)內(nèi)容僅需利用普通的射頻收發(fā)器經(jīng)過簡單的解析就能獲取,在傳輸損耗或傳輸環(huán)境變化后數(shù)據(jù)就有被竊聽和篡改的風(fēng)險(xiǎn),造成很大的安全隱患,并且存在硬件、線路、系統(tǒng)、人員使用等問題,數(shù)據(jù)的缺失或被篡改很可能造成航空公司的經(jīng)濟(jì)損失,甚至威脅到飛機(jī)上的乘客及機(jī)組人員的生命安全.
本文主要研究并解決ACARS數(shù)據(jù)信息的安全問題,針對真實(shí)的ACARS報(bào)文數(shù)據(jù),使用國產(chǎn)SM2算法和SM4算法進(jìn)行加密處理.結(jié)果表明本文的加密方法可以實(shí)現(xiàn)航空地空數(shù)據(jù)鏈ACARS的數(shù)據(jù)安全和隱私保護(hù),并且通過實(shí)驗(yàn)找出了最適宜ACARS數(shù)據(jù)加密的算法,確保我國對信息系統(tǒng)的安全自主可控.
ACARS主要通過3種鏈路進(jìn)行通信傳輸:甚高頻、高頻和衛(wèi)星通信.在上行鏈路數(shù)據(jù)傳輸過程中,航空公司或空管應(yīng)用子系統(tǒng)產(chǎn)生符合ARINC-620規(guī)范的報(bào)文,經(jīng)由合適的地面專用線路發(fā)送出去,ACARS數(shù)據(jù)處理子系統(tǒng)NMDPS接收到報(bào)文后,完成符合ARINC-618規(guī)范的報(bào)文格式轉(zhuǎn)換,再通過專用線路傳輸至相應(yīng)的地面站子系統(tǒng)RGS[2].最后機(jī)載MU單元接收到通過空-地上行鏈路傳輸?shù)膩碜訰GS站的報(bào)文后,將其分發(fā)給相應(yīng)的機(jī)載設(shè)備進(jìn)行進(jìn)一步顯示.下行鏈路的傳輸過程基本與上行鏈路傳輸過程相反.其過程如圖1、圖2所示[2]:
圖2 下行鏈路的傳輸過程
ACARS報(bào)文有110多個(gè)種類,其分為上行鏈路報(bào)文和下行鏈路報(bào)文[3].不同的報(bào)文類型中含有不同的自由文本信息.在飛機(jī)與地面之間發(fā)送的報(bào)文被稱為空-地通信ACARS報(bào)文.無論上行或是下行報(bào)文都是由報(bào)頭、正文、報(bào)尾、BCD校驗(yàn)碼4部分組成[4].其基本結(jié)構(gòu)如表1、表2所示:
表1 空-地通信上行報(bào)文格式
表2 空-地通信下行報(bào)文格式
地面用戶和數(shù)據(jù)鏈服務(wù)供應(yīng)商(DSP)發(fā)送的報(bào)文稱為地-地通信ACARS報(bào)文.上下行鏈路傳輸在內(nèi)容上基本相同,只是上行報(bào)文中不含目的地址,并且用報(bào)文確認(rèn)標(biāo)志替代了飛機(jī)標(biāo)志變位.報(bào)文格式如表3、表4所示:
表3 地-地通信上行報(bào)文格式
表4 地-地通信下行報(bào)文格式
作為航空系統(tǒng)的重要組成部分ACARS系統(tǒng)發(fā)揮著極其重要的作用.考慮到航空系統(tǒng)中的鏈路兼容性和緊急問題,該系統(tǒng)中大多數(shù)使用未加密的通信也帶來了相應(yīng)的隱患.目前有數(shù)據(jù)泄露、數(shù)據(jù)欺詐、實(shí)體偽裝和拒絕服務(wù)攻擊網(wǎng)絡(luò)4個(gè)安全隱患.引起ACARS數(shù)據(jù)鏈安全隱患的原因主要有以下2方面:
1) 數(shù)據(jù)未加密容易被竊聽.ACARS消息是在空對地通信過程中以明文形式傳輸?shù)?,未?jīng)過任何手段加密處理,因此任何人都可以通過無線電收發(fā)設(shè)備竊聽和偽造ACARS消息,并且可以通過簡單分析獲得消息的真實(shí)內(nèi)容.這些信息不僅僅包括飛機(jī)的航班號、起降時(shí)間、當(dāng)前地理位置,還包括氣象信息等.ACARS 系統(tǒng)不僅應(yīng)用于民用航空,也應(yīng)用于軍用航空.若相關(guān)軍事情報(bào)被盜取將嚴(yán)重影響國家安全.目前數(shù)據(jù)泄露是最大的安全隱患,本文對此進(jìn)行研究,采用國產(chǎn)密碼算法對ACARS數(shù)據(jù)鏈進(jìn)行數(shù)據(jù)加密.
2) 數(shù)據(jù)鏈沒有接入認(rèn)證措施容易造成實(shí)體偽裝攻擊.實(shí)體偽裝就是偽裝者通過相關(guān)設(shè)備偽裝成飛機(jī).目前數(shù)據(jù)鏈路網(wǎng)絡(luò)首先檢查航空公司的接口路由器的IP地址,但只向合法的IP地址提供服務(wù),向航空公司提供用戶服務(wù).當(dāng)用戶航空公司登錄時(shí)該用戶名將會被驗(yàn)證,只有通過了該驗(yàn)證DSP網(wǎng)絡(luò)控制中心才會停止對該用戶身份的認(rèn)證,然后向該用戶傳遞它所需要的信息.但這2種安全措施的實(shí)施不在同一個(gè)網(wǎng)絡(luò)層,所以沒有辦法通過相關(guān)信息來認(rèn)證登錄用戶的信息,這就可能存在假冒的航空公司用戶.未被授權(quán)的實(shí)體可能不僅得到訪問權(quán),還篡改了資源,使系統(tǒng)資源遭到破壞.這帶來了巨大的安全風(fēng)險(xiǎn),并可能使飛機(jī)安全飛行產(chǎn)生嚴(yán)重后果.就當(dāng)前技術(shù)而言,無法從根本上解決實(shí)體偽裝這一安全隱患.
國密算法是我國自主研發(fā)創(chuàng)新的一套數(shù)據(jù)加密處理算法,SM1,SM2,SM3,SM4這4種算法分別實(shí)現(xiàn)了對稱、非對稱、摘要等算法功能[5].考慮ACARS系統(tǒng)的帶寬和資源有限原因,本實(shí)驗(yàn)方案采用SM2和SM4加密算法對ACARS報(bào)文進(jìn)行加解密,并對2種算法進(jìn)行比較.
SM2算法和RSA算法都是我國具有自主知識產(chǎn)權(quán)且公鑰公開的算法,但SM2算法在安全性能和速度性能方面都優(yōu)于RSA算法,故SM2算法已替代RSA算法作為商用[6].
SM2算法是使用橢圓曲線方程算法的原理實(shí)現(xiàn)的.在ACARS數(shù)據(jù)加密過程中,接收用戶A選擇1條適于加密的橢圓曲線(例:y2=x3+ax+b,記為Ep(a,b)).在SM2橢圓曲線算法的標(biāo)準(zhǔn)中,通過指定a和b的值來確定唯一的標(biāo)準(zhǔn)曲線.同時(shí)該用戶取橢圓曲線上1點(diǎn),作為基點(diǎn)P,通過點(diǎn)P作1條切線,交與點(diǎn)2P′,在點(diǎn)2P′作1條豎線,交于點(diǎn)2P,點(diǎn)2P便是點(diǎn)P的2倍點(diǎn)[7];同理可計(jì)算出3,4倍點(diǎn),倍數(shù)即為私鑰d,用戶選擇1個(gè)私有密鑰d,并生成公鑰Q=dP,即可進(jìn)行后續(xù)加密操作.
在此基礎(chǔ)上,用戶B將ACARS報(bào)文明文編碼發(fā)送到橢圓曲線的1點(diǎn)M上,并產(chǎn)生了1個(gè)隨機(jī)整數(shù)r,由此計(jì)算點(diǎn)C1=M+rQ,C2=rP,即為通過SM2加密所得到的密文[8],將其發(fā)送給用戶A.而接收用戶A根據(jù)接收到C1,C2以及密鑰d計(jì)算C1-dC2,可得到點(diǎn)M,再對點(diǎn)M進(jìn)行解碼就可以得到ACARS明文數(shù)據(jù).
在這個(gè)加密通信中,如果有一個(gè)偷窺者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.加密算法與密鑰擴(kuò)展算法均采用32輪非線性迭代結(jié)構(gòu),以字(32 b)為單位進(jìn)行加密運(yùn)算,每一次迭代運(yùn)算均為一輪變換函數(shù)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報(bào)文轉(zhuǎn)化的比特流數(shù)據(jù)進(jìn)行反序處理,即
(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=
(X35,X34,X33,X32).
具體的加密算法過程框圖如圖4所示[12]:
圖4 SM4加密算法過程
由圖4不難看出,SM4加密就是將所要加密的ACARS報(bào)文數(shù)據(jù)按照相同的長度進(jìn)行分組成字,這里分成了4組,然后每一輪使用1個(gè)輪密鑰對字進(jìn)行加密得到新的密文,該密文也是1個(gè)字的長度,將其再結(jié)合前3個(gè)字迭代進(jìn)行新一輪的加密操作,如此迭代32輪后進(jìn)行1次反序運(yùn)算,最終產(chǎn)生4個(gè)字的比特流密文,再經(jīng)過處理即可得到所需要的ACARS報(bào)文密文.解密算法與加密算法流程相同,只是加密時(shí)輪密鑰的使用順序是(rk0,rk1,…,rk31),而解密時(shí)輪密鑰的使用順序是(rk31,rk30,…,rk0)[12].
本文利用了SM2和SM4分別對所提供的ACARS報(bào)文信息進(jìn)行加密解密,并通過實(shí)際所得的加解密報(bào)文效果及加解密過程中所耗費(fèi)的時(shí)間效率對比分析2種加密算法的性能效果.
本文演示平臺的搭建使用了C#編程語言,利用C#的集成開發(fā)環(huán)境Visual Studio實(shí)現(xiàn)SM算法對ACARS報(bào)文的加密和解密功能,同時(shí)結(jié)合WPF桌面應(yīng)用程序開發(fā)插件,編程實(shí)現(xiàn)實(shí)驗(yàn)操作界面中報(bào)文明文信息輸入、彈窗提示相關(guān)功能.加密時(shí),由飛行員通過多功能顯示單元MCDU輸入生成應(yīng)用數(shù)據(jù),通過機(jī)載總線發(fā)送給通信管理組件CMU,CMU將接收到的數(shù)據(jù)封裝成ACARS報(bào)文,對其報(bào)文信息進(jìn)行SM2或SM4算法加密后提交給甚高頻收發(fā)信機(jī),進(jìn)而傳輸至地面站;解密時(shí),由甚高頻收信機(jī)接收到來自地面站的ACARS數(shù)據(jù)信息密文,對該密文信息先進(jìn)行對應(yīng)的解密處理后,由CMU從明文中提取應(yīng)用數(shù)據(jù),進(jìn)而分發(fā)到相關(guān)機(jī)載單元進(jìn)行處理.具體測試環(huán)境如圖5所示:
圖5 測試環(huán)境
如圖6所示,最終完成的操作平臺主要分為以下幾個(gè)部分:
圖6 實(shí)驗(yàn)操作界面
1) 報(bào)文明文信息輸入.根據(jù)之前的ACARS報(bào)文信息內(nèi)容和格式的分析,已知上行和下行的報(bào)文所包含的信息是有所不同的,因此據(jù)此平臺將上行和下行的報(bào)文分開進(jìn)行輸入,用戶可以根據(jù)自身需求進(jìn)行選擇.
2) 加密方式選擇.因?yàn)镾M2和SM4均能夠?qū)CARS的報(bào)文信息進(jìn)行加密,為比較2種算法的性能,平臺設(shè)計(jì)了SM2和SM4的2種加密方式的選擇,便于我們在同一報(bào)文信息的基礎(chǔ)上比較2種加密算法的優(yōu)缺點(diǎn),操作方便.
3) 加密解密報(bào)文的生成和顯示.如圖6所示,當(dāng)按下灰色方框按鈕“生成加密解密報(bào)文V.V”后,則會在加密報(bào)文和解密報(bào)文后對應(yīng)的空白處顯示相應(yīng)的報(bào)文內(nèi)容,此區(qū)域用戶只能查看不可更改,同時(shí)在生成加密和解密報(bào)文的過程中會出現(xiàn)彈窗顯示加密和解密2個(gè)過程分別所耗費(fèi)的時(shí)間,易于比較2種算法的性能.
4) 所有內(nèi)容清除.如圖6所示,當(dāng)按下灰色方框按鈕“清除T.T”后,之前在演示平臺界面上所輸入的報(bào)文信息內(nèi)容和顯示的加解密報(bào)文會被一鍵清除,便于用戶能夠后一步對新的報(bào)文內(nèi)容輸入并進(jìn)行加解密的操作.
5) 信息填寫提示彈窗.由于ACARS報(bào)文有其規(guī)定的格式,所以為完成對指定內(nèi)容進(jìn)行加解密,避免時(shí)間和資源的浪費(fèi),系統(tǒng)會在填寫的內(nèi)容不規(guī)范或缺失等情況下自動(dòng)彈出提示窗口,且彈窗根據(jù)缺少部分的不同提示用戶不同關(guān)鍵詞,如圖7、圖8所示:
圖7 Mode信息填寫不規(guī)范提示彈窗
圖8 Address信息填寫不規(guī)范提示彈窗
圖9 SM2加解密操作界面
用戶可根據(jù)以上平臺劃分部分的介紹,結(jié)合自身需求,在彈窗提示的幫助下完成SM算法的加解密操作.以下行報(bào)文信息為例,圖9、圖10分別是SM2和SM4加解密操作界面.
圖10 SM4加解密操作界面
1) 測試數(shù)據(jù)——下行起飛報(bào)
明文:〈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加密時(shí)間:第1次為61.971 4 ms;第2次為19.652 1 ms;第3次為11.726 1 ms.
SM2解密時(shí)間:第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加密時(shí)間:第1次為2.178 1 ms;第2次為0.091 1 ms;第3次為0.034 7 ms.
SM4解密時(shí)間:第1次為0.746 7 ms;第2次為0.037 ms;第3次為0.056 6 ms.
加密性能分析:原報(bào)文字符數(shù)是28,SM4加密后密文字符數(shù)是64,SM2加密后密文字符數(shù)是249,是SM4加密后字符數(shù)的3倍還要多.由于是程序第1次運(yùn)行,SM2和SM4的加密解密時(shí)間第1次相對于后面幾次對于相同的報(bào)文進(jìn)行加密解密的時(shí)間要長,對同一報(bào)文多次加密后,SM2加密時(shí)間基本穩(wěn)定在11~20 ms內(nèi),解密時(shí)間基本穩(wěn)定在3~8 ms內(nèi);SM4加密時(shí)間基本穩(wěn)定在0.03~0.09 ms內(nèi),解密時(shí)間基本穩(wěn)定在0.03~0.07 ms內(nèi),顯然SM2加密和解密時(shí)間長于SM4.
2) 測試數(shù)據(jù)——下行位置報(bào)
明文:〈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加密時(shí)間:第1次為13.648 5 ms;第2次為10.393 5 ms;第3次為12.132 7 ms.
SM2解密時(shí)間:第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加密時(shí)間:第1次為0.050 3 ms;第2次為0.092 5 ms;第3次為0.091 1 ms.
SM4解密時(shí)間:第1次為0.086 5 ms;第2次為0.089 8 ms;第3次為0.085 2 ms.
加密性能分析:原報(bào)文字符數(shù)是63,SM4加密后密文字符數(shù)是128,SM2加密后密文字符數(shù)是314,是SM4加密后的字符數(shù)的2倍還要多.對同一報(bào)文多次加密后,SM2加密時(shí)間基本穩(wěn)定在11~13 ms內(nèi),解密時(shí)間基本穩(wěn)定在3~8 ms內(nèi);SM4加密時(shí)間基本穩(wěn)定在0.03~0.09 ms內(nèi),解密時(shí)間基本穩(wěn)定在0.05~0.08 ms內(nèi),顯然SM2加密和解密時(shí)間長于SM4.
綜合以上加密結(jié)果對比分析:SM4和SM2加密后的密文均是可傳輸?shù)腁CARS字符,均不具有可讀性.
SM4加密后的字符數(shù)明顯小于SM2加密的字符數(shù),有效節(jié)約了ACARS系統(tǒng)運(yùn)行的成本和存儲容量,SM4分組加密算法對ACARS報(bào)文數(shù)據(jù)進(jìn)行加解密時(shí),操作流程和使用的密鑰基本上都是相同的,僅是改變了密鑰的順序排列,這就極大地簡化了程序的復(fù)雜度,縮減了程序的運(yùn)行時(shí)間;而SM2加密算法不僅需要公鑰,還需要和公鑰配對的私鑰才能完成解密過程,相比來說加密算法復(fù)雜,且不易實(shí)現(xiàn).隨著目前航空器發(fā)展越來越多的情況下,頻率資源和頻帶帶寬越來越緊缺,在保證數(shù)據(jù)鏈路信息傳輸安全的基礎(chǔ)上,SM4加密算法有更高的可用性.
從安全角度來看,SM4分組密碼算法的S盒設(shè)計(jì)水平與歐美不相上下,線性置換的分支數(shù)達(dá)到最優(yōu),具有很強(qiáng)的抵抗能力[13],同時(shí)SM4算法的密鑰長度是128 b,根據(jù)當(dāng)前的密鑰搜索速度,不可能在短時(shí)間內(nèi)完成解碼.因此,SM4算法可以有效抵御密集型攻擊.另外,SM4算法的密鑰生成算法和加密算法基本相同,不需要重寫解密算法,因此提高了加密和解密的效率.
綜合上述分析,考慮到ACARS系統(tǒng)資源和帶寬受限這一主要因素,SM4算法相比于SM2算法而言計(jì)算所占資源更小,加解密速度更快速,并且具備一定的安全性優(yōu)勢,對于整個(gè)ACARS系統(tǒng)來說工作效果最佳.
本文針對ACARS數(shù)據(jù)鏈路通信中存在的數(shù)據(jù)泄露這一主要安全隱患,結(jié)合面向字符型的數(shù)據(jù)編碼,基本實(shí)現(xiàn)了基于國產(chǎn)密碼SM2和SM4算法的航空地空數(shù)據(jù)鏈ACARS數(shù)據(jù)保護(hù)技術(shù)的實(shí)驗(yàn)方案,通過利用C#語言,Visual Studio開發(fā)環(huán)境實(shí)現(xiàn)算法對ACARS報(bào)文加密和解密功能,并利用Visual Studio里的WPF桌面應(yīng)用程序開發(fā)插件完成對ACARS報(bào)文數(shù)據(jù)加解密的界面設(shè)計(jì).通過該演示平臺對真實(shí)ACARS報(bào)文的加密測試,研究表明本文所提出的安全保護(hù)方案具有很高的可行性,對ACARS數(shù)據(jù)鏈路通信系統(tǒng)安全隱患有一定的有效保護(hù)性,為ACARS數(shù)據(jù)鏈路安全性的研究提供了理論方面的價(jià)值基礎(chǔ)和應(yīng)用前景.
由于一些條件的限制,本文研究實(shí)現(xiàn)的ACARS系統(tǒng)數(shù)據(jù)鏈路加密系統(tǒng)和實(shí)際的ACARS數(shù)據(jù)鏈通信系統(tǒng)還是有很大區(qū)別,民航業(yè)中實(shí)際運(yùn)用到的ACARS系統(tǒng)環(huán)境要遠(yuǎn)比實(shí)驗(yàn)中設(shè)想得復(fù)雜.本次實(shí)驗(yàn)在理論研究和操作環(huán)境背景設(shè)置等方面還有很多需要改進(jìn)的地方,暫時(shí)還無法運(yùn)用到真實(shí)的ACARS系統(tǒng)中.今后將重點(diǎn)研究ACARS數(shù)據(jù)鏈路安全實(shí)際應(yīng)用問題,為我國的航空安全通信保障盡自己的一點(diǎn)綿薄之力.