吳志軍,趙婷,雷縉
(中國民航大學 天津市智能信號處理重點實驗室,天津 300300)
隨著我國民航業(yè)務的全面擴展和信息化建設的迅速發(fā)展,整個民航領域的企業(yè)、單位和部門越來越依賴通信網開展業(yè)務交易、進行內部資源共享、實現(xiàn)協(xié)調決策。基于面向服務架構(SOA, service oriented architecture)的民航廣域信息管理系統(tǒng)(SWIM, system wide information management)服務架構應運而生,為相互獨立的空中交通管理(ATM, air traffic management)系統(tǒng)之間提供資源整合、數(shù)據(jù)共享和統(tǒng)一服務,構建系統(tǒng)級的航空信息管理體系[1,2]。
SWIM具有數(shù)據(jù)高速交互和信息共享的優(yōu)勢,包括很多航空業(yè)務關鍵數(shù)據(jù)和保密信息在內,越來越多的業(yè)務數(shù)據(jù)在SWIM網絡中傳輸和交換,面臨的安全威脅也越來越突出,數(shù)據(jù)安全和隱私保護成為SWIM發(fā)展必然要面臨的課題[3,4],只有對SWIM用戶身份做出可靠的確認才能有效地保證合法用戶接入 SWIM 網絡并對其使用的相應資源進行保護[5],同時阻止非法航空用戶對SWIM網絡進行惡意訪問和破壞[6]。
本文根據(jù) SWIM 的體系結構,結合我國民航SWIM具體布局,采用新一代AAA(authentication、authorization、accounting)協(xié)議——Diameter協(xié)議,實現(xiàn)SWIM系統(tǒng)的安全認證,保障SWIM共享數(shù)據(jù)的安全和隱私保護。
SWIM是一個虛擬信息池,存儲實時的航空飛行數(shù)據(jù)、監(jiān)視數(shù)據(jù)和氣象信息等,ATM要求必須保證 SWIM 數(shù)據(jù)的保密性、完整性和可用性[6]。Diameter協(xié)議包括基礎協(xié)議[7,8]和各種應用協(xié)議,完全支持IPsec安全協(xié)議,并提供可選的安全傳輸層(TLS, transport layer security)協(xié)議對數(shù)據(jù)進行保護,可以實現(xiàn)網絡層、傳輸層及應用層的加密認證功能,以保證國際民航組織(ICAO, international civil aviation organization)對SWIM的要求[6]。
歐洲SWIM-SUIT計劃定義了SWIM信息和服務模型[1],將SWIM用戶的身份認證和訪問控制作為安全服務的一個子項;聯(lián)邦航空局(FAA, federal aviation administration)的下一代交通運輸系統(tǒng)NextGen (next generation air transportation system)構建XML網關基礎設施為SWIM提供安全服務[5];歐洲的SWIM-SUIT計劃進入了工程實施階段,并且已經與美國的SWIM網絡開展了互聯(lián)工作,通過兩者的互聯(lián),歐美在SWIM網絡融合和系統(tǒng)交互的過程中建議采用PKI網絡安全認證技術。國際民航組織于2010年10月出臺了SWIM相關的網絡服務安全標準[6],該標準將SWIM的網絡安全技術分為3層:網絡層采用基于IPsec協(xié)議的逐跳安全機制;傳輸層采用基于SSL/TLS協(xié)議的端到端安全機制;應用層則負責實現(xiàn)XML安全、消息安全、訪問控制、身份管理、安全管理等。
可提供AAA服務的現(xiàn)行Radius協(xié)議因其本身固有的缺陷,例如,C/S模式、基于UDP面向非連接的傳輸、沒有失敗恢復機制、認證與授權必須成對出現(xiàn)等,限制了它的進一步發(fā)展。而新一代AAA協(xié)議——Diameter協(xié)議克服了Radius協(xié)議的諸多缺陷,如采用Peer-to-Peer模式、基于TCP/SCTP面向連接的傳輸協(xié)議、提供可靠的失敗恢復機制、認證與授權分離等,擁有優(yōu)良的兼容性、標準的規(guī)范化、極強的可擴展性和更高的安全性,更容易進行新應用的擴展以滿足新的需求[7]。目前,IETF、3GPP、3GPP2、ETSI TISPAN、Packet Cable、MSF、ITU等標準組織已經普遍接受 Diameter協(xié)議,在GSM/UMTS、CDMA、LTE、有線電視等網絡中采用Diameter協(xié)議來做它的AAA接口。
根據(jù)我國空中交通管理體系的民航空管局、地區(qū)空管局、空管分局站三層管理架構,SWIM面向的是空中交通管理各級組織及其下屬的各級用戶,采用Diameter協(xié)議為SWIM提供用戶身份認證可以更好地解決全國民航空中交通管理業(yè)務分布式應用和跨域認證的問題。Diameter在中國SWIM中部署結構如圖1所示。
基于 Diameter/EAP協(xié)議的認證系統(tǒng)與 SWIM架構的星型拓撲結構相互契合,其結構實際上是一個以用戶、接入服務器(包括重定向服務器和代理服務器)、認證服務器為主,注冊服務器為輔,注冊信息和認證信息數(shù)據(jù)庫為支撐的節(jié)點結構,如圖2 所示[3]。
在認證過程中,SWIM用戶采用NAI(network access identify),即“user@realm”的結構進行注冊,其中,user是用戶名,realm是管理域名,恰好可與用戶所在區(qū)域相對應,由NAI的realm可以得知用戶的注冊網絡。每次登錄時提交認證請求,接入服務器主要進行協(xié)議轉換和消息轉發(fā),并識別用戶的realm信息,將其認證請求轉發(fā)至相應的Diameter認證服務器,Diameter服務器依托注冊信息數(shù)據(jù)庫對用戶進行最終認證,同時依據(jù)用戶的realm信息為其提供漫游管理,最后將用戶的認證狀態(tài)記錄于認證信息數(shù)據(jù)庫。
標準的Diameter/EAP-MD5認證在為SWIM提供基本的用戶認證服務中存在一定的安全隱患。本文在針對標準的Diamter/EAP-MAD5認證流程進行安全隱患分析的基礎上,提出改進的 Diameter/EAP-MD5認證協(xié)議,并將其應用到SWIM中。
圖1 SWIM中的Diameter部署
圖2 SWIM架構下基于Diameter/EAP協(xié)議的認證模塊結構
EAP-MD5是一個IETF的開放標準,其認證無需證書,部署簡單。標準的Diameter/EAP-MD5認證流程如圖3所示[9,10]。
圖3 Diameter/EAP-MD5標準認證
1) NAS向 Diameter認證服務器發(fā)送 NULL Message,標志認證過程的開始。
2) Diameter認證服務器向NAS發(fā)送DER消息,要求用戶提供身份信息。
3) NAS將 DER消息解封后重新封裝成EAP-Request消息后轉發(fā)給用戶。
4) 用戶將身份信息以明文形式包含在 EAPResponse消息中返回NAS。
5) NAS提取用戶身份信息后將其封裝在DEA消息中轉發(fā)給Diameter認證服務器。
6) Diameter認證服務器將接收到的用戶ID與數(shù)據(jù)庫中存儲的信息對比,若不匹配則發(fā)布認證失敗消息,若匹配則向NAS發(fā)送DER消息,其中包含服務器端產生的隨機數(shù)。
7) NAS提取其中的隨機數(shù)并向用戶轉發(fā)EAP-Request消息。
8) 用戶使用接收到的隨機數(shù)與密碼做散列運算,并將結果同用戶ID一同發(fā)往NAS。
9) NAS將該 EAP-Response消息重新封裝在DER消息中發(fā)往Diameter認證服務器。
10) Diameter服務器本地計算原隨機數(shù)與用戶名對應密碼的散列值,并與接收到的散列值作比較,若相同則返回認證成功消息,若不同則返回認證失敗消息。
11) NAS向用戶轉發(fā)相應的 EAP-Success/Failure消息。
標準的Diameter/EAP-MD5認證在SWIM安全服務架構的具體實現(xiàn)中存在一定的安全隱患,若直接應用到SWIM網絡中,不僅會造成航空用戶信息的泄露,更有可能威脅到整個SWIM網絡。標準的 Diameter/EAP-MD5認證可能存在的缺陷和漏洞主要表現(xiàn)在以下3個方面[11,12]。
1) 認證過程中用戶 ID始終明文傳輸,機密性的缺失往往是致命的。一旦這些用戶的身份信息被攻擊者截獲,若用來對服務器或數(shù)據(jù)庫進行各種注入式攻擊,則會導致更多敏感甚至機密數(shù)據(jù)的泄露。SWIM用戶涉及機場、航空公司、空管局及其下屬單位等,以管制員為例,若攻擊者截獲該管制員ID,借此破譯其認證密碼,則極有可能憑借管制員權限查看到相應保密級別的信息,嚴重的有可能威脅到航空飛行安全,甚至危及到國家領空的安全。
2) NAS /Diameter Client只起到轉發(fā)作用,其身份未被確認,一旦被攻擊者仿冒,則很容易進行中間人攻擊,造成用戶信息和服務器信息的雙重泄露,即使用戶和服務器之間傳輸?shù)南⑹墙涍^加密的,若此消息被截獲,也可利用猜測攻擊獲得相關明文甚至是密鑰。SWIM信息池包含海量的飛行數(shù)據(jù)、監(jiān)視數(shù)據(jù)、氣象信息等,NAS的仿冒者極有可能在服務器返回用戶請求的過程中截獲這些信息從事非法活動。
EAP的安全性說明要求EAP使用的認證方法應實現(xiàn)雙向認證,而EAP-MD5僅實現(xiàn)了服務器對用戶的認證,并沒有實現(xiàn)用戶對服務器的認證。若用戶盲目地向攻擊者仿冒的服務器提供個人信息,則會造成不必要的損失。
在分析標準Diameter/EAP-MD5認證過程存在缺陷和漏洞的基礎上,本文針對這些安全缺陷和漏洞做出相應的改進[11~15],保證其在SWIM的實際應用中提供更強的安全性。以下均以用戶client@huabei.net為例,進行說明改進的Diameter/EAP-MD5協(xié)議在 SWIM中的認證過程,如圖 4所示。
圖4 Diameter/EAP-MD5改進認證
改進的Diameter/EAP認證可分為3個階段[11]。
第1階段:SWIM用戶與NAS之間的相互認證。
1) NAS向 Diameter認證服務器發(fā)送 NULL Message,標志認證過程的開始。
2) Diameter認證服務器向NAS發(fā)送DER消息,要求用戶提供身份信息。
3) NAS將 DER消息解封后重新封裝成EAP-Request消息后轉發(fā)給用戶。
4) 用戶產生一隨機數(shù)R1,使用與NAS共享的AES算法對稱密鑰K1將用戶ID和R1同時加密后封裝在EAP-Response消息中發(fā)往NAS,若NAS持有相應的K1,則可實現(xiàn)與用戶的相互認證并提取用戶ID,否則認證失敗。
第2階段:用戶對服務器的認證。
5) NAS使用K1解密消息后得到用戶ID和隨機數(shù)R1,判斷用戶的reaml信息以確定轉發(fā)至哪個 Diameter認證服務器,然后使用與 Diameter認證服務器約定的 AES算法對稱密鑰K2對其進行加密后封裝在 DER消息中轉發(fā)給 Diameter認證服務器。
6) Diameter服務器使用K2解密消息得到用戶ID并加以判斷,若未存用戶ID,則對用戶域名加以判斷,如仍不匹配則發(fā)布認證失敗消息,若已存在用戶ID,則生成隨機數(shù)R2,連同與R1一起做散列運算H(R1,R2)返回給NAS。
7) NAS使用K2得到R2后再用K1進行加密,將H(R1,R2)一同包含在向用戶發(fā)送的EAP-Request消息中。
8) 用戶通過K1得到R2之后自行計算R1、R2的散列值并與接收到的H(R1,R2)對比,若不相同則對Diameter服務器重新發(fā)起認證,若相同則向NAS發(fā)送包含用戶ID和H(ID,PW,R2)的EAP-Response消息。
第3階段:服務器對用戶的認證。
9) NAS使用K1得到用戶ID后用K2加密,連同H(ID,PW,R2)一起向 Diameter服務器發(fā)送Diameter-EAP-Request消息。
10) Diameter服務器對比接收到的H(ID,PW,R2)與本地的計算結果,若一致則認證成功,若不一致則認證失敗,回復相應的Success/Failure消息。
11) NAS向用戶轉發(fā)EAP-Success/EAP-Failure消息。
以上過程針對標準Diameter/EAP-MD5認證方法中存在的用戶身份信息明文傳輸,未對 NAS進行身份確認,為實現(xiàn)用戶與服務器的雙向認證等主要缺陷實現(xiàn)了改進。
本節(jié)基于改進的Diameter/EAP-MD5認證協(xié)議在仿真的SWIM環(huán)境下進行實驗,并對實驗數(shù)據(jù)和結果進行分析。
按照SWIM架構下基于Diameter/EAP協(xié)議的認證模塊結構(如圖2所示),根據(jù)SOA模型搭建模擬的SWIM環(huán)境。其中,用戶、NAS(雙網卡)、Diameter認證服務器均安裝Red Hat Linux 5.5系統(tǒng)和由OpenDiameter組織開發(fā)的opendiameter-1.0.7-i軟件包,部署Diameter協(xié)議運行環(huán)境;進行用戶身份XML文檔(以user@huabei.net為例)、各PC的IP地址及端口號、服務器后方注冊數(shù)據(jù)庫和認證狀態(tài)信息數(shù)據(jù)庫的配置分別在用戶 PC、NAS和Diameter認證服務器端啟動認證客戶端程序、NAS程序以及服務器認證程序,先后實現(xiàn) Diameter/EAP-MD5標準和改進認證方法,調整參數(shù)并統(tǒng)計實驗數(shù)據(jù)。
SWIM網絡具有龐大的航空用戶群和海量的數(shù)據(jù)。由于航空安全飛行要求數(shù)據(jù)實時通信,SWIM安全訪問要求具有很強的實時性,對認證系統(tǒng)的時間復雜度性能提出較高的要求。身份認證作為航空用戶訪問SWIM網絡的門戶,同樣需要達到合理的時間復雜度要求。
Diameter/EAP-MD5認證改進前后三方收發(fā)消息的條數(shù)未改變,已知隨機數(shù)位數(shù)與認證安全性之間存在正比例關系,仿真實驗中對認證改進前后隨機數(shù)位數(shù)分別為16 bit、32 bit,密鑰長度分別為128 bit、256 bit,AES加密算法時的認證時間做100次抽樣,記錄數(shù)據(jù)如表1所示。
對表1所列抽樣數(shù)據(jù)進行統(tǒng)計,結果表明改進前后的單次平均認證時間僅相差約16 ms;隨機數(shù)16 bit與32 bit的單次平均認證時間相差不足3 ms;密鑰長度128 bit與256 bit的單次平均認證時間相差約8 ms。為使參數(shù)變化情況下認證時間差更加直觀,對其進行100次時間累加,得到的時間復雜度實驗結果如圖5所示。
表1 100次抽樣結果(單位:ms)
圖5 時間復雜度實驗統(tǒng)計結果
從圖5中可以看出,認證改進前后以及隨機數(shù)位數(shù)分別為16 bit(AES128)、32 bit(AES128)和16 bit(AES256)的100次累加認證時間分別為18 435.647 ms、20 062.956 ms、20 312.956 ms和 20 869.308 ms,即改進的Diameter/EAP-MD5認證比標準認證平均每次多花費16.273 ms;隨機數(shù)位長對改進認證的時間復雜度影響是32 bit比16 bit平均每次多花費2.5 ms;密鑰長度256 bit比128 bit的單次平均每次多花費7.964 ms。而一般登錄的頁面響應時間在2 s內為宜,網絡延時在 30 ms內為宜,可見改進的Diameter/ EAP-MD5認證在時間復雜度上的犧牲幾乎可以忽略不計。
改進后的Diameter/EAP-MD5協(xié)議認證方法的安全性從以下幾個方面分析。
1) 機密性:不同于標準認證的用戶ID明文傳輸,改進的認證方法中用戶與NAS之間、NAS和認證服務器之間分別采用約定的對稱密鑰K1、K2對消息進行加密。
2) 雙向認證:標準的Diameter/EAP-MD5認證僅實現(xiàn)服務器對用戶的認證相比,改進的Diameter/EAP-MD5認證流程中,用戶和NAS之間依靠對稱密鑰K1實現(xiàn)了雙向認證,同時用戶利用本地產生的隨機數(shù)R1和認證服務器產生的隨機數(shù)R2實現(xiàn)了對服務器的認證。
3) 抵御重放攻擊:每一次新的認證,用戶生成新的隨機數(shù)R1,Diameter認證服務器生成新的隨機數(shù)R2,且R1位長可選,2個隨機數(shù)的配合使重放攻擊的可能性大大降低。
4) 猜測攻擊:攻擊者若想分析得到用戶ID和密碼,首先需要截獲用戶、NAS和 Diameter服務器之間的通信數(shù)據(jù),此時K1、K2提供第一道保障,其次,用戶ID與R1相互連接,而每次認證所產生的R1不同,若無法確定R1的長度,則依然無法分離出用戶ID。
5) 角色仿冒:在實現(xiàn)了用戶、NAS、Diameter服務器之間的兩兩認證之后仍要做一次R1、R2的散列運算以供Diameter服務器驗證,其目的是為了再次確認完成用戶與 NAS之間的相互認證和用戶對服務器的認證之后各主體并未發(fā)生變化,有效防范攻擊者仿冒合法用戶或者NAS。
基于上述分析可以看出,改進后的 Diameter/EAP-MD5認證協(xié)議在SWIM的數(shù)據(jù)安全和隱私保護方面具有較高的安全性,可以避免SWIM敏感信息的外泄和阻止非法航空用戶的訪問。
本文綜合考慮我國民航發(fā)展現(xiàn)狀、安全基礎設施部署難度以及安全強度要求等情況,設計采用Diameter協(xié)議為民航SWIM架構提供安全認證服務。Diameter/EAP認證模塊結構與SWIM的星型拓撲結構相互契合,為其軟硬件的部署提供了十分有利的條件。改進后的Diameter/EAP-MD5認證未增加流程消息數(shù),并在幾乎沒有增加時間復雜度的基礎上對雙向認證、抵御重放攻擊、機密性、防猜測攻擊和防角色仿冒等方面都做了部分改善,從而提高了網絡AAA服務基礎設施的安全性和準入嚴格性,強化了 SWIM 系統(tǒng)安全服務,同時采用NAI格式的用戶ID,從而更加適宜SWIM系統(tǒng)結構。
然而,改進方法中增加了用戶、NAS和Diameter認證服務器之間的對稱密鑰,這又從另一方面加大了密鑰分配的難度,今后的工作重點應放在開發(fā)一種可動態(tài)分配密鑰的 Diameter/EAP-MD5認證方法上,權衡考慮高安全性和低密鑰分配難度的折衷。
[1] DARIO D C, ANTONIO S, GEORG T. SWIM- a next generation ATM information bus-the SWIM-SUIT prototype[A]. 2010 14th IEEE International Enterprise Distributed Object Computing Conference Workshops (EDOCW)[C]. 2010.41- 46.
[2] 呂小平, 齊鳴. 淺談SWIM[J]. 民航管理, 2009,(5): 68-69.LV X P, QI M. A brief discussion of SWIM[J]. Civil Aviation Management, 2009, (5): 68-69.
[3] BOB S. Security architecture for system wide information management[A]. The 24th 2005 Digital Avionics Systems Conference (DASC 2005)[C]. 2005.
[4] BOB S. System-wide information management (SWIM) demonstration security architecture[A]. 2006 IEEE/AIAA 25th Digital Avionics Systems Conference[C]. 2006. 1-12.
[5] Federal Aviation Administration. System Wide Information Management (SWIM) eXtensible Markup Language (XML) Gateway Requirements[S]. 2009.
[6] International Civil Aviation Organization. Web service security standards[A]. Aeronautical Telecommunication Network Implementation Coordination Group-Eighth Working Group Meeting[C]. Christchurch New Zealand, 2010.
[7] 邱錫鵬, 劉海鵬. Diameter協(xié)議研究[J]. 計算機科學, 2013, 30(2):75-78.QIU X P, LIU H P. Research on diameter protocols[J]. Computer Science, 2013, 30(2):75-78.
[8] IETF RFC3588. Diameter Base Protocol[S]. 2003.
[9] IETF RFC3748. Extensible Authentication Protocol(EAP)[S]. 2004.
[10] IETF RFC 4072, Diameter Extensible Authentication Protocol(EAP)Application[S]. 2005.
[11] 陳鳳其,姚國祥. 一種基于Hash函數(shù)的EAP認證協(xié)議[J]. 計算機系統(tǒng)應用, 2010, 19(6): 74-77.CHEN F Q, YAO G X. A hash-based EAP authentication protocl[J].Computer Systems & Applications, 2010, 19(6):74-77.
[12] 陳世偉, 金晨輝. MD5碰撞攻擊中的充要條件集[J]. 軟件學報,2009,20(6):1617-1624.CHEN S W, JIN C H. Set of necessary and sufficient conditions in collision attacks on MD5[J]. Journal of Software, 2009, 20(6):1617-1624.
[13] 趙志新, 祝躍飛, 梁立明. 無線局域網隧道認證協(xié)議 PEAP的分析與改進[J]. 信息工程大學學報, 2005, 6(3):52-55.ZHAO Z X, ZHU Y F, LIANG L M. The analysis and mend of PEAP protocol in WLAN[J]. Journal of Information Engineering University,2005,6(3):52-55.
[14] 吉曉東. 支持身份隱藏的EAP-PSK協(xié)議改進[J]. 南通大學學報(自然科學版), 2007, 6(2):74-77.JI X D. Improvement of EAP-PSK protocol enabling identity privacy[J]. Journal of Nantong University (Natural Science), 2007,6(2):74-77.
[15] 王志中. MD5算法在口令認證中的安全性改進[J]. 電腦知識與技術, 2012, 8(2):296-297.WANG Z Z. Security improvement of MD5 algorithm in password authentication[J]. Computer Knowledge and Technology, 2012, 8(2):296-297.