張亞航 龐波 程博文
(北京空間飛行器總體設(shè)計(jì)部,北京 100094)
在保密通信系統(tǒng)中,為保證系統(tǒng)的安全性,加密密鑰在使用過程中應(yīng)經(jīng)常更換。密鑰交換是密鑰管理中最棘手的環(huán)節(jié),核心問題是如何保證密鑰在交換中的安全。
因特網(wǎng)密鑰交互協(xié)議(Internet Key Exchange,IKE)作為請求評論(Request for Comments,RFC)文檔推薦的互聯(lián)網(wǎng)密鑰交互協(xié)議,已經(jīng)成為世界上最著名、最廣泛使用的密鑰交互協(xié)議之一。雖然協(xié)議本身過于龐雜和有一些安全漏洞,引來大量批評和攻擊。但是該協(xié)議的安全性和效率經(jīng)受了時(shí)間的考驗(yàn),從這個意義上來說,IKE 協(xié)議是個成功的協(xié)議。
因特網(wǎng)交互安全小組(IETF)在IKEv1[1-2]的基礎(chǔ)上,對原先的漏洞和缺點(diǎn)進(jìn)行改進(jìn),發(fā)展出了IKEv2,并在2005年12月推出詳細(xì)文檔[3]。之后,因特網(wǎng)安全小組再次對IKEv2 進(jìn)行了改進(jìn),并在2010年9月推出改進(jìn)版本文檔[4]。相對于IKEv1,IKEv2系統(tǒng)性更完整,效率更高,安全性更好。在IKEv2 的基礎(chǔ)上發(fā)展出適用于空間信息鏈路的安全協(xié)議是一個比較可行的方法,理由如下:
(1)空間通信安全協(xié)議由于應(yīng)用范圍較小,因此無法像地面網(wǎng)絡(luò)應(yīng)用協(xié)議一樣接受大量的分析和考驗(yàn),協(xié)議容易在構(gòu)建甚至實(shí)現(xiàn)之后仍然存在難以發(fā)覺的漏洞[5],而IKE協(xié)議經(jīng)歷了世界上大量安全專家的分析和攻擊,其安全性和包容性經(jīng)受了考驗(yàn)[6-9];
(2)相對于IKEv1,IKEv2系統(tǒng)性更完整,效率更好,安全性更好[7-8];
(3)IKEv2協(xié)議繼承了IKEv1協(xié)議由ISAKMP、Oakley 和SKEME三種協(xié)議組成的模式,條例清晰,便于修改[3-4]。
本文通過對IKEv2的分析和改進(jìn),可以產(chǎn)生一種報(bào)文負(fù)載更加簡潔,報(bào)文頭更加少,更加適用于空間網(wǎng)絡(luò)鏈路的密鑰交互協(xié)議,稱之為IKESal協(xié)議。
IKEv2協(xié)議中,協(xié)商分為兩個階段,第一階段稱為初始交換(Initial Exchange),第二階段稱為產(chǎn)生子安全關(guān)聯(lián)交換(CREATE_CHILD_SAExchange),這兩個階段的交換分別協(xié)商安全關(guān)聯(lián)(IKE SA)和子安全關(guān)聯(lián)(CHILD SA),CHILD SA則主要是用于IP報(bào)文安全協(xié)議(IPSec)[10-11]或空間鏈路數(shù)據(jù)包安全協(xié)議(SCPS-SP)協(xié)議[12-13]。另外還有信息交換(INFORMATIONAL Exchange),用來向?qū)Ψ酵ㄖ恍┏鲥e、配置、刪除等消息。IKEv2中定義了自己的各種載荷,是在IKE 協(xié)議中載荷的基礎(chǔ)上做了刪減和增加。大部分載荷的作用和IKE協(xié)議中的相同,某些載荷的形式有所變化。
IKEv2協(xié)議頭的消息格式同IKEv1 消息格式基本類似,其主要格式如圖1所示。
圖1 IKEv2協(xié)議頭消息格式Fig.1 IKEv2 Message header
對IKEv2各個字段的分析如下:
(1)發(fā)起者安全參數(shù)索引(SPI),8byte,表示發(fā)送者用于標(biāo)記IKE的唯一安全關(guān)聯(lián),值不為零。在空間信息網(wǎng)絡(luò)中,通信雙方密鑰交互頻率相對地面較低,安全關(guān)聯(lián)的存儲量可以消減且不會影響安全性,因此建議簡化其SPI長度。
(2)響應(yīng)者安全參數(shù)索引,8byte,在IKE 初始化的第一條消息中,包含消息重發(fā)的值均為零,除此之外的值均為非零。建議簡化。
(3)下一載荷(Next Payload),1byte,表示連著IKE 頭的下一載荷類型。對下一載荷的分析如表1所示。
(4)主版本號,4bit,IKEv2協(xié)議設(shè)置為2,IKEv1協(xié)議設(shè)置為1,建議保留。
(5)副版本號,4bit,IKE 協(xié)議的副版本,一般設(shè)置為0,忽略,建議刪除。
(6)交互類型,1byte,表示當(dāng)前交互類型,包含消息中的載荷和一次交互中的消息次序,對交互類型的分析如表2所示。
(7)旗標(biāo),1byte,代表一些特殊的操作,旗標(biāo)由1byte碼來表示的,其中,每個位對應(yīng)一個具體的選項(xiàng)。比較有用的是發(fā)起方第4bit位的值設(shè)置為1,接收方第5bit位的值設(shè)置為1。為了降低空間網(wǎng)絡(luò)協(xié)議復(fù)雜性,建議刪除。
(8)消息標(biāo)志,4byte,用于控制消息丟失后重發(fā),并用于防止重放攻擊,建議保留。
(9)消息長度,4byte,空間數(shù)據(jù)包的長相對較短,建議簡化。
表1 下一載荷類型值分析表Table1 Next Payload value analysis
表2 交互類型值分析表Table2 Exchange type value analysis
IKEv2協(xié)議規(guī)定的通用頭結(jié)構(gòu)如圖2所示。
圖2 IKEv2通用頭消息格式Fig.2 IKEv2generic payload header
(1)下一載荷,1byte,如果當(dāng)前為最后載荷,則其值為0。因此,如果是一個加密的載荷,那么它必是最后一個載荷。
(2)關(guān)鍵字,1bit,主要用于接收方無法理解當(dāng)前載荷的情況。如果值為0,則接收方忽略當(dāng)前載荷,如果值為1,則接收方拒收當(dāng)前的整個消息,保留。
(3)保留域,7bit,建議刪除。
(4)載荷長度,2byte,建議簡化。
根據(jù)第二節(jié)中對IKEv2的分析,在本文中,對IKEv2進(jìn)行簡化,主要是包括內(nèi)容和載荷的縮小、刪減。對于IKESal協(xié)議的主要構(gòu)架(包括初始化階段和子安全關(guān)聯(lián)生成階段)不進(jìn)行改變。
因?yàn)楫?dāng)前階段,直接進(jìn)行加密信道的安全關(guān)聯(lián)交互的安全協(xié)議負(fù)載過重,采用兩層階段交互的方式,可以將大量的認(rèn)證加密計(jì)算放在少量使用的第一階段,而多次使用的第二階段依賴第一階段的密鑰材料,交互和計(jì)算負(fù)載可以縮小很多。
空間環(huán)境相對地面互聯(lián)網(wǎng)仍然較為簡單,IKE中的部分字段主要是考慮了地面網(wǎng)絡(luò)的復(fù)雜性,在空間網(wǎng)絡(luò)中不能起到應(yīng)用的作用,反而容易增加協(xié)議的冗余度和復(fù)雜度。為了減少協(xié)議交互信息數(shù)據(jù)量,同時(shí)保證協(xié)議安全性且能夠在空間環(huán)境適用,IKESal協(xié)議頭做了簡化。IKESal協(xié)議頭的消息格式如圖3所示。
每個字段的作用、長度和取值含義解釋如下:
(1)發(fā)起者安全參數(shù)索引,2byte,同IKEv2協(xié)議類似,值不為零。
(2)響應(yīng)者安全參數(shù)索引,具體含義和用法同IKEv2協(xié)議。
(3)下一載荷,0.5byte,相對IKEv2協(xié)議,其可能的取值進(jìn)行了簡化,如表3所示。
圖3 IKESal協(xié)議頭消息格式Fig.3 IKESal message header
表3 IKESal下一載荷類型值Table3 IKESal next payload type values
(4)交互類型值,0.5byte,相對于IKEv2協(xié)議,其可能的取值進(jìn)行了簡化,如表4所示。
表4 IKESal交互類型值表Table4 IKESal exchange type values
(5)消息標(biāo)志,4byte,相對于IKEv2協(xié)議,長度不變。
(6)消息長度,1.5byte,考慮簡化后的消息長度一般保護(hù)超過1k,設(shè)置消息長度為1.5byte,數(shù)據(jù)包總長度應(yīng)小于4Kbyte。
(7)版本號,4bit,IKESal協(xié)議測試版為0,第一次應(yīng)用版可以為1。
(8)保留段,1byte,考慮將來航天器應(yīng)用環(huán)境擴(kuò)展的保留字節(jié)。
IKESal協(xié)議頭數(shù)據(jù)結(jié)構(gòu)如下所示。
IKESal協(xié)議通用頭結(jié)構(gòu)圖如圖4所示。圖4IKESal協(xié)議通用頭消息格式
Fig.4 IKESal generic payload message header
(1)下一載荷,0.5byte。
(2)保留域,0.5byte,全置為零,交換中忽略。
(3)載荷長度,2byte,包括通用頭在內(nèi)的當(dāng)前載荷長度。
IKESal協(xié)議通用頭數(shù)據(jù)結(jié)構(gòu)如下所示。
IKESal協(xié)議響應(yīng)消息格式數(shù)據(jù)結(jié)構(gòu)如下所示。
IKESal協(xié)議刪除消息數(shù)據(jù)結(jié)構(gòu)如下所示。
為了降低IKEv2 第一階段相對較大的數(shù)據(jù)交互量并考慮安全性,IKESal協(xié)議對IKEv2 第一階段交互進(jìn)行了簡化,其具體消息交互流程如圖5所示。
圖5 IKESal協(xié)議第一階段交互流程Fig.5 Exchanges of initial exchanges in IKESal
其中各條消息符號代表的意義和計(jì)算方式如下所示。
(1)SK{…}:加密載荷,表示{}內(nèi)所有載荷用SK_e和SK_a分別提供機(jī)密性和完整性保護(hù);
(2)Prf(…):散列算法,表示對括號里面的輸入數(shù)據(jù)進(jìn)行散列運(yùn)算;
(3)SA代表發(fā)起者支持的密碼算法;
(4)KE 載荷發(fā)送發(fā)起者的D-H值,通過KE,并在N 中發(fā)送nonce來完成D-H 交換。
通過IKE SA_INIT 交換,雙方生成一個密鑰材料(SKEYSEED)計(jì)算方法如下
后續(xù)消息使用的所有密鑰材料都源于SKEYSEED。其中SK 一為CHILD SA衍生新密鑰;SK_ai和SK_ar用于IKE_AUTH 消息交換的完整性保護(hù);SK_ei和SK_e;用于IKE_AUTH 的機(jī)密性保護(hù),SK_pi和SK_pr用于生成AUTH 載荷,它們的計(jì)算方法如下
式中:SK_d,SK_ai,SK_ar,SK_ei,SK_er,SK_pi和SK_pr的值順序地截取偽隨機(jī)函數(shù)prf的生成比特。
IKE_AUTH 消息的作用是驗(yàn)證IKE_SA_INIT 以及交換身份標(biāo)識和證書,并建立第一個CHILD SA。發(fā)起者在IDi載荷中聲明其身份,證明其擁有和IDi相對應(yīng)的秘密,并用AUTH 對前面消息的內(nèi)容進(jìn)行完整性保護(hù)??梢栽贑ERT 載荷中發(fā)送其證書,并在CERTREQ 中發(fā)送證書驗(yàn)證路徑。如果發(fā)送證書,則在提供的第一個證書中,必須包含用于驗(yàn)證AUTH 域的公鑰??蛇x的IDr載荷用來明確地表明想和對方的哪個身份通信,這適應(yīng)對方在同一IP地址擁有多個身份的情況。在IKE_AUTH 消息中的AUTH 載荷中采用以下三種認(rèn)證方法:
(1)RSA數(shù)字簽名;
(2)共享密鑰消息認(rèn)證;
(3)DSS數(shù)字簽名。
以預(yù)共享密鑰驗(yàn)證方式為例,AUTH 載荷的計(jì)算方式如下:
與IKEv2類似,CREAT_CHILD_SA消息交換,可以在初始交換建立的IKE SA基礎(chǔ)上生成多個CHILD_SA,為了降低IKEv2第二階段相對較大的數(shù)據(jù)交互量并考慮安全性,IKESal協(xié)議對IKEv2第二階段交互的消息內(nèi)容同樣進(jìn)行了簡化。其具體流程如圖6所示。
第二階段密鑰材料計(jì)算式,CHILD SA交換的加密密鑰生成方法如下:
圖6 IKESal協(xié)議第二階段交互流程Fig.6 Exchanges of CREATE_CHILD_SAexchange in IKESal
考慮前向完美保密性,使用新的g^ir則如下:
SA的重協(xié)商有時(shí)并不需要建立一個新的IKE_SA,而是從一個現(xiàn)存的IKE_SA基礎(chǔ)上協(xié)商一個新SA,新IKE_SA的SKEYSEED 計(jì)算公式如下:
如圖5所示,對于消息頭部分,經(jīng)過裁剪之后的IKESal協(xié)議消息頭長度,由原先的28byte降低到12byte。
1)第一階段交互量分析
對于第一階段載荷部分,為了降低交互數(shù)據(jù)量,采取了以下方案:
(1)只保留了部分核心負(fù)載類型,去除了與空間鏈路特點(diǎn)關(guān)系不大的載荷,如traffic selector載荷,降低了消息交換量;
(2)暫時(shí)沒有采用證書認(rèn)證方式頒發(fā)證書的密鑰管理中心不適合在空間信息系統(tǒng)中使用,以后可以考慮組合公鑰(Combination of Public Key,CPK)模式;
(3)去除了擴(kuò)展認(rèn)證交互和信息交互等模式。
參考航天器當(dāng)前使用密鑰材料長度,設(shè)密鑰長度(KE)字段為128byte,證書材料(Auth)字段為128byte,IKESal協(xié)議中一條消息長度將在256byte以內(nèi),因此第一階段實(shí)際交互量在4×256=1 024byte以內(nèi)。
2)第二階段交互量分析
設(shè)密鑰長度為128byte,證書材料為128byte,考慮前向完美保密性,一條消息長度不超過256byte,實(shí)際交互量在2×256=512byte以內(nèi)。
本文提出的密鑰交換協(xié)議可以作為實(shí)際星地、星間密鑰交換措施,如圖7所示。
圖7 IKESal協(xié)議在空間網(wǎng)絡(luò)的應(yīng)用Fig.7 Application of IKESal in space network
如圖8所示,以星地通信為例,設(shè)計(jì)本密鑰協(xié)商方法的具體實(shí)施方案:在衛(wèi)星和地面各自配置密鑰協(xié)商模塊,可在衛(wèi)星發(fā)射前預(yù)置共享的初始密鑰或證書,衛(wèi)星在軌的密鑰協(xié)商通過上行遙控鏈路和下行遙測鏈路(假定上下行信道已經(jīng)過認(rèn)證保護(hù))來完成。
IKE 得到大量分析和使用,并通過了實(shí)際驗(yàn)證的安全協(xié)議。IKEv2在IKEv1的基礎(chǔ)上進(jìn)行了改進(jìn),其安全性、系統(tǒng)性和簡潔性得到提高。
本文設(shè)計(jì)的IKESal協(xié)議在以下方面對IKEv2進(jìn)行簡化:
(1)通過對IKEv2報(bào)文頭分析,結(jié)合航天任務(wù)與地面環(huán)境的不同,刪除或縮短部分報(bào)文段,降低了報(bào)文頭的長度和復(fù)雜度;
(2)通過對IKEv2 交互階段載荷內(nèi)容進(jìn)行分析,結(jié)合航天任務(wù)特點(diǎn),對交互內(nèi)容進(jìn)行了精簡。
通過對IKEv2 的裁剪和部分修改,使IKESal協(xié)議變得更加簡潔有效,并保證了該協(xié)議的安全性,使其適用于實(shí)際空間數(shù)據(jù)系統(tǒng)和空間信息網(wǎng)絡(luò)。今后對IKESal的工作主要包含兩個方面:通過形式化語言等其他手段,對IKESal協(xié)議安全性進(jìn)行更加嚴(yán)格的邏輯分析和效率分析;在實(shí)際工程實(shí)現(xiàn)上逐步驗(yàn)證IKESal協(xié)議,使之真正能夠應(yīng)用于空間信息系統(tǒng),以提高我國空間網(wǎng)絡(luò)的安全。
(References)
[1]Harkins D,Carrel D.The internet key exchange(IKE)[S].IETF,RFC2409,November 1998
[2]Maughhan D,Schertler M,Schneider M,et al.Internet security association and key management protocol(ISAKMP)[S].IETF,RFC 2408,1998
[3]Kaufman C E.Internet key exchange(IKEv2)Protocol[S].IETF,RFC4306,2005
[4]Kaufman C,Hoffman P,Nir Y,et al.Internet key exchange protocol version 2 (IKEv2)[S].IETF,RFC5996,2010
[5]Srivastava A.Is internet security a major issue with respect to the slow acceptance rate of digital signatures[R].Computer Law and Security Report,2005
[6]Lari I A,Jorma Y ,Pekka L.Aproposal to improve IKEv2negotiation[C]//International Conference on Emerging Security Information,2007
[7]Brunstrom A,Lindskog S,F(xiàn)aigl Z.Analyzing IKEv2 performance when protecting mobile IPv6signaling[J].Wireless Communication Systems,2007
[8]劉海靜.IKEv2的實(shí)現(xiàn)及形式語言邏輯分析[D].西安:西安電子科技大學(xué),2004
Liu Haijing.Realize and logical analysis of IKEv2protocols[D].Xi’an:Xidian University,2004 (in Chinese)
[9]Zhang Yahang,Cheng Bowen,Wen Weiing,et al.MLIKE:a multi-layer IKE protocol for TCP performance enhancement in wireless networks[C]//The International Society for Optical Engineering,2010,7651:17
[10]Knt S,Atkinson P.IP authentication header[S].IETF,RFC 2402,1998
[11]Kent S,Atkinson P.IP encapsulating security payload(ESP)[S].IETF,RFC2406,1998
[12]CCSDS.Recommendation for space data systems standards[S].Washington,D.C.:CCSDS 713.5-B-1.Blue Book.Issue 2,1999
[13]趙和平,李寧寧,CCSDS標(biāo)準(zhǔn)在軍用航天任務(wù)中的應(yīng)用[J].北京:航天器工程,2007,16(4)
Zhao Heping,Li Ningning.Implementation of CCSDS standard in military space mission[J].Spacecraft Engineering,2007,16(4)(in Chinese)