吳志軍,賈悅霖
(中國(guó)民航大學(xué)電子信息工程學(xué)院,天津300300)
ACARS地-空數(shù)據(jù)鏈中數(shù)字證書(shū)的應(yīng)用研究
吳志軍,賈悅霖
(中國(guó)民航大學(xué)電子信息工程學(xué)院,天津300300)
ACARS(aircraft communication addressing and reporting system)即飛機(jī)通信尋址報(bào)告系統(tǒng),它是當(dāng)前民航部門(mén)使用的飛機(jī)與地面的主要通信方式之一。ACARS地空數(shù)據(jù)鏈對(duì)航空飛行安全保障十分重要,但其安全性和重要性并非成正比。在分析其安全隱患的基礎(chǔ)上,針對(duì)ACARS中實(shí)體身份認(rèn)證方法的不足,在地-空安全會(huì)話初始化中研究基于橢圓曲線加密ECC(elliptic curve cryptography)的數(shù)字證書(shū)認(rèn)證方法,以及基于OpenSSL的航空地-空數(shù)據(jù)鏈數(shù)字證書(shū),設(shè)計(jì)和實(shí)現(xiàn)了用于簽發(fā)和管理的證書(shū)授權(quán)機(jī)構(gòu)。分析表明,將數(shù)字證書(shū)認(rèn)證方法應(yīng)用到ACARS中,會(huì)提高系統(tǒng)的安全性,并且不會(huì)對(duì)系統(tǒng)性能造成影響。
飛機(jī)通信尋址報(bào)告系統(tǒng);數(shù)字證書(shū);認(rèn)證;橢圓曲線
飛機(jī)通信尋址報(bào)告系統(tǒng)ACARS于上世紀(jì)70年代提出,是一種基于甚高頻VHF(very high ferquency)數(shù)據(jù)鏈的空地網(wǎng)絡(luò)傳輸系統(tǒng)。ACARS用于通過(guò)自動(dòng)報(bào)告飛機(jī)的到達(dá)和離場(chǎng)時(shí)間以及其它任務(wù)飛行數(shù)據(jù)來(lái)減少話音通信的要求[1]。
ACARS被提出后,在國(guó)際和國(guó)內(nèi)范圍都得到了廣泛的應(yīng)用,但關(guān)于ACARS數(shù)據(jù)鏈安全方面的研究并不多。ARINC公司對(duì)ACARS的四種安全威脅數(shù)據(jù)泄露、數(shù)據(jù)欺騙、實(shí)體偽裝和拒絕服務(wù)攻擊提出了安全方案,形成了ARINC 823協(xié)議,其中也提出將公鑰數(shù)字證書(shū)應(yīng)用于ACARS中[2-3]。在國(guó)內(nèi),北京航空航天大學(xué)也進(jìn)行了ACARS安全的研究,搭建了ACARS通信仿真平臺(tái),提出了基于第三方的端對(duì)端安全構(gòu)架,并對(duì)ACARS數(shù)據(jù)鏈進(jìn)行了鏈路加密,基本實(shí)現(xiàn)了ACARS報(bào)文的安全傳輸[4]。但對(duì)密鑰分發(fā)和身份認(rèn)證方面的研究還有不足之處,在安全會(huì)話初始化中,非法用戶可能竊取鏈路中的公鑰并修改,使地-空對(duì)等實(shí)體無(wú)法完成身份認(rèn)證,從而造成安全會(huì)話初始化失敗,雙方拒絕通信。
為了確保地-空通信中公鑰傳輸?shù)陌踩梢栽诎踩珪?huì)話初始階段,由可信的證書(shū)授權(quán)機(jī)構(gòu)(CA)簽發(fā)公鑰數(shù)字證書(shū),保護(hù)公鑰不被修改,使一方數(shù)字簽名的報(bào)文能被另一方驗(yàn)證[5],解決通信中的公鑰安全分發(fā)問(wèn)題。
另外,公鑰數(shù)字證書(shū)使用數(shù)字簽名技術(shù),能保證信息傳送的完整性、真實(shí)性和不可否認(rèn)性,地面將用地面私鑰簽名的信息發(fā)送給飛機(jī),飛機(jī)用從地面的數(shù)字證書(shū)中提取的地面公鑰對(duì)地面身份進(jìn)行認(rèn)證,避免了受到實(shí)體偽裝攻擊的隱患,可以有效保障地-空通信安全。
基于以上分析,本文研究了基于OpenSSL建立CA系統(tǒng)的通用方法,并將數(shù)字證書(shū)認(rèn)證方法應(yīng)用于ACARS地空數(shù)據(jù)鏈的實(shí)體身份認(rèn)證中,以彌補(bǔ)ACARS地-空數(shù)據(jù)鏈中實(shí)體身份認(rèn)證方法的不足。
在ACARS中應(yīng)用數(shù)字證書(shū)可以在會(huì)話初始化時(shí)進(jìn)行身份認(rèn)證,保證ACARS非法訪問(wèn),進(jìn)而避免數(shù)據(jù)欺騙和分布式拒絕服務(wù)攻擊DDoS(distributed denial of service)等安全隱患。
1.1 ACARS數(shù)字證書(shū)
數(shù)字證書(shū),即“網(wǎng)絡(luò)身份證”,是用來(lái)標(biāo)識(shí)和驗(yàn)證通信雙方真實(shí)身份的數(shù)字信息文件。它由可信的第三方發(fā)證機(jī)構(gòu)CA為用戶簽發(fā)和撤銷,保護(hù)用戶的公鑰以及其他信息,帶有CA的簽名,具有安全、保密、防篡改,不可偽造性和不可否認(rèn)性[6]。
在ACARS的公共密鑰基礎(chǔ)設(shè)施(PKI)中使用的證書(shū)格式都是遵循ITU X.509國(guó)際標(biāo)準(zhǔn)的,X.509也是使用最為廣泛的一種證書(shū)格式[7],如圖1所示。
圖1 ACARS中數(shù)字證書(shū)結(jié)構(gòu)Fig.1Structure of digital certificate in ACARS
1.2 數(shù)字證書(shū)的申請(qǐng)和簽發(fā)
ACARS中證書(shū)的申請(qǐng)一般都是由負(fù)責(zé)管理飛機(jī)的航空公司負(fù)責(zé),而證書(shū)簽發(fā)則是由證書(shū)授權(quán)機(jī)構(gòu)完成,具體過(guò)程如圖2所示[8]。
圖2 證書(shū)請(qǐng)求和簽發(fā)Fig.2Request and issuance of certificate
其中,一個(gè)數(shù)字證書(shū)申請(qǐng)請(qǐng)求至少包括:
1)占用實(shí)體私鑰的證明;
2)與公/私鑰相關(guān)的實(shí)體的認(rèn)證信息;
3)實(shí)體被授權(quán)請(qǐng)求證書(shū)的證明。
CA通過(guò)對(duì)證書(shū)請(qǐng)求的驗(yàn)證后,可以基于OpenSSL制作公鑰數(shù)字證書(shū)[9]。
根據(jù)證書(shū)請(qǐng)求、申請(qǐng)證書(shū)對(duì)象,依次設(shè)置版本號(hào)、證書(shū)序列號(hào)、證書(shū)開(kāi)始時(shí)間、證書(shū)結(jié)束時(shí)間、主體名稱、公鑰信息、頒發(fā)者信息、擴(kuò)展項(xiàng)目,最后對(duì)證書(shū)數(shù)字簽名并編碼保存。
1.3 數(shù)字證書(shū)的驗(yàn)證
使用證書(shū)前必須對(duì)其進(jìn)行驗(yàn)證。公鑰證書(shū)必須是一個(gè)可用的ACARS證書(shū),含ACARS證書(shū)所指定的必須部分,并經(jīng)過(guò)CA的數(shù)字簽名。
要驗(yàn)證一個(gè)ACARS證書(shū),一個(gè)ACARS實(shí)體必須執(zhí)行以下檢查[3]:
1)檢查版本字段,確定是X.509版本3證書(shū);
2)檢查主體標(biāo)識(shí)名字段和主體備用名擴(kuò)展字段,確定該域包含一個(gè)單獨(dú)的ACARS實(shí)體名,實(shí)體名代表了期望與之通信的實(shí)體;
3)檢查頒發(fā)者名字段,確認(rèn)它包含了一個(gè)可信的頒發(fā)ACARS證書(shū)的CA名;
4)檢查有效期字段并確認(rèn)證書(shū)是最新的;
5)如果確認(rèn)實(shí)體是地面并且證書(shū)吊銷列表(CRL)有效,那么確認(rèn)證書(shū)沒(méi)被撤銷;否則如果確認(rèn)實(shí)體是地面而CRL無(wú)效,就認(rèn)為證書(shū)已被撤銷并終止檢查;
6)檢查主體公鑰字段并確認(rèn)它包含公鑰算法和ACARS指定的參數(shù);
7)檢查密鑰使用擴(kuò)展名,確認(rèn)它同時(shí)包含數(shù)字簽名和密鑰協(xié)商;
8)檢查頒發(fā)者簽名算法和頒發(fā)簽名字段,確認(rèn)證書(shū)已經(jīng)被數(shù)字簽名;
9)使用數(shù)字簽名驗(yàn)證過(guò)程來(lái)驗(yàn)證CA簽名。
1.4 ACARS安全會(huì)話流程
應(yīng)用數(shù)字證書(shū)的ACARS安全會(huì)話初始化流程如圖3所示[2]。
圖3 ACARS安全會(huì)話初始流程Fig.3Secure session initiation process in ACARS
將數(shù)字證書(shū)認(rèn)證方法引入ACARS,可以在安全會(huì)話初始化中由地面連入證書(shū)庫(kù),獲取數(shù)字證書(shū)和CRL,完成實(shí)體的身份認(rèn)證。具體過(guò)程如下:
1)CA生成自己的根證書(shū)和公/私鑰對(duì),公鑰公開(kāi),私鑰保密;
2)航空公司在安全會(huì)話初始化前生成飛機(jī)和地面的公/私鑰對(duì),將私鑰分發(fā)給飛機(jī)和地面,用各自公鑰和實(shí)體信息生成證書(shū)請(qǐng)求并發(fā)送到CA申請(qǐng)實(shí)體的數(shù)字證書(shū);
3)CA對(duì)證書(shū)請(qǐng)求審核通過(guò)后為空地實(shí)體分別生成證書(shū),并對(duì)證書(shū)進(jìn)行數(shù)字簽名,同時(shí)生成CRL。證書(shū)和CRL都保存在CA的證書(shū)庫(kù)中,供用戶查詢;
4)CA根據(jù)航空中心的吊銷請(qǐng)求吊銷不能使用的證書(shū),并及時(shí)更新證書(shū)庫(kù)和CRL;
5)一般由飛機(jī)進(jìn)行安全會(huì)話初始化,飛機(jī)用自己的私鑰對(duì)初始化信息進(jìn)行數(shù)字簽名并發(fā)送到地面,若飛機(jī)中沒(méi)有安裝地面證書(shū)或證書(shū)不可用,則要向地面申請(qǐng);
6)飛機(jī)和地面從CA獲得對(duì)方證書(shū)。其中,飛機(jī)可通過(guò)以下兩種方式獲取地面的證書(shū):
地面證書(shū)可能預(yù)存在飛機(jī)中。
初始化過(guò)程中,飛機(jī)請(qǐng)求地面上傳。
地面從證書(shū)庫(kù)中獲得飛機(jī)的公鑰證書(shū)和CRL,一旦找到,地面存儲(chǔ)證書(shū)和CRL于本地內(nèi)存來(lái)減少接入證書(shū)庫(kù)。通信雙方將各自證書(shū)預(yù)置于本地內(nèi)存中;
7)地面首先要接收信息,再導(dǎo)出飛機(jī)證書(shū),若驗(yàn)證證書(shū)失效,地面要連接到證書(shū)庫(kù)重新獲取飛機(jī)的證書(shū)和CRL;
8)地面用CA的公鑰對(duì)飛機(jī)證書(shū)進(jìn)行驗(yàn)證后,安裝證書(shū),從中提取飛機(jī)的公鑰,驗(yàn)證飛機(jī)的數(shù)字簽名,并從初始化信息中提取有用信息,構(gòu)造會(huì)話中專用共享密鑰,會(huì)話中一般使用對(duì)稱加密算法進(jìn)行加密,如AES;
9)若初始化信息中包含證書(shū)請(qǐng)求,地面要上傳最新的證書(shū)給飛機(jī);
10)地面確認(rèn)初始化信息后要對(duì)此信息做出響應(yīng),飛機(jī)收到響應(yīng)信息后先導(dǎo)出地面證書(shū),并用CA公鑰對(duì)證書(shū)進(jìn)行驗(yàn)證;
11)驗(yàn)證通過(guò)后,飛機(jī)安裝證書(shū),并從證書(shū)中獲得地面公鑰,并生成會(huì)話中的共享密鑰;
12)建立安全會(huì)話,傳輸應(yīng)用數(shù)據(jù)等。
為了查看數(shù)字證書(shū)的引入是否會(huì)提高ACARS安全性,是否對(duì)ACARS執(zhí)行效率造成影響,對(duì)ACARS流程進(jìn)行了仿真實(shí)現(xiàn),并針對(duì)證書(shū)制作時(shí)間、證書(shū)簽發(fā)時(shí)間和證書(shū)所占用信道比率進(jìn)行了測(cè)試分析。
2.1 實(shí)現(xiàn)過(guò)程
利用Visual Studio 2010搭建ACARS仿真環(huán)境,并將OpenSSL軟件包用到CA中,建立證書(shū)庫(kù)。CA接到請(qǐng)求后,驗(yàn)證實(shí)體身份,并生成飛機(jī)和地面的數(shù)字證書(shū),如圖4所示。
圖4 飛機(jī)和地面證書(shū)Fig.4Certificate of aircraft and ground
通信對(duì)等實(shí)體對(duì)證書(shū)驗(yàn)證后,就可以安裝證書(shū)到本地內(nèi)存。飛機(jī)初始化安全連接,如圖5所示。
飛機(jī)對(duì)安全會(huì)話初始化報(bào)文Init_REQ進(jìn)行加密和簽名,通過(guò)RGS和DSP,發(fā)送到地面,地面會(huì)對(duì)初始化報(bào)文的數(shù)字簽名進(jìn)行驗(yàn)證,如圖6所示。
再用地面的私鑰進(jìn)行解密即可得到明文形式的報(bào)文,如圖7所示。
圖5 建立安全連接Fig.5Establish secure connection
圖6 驗(yàn)證請(qǐng)求Fig.6Verify request
圖7 解密后的報(bào)文Fig.7Packets after decryption
在一些特殊情況下(如私鑰泄露),航空公司會(huì)向CA發(fā)送證書(shū)吊銷請(qǐng)求,CA會(huì)吊銷證書(shū),并將證書(shū)序列號(hào)添加到CRL中。其中用到的部分OpenSSL命令如下:
1)生成橢圓曲線參數(shù):ecparam-out EccCA.pemname prime256v1;
2)生成私鑰及證書(shū)請(qǐng)求:req-new-newkey ec:EccCA.pem-keyout Ecckey.pem-out Eccreq.pem;
3)生成CA自簽名根證書(shū)和CA私鑰:req-x509-newkey ec:EccCA.pem-keyout CAkey.pem-out CAcert. pem;
4)生成用戶(飛機(jī))證書(shū)請(qǐng)求:ecparam-out airecc. pem-name prime256v1;
req-new-newkey ec:airecc.pem-keyout airkey. pem-out airreq.pem;
5)CA簽發(fā)證書(shū):CA-in airreq.pem-out cert.cer–notext–days 356;
6)CRL生成:CA-genCRL-CRLdays 7-CRLhours 7-out CRL.CRL;
7)吊銷證書(shū)(原因:密鑰泄露):CA-revoke aircert. cer-CRL_reason keyCompromise;
8)更新證書(shū)庫(kù):CA-updated。
2.2 測(cè)試分析
針對(duì)所提出的ACARS實(shí)體身份認(rèn)證方法,對(duì)引入數(shù)字證書(shū)后系統(tǒng)的安全性和計(jì)算性能進(jìn)行了分析。
2.2.1 安全性分析
正常會(huì)話初始化情況下,飛機(jī)將公鑰發(fā)送到地面,并用私鑰對(duì)初始化報(bào)文Init_REQ數(shù)字簽名。若飛機(jī)公鑰在傳輸中被截獲或篡改,則地面無(wú)法對(duì)飛機(jī)簽名進(jìn)行認(rèn)證,進(jìn)而拒絕飛機(jī)的會(huì)話初始化請(qǐng)求,影響了系統(tǒng)正常運(yùn)行。若在受保護(hù)信道傳輸公鑰,又對(duì)資源造成浪費(fèi)。
將數(shù)字證書(shū)認(rèn)證方法引入ACARS,就解決了密鑰的發(fā)布和管理問(wèn)題,將實(shí)體身份和實(shí)體公鑰聯(lián)系起來(lái)。由于證書(shū)不可偽造,地面在驗(yàn)證CA的簽名后可確認(rèn)信息來(lái)源,安裝飛機(jī)證書(shū)并從中提取飛機(jī)公鑰,提高了ACARS運(yùn)行效率和安全性。
另外,在正常情況下,如果有非法攻擊端偽裝成飛機(jī)或地面用戶,要在會(huì)話初始化時(shí)被地面或飛機(jī)驗(yàn)證身份,而非法攻擊端不會(huì)通過(guò)CA的身份驗(yàn)證,也就沒(méi)有CA頒發(fā)的證書(shū),飛機(jī)或地面對(duì)其身份驗(yàn)證失效后,會(huì)決絕與其建立連接,這就在會(huì)話開(kāi)始前有效防護(hù)了實(shí)體偽裝,確保了地-空數(shù)據(jù)鏈連接的安全建立。
2.2.2 計(jì)算性能分析
利用OpenSSL生成ECC標(biāo)準(zhǔn)X.509v3證書(shū)[9],并對(duì)證書(shū)制作時(shí)間和傳輸時(shí)間進(jìn)行了測(cè)試,對(duì)信道占用率進(jìn)行了計(jì)算,結(jié)果如表1所示。測(cè)試的硬件平臺(tái)為普通微機(jī)(AMD Athlon64 X2 7750,2G內(nèi)存),操作系統(tǒng)為Windows 7。
數(shù)字證書(shū)的制作和傳輸是在安全會(huì)話建立初始化中完成,這時(shí)空地實(shí)體還沒(méi)有發(fā)送應(yīng)用數(shù)據(jù),所以證書(shū)的傳遞不會(huì)對(duì)信道中傳輸報(bào)文造成影響,由表1也能看出,數(shù)字證書(shū)的制作和傳輸時(shí)間都很短,幾乎不會(huì)占用安全會(huì)話初始化的時(shí)間,所以,將數(shù)字證書(shū)用到ACARS地-空數(shù)據(jù)鏈中,對(duì)系統(tǒng)性能帶來(lái)的影響可忽略不計(jì)。
表1 證書(shū)的制作時(shí)間、傳輸時(shí)間和信道占用率Tab.1Production time of certificate,transmission time of certificate and use rate of channel
本文對(duì)ACARS地-空數(shù)據(jù)鏈安全隱患進(jìn)行分析,找出實(shí)體身份認(rèn)證方法的不足,將數(shù)字證書(shū)認(rèn)證方法應(yīng)用于ACARS地-空數(shù)據(jù)鏈中,構(gòu)建了證書(shū)授權(quán)機(jī)構(gòu)CA,可以在地-空安全會(huì)話初始化時(shí)制作并簽發(fā)X. 509數(shù)字證書(shū)證書(shū),實(shí)體可以使用數(shù)字證書(shū)完成對(duì)方身份的認(rèn)證,在一定程度上保障了通信安全。分析表明,將ECC數(shù)字證書(shū)認(rèn)證方法引入到ACARS中,能有效解決實(shí)體身份認(rèn)證問(wèn)題,避免了實(shí)體偽裝等安全隱患,同時(shí),數(shù)字證書(shū)的制作和傳輸時(shí)間很短,不會(huì)對(duì)系統(tǒng)性能造成影響。本文僅涉及了一級(jí)CA,并未考慮多級(jí)CA及交叉認(rèn)證等情況,也沒(méi)有對(duì)其他安全隱患進(jìn)行防范,在今后的研究中會(huì)進(jìn)一步完善。
[1]ACARS.官方文檔[G]:http://www.arinc.com/products/voice_data_comm/ ACARS.html.
[2]ARINC 823P1-2007,Data link security part2-ACARS message security[S].Annapolis:Aeronautical Radio,Inc,2007.
[3]ARINC 823P1-2007,Data link security part1-ACARS message security[S].Annapolis:Aeronautical Radio,Inc,2008.
[4]王曉琳,張學(xué)軍,何葭.ACARS數(shù)據(jù)鏈中的安全通信[J].航空電子技術(shù),2003,34(z1):95-100.
[5]張方國(guó),王常杰,王育民,等.基于橢圓曲線的數(shù)字簽名與盲簽名[J].通信學(xué)報(bào),2001,22(8):22-28.
[6]HOUSLEY R.RFC 2459-Internet X.509 Public Key Infrastructure Certificate and CRL Profile[G].ISOC:January 1999.
[7]許平.基于X.509標(biāo)準(zhǔn)的CA數(shù)字證書(shū)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2011,39(9):95-97,167.
[8]赫威,陳謙,李鑫,等.淺析電子數(shù)字證書(shū)簽發(fā)系統(tǒng)[J].黑龍江科技信息,2011(20):77.
[9]王志海,童新海,沈寒輝.OpenSSL與網(wǎng)絡(luò)信息安全—基礎(chǔ)、結(jié)構(gòu)和指令[M].北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2007:100-127.
[10]關(guān)振勝.公鑰基礎(chǔ)設(shè)施PKI及其應(yīng)用[M].北京:電子工業(yè)出版社,2008.
(責(zé)任編輯:黨亞茹)
Research on digital certificate in ACARS ground-air datalink
WU Zhi-jun,JIA Yue-lin
(College of Electronic and Information Engineering,CAUC,Tianjin 300300,China)
Aircraft Communication Addressing and Reporting System(ACARS)is the main method of communication in civil aviation of China.ACARS air-ground datalink is quite important for aviation security,while the datalink system is not secure enough since lacking of adequate research on it.With regard to the shortcuts of entity authentication method in ACARS,and on the basis of analyzing the risks existing in the datalink,this paper studies the digital certificate authentication method based on the elliptic curve cryptography during the secure session initiation process between the ground and aircraft entity,then designs and implements a certificate authority for signing and managing certificates based on OpenSSL in aviation ground-air datalink,and finally completes the authentication between ground and aircraft before the secure session.Analyses show that the digital certificate authentication method used in ACARS improves the security of the system,without impacting on system performance.
aircraft communication addressing and reporting system(ACARS);digital certificate;authentication;elliptic curve
TN918.91
A
1674-5590(2013)03-0023-04
2012-06-06;
2012-10-09
吳志軍(1965—),男,新疆庫(kù)爾勒人,教授,博士,主要研究方向?yàn)榫W(wǎng)絡(luò)與信息安全.