陳杰 熊曉將 陳亮亮 齊海銘
(中國空間技術(shù)研究院通信衛(wèi)星事業(yè)部,北京 100094)
隨著我國通信衛(wèi)星的出口,以東方紅四號(hào)平臺(tái)為代表的國產(chǎn)通信衛(wèi)星逐漸邁向歐洲、美洲等成熟的運(yùn)營商市場。成熟運(yùn)營商對(duì)測控協(xié)議設(shè)計(jì)和運(yùn)行管理提出了更為苛刻的要求,如衛(wèi)星用戶對(duì)衛(wèi)星測控系統(tǒng)的遙控功能應(yīng)采用空間數(shù)據(jù)系統(tǒng)咨詢委員會(huì)(CCSDS)標(biāo)準(zhǔn),同時(shí)要采用高級(jí)加密標(biāo)準(zhǔn)(AES)加密標(biāo)準(zhǔn)實(shí)現(xiàn)對(duì)遙控?cái)?shù)據(jù)的安全保護(hù)。然而,國內(nèi)衛(wèi)星普遍采用脈沖編碼調(diào)制(PCM)遙控體制,加解密算法也是基于任務(wù)需求的專用算法,沒有基于某一個(gè)通用標(biāo)準(zhǔn)開展加解密系統(tǒng)設(shè)計(jì)。
隨著衛(wèi)星復(fù)雜度和類型的增加,衛(wèi)星任務(wù)的物理環(huán)境更為復(fù)雜,現(xiàn)行相關(guān)標(biāo)準(zhǔn)已無法完全支持新技術(shù)發(fā)展的要求,因此需要開展與CCSDS標(biāo)準(zhǔn)對(duì)標(biāo)和國家相關(guān)標(biāo)準(zhǔn)制定的工作。而對(duì)于CCSDS安全協(xié)議標(biāo)準(zhǔn),若有類似文獻(xiàn)[1]中的應(yīng)用實(shí)例,即針對(duì)每種指令數(shù)據(jù)類型給出協(xié)議的任務(wù)配置數(shù)據(jù)及遙控流程,其易用性會(huì)大大提升。同時(shí),隨著近些年CCSDS安全協(xié)議發(fā)展,目前CCSDS安全協(xié)議體系已較為完善,從總則[2]、協(xié)議[3]、算法[4]、密鑰管理[5]到擴(kuò)展流程[6],已能夠全面支持衛(wèi)星在軌應(yīng)用。文獻(xiàn)[7]中對(duì)CCSDS空間數(shù)據(jù)鏈路安全協(xié)議[3]進(jìn)行了詳細(xì)介紹,并且對(duì)該協(xié)議在國內(nèi)空間任務(wù)中應(yīng)用提出了若干建議,但對(duì)CCSDS空間數(shù)據(jù)鏈路安全協(xié)議的應(yīng)用參考價(jià)值不大,無法指導(dǎo)安全協(xié)議系統(tǒng)的實(shí)際設(shè)計(jì)。文獻(xiàn)[8-9]中研究了加密認(rèn)證算法應(yīng)用于CCSDS分包遙控?cái)?shù)據(jù)鏈路層的性能,并且基于OPNET仿真平臺(tái),給出了性能分析,但僅僅給出了采用AES/SHA-256/GCM算法的數(shù)據(jù)加解密結(jié)果,同樣無法指導(dǎo)安全協(xié)議系統(tǒng)的實(shí)際設(shè)計(jì)。
本文針對(duì)國內(nèi)衛(wèi)星遙控?cái)?shù)據(jù)安全保護(hù)和遙控體制國際化的需求,應(yīng)用CCSDS空間數(shù)據(jù)鏈路安全協(xié)議,設(shè)計(jì)了一套遙控安全方案,并且針對(duì)該遙控安全方案給出了應(yīng)用實(shí)例,針對(duì)該應(yīng)用實(shí)例進(jìn)行了定性仿真驗(yàn)證分析,有助于CCSDS安全協(xié)議的應(yīng)用和本地化,可為我國衛(wèi)星遙控體制與國際接軌提供參考。
本文的遙控安全方案選擇在數(shù)據(jù)鏈路層實(shí)現(xiàn)數(shù)據(jù)保護(hù)機(jī)制,數(shù)據(jù)保護(hù)對(duì)象為傳送幀。由于數(shù)據(jù)鏈路層位于傳送層和信道編碼層之間,在數(shù)據(jù)鏈路層實(shí)施數(shù)據(jù)保護(hù)具有操作簡單的優(yōu)點(diǎn)。因此,在安全協(xié)議的選擇上,本文遙控安全方案使用CCSDS空間數(shù)據(jù)鏈路安全協(xié)議[3]。在安全業(yè)務(wù)的選擇上,采用的安全業(yè)務(wù)為認(rèn)證和加密認(rèn)證,選用的算法為基于密文的消息認(rèn)證碼(CMAC)[10]和Galois/計(jì)數(shù)器模式(GCM)[11],分別對(duì)應(yīng)認(rèn)證和加密認(rèn)證業(yè)務(wù)。
空間數(shù)據(jù)鏈路安全協(xié)議的應(yīng)用,重點(diǎn)在于其數(shù)據(jù)格式與算法的匹配。本文遙控安全方案選用CMAC和GCM分別作為認(rèn)證和加密認(rèn)證業(yè)務(wù)算法,針對(duì)這兩種安全業(yè)務(wù)的格式定制如圖1~3所示。表1為安全頭字段意義,對(duì)于認(rèn)證業(yè)務(wù),使用CMAC算法,在安全頭中不需要“初始向量”和“填充長度”數(shù)據(jù)域,因此安全頭長度為48 bit。安全尾(消息認(rèn)證碼(MAC))的長度為128 bit。對(duì)加密認(rèn)證業(yè)務(wù)使用GCM算法,通常采用簡單的加法計(jì)數(shù)器作為初始向量(IV),不需要設(shè)置單獨(dú)的防重放序列號(hào),因此安全頭長度為112 bit。安全尾與認(rèn)證業(yè)務(wù)的安全尾一致。

圖1 采用CMAC算法的安全頭Fig.1 Security header (CMAC algorithm)

圖2 安全尾Fig.2 Security trailer

圖3 采用GCM算法的安全頭Fig.3 Security header (GCM algorithm)
表1 安全頭字段意義
Table 1 Field meaning of security header

字段名稱字段意義SPI用于標(biāo)志安全關(guān)聯(lián)(SA)的索引IV對(duì)于應(yīng)用加密認(rèn)證業(yè)務(wù)的系統(tǒng)而言,可作為計(jì)數(shù)器序列號(hào)包含防重放序列號(hào),用于防重放攻擊填充長度算法處理中填充字節(jié)的總長度,為字節(jié)的整數(shù)倍
1.2.1 SA管理
SA的概念來自互聯(lián)網(wǎng)安全協(xié)議(IPSec),是2個(gè)應(yīng)用IPSec系統(tǒng)(主機(jī)、路由器)間的一個(gè)單向邏輯連接,是安全策略的具象化和實(shí)例化,它給出了保護(hù)通信的具體細(xì)節(jié)。在空間通信應(yīng)用中,需要對(duì)其進(jìn)行修改,以適應(yīng)空間通信的特點(diǎn)。在CCSDS空間數(shù)據(jù)鏈路安全協(xié)議[3]中指出,發(fā)送端和接收端都必須創(chuàng)建1個(gè)SA,在SA使用前將其和密鑰進(jìn)行關(guān)聯(lián),并激活密鑰。多個(gè)SA的參數(shù)可以在衛(wèi)星發(fā)射前進(jìn)行靜態(tài)定義。如果需要,SA的參數(shù)也可以動(dòng)態(tài)創(chuàng)建,甚至在其他SA生效時(shí)也可以創(chuàng)建。SA間的激活狀態(tài)切換機(jī)制在應(yīng)用層進(jìn)行實(shí)現(xiàn),協(xié)商SA參數(shù)屬于應(yīng)用層的功能。
針對(duì)上述需求,本文遙控安全方案選用下述SA管理業(yè)務(wù)[6],實(shí)現(xiàn)SA的在軌管理工作。①啟動(dòng)SA(SA Start):開始使用信道上特定的SA;②停止SA(SA Stop):停止使用信道上特定的SA;③密鑰更新(SA Rekey):在激活SA之前將密鑰與SA相關(guān)聯(lián);④SA到期(SA Expire):將原密鑰與原SA去關(guān)聯(lián);⑤新建SA(SA Create):根據(jù)業(yè)務(wù)用戶提供的參數(shù)初始化SA;⑥刪除SA(SA Delete):完整刪除1個(gè)SA;⑦設(shè)置防重放計(jì)數(shù)器(SA SetARC):根據(jù)業(yè)務(wù)用戶提供的值初始化SA的防重放序列號(hào);⑧設(shè)置防重放窗口(SA SetARCW):根據(jù)業(yè)務(wù)用戶提供的值初始化SA的防重放窗口;⑨查詢SA狀態(tài)(SA Status):查詢SA當(dāng)前狀態(tài)。
本文遙控安全方案選取SA的4種狀態(tài),即無SA狀態(tài)(NULL)、未與密鑰關(guān)聯(lián)狀態(tài)(Unkeyed)、與密鑰關(guān)聯(lián)狀態(tài)(Keyed)及SA運(yùn)行狀態(tài)(Operational)。從圖4中可以看到,通過SA管理指令,即可實(shí)現(xiàn)SA狀態(tài)的轉(zhuǎn)換,其中“設(shè)置防重放計(jì)數(shù)器”、“設(shè)置防重放窗口”、“查詢SA狀態(tài)”3項(xiàng)SA管理業(yè)務(wù)不會(huì)引起SA狀態(tài)的轉(zhuǎn)換。

圖4 安全關(guān)聯(lián)管理的狀態(tài)模型Fig.4 State model for security association management
1.2.2 算法管理
本文遙控安全方案采用的CMAC和GCM均為對(duì)稱密碼算法,即星地使用的密鑰相同。針對(duì)CMAC算法,對(duì)于一段需要被驗(yàn)證的消息M,有2種操作,如圖5所示。AES-K是帶密鑰K的AES算法。消息M被分成M_1,M_2,…,M_n,除了M_n,前面每塊長度等于128 bit。最后一塊M_n的長度,不大于128 bit。K1是圖5(a)所用子密鑰;K2是圖5(b)所用子密鑰。K1和K2由子密鑰生成算法生成。如果輸入消息塊的尺寸等于128 bit的整數(shù)倍,最后的塊將和K1異或;否則,最后的塊將被填補(bǔ)10∧i(表示“1”后補(bǔ)i個(gè)“0”),使其長度等于128 bit,然后和K2異或。上述過程的結(jié)果將是最后加密操作的輸入。CMAC的輸出T(即安全尾)為整個(gè)輸入消息M提供了數(shù)據(jù)完整性。星上的解密過程就是將安全尾重算一遍,比較計(jì)算結(jié)果是否與收到的安全尾結(jié)果一致:一致,則通過驗(yàn)證;否則,驗(yàn)證無效。CMAC算法詳見文獻(xiàn)[10]。


圖5 CMAC算法流程
針對(duì)GCM算法,同樣需要將明文P按照128 bit分組,用n和u表示明文總長度為(n-1)×128+u,1≤u≤128。即明文由一系列的n組數(shù)據(jù)組成,最后一組數(shù)據(jù)長度為u,其他長度均為128 bit。這些明文數(shù)據(jù)塊記為P1,P2,P3,…,Pn-1,Pn。密文C的數(shù)據(jù)塊記為C1,C2,C3,…,Cn-1,Cn。Pn和Cn的長度均為u。附加鑒別數(shù)據(jù)A的數(shù)據(jù)塊記為A1,A2,…,Am-1,Am。Am長度為v,A總長度為(m-1)×128+v,1≤v≤128。這里附加鑒別數(shù)據(jù)的含義是需要用于進(jìn)行認(rèn)證但不需要進(jìn)行加密的數(shù)據(jù)。CIPHK是帶密鑰K的AES算法。inc是遞增函數(shù);J0為IV|0311,表示IV和0311(即31個(gè)“0”與1個(gè)“1”級(jí)聯(lián)組成的比特序列)級(jí)聯(lián);MSBt為截取某序列最左邊t個(gè)比特的序列;[len(·)]64為返回64 bit的數(shù)據(jù)串長度;GCTRK和GHASHH為特殊函數(shù),GCTRK表示AES計(jì)數(shù)器模式運(yùn)算,GHASHH表示加密哈希函數(shù)運(yùn)算,2個(gè)函數(shù)的定義詳見文獻(xiàn)[11]。
按照?qǐng)D6(a)所示的流程,即可完成數(shù)據(jù)加密認(rèn)證。按照?qǐng)D6(b)所示的流程,即可完成數(shù)據(jù)的解密認(rèn)證。比較計(jì)算得到的T′與收到的T的字符串:一致,通過驗(yàn)證;否則,驗(yàn)證無效。GCM算法詳見文獻(xiàn)[11]。


圖6 GCM算法流程
1.2.3 密鑰管理
本文遙控安全方案對(duì)密鑰進(jìn)行分層控制[5],分為主密鑰和會(huì)話密鑰。其中,主密鑰為最高等級(jí)密鑰,一般在衛(wèi)星發(fā)射前通過安全信道固化在衛(wèi)星存儲(chǔ)器中。主密鑰又可進(jìn)一步細(xì)化為密鑰加密密鑰,用于加密或加密認(rèn)證會(huì)話密鑰,或者用于會(huì)話密鑰的生成,或者用于加密或加密認(rèn)證指定的星上加解密單元指令和流程。會(huì)話密鑰,又稱為數(shù)據(jù)加密密鑰,為最低等級(jí)密鑰,用于保護(hù)衛(wèi)星的通信信道,實(shí)現(xiàn)加密、認(rèn)證或其他類型業(yè)務(wù)。
對(duì)于密鑰生命周期,選取如下4個(gè)狀態(tài)[12]。①預(yù)激活態(tài)(Pre-Activation):剛生成的密鑰應(yīng)處于預(yù)激活態(tài);②激活態(tài)(Active):進(jìn)入激活態(tài)的密鑰應(yīng)開始其工作生命周期;③去激活態(tài)(Deactivated):密鑰已處于其工作生命周期的終點(diǎn),但未被毀壞;④毀壞態(tài)(Destroyed):密鑰已處于其工作生命周期的終點(diǎn),且被毀壞。針對(duì)上述密鑰生命周期,采用如圖7所示的密鑰管理業(yè)務(wù)。

圖7 密鑰生命周期Fig.7 Cryptographic key lifecycle
實(shí)現(xiàn)密鑰生命周期的管理包括以下幾個(gè)方面。①無線密鑰更新(OTAR):將新會(huì)話密鑰從發(fā)起者安全傳送至接收者;②激活密鑰(Key Activation):激活通信兩端的密鑰,使密鑰處于激活態(tài),可用于加解密操作;③去激活密鑰(Key Deactivation);去激活通信兩端的密鑰,使密鑰處于去激活態(tài),不可用于加解密操作;④毀壞密鑰(Key Destruction):刪除通信兩端的密鑰;⑤密鑰認(rèn)證(Key Verification):對(duì)接收端的處于激活態(tài)的會(huì)話密鑰進(jìn)行認(rèn)證。
本文遙控安全方案可由計(jì)算機(jī)和目標(biāo)機(jī)搭建的驗(yàn)證系統(tǒng),基于典型應(yīng)用場景進(jìn)行驗(yàn)證,其中計(jì)算機(jī)模擬地面站,目標(biāo)機(jī)模擬目標(biāo)衛(wèi)星的遙控單元,各設(shè)備均配置本文設(shè)計(jì)的遙控安全協(xié)議。驗(yàn)證系統(tǒng)配置3層密鑰進(jìn)行控制,即主密鑰、密鑰加密密鑰和會(huì)話密鑰。其中:主密鑰用于傳送密鑰加密密鑰和應(yīng)急恢復(fù);密鑰加密密鑰用于傳送會(huì)話密鑰;會(huì)話密鑰用于上傳日常指令和數(shù)據(jù)。
驗(yàn)證系統(tǒng)設(shè)置如下4個(gè)SA用于衛(wèi)星在軌操作。①SA1:key用作主密鑰,采用加密認(rèn)證業(yè)務(wù),SPI為0x0001,MAP63;②SA2:key用作密鑰加密密鑰,采用加密認(rèn)證業(yè)務(wù),SPI為0x0002,MAP1;③SA3:key用作會(huì)話密鑰,采用認(rèn)證業(yè)務(wù),SPI為0x0003,MAP2;④SA4:key用作會(huì)話密鑰,采用認(rèn)證業(yè)務(wù),SPI為0x0004,MAP0。其中:SA1的所有信息存儲(chǔ)在目標(biāo)機(jī)的Flash中;SA2~SA4的所有信息存儲(chǔ)或創(chuàng)建在目標(biāo)機(jī)的靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)中。另外,SA3用于數(shù)據(jù)注入,而SA4用于直接指令。
以上述驗(yàn)證系統(tǒng)環(huán)境為基礎(chǔ),設(shè)計(jì)主控計(jì)算機(jī)向目標(biāo)機(jī)上注遙控指令的實(shí)例。這里考慮2種應(yīng)用場景:①對(duì)衛(wèi)星進(jìn)行日常操作,包括數(shù)據(jù)上注和指令上注,對(duì)數(shù)據(jù)/指令認(rèn)證后上傳衛(wèi)星,見圖8;②對(duì)衛(wèi)星進(jìn)行應(yīng)急操作,包括密鑰上注,對(duì)密鑰加密認(rèn)證后上傳衛(wèi)星,見圖9。

注:CRC為循環(huán)冗余校驗(yàn);M(X)為CRC編碼中輸入的數(shù)據(jù)塊,G(X)為生成多項(xiàng)式,L(X)為預(yù)置多項(xiàng)式。圖8 發(fā)送端遙控認(rèn)證業(yè)務(wù)Fig.8 TC authentication operation of sending end

圖9 發(fā)送端遙控加密認(rèn)證業(yè)務(wù)Fig.9 TC authenticated encryption operation of sending end
對(duì)于場景①,發(fā)送端的數(shù)據(jù)/指令流轉(zhuǎn)過程如下,接收端的數(shù)據(jù)/指令流轉(zhuǎn)過程相反。
(1)用戶數(shù)據(jù)/指令進(jìn)行包封裝;
(2)根據(jù)用戶數(shù)據(jù)/指令類型選擇SA,按照本文設(shè)計(jì)的安全協(xié)議進(jìn)行認(rèn)證載荷封裝;
(3)將認(rèn)證載荷及密鑰送入CMAC算法,得到安全尾;
(4)按照遙控?cái)?shù)據(jù)鏈路協(xié)議進(jìn)行傳送幀封裝;
(5)將傳送幀送入編碼子層進(jìn)行BCH(63,56)編碼后,組成通信傳送單元(CLTU)送入物理層傳輸。
對(duì)于場景②,發(fā)送端的數(shù)據(jù)/指令流轉(zhuǎn)過程如下,接收端的數(shù)據(jù)/指令流轉(zhuǎn)過程相反。
(1)用戶數(shù)據(jù)/指令進(jìn)行包封裝;
(2)根據(jù)用戶數(shù)據(jù)/指令類型選擇SA,按照本文設(shè)計(jì)的安全協(xié)議進(jìn)行認(rèn)證載荷封裝;
(3)將認(rèn)證載荷、IV、加密載荷、密鑰送入GCM算法,得到密文和安全尾;
(4)按照遙控?cái)?shù)據(jù)鏈路協(xié)議進(jìn)行傳送幀封裝;
(5)將傳送幀送入編碼子層進(jìn)行BCH(63,56)編碼后,組成CLTU送入物理層傳輸。
從上述2個(gè)應(yīng)用場景的驗(yàn)證中可以看到:本文遙控安全方案能夠?qū)崿F(xiàn)衛(wèi)星在軌正常操作和應(yīng)急操作,同時(shí)具備衛(wèi)星在軌安全關(guān)聯(lián)和密鑰管理能力。該方案側(cè)重于協(xié)議和功能的實(shí)現(xiàn)與驗(yàn)證,但受限于當(dāng)前驗(yàn)證系統(tǒng)的資源和軟件實(shí)現(xiàn)的復(fù)雜度,還無法支持性能測試,因此僅從定性角度進(jìn)行了驗(yàn)證和分析,沒有定量試驗(yàn)結(jié)果展示。
從本文遙控安全方案的應(yīng)用效果來看,主要有以下優(yōu)點(diǎn)。①通過SA管理,可以使遙控?cái)?shù)據(jù)安全保護(hù)機(jī)制更為靈活,既可以建立不同SA與虛擬信道的關(guān)系,針對(duì)不同遙控?cái)?shù)據(jù)實(shí)現(xiàn)不同的安全業(yè)務(wù),又完全不影響原有數(shù)據(jù)的保護(hù)策略,可顯著提高遙控安全系統(tǒng)的靈活性、可擴(kuò)展性。②利用密鑰分層結(jié)構(gòu),可以保護(hù)密鑰強(qiáng)度,延長密鑰生命周期;同時(shí),也可實(shí)現(xiàn)密鑰在軌靈活管理,將更多的自主權(quán)交給衛(wèi)星用戶,提升衛(wèi)星的好用易用性。
在遙控體制與國際接軌的背景下,本文在調(diào)研CCSDS測控協(xié)議體系的基礎(chǔ)上,針對(duì)不同的遙控安全業(yè)務(wù),分別設(shè)計(jì)了定制遙控幀格式、安全關(guān)聯(lián)、算法管理及密鑰管理業(yè)務(wù),并在地面驗(yàn)證系統(tǒng)中通過2個(gè)典型應(yīng)用場景仿真驗(yàn)證了該方案具備在軌保護(hù)遙控?cái)?shù)據(jù)安全的可行性。后續(xù)將繼續(xù)完善地面驗(yàn)證系統(tǒng),并在地面驗(yàn)證系統(tǒng)中進(jìn)行定量仿真驗(yàn)證分析,為我國測控體制與國際接軌提供支持。