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