唐利鋒,崔 陽,劉曉瑞,劉希紅
(1.上海航天電子有限公司,上海 201821;2.中國科學(xué)院 微小衛(wèi)星創(chuàng)新研究院,上海 201210)
在進(jìn)行航天器的遙控系統(tǒng)設(shè)計以及任務(wù)實施過程中,星地通信鏈路安全保護(hù)尤為關(guān)鍵。由于空間鏈路具有開放傳輸網(wǎng)絡(luò)屬性,空間數(shù)據(jù)系統(tǒng)廣泛存在被偵聽、重傳、偽造數(shù)據(jù)信息的安全隱患。為應(yīng)對空間任務(wù)的安全需求,國際空間數(shù)據(jù)系統(tǒng)咨詢委員會(Consultative Committee for Space Data Systems,CCSDS)提出了各類型航天任務(wù)的安全保證體系框架,開發(fā)定制了系列空間數(shù)據(jù)系統(tǒng)數(shù)據(jù)標(biāo)準(zhǔn)化文件[1-4]。
在實際應(yīng)用中,軍用航天任務(wù)執(zhí)行過程一般包含高戰(zhàn)略價值敏感信息的數(shù)據(jù)傳輸,安全需求等級較高。保護(hù)的措施包括:遙控數(shù)據(jù)加密、完整性判別、認(rèn)證數(shù)據(jù)來源和授權(quán)訪問。而對于民用航天任務(wù),如商業(yè)通信衛(wèi)星、氣象衛(wèi)星、遙感衛(wèi)星等,一般只需要進(jìn)行遙控數(shù)據(jù)完整性判別、數(shù)據(jù)來源認(rèn)定。近年來,基于CCSDS 體制,發(fā)展了將不同密碼學(xué)算法應(yīng)用于分包遙控的加密認(rèn)證的研究方向[5-8],但均停留在安全框架設(shè)計及算法性能分析與相互結(jié)果比較上,無法指導(dǎo)系統(tǒng)的工程設(shè)計。且對于單認(rèn)證體制下的分包遙控系統(tǒng)詳盡實施策略研究鮮有論文涉及。
本文針對單認(rèn)證體制的分包遙控[9-10],對系統(tǒng)處理數(shù)據(jù)的流程進(jìn)行分析?;诳臻g數(shù)據(jù)鏈路安全(Space Data Link Security,SDLS)協(xié)議,確定了的認(rèn)證保護(hù)實施的范圍,并對遙控數(shù)據(jù)傳輸控制進(jìn)行了設(shè)計??紤]民商用航天器通信的安全需求以及認(rèn)證算法的功能,設(shè)計運用了集成密碼結(jié)構(gòu)的增強型(Message Digest-5,MD5)算法對星載遙控通信進(jìn)行認(rèn)證保護(hù),通過設(shè)計安全關(guān)聯(lián)(Security Association,SA)管理機制,保證星載遙控認(rèn)證保護(hù)工作的有效運行。
在CCSDS 分層模型中的數(shù)據(jù)鏈路協(xié)議層中,設(shè)計有一個額外的安全子層,作為一個功能實體,實現(xiàn)SDLS 協(xié)議,如圖1 所示。SDLS 協(xié)議結(jié)合了相應(yīng)的數(shù)據(jù)結(jié)構(gòu),在空間數(shù)據(jù)鏈路協(xié)議傳送幀中,為基于字節(jié)的用戶數(shù)據(jù)提供了認(rèn)證/加密認(rèn)證服務(wù)的標(biāo)準(zhǔn)方法。該協(xié)議可作為各型號航天任務(wù)空間鏈路數(shù)據(jù)通信的標(biāo)準(zhǔn),減少了安全解決方案的重復(fù)設(shè)計,有助于通用商業(yè)化的開發(fā)實現(xiàn)。
圖1 CCSDS 分層模型與SDLS 所處位置Fig.1 Location of SDLS in CCSDS layered model
當(dāng)進(jìn)行星地鏈路通信時,需要發(fā)送方與接收方統(tǒng)一數(shù)據(jù)保護(hù)模式、密碼通信參數(shù)。SA 定義了單向信息傳遞、數(shù)據(jù)認(rèn)證算法體制、數(shù)據(jù)完整性確認(rèn)、重放攻擊識別的服務(wù)。地面測控中心與航天器在進(jìn)行安全通信前,預(yù)先確定SA,使SA 關(guān)聯(lián)特定密鑰及使用該密鑰的虛擬信道(Virtual Channel,VC),并切換SA 狀態(tài)至運行狀態(tài),實現(xiàn)SA 星地同步。VC 是一種按數(shù)據(jù)特性和傳輸要求使多數(shù)據(jù)源分享同一物理信道的傳輸控制及動態(tài)調(diào)度機制,通過幀頭識別碼進(jìn)行標(biāo)識。SA 一旦被定義,則用于認(rèn)證的算法、參數(shù)及操作方式在SA 生存周期內(nèi)保持不變。
SDLS 協(xié)議在“安全導(dǎo)頭(Security Header)”和“安全尾部(Trailer)”之間封裝傳送幀的應(yīng)用數(shù)據(jù),“安全導(dǎo)頭”和“尾部”包含了接收端用于消息驗證的必要參數(shù)?!鞍踩珜?dǎo)頭”和“安全尾部”的格式定義如圖2 所示。其中,“安全導(dǎo)頭”包含安全參數(shù)標(biāo)志(Security Parameter Index,SPI)、初向量(Initialisation Vector,IV)、防重放序列號(Serial Number,SN)和填充塊?!拔膊俊睘轵炞C碼(Message Authentication Code,MAC)。除SPI 外,SDLS 中其他數(shù)據(jù)域為變長可選,其長度取決于SA 所設(shè)定的算法和功能。SPI 長度為2 byte,用于唯一標(biāo)識傳送幀所采用的SA。
圖2 SDLS 協(xié)議中“安全導(dǎo)頭”和“安全尾部”Fig.2 Security header and trailer in SDLS protocol
為了保證遙控數(shù)據(jù)的可靠傳送,CCSDS設(shè)計了遙控通信操作程序(Communication Operation Procedure,COP)規(guī)約,實現(xiàn)發(fā)送端和接收端同步操作的閉環(huán)。其中在發(fā)送端執(zhí)行的幀操作步驟稱為幀操作程序(Frame Operation Procedure,F(xiàn)OP),其組織遙控幀發(fā)送隊列;在接收端執(zhí)行的幀接收及匯報機制稱為幀接收和匯報機制(Frame Acceptance and Reporting Mechanism,F(xiàn)ARM),F(xiàn)ARM 識別接收到的數(shù)據(jù)幀結(jié)構(gòu)中的“幀序列號”,是否匹配星上更新的幀序列計數(shù),如果匹配,則接受并處理該數(shù)據(jù)幀,否則不予接收。同時FARM 經(jīng)由星地遙測下行鏈路,定時通過命令鏈路控制字(Command Link Control Word,CLCW)[10]反饋接收狀態(tài)信息。FOP識別CLCW 結(jié)構(gòu)數(shù)據(jù)信息,若有遙控數(shù)據(jù)幀未被接受,則從FARM 所更新的幀序列號開始重新啟動發(fā)送操作[11],上述過程形成一個完整的閉環(huán),COP 閉環(huán)操作過程如圖3 所示。COP 機制保證了遙控數(shù)據(jù)準(zhǔn)確并且按序在有噪信道中傳輸。
圖3 COP 過程Fig.3 COP process
為了數(shù)據(jù)保護(hù)機制能保護(hù)命令操作步驟中的COP 標(biāo)志(AD 類型幀數(shù)據(jù)格式中的“通過標(biāo)志”與“控制命令標(biāo)志”),阻止敵方對上述標(biāo)志發(fā)起攻擊,引起服務(wù)拒絕,本文設(shè)計進(jìn)行數(shù)據(jù)保護(hù)的范圍如圖4所示,對“幀頭”域、“安全導(dǎo)頭”域、“傳送幀數(shù)據(jù)”域作為一個整體進(jìn)行認(rèn)證保護(hù),認(rèn)證輸出的驗證碼填入“安全尾”域。
圖4 基于SDLS 協(xié)議遙控傳送幀及其保護(hù)范圍Fig.4 TC frame format based on SDLS protocol and its protection scope
由于分包遙控系統(tǒng)中的COP 閉環(huán)機制與認(rèn)證閉環(huán)機制之間相互獨立,故在數(shù)據(jù)鏈路層開展認(rèn)證操作時,認(rèn)證重傳循環(huán)內(nèi)嵌COP 重傳循環(huán),可能引起COP 循環(huán)與認(rèn)證循環(huán)發(fā)生沖突,造成通信的死鎖[12-13]。所以本文在VC 幀業(yè)務(wù)與FARM 操作之間進(jìn)行認(rèn)證操作[14]。
地面控制側(cè),在數(shù)據(jù)鏈路層進(jìn)行組幀,并按需求進(jìn)行傳輸幀的認(rèn)證,后輸入至“FOP 幀傳輸控制模塊”進(jìn)行數(shù)據(jù)幀的傳輸控制?!癋OP 幀傳輸控制模塊”中建立遙控傳輸幀隊列,并按照幀序列號進(jìn)行先后排序?!癋OP 幀傳輸控制模塊”同時接收星上下傳的幀安全報告(Frame Safety Report,F(xiàn)SR)與CLCW,其中通過FSR 判讀星上傳輸幀的認(rèn)證狀態(tài),而FSR 被包裝為均勻等間隔“源包”,當(dāng)收到FSR 時,按照幀序列號進(jìn)行認(rèn)證數(shù)據(jù)幀的重新傳送。當(dāng)收到定時CLCW,即判讀星上幀接收狀態(tài),通過CLCW 中包含的當(dāng)前接收幀序列號刪除地面?zhèn)菷OP 隊列中已發(fā)送成功的幀。
星上側(cè),對接收到的遙控命令幀/數(shù)據(jù)幀進(jìn)行認(rèn)證后,通過FSR 向地面控制端匯報幀認(rèn)證信息,僅有認(rèn)證通過后,才將遙控幀傳送至“FARM 幀傳輸控制模塊”,“FARM 幀傳輸控制模塊”發(fā)出反饋CLCW,匯報航天器終端的遙控幀接收狀態(tài),該CLCW 作為下行遙測幀的“操作控制域數(shù)據(jù)”,通過特定VC 定時下傳。上述設(shè)計避免循環(huán)沖突引發(fā)的進(jìn)程死鎖,傳輸控制流程設(shè)計如圖5 所示。
圖5 傳輸控制流程設(shè)計Fig.5 Design of transmission control flow
遙控認(rèn)證指令、認(rèn)證數(shù)據(jù)的幀數(shù)據(jù)格式見表1。為有效進(jìn)行SA 的管理,預(yù)防SA 運行過程中的操作丟失,設(shè)計兩層SPI 結(jié)構(gòu)見表2。
表1 遙控認(rèn)證指令、認(rèn)證數(shù)據(jù)幀格式Tab.1 Authentication command and authentication data frame format of TC
表2 層次SPI 結(jié)構(gòu)模型Tab.2 Hierarchical structure model of SPI
“IV”設(shè)計為地面測控中心生成的隨機數(shù)注入,用以擴大認(rèn)證計算結(jié)果的非線性度,避免星載遙控在生命周期內(nèi),由于相同指令碼/數(shù)據(jù)多次重復(fù)發(fā)送而帶來的攻擊。“SN”設(shè)計為“時間序列碼段”,為防重放攻擊所設(shè)計,由測控中心管理設(shè)備組織時間信息。格式見表3,星上判斷每次上傳的認(rèn)證指令/數(shù)據(jù)幀中的“時間序列碼段”,要求后一幀的“時間序列碼段”必須大于前一幀的“時間序列碼段”。如果后一幀的“時間序列碼段”小于或者等于前一幀的“時間序列碼段”,認(rèn)為是重放攻擊,遙控認(rèn)證模塊忽略該次遙控幀,并在下行遙測幀對應(yīng)“重放”標(biāo)識位中進(jìn)行標(biāo)示。
表3 時間序列格式設(shè)計Tab.3 Format of the time series bit
“MAC”為地面運控站使用認(rèn)證算法計算輸出的認(rèn)證值,嵌入在傳送幀中,傳送給航天器。依據(jù)上節(jié)分析,認(rèn)證運算區(qū)域設(shè)計為:幀主導(dǎo)頭、安全導(dǎo)頭、幀數(shù)據(jù)域、認(rèn)證密鑰。其中,“認(rèn)證密鑰”不參與傳輸,為星上預(yù)存。只有星上遙控認(rèn)證軟件計算的“MAC 值”與上傳數(shù)據(jù)幀的“MAC 值”比對一致時,認(rèn)證正確,該幀被接收。
不同航天器任務(wù)復(fù)雜度不同,星上信宿(分系統(tǒng)或設(shè)備)對星地鏈路數(shù)據(jù)傳輸?shù)谋Wo(hù)形式和要求不一樣,數(shù)據(jù)保護(hù)算法的掛鉤密鑰也可能隨時進(jìn)行變更。對于長生命周期的航天器而言,切換個別信宿的數(shù)據(jù)保護(hù)模式及參數(shù)、星地密鑰傳輸?shù)谋Wo(hù)并可靠管理等是亟需解決的問題。SA 管理機制的設(shè)計,可為解決上述問題提供了一套可靠方案。
設(shè)計通過將PDU[4]嵌入SDLS 協(xié)議中的數(shù)據(jù)域中,實現(xiàn)數(shù)據(jù)保護(hù),用以覆蓋SA 的管理要素,并且可以實現(xiàn)密鑰管理的標(biāo)識識別,地面站通過傳遞PDU 至航天器終端來實現(xiàn)星載SA 狀態(tài)的動態(tài)切換。PDU 傳遞幀格式如圖6 所示,其中,安全導(dǎo)頭中SPI 取值為表2“層次SPI 結(jié)構(gòu)模型”中的1 層中數(shù)值,對SDLS 協(xié)議數(shù)據(jù)單元進(jìn)行傳遞。
圖6 基于SDLS 的PDU 傳遞幀格式設(shè)計Fig.6 Format of PDU transfer frame based on SDLS
常態(tài)下,航天器內(nèi)部預(yù)加載SA 及與其相關(guān)聯(lián)密鑰、數(shù)據(jù)保護(hù)認(rèn)證算法(見表4),通過關(guān)聯(lián)VC 的SA 啟動命令以及SA 停止命令實現(xiàn)遙控數(shù)據(jù)的握手傳遞。
由于認(rèn)證保護(hù)算法的強度要求,而定期對SA掛鉤密鑰進(jìn)行更迭時,可通過SA 密鑰關(guān)聯(lián)/解關(guān)聯(lián)PDU 命令予以實現(xiàn),如圖7 所示。在應(yīng)急態(tài)下,當(dāng)需要實現(xiàn)星地密鑰傳遞,以及之后的密鑰關(guān)聯(lián)變更等需求時,通過表4 中的PDU 指令對SA 管理模式進(jìn)行切換,如圖8 所示。
表4 SA 管理PDU 定義Tab.4 PDU design for SA management
圖7 SA 管理常態(tài)狀態(tài)模型Fig.7 Normal state model of SA management
圖8 SA 管理應(yīng)急狀態(tài)模型Fig.8 Emergency state model of SA management
對遙控數(shù)據(jù)保護(hù)控制的密鑰結(jié)構(gòu)進(jìn)行兩層設(shè)計,見表5。在航天器任務(wù)實施前,“主密鑰”以及部分“會話密鑰”預(yù)加載在星載可編程只讀存儲器(Programmable Read-Only Memory,PROM)中。常態(tài)下,考慮到認(rèn)證算法保護(hù)強度要求,定期會對運行中的“會話密鑰”進(jìn)行“去活”處理,執(zhí)行過程如圖9 所示。當(dāng)處于應(yīng)急狀態(tài)時,星地需要實現(xiàn)會話密鑰的傳遞,則PDU 密鑰上注指令、PDU 密鑰激活指令被執(zhí)行,執(zhí)行過程如圖10 所示,相關(guān)密鑰管理PDU 定義見表6。
表6 密鑰管理PDU 定義Tab.6 PDU design for key management
圖9 密鑰生存常態(tài)周期模型Fig.9 Normal cycle model of key life
圖10 密鑰生存應(yīng)急周期模型Fig.10 Emergency cycle model of key life
表5 密鑰結(jié)構(gòu)模型Tab.5 Key structure model
航天器任務(wù)的性質(zhì)決定了測控系統(tǒng)對通信保護(hù)強度的需求,涉及任務(wù)自身的保密要求和開展任務(wù)的周期。
某航天器測控系統(tǒng)具有如下典型要求:任務(wù)期內(nèi),要求敵方窮舉攻擊的成功概率不大于Pr,最小上行遙控幀的碼長為L(含認(rèn)證尾碼),上行遙控碼速率為Cr,任務(wù)周期為T,遙控認(rèn)證尾碼長設(shè)為N,則對所有遙控認(rèn)證尾碼完成一次窮舉攻擊所需時間為2N·L/Cr。假設(shè)在任務(wù)周期內(nèi)敵方持續(xù)對該航天器進(jìn)行窮舉攻擊,要滿足其攻擊的成功概率T·Cr/(2N·L)≤Pr,則消息認(rèn)證尾碼的長度應(yīng)滿足N≥log2(T·Cr/(Pr·L))[15]。當(dāng)設(shè)計航天器壽命周期為10 a,遙控上行碼速率為2 000 bit/s時,最小遙控幀長為440 bit。經(jīng)理論計算,使其窮舉攻擊的成功概率≤10-28的消息認(rèn)證碼的長度設(shè)計至少為124 bit。本文設(shè)計消息認(rèn)證碼的長度為128 bit,窮舉攻擊的成功概率≤10-31。
需要注意的是,在工程實踐中,普遍通過綜合平衡任務(wù)的安全強度需求與為滿足該需求所建立的系統(tǒng)軟硬件開銷,合理制定數(shù)據(jù)保護(hù)機制。事實上,由于星載遙控具有特定的協(xié)議格式,即便敵方對認(rèn)證保護(hù)算法進(jìn)行的窮舉攻擊,理論上能找到特定的碰撞實例,也基本無法被航天器識別且動作。
以Key 作為輸入密鑰,長度320 bit,M為輸入幀信息(遙控幀主導(dǎo)頭+安全導(dǎo)頭+幀數(shù)據(jù)域)。
1)在Key 后面填充0,得到512 bit 的Key1。
2)將Key1 和掩碼字符串(MASK1)進(jìn)行異或運算得到Key_c1。其中,MASK1 的構(gòu)成:遙控幀安全導(dǎo)頭中初向量IV 前48 bit 重復(fù)10 次+初向量IV前32 bit,共512 bit。
3)將M與Key_c1 進(jìn)行拼接,輸入至MD5 算法模塊進(jìn)行運算,輸出散列值HV,長度128 bit。
4)將Key1 和掩碼字符串(MASK2)進(jìn)行異或運算得到Key_c2。其中,MASK2 的構(gòu)成:遙控幀安全導(dǎo)頭中初向量IV 后48 bit 重復(fù)10 次+初向量IV 后32 bit,共512 bit。
5)把HV 與Key_c2 進(jìn)行拼接,輸入至MD5 算法模塊再進(jìn)行運算,輸出散列值HV1,長度128 bit,作為最終的遙控認(rèn)證碼。其中,MD5 算法是一種密碼散列函數(shù),其主要步驟如下[16]:
步驟1數(shù)據(jù)填充及長度擴展。首先對輸入數(shù)據(jù)塊進(jìn)行填充補位,滿足最終位數(shù)對512 求模結(jié)果為448。實現(xiàn)過程為在數(shù)據(jù)塊后填充長度為1 bit 的“1”,其后全部填充“0”。之后繼續(xù)填充表示原始數(shù)據(jù)長度的64 bit 的長度值,至最終數(shù)據(jù)長度為512 的整數(shù)倍。
步驟2消息分組。以512 bit 為單位,將輸入數(shù)據(jù)進(jìn)行劃分,形成數(shù)據(jù)塊Block0,…,BlockN。將每一個數(shù)據(jù)塊劃分為16 個小組M0,…,M15,每個小組32 bit。
步驟3數(shù)據(jù)處理。將步驟2 中每個Block 數(shù)據(jù)塊的處理過程劃分為4 輪,每輪16 步,每步的執(zhí)行如圖11所示。其 中a、b、c、d為32 bit 鏈接變量并進(jìn)行初值設(shè)置(初值記為A、B、C、D);Mj為上述Block 數(shù)據(jù)塊中劃分的數(shù)據(jù)小組,32 bit 數(shù)據(jù);ti(i=0,1,…,16)為設(shè)定的 不同的常 量;操作函數(shù)(Round1、Round2、Round3、Round4)分別由“與”“或”“非”邏輯組成的邏輯函數(shù),第1 輪采用Round1函數(shù)、第2 輪采用Round2函數(shù)、第3 輪采用Round3函數(shù)、第4 輪采用Round4函數(shù),?k為循環(huán)左移k位。
圖11 MD5 的一個執(zhí)行過程Fig.11 An execution process of MD5
經(jīng)過64 步處理后的a、b、c、d鏈接變量再與初始設(shè)定值(A、B、C、D)進(jìn)行邏輯加,最終得到新的鏈接變量值,該鏈接變量繼續(xù)作為下一個Block 數(shù)據(jù)塊處理的初始鏈接變量,依次計算,當(dāng)所有數(shù)據(jù)處理完成,將最終得到的鏈接變量進(jìn)行順序級聯(lián)并輸出,即為MD5 計算模塊的輸出值。
4 輪操作如下:
以下是每輪操作中用到的4 個非線性函數(shù)(每輪1 個):
式中:“⊕”為“異或運算”;“V”為“或運算”;“^”為“與運算”;“-”為“取反運算”。
某衛(wèi)星綜合電子的遙控認(rèn)證系統(tǒng)采用上述方案,其地面?zhèn)然菊J(rèn)證業(yè)務(wù)流程如圖12 所示,星上側(cè)流程相反。硬件平臺基于反熔絲FPGA(現(xiàn)場可編程門陣列,使用AX2000)+PROM(用于預(yù)存密鑰)。實現(xiàn)了SA 管理調(diào)度、密鑰管理調(diào)度、遙控指令/數(shù)據(jù)的認(rèn)證保護(hù),具備重放鑒別、認(rèn)證錯誤鑒別功能,程序算法的核心參數(shù)見表7,相關(guān)測試性能見表8。
表7 AX2000 平臺算法核心參數(shù)Tab.7 Core parameters of the algorithm running on the AX2000 platform
表8 試驗性能表Tab.8 Test performance table
圖12 上行遙控認(rèn)證業(yè)務(wù)流程Fig.12 TC authentication business process
本文基于CCSDS 分包遙控系統(tǒng)的層次結(jié)構(gòu)、SDLS 協(xié)議模式,設(shè)計了遙控認(rèn)證幀格式結(jié)構(gòu)、保護(hù)范圍。同時,針對上行遙控的認(rèn)證保護(hù)機制與CCSDS 空間遙控鏈路COP-1 傳輸控制協(xié)議之間存在“閉鎖”風(fēng)險,設(shè)計了COP 傳送控制流程。此外,對SA 結(jié)構(gòu)和運行管理機制進(jìn)行了設(shè)計,對密鑰結(jié)構(gòu)和運行管理機制進(jìn)行了設(shè)計,運用了集成密鑰結(jié)構(gòu)的增強型MD5 算法對星載遙控認(rèn)證保護(hù)進(jìn)行了算法實現(xiàn)。上述方案具備遙控數(shù)據(jù)完整性鑒別、來源合法性鑒別、防“重放攻擊”、防“流量分析”攻擊等性能,可實現(xiàn)“認(rèn)證算法的動態(tài)維護(hù)”“密鑰生存控制”“認(rèn)證參數(shù)的星地維護(hù)”等功能,滿足民用航天器遙控單認(rèn)證體制的任務(wù)需要。