馬詩雨,張俊偉,張興隆,盧笛,馬建峰
1.西安電子科技大學(xué),陜西 西安 710071
2.航空工業(yè)自控所 飛行器控制一體化技術(shù)國防科技重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710065
在無人機(jī)網(wǎng)絡(luò)中,無人機(jī)通過數(shù)據(jù)通信鏈路傳輸飛行數(shù)據(jù)給地面站,用于進(jìn)一步分析。地面站通過數(shù)據(jù)通信鏈路將飛控指令發(fā)送給無人機(jī),以便執(zhí)行任務(wù)軌跡更新、飛行姿態(tài)調(diào)整等操作。因此,數(shù)據(jù)通信鏈路通常需要完整的通信協(xié)議,以便無人機(jī)和地面站進(jìn)行消息報(bào)文的解析和封裝。然而,無人機(jī)的消息傳輸常采用廣播網(wǎng)絡(luò),其開放性也使得系統(tǒng)安全性遭到嚴(yán)重威脅,如指令偽造、數(shù)據(jù)重放、信號(hào)劫持等攻擊,因此,無人機(jī)組網(wǎng)下的安全問題備受關(guān)注。
在無人機(jī)場(chǎng)景下,一方面,無人機(jī)將自身的數(shù)據(jù)發(fā)送給地面站,以供后續(xù)分析,這些數(shù)據(jù)與無人機(jī)自身的行為及其所處的環(huán)境特征相關(guān),因此需要保證這些數(shù)據(jù)的機(jī)密性,為保證無人機(jī)所傳輸?shù)臄?shù)據(jù)被正確地發(fā)送給地面站,需要保證這些數(shù)據(jù)的完整性;另一方面,地面站將飛控指令發(fā)送給無人機(jī),無人機(jī)需要驗(yàn)證該指令是否被篡改或破壞,以及該指令是否來自合法的地面站,即需要保證飛控指令的完整性。
目前,無人機(jī)系統(tǒng)的安全通信機(jī)制主要有兩種思路:一是在物理層使用軌跡優(yōu)化方法來抵抗竊聽攻擊,從而保護(hù)無人機(jī)所傳輸?shù)臄?shù)據(jù)的機(jī)密性[1-2];二是使用加密和數(shù)字簽名等密碼學(xué)的方法保護(hù)數(shù)據(jù)的機(jī)密性和完整性[3-11]。然而,相關(guān)研究僅提出了數(shù)據(jù)安全保護(hù)機(jī)制,沒有針對(duì)飛控指令的安全性問題提出解決方案。
目前,針對(duì)無人機(jī)飛行控制的相關(guān)研究主要關(guān)注無人機(jī)的位姿測(cè)量[12]、自主降落[13]以及抗干擾控制[14]等方面。然而,現(xiàn)有研究未關(guān)注飛控指令的完整性保護(hù)需求,因此未針對(duì)數(shù)據(jù)和飛控指令分別設(shè)計(jì)相應(yīng)的保護(hù)機(jī)制。
本文針對(duì)無人機(jī)網(wǎng)絡(luò)中數(shù)據(jù)傳輸和飛控指令傳遞的不同安全需求,提出了數(shù)控分離的安全傳輸機(jī)制。針對(duì)數(shù)據(jù)傳輸?shù)臋C(jī)密性和完整性需求,在接入認(rèn)證、群組安全管理、多域異構(gòu)融合的基礎(chǔ)上,基于協(xié)商的會(huì)話密鑰,建立基于分組加密和消息認(rèn)證碼的安全傳輸通道,保障數(shù)據(jù)傳輸?shù)臋C(jī)密性和完整性;針對(duì)飛控指令完整性的安全需求,基于哈希函數(shù)和哈希鏈構(gòu)造飛控指令的可靠傳輸機(jī)制,在保證生成飛控指令的設(shè)備真實(shí)性同時(shí),實(shí)現(xiàn)對(duì)控制信令完整性的驗(yàn)證,提出基于AES-CCM 加密模式的數(shù)據(jù)安全通信協(xié)議以及基于一次簽名的飛控廣播認(rèn)證協(xié)議。
隨著國內(nèi)外學(xué)者對(duì)無人機(jī)網(wǎng)絡(luò)的安全問題的日益關(guān)注,目前已經(jīng)出現(xiàn)了一系列針對(duì)無人機(jī)網(wǎng)絡(luò)的安全通信機(jī)制的研究。而無人機(jī)經(jīng)常采用廣播網(wǎng)絡(luò)進(jìn)行消息傳輸,因此,可使用廣播認(rèn)證協(xié)議實(shí)現(xiàn)無人機(jī)系統(tǒng)中高效的消息認(rèn)證。
目前,針對(duì)無人機(jī)網(wǎng)絡(luò)中的安全通信,已經(jīng)存在一系列研究[15]。其中,許多研究旨在保護(hù)無人機(jī)系統(tǒng)中消息的機(jī)密性和完整性。
一些方法使用無人機(jī)軌跡優(yōu)化的方式來抵御非法信道上的竊聽攻擊,從而保護(hù)無人機(jī)數(shù)據(jù)的機(jī)密性。徐煜軒等[1]針對(duì)無人機(jī)網(wǎng)絡(luò)中信息在物理層的機(jī)密性保護(hù)問題,提出了一種基于概率視距信道模型的安全通信優(yōu)化方法。Zhang等[2]提出了一種物理層的安全方法,通過無人機(jī)主動(dòng)優(yōu)化軌跡來提高合法信道的增益或削弱非法信道,從而抵御竊聽攻擊。
另一些工作通過密碼學(xué)手段保護(hù)無人機(jī)數(shù)據(jù)的機(jī)密性和完整性。郭晶晶等[3]提出了一種無人機(jī)自組網(wǎng)中的拓?fù)湎⑼暾员Wo(hù)方案,該方案通過數(shù)字簽名和區(qū)塊鏈技術(shù)保護(hù)網(wǎng)絡(luò)拓?fù)浣⑦^程中消息的完整性。張凌浩等[4]提出了一種基于MAVLink協(xié)議的無人機(jī)系統(tǒng)安全通信方案,該方案基于對(duì)稱密鑰協(xié)商完成對(duì)地面站的身份認(rèn)證和加密通信。張敏等[5]提出了一種基于安全概略算法的多因子認(rèn)證密鑰協(xié)商協(xié)議,能夠抵抗密鑰竊取、會(huì)話密鑰泄露攻擊、無人機(jī)偽裝攻擊和由第三方服務(wù)器發(fā)起的合謀攻擊。賀蕾等[6]提出了一種面向無人機(jī)網(wǎng)絡(luò)的屬性代理簽名方案,能夠保護(hù)指揮機(jī)構(gòu)向無人機(jī)發(fā)送的命令的完整性,提供認(rèn)證,并保護(hù)簽名者的隱私。王宇晨等[7]提出了一種基于區(qū)塊鏈和智能合約的無人機(jī)數(shù)據(jù)安全共享和協(xié)同決策方法,能夠保證數(shù)據(jù)的機(jī)密性、完整性和可用性。Li 等[8]提出了一種針對(duì)無人機(jī)網(wǎng)絡(luò)的高效節(jié)能的安全傳輸方法,該方法基于SM4輕量級(jí)對(duì)稱國密算法和密鑰協(xié)商機(jī)制保護(hù)通信內(nèi)容的機(jī)密性,基于改進(jìn)的聚合BLS簽名和默克爾哈希樹保護(hù)數(shù)據(jù)的完整性和真實(shí)性。Alladi 等[9]提出了一種基于物理不可克隆函數(shù)的無人機(jī)身份認(rèn)證機(jī)制,能夠抵抗偽裝、中間人攻擊重放攻擊等攻擊手段。針對(duì)地面竊聽者破壞數(shù)據(jù)機(jī)密性的攻擊,Yang等[10]提出了一種基于零信任的無人機(jī)認(rèn)證方式,實(shí)現(xiàn)了無人機(jī)群在數(shù)據(jù)交換和共享中的快速認(rèn)證,保證消息的可靠性。Kim等[11]針對(duì)無人機(jī)數(shù)據(jù)竊聽和非法獲取控制權(quán)等攻擊,提出了一種保護(hù)無人機(jī)通信數(shù)據(jù)和存儲(chǔ)信息的模塊,保護(hù)數(shù)據(jù)的機(jī)密性和完整性。
然而,上述的無人機(jī)網(wǎng)絡(luò)安全通信機(jī)制相關(guān)研究僅僅關(guān)注無人機(jī)系統(tǒng)中數(shù)據(jù)的安全需求,沒有重點(diǎn)關(guān)注飛控指令的完整性需求,因此沒有針對(duì)無人機(jī)數(shù)據(jù)和飛控指令的不同安全需求分別設(shè)計(jì)安全通信機(jī)制。
廣播認(rèn)證協(xié)議能夠使發(fā)送者將認(rèn)證的消息廣播給整個(gè)網(wǎng)絡(luò),敵手無法篡改廣播的消息。對(duì)于很多應(yīng)用,如路由樹的建立、軟件升級(jí)、時(shí)間同步等,廣播認(rèn)證都是一個(gè)基本且十分重要的安全服務(wù)。
基于一次簽名的廣播認(rèn)證具有效率高、即時(shí)認(rèn)證、不需要時(shí)間同步、不可否認(rèn)性的優(yōu)點(diǎn)。Lamport[16]首先提出了一次簽名的概念,隨后一些一次簽名方案也陸續(xù)被提出。Bos等[17]以及 Bleichenbacher等[18]研究了基于非循環(huán)圖的一次簽名的問題。Even等[19]將公鑰簽名和一次簽名結(jié)合提出了在線/離線簽名。Hevia等[20]提出了可證安全的基于圖論的一次簽名。以上方案的計(jì)算量和通信開銷都較大,不適合資源受限的網(wǎng)絡(luò)。Perrig[21]首次提出了一個(gè)高效的一次簽名方案,即BiBa。隨后,Mitzenmacher 等[22]改進(jìn)了BiBa[21]并提出了Powerball簽名。然而,BiBa[21]和Powerball[22]僅能在隨機(jī)預(yù)言機(jī)(RO)模型下證明是安全的。HORS[23]是一個(gè)高效的一次簽名方案,其安全性基于單向函數(shù)和子集彈性哈希函數(shù)。由于子集彈性哈希函數(shù)是一個(gè)較強(qiáng)的安全假設(shè),針對(duì)HORS[23]出現(xiàn)了一些基于較弱安全假設(shè)的改進(jìn)方案,如Pieprzyk 等[24]設(shè)計(jì)了一個(gè)基于單向函數(shù)和非覆蓋族可證安全的一次簽名方案,但其通信開銷和密鑰長度都比HORS[23]大很多,不適合低能量設(shè)備。
廣播認(rèn)證協(xié)議被廣泛應(yīng)用于無線網(wǎng)絡(luò)中。蔣毅等[25]提出了一種基于默克爾樹的廣播認(rèn)證策略,支持無線傳感器網(wǎng)絡(luò)中存在大規(guī)模廣播發(fā)送節(jié)點(diǎn)的情況。姚宣霞等[26]提出了一種基于Nyberg快速單向累加器的廣播認(rèn)證算法,并將其應(yīng)用于無線傳感器網(wǎng)絡(luò)中。Hsiao 等[27]提出了快速認(rèn)證和選擇性認(rèn)證兩種廣播認(rèn)證方案,該方案能夠應(yīng)對(duì)車聯(lián)網(wǎng)場(chǎng)景下的簽名泛洪導(dǎo)致無法在截止時(shí)間前驗(yàn)證簽名的問題。Maidhili 等[28]提出了一種基于橢圓曲線公鑰密碼的廣播認(rèn)證機(jī)制,在無線傳感器網(wǎng)絡(luò)中可以實(shí)現(xiàn)低能耗的通信。
本文所提出的數(shù)據(jù)安全傳輸協(xié)議使用計(jì)數(shù)器和密文分組鏈接消息認(rèn)證碼(CCM)模式的認(rèn)證加密和高級(jí)加密標(biāo)準(zhǔn)(AES)分組加密模式,所提出的飛控廣播認(rèn)證協(xié)議使用基于哈希函數(shù)的一次簽名算法。因此本節(jié)分別對(duì)AES分組加密算法、哈希函數(shù)和一次簽名進(jìn)行介紹。
AES 分組加密算法主要由4 種運(yùn)算組成:字節(jié)代換層(SubBytes)、行移位層(ShiftRows)、列混淆層(MixColumns)和輪密鑰加層(AddRoundKey)。本文采用分組大小與密鑰長度均為128 位的AES 算法,因此明密文塊和密鑰均由16個(gè)字節(jié)組成,按照從上到下、從左到右的順序排列成一個(gè)4 × 4 的矩陣,加密輪數(shù)為 10 輪,除了第 10 輪執(zhí)行的操作外,其余 9 輪執(zhí)行相同的四步運(yùn)算。每輪加密后更新矩陣,直到得到密文。
哈希函數(shù)H:{0,1}*→{0,1}v具有如下性質(zhì):
(1)單向性
對(duì)于任意概率多項(xiàng)式時(shí)間的敵手A,存在一個(gè)可忽略的概率vA使得對(duì)于足夠大的k,滿足式(1)
(2)抗碰撞性
對(duì)于任意概率多項(xiàng)式時(shí)間的敵手A,存在一個(gè)可忽略概率vA,使得對(duì)于足夠大的k,滿足式(2)
一次簽名算法是指使用一個(gè)公私鑰對(duì)僅能對(duì)一條消息進(jìn)行簽名的簽名算法。一個(gè)一次簽名算法Σ由三個(gè)子算法組成,即Σ =(Gen,Sig,Ver),其中Gen 為密鑰生成算法,Sig為簽名生成算法,Ver為簽名驗(yàn)證算法。其算法描述如下:Gen(1κ):密鑰生成算法輸入安全參數(shù)κ,輸出公私鑰對(duì)(pk,sk)。Sig(m,sk):簽名算法輸入消息m和私鑰sk,輸出消息m的一次簽名σ。Ver(m,σ,pk):簽名驗(yàn)證算法輸入消息m,簽名σ和公鑰pk,輸出驗(yàn)證結(jié)果。若驗(yàn)證結(jié)果正確,則輸出1,否則輸出0。
本節(jié)首先給出所提方案考慮的無人機(jī)網(wǎng)絡(luò)的系統(tǒng)模型,之后對(duì)敵手的行為作出假設(shè),提出敵手模型,最后提出本文的設(shè)計(jì)目標(biāo)。
本文所考慮的無人機(jī)網(wǎng)絡(luò)由一個(gè)地面站和一個(gè)由若干無人機(jī)組成的無人機(jī)群所組成,系統(tǒng)模型如圖1 所示。一方面,地面站將飛控指令發(fā)送給無人機(jī),無人機(jī)隨后驗(yàn)證該指令的完整性以及其是否真正來自合法的地面站;另一方面,無人機(jī)執(zhí)行地面基站發(fā)送的指令,并將各項(xiàng)機(jī)體信息和監(jiān)測(cè)數(shù)據(jù)傳輸給地面站,以供后續(xù)分析。
本文所提出的方案適用于由數(shù)量不限的無人機(jī)組成的無人機(jī)群。在數(shù)據(jù)傳輸方面,在僅有一架無人機(jī)的情況下,該無人機(jī)使用其與地面站之間的對(duì)稱密鑰執(zhí)行數(shù)據(jù)安全傳輸協(xié)議;在有多架無人機(jī)的情況下,所有無人機(jī)組成一個(gè)集群,使用預(yù)共享的群組密鑰,以群組整體的形式執(zhí)行數(shù)據(jù)安全傳輸協(xié)議,因此,無人機(jī)群向地面站發(fā)送的數(shù)據(jù)量獨(dú)立于無人機(jī)的數(shù)量。在飛控指令傳輸方面,地面站以廣播認(rèn)證的方式向無人機(jī)群發(fā)送飛控指令,即地面站僅需廣播一個(gè)飛控指令,即可控制多架無人機(jī),因此,地面站發(fā)送飛控指令的數(shù)據(jù)量獨(dú)立于無人機(jī)的數(shù)量。綜上所述,所提出的方案不受無人機(jī)集群規(guī)模的限制,因此適用于任意規(guī)模的無人機(jī)群。
圖1 無人機(jī)網(wǎng)絡(luò)系統(tǒng)模型Fig.1 System model of UAV network
以下定義敵手的行為,并限制了敵手在資源受限的無人機(jī)網(wǎng)絡(luò)中的能力:(1)敵手可以監(jiān)聽網(wǎng)絡(luò)上任意一條消息;(2)敵手可以是該方案中的任意一個(gè)合法參與方,能夠與任意一方建立協(xié)議通信,發(fā)送消息,或接收任意一方發(fā)送的消息;(3)敵手可以偽裝成協(xié)議中任何一個(gè)參與方,向其他任意的參與方發(fā)送消息;(4)敵手在計(jì)算上的能力受限,其破解哈希函數(shù)的概率是可忽略的。
針對(duì)上述對(duì)敵手行為的假設(shè),定義以下三類敵手:(1)敵手A1:試圖獲得無人機(jī)發(fā)送的數(shù)據(jù);(2)敵手A2:試圖篡改無人機(jī)發(fā)送的數(shù)據(jù),或偽裝為合法的無人機(jī),向地面站發(fā)送虛假數(shù)據(jù);(3)敵手A3:試圖篡改地面站發(fā)送的飛控指令,或偽裝為合法的地面站,向無人機(jī)發(fā)送飛控指令。
針對(duì)無人機(jī)網(wǎng)絡(luò)面臨的以上安全威脅,本文擬設(shè)計(jì)一種針對(duì)無人機(jī)網(wǎng)絡(luò)的數(shù)控分離的安全傳輸機(jī)制,達(dá)到以下設(shè)計(jì)目標(biāo):(1)數(shù)據(jù)的機(jī)密性,即無人機(jī)向地面站傳輸?shù)臄?shù)據(jù)無法被敵手獲得;(2)數(shù)據(jù)的完整性,即無人機(jī)向地面站傳輸?shù)臄?shù)據(jù)無法被敵手篡改或偽造;(3)飛控指令的完整性,即地面站向無人機(jī)發(fā)送的飛控指令無法被敵手篡改或偽造;(4)高效性,即本文所提出的方案在性能上應(yīng)具有較高的運(yùn)行效率。
基于第一節(jié)對(duì)無人機(jī)網(wǎng)絡(luò)中數(shù)據(jù)和飛控指令安全需求的分析,本文針對(duì)二者不同的安全需求,提出了數(shù)控分離的安全傳輸機(jī)制。針對(duì)無人機(jī)向地面站發(fā)送的數(shù)據(jù),本文提出了一種基于AES-CCM 的數(shù)據(jù)安全傳輸協(xié)議;針對(duì)地面站向無人機(jī)發(fā)送的飛控指令,本文提出了一種基于一次簽名的飛控廣播認(rèn)證協(xié)議。
本文所提出的數(shù)控分離的安全傳輸機(jī)制的系統(tǒng)流程如圖2 所示。針對(duì)無人機(jī)到地面站的數(shù)據(jù)傳輸,本文采用了基于AES-CCM認(rèn)證加密機(jī)制的數(shù)據(jù)安全傳輸協(xié)議,其中,使用計(jì)數(shù)器(CTR)模式的AES-128 分組加密生成密文數(shù)據(jù),使用CBC-MAC 和AES-128 分組加密生成消息認(rèn)證碼。針對(duì)地面站向無人機(jī)發(fā)送的飛控指令,本文設(shè)計(jì)了基于一次簽名的廣播認(rèn)證協(xié)議。
針對(duì)無人機(jī)向地面站發(fā)送的數(shù)據(jù),本文設(shè)計(jì)了基于AES-CCM 認(rèn)證加密機(jī)制的數(shù)據(jù)安全傳輸協(xié)議,對(duì)數(shù)據(jù)提供機(jī)密性和完整性保證。該協(xié)議的過程如算法1所示。
圖2 本文的系統(tǒng)流程Fig.2 Workflow of this paper
在基于AES-CCM 的認(rèn)證加密機(jī)制中,每架無人機(jī)和地面站共享一個(gè)AES的對(duì)稱密鑰K。無人機(jī)首先使用隨機(jī)數(shù)Nonce和計(jì)數(shù)器生成的序列ct0,ct2,…,ctn-1,通過CTR模式的AES分組加密對(duì)消息m加密,生成密文c1,c2, …,cn,其過程如圖3 所示;之后使用基于CBC-MAC 和AES 分組密碼的消息認(rèn)證碼機(jī)制生成消息認(rèn)證碼MAC,其過程如圖4所示。無人機(jī)將密文c1,c2,…,cn和消息認(rèn)證碼MAC發(fā)送給地面站。地面站接收上述消息后,使用CTR模式的AES解密算法解密消息,并使用基于CBC-MAC和AES分組密碼的消息認(rèn)證碼機(jī)制生成消息認(rèn)證碼MAC′。之后,比較MAC 和MAC′,若二者相等,則消息認(rèn)證碼驗(yàn)證通過,接收無人機(jī)發(fā)送的消息m;否則,拒絕接收無人機(jī)發(fā)送的消息。
針對(duì)地面站發(fā)送給無人機(jī)的飛控指令,本文提出了一種基于一次簽名的飛控廣播認(rèn)證協(xié)議,用于保護(hù)飛控指令的完整性。該協(xié)議包含三個(gè)算法:密鑰生成算法Gen、簽名算法Sig和簽名驗(yàn)證算法Ver,具體協(xié)議如算法2所示。
算法2 中,基于一次簽名的廣播認(rèn)證協(xié)議使用了哈希鏈,其構(gòu)造方法如圖5所示。其中,在密鑰生成階段Gen,地面站利用哈希函數(shù)f生成d層的單向鏈,選取鏈尾的s0,0,s1,0,…,st-1,0作為初始公鑰v,并將其上一層s0,1,s1,1,…,st-1,1作為初始私鑰s。在簽名階段Sig,地面站使用哈希函數(shù)F和H對(duì)消息m進(jìn)行轉(zhuǎn)換,并將帶有簽名σ和飛控指令m的消息發(fā)送給相應(yīng)的無人機(jī),之后進(jìn)行密鑰更新,更新過程如圖6所示。地面站將簽名值中使用過的公鑰中的sij,r用其對(duì)應(yīng)的私鑰sij,r+1進(jìn)行替換,并將更新后的公鑰上層的值sij,r+2作為新的私鑰,在驗(yàn)證階段Ver,無人機(jī)首先使用當(dāng)前的公鑰驗(yàn)證收到的簽名,即驗(yàn)證簽名σ中的每個(gè)是否滿足f()=vij,若滿足,則簽名通過驗(yàn)證,再按照如圖6所示的方式對(duì)公鑰進(jìn)行更新。
本節(jié)基于第三節(jié)中所提出的敵手模型和相關(guān)假設(shè),分別對(duì)所提出的數(shù)據(jù)安全傳輸協(xié)議和飛控廣播認(rèn)證協(xié)議進(jìn)行安全性分析。
圖3 CTR模式的AES-128Fig.3 AES-128 in CTR mode
圖4 基于AES-128的CBC-MACFig.4 CBC-MAC based on AES-128
對(duì)于算法1 中的數(shù)據(jù)安全傳輸協(xié)議,以下分析該協(xié)議能夠保證數(shù)據(jù)的機(jī)密性和完整性。
5.1.1 數(shù)據(jù)的機(jī)密性
本文所提出的數(shù)據(jù)安全傳輸機(jī)制能夠保證數(shù)據(jù)的機(jī)密性。在算法1 中,無人機(jī)通過CTR 模式的AES-128 分組加密,使用和地面站共享的對(duì)稱密鑰K對(duì)消息m進(jìn)行加密。由于AES-128的安全性和密鑰的安全性,敵手A1根據(jù)密文c1,c2,…cn獲得明文m的概率可以忽略,即滿足式(3)
因此,算法1 的數(shù)據(jù)安全傳輸機(jī)制能夠保護(hù)無人機(jī)數(shù)據(jù)的機(jī)密性。
圖5 基于哈希鏈的一次簽名構(gòu)造Fig.5 Construction of one-time signature based on Hash chains
圖6 密鑰更新過程Fig.6 Key updating procedure
5.1.2 數(shù)據(jù)的完整性
本文所提出的數(shù)據(jù)安全傳輸機(jī)制能夠保證數(shù)據(jù)的完整性。在算法1 中,無人機(jī)通過CBC-MAC 和AES-128 分組加密機(jī)制生成對(duì)消息m的消息認(rèn)證碼MAC。一方面,由于AES-128 的安全性和CBC 分組加密體制對(duì)錯(cuò)誤的傳播性質(zhì),敵手A2針對(duì)偽造的消息m′(m′ ≠m),生成消息認(rèn)證碼MAC′,使得MAC′ = MAC的概率可以忽略,即滿足式(4)
另一方面,由于密鑰K僅由無人機(jī)和地面站共享,AES-128 密鑰空間為2128,敵手A2猜測(cè)密鑰K,進(jìn)而偽裝成合法的無人機(jī)發(fā)送數(shù)據(jù)的概率為1/2128,這一數(shù)值可以忽略。因此,本文所提出的數(shù)據(jù)安全傳輸機(jī)制能夠保證無人機(jī)數(shù)據(jù)的完整性。
綜上所述,本文所提出的數(shù)據(jù)安全傳輸機(jī)制能夠保證無人機(jī)數(shù)據(jù)的機(jī)密性和完整性。
本文所提出的飛控廣播認(rèn)證協(xié)議能夠保護(hù)地面站發(fā)送的飛控指令的完整性。
(1)在密鑰生成階段,地面站基于哈希函數(shù)f生成矩陣S,并將最低一層的v作為公鑰,將其上一層的s作為私鑰。由于哈希函數(shù)f具有單向性,則敵手A3根據(jù)公鑰v成功推斷私鑰s的概率是可以忽略的,即滿足式(5)
(2)在簽名階段,地面站首先會(huì)生成消息m的哈希函數(shù)值n=F(m)。由于哈希函數(shù)F具有抗碰撞性,敵手A3對(duì)一個(gè)偽造的消息m'(m'≠m)生成一個(gè)哈希函數(shù)值n′,使得n′ =n的概率是可以忽略的,即滿足式(6)
(3)在簽名階段,地面站計(jì)算h=H(m‖n)。由于哈希函數(shù)H具有抗碰撞性,敵手A3對(duì)一個(gè)偽造的消息m′生成h' =H(m'‖n),使得h′ =h的概率是可忽略的,即滿足式(7)
(4)在簽名階段,地面站輸出消息m及其簽名σ=(si1,si2,…,sik)。敵手A3試圖對(duì)偽造的消息m′生成簽名σ′,使 得σ′ =σ。由 于sij的 長 度 為l,則 敵 手A3偽 造σ′ =,使得σ′ =σ的概率可由式(8)表示
通常情況下,l≥80,因此這一概率可以忽略。
綜合上述分析,敵手A3偽裝為地面站發(fā)送飛控指令,或篡改地面站的飛控指令,使得簽名可以通過無人機(jī)的驗(yàn)證的概率是可忽略的,因此,本文所提出的基于一次簽名的飛控廣播認(rèn)證協(xié)議能夠保護(hù)飛控指令的完整性。
本文通過仿真試驗(yàn)來對(duì)所提出的方案進(jìn)行性能測(cè)試。目前主流的無人機(jī)機(jī)載計(jì)算機(jī)包括樹莓派和Jetson等。由于樹莓派具有體積小、成本低、可編程和可擴(kuò)展的特點(diǎn),在無人機(jī)系統(tǒng)的搭建與開發(fā)中,經(jīng)常使用樹莓派作為無人機(jī)機(jī)載計(jì)算機(jī),因此,本文使用樹莓派模擬無人機(jī)的程序執(zhí)行。無人機(jī)地面站通常由計(jì)算機(jī)、顯示器、遙控器和數(shù)據(jù)鏈路4類硬件設(shè)備組成,其中,計(jì)算機(jī)需要有足夠的運(yùn)算和存儲(chǔ)能力。由于本文重點(diǎn)關(guān)注地面站參與執(zhí)行數(shù)據(jù)安全傳輸和飛控廣播認(rèn)證協(xié)議的開銷,方案中使用了對(duì)稱加密和哈希函數(shù)等計(jì)算開銷相對(duì)較小的密碼學(xué)技術(shù),因此,本文使用PC 模擬地面站的程序執(zhí)行,能夠滿足所設(shè)計(jì)的協(xié)議的執(zhí)行。使用C語言,基于OpenSSL庫進(jìn)行性能測(cè)試。
本文對(duì)數(shù)據(jù)安全傳輸協(xié)議和廣播認(rèn)證協(xié)議的性能分別進(jìn)行如下測(cè)試:
(1)對(duì)于數(shù)據(jù)安全傳輸協(xié)議,本文評(píng)估了方案的加密與消息認(rèn)證碼生成,以及解密與驗(yàn)證過程的運(yùn)行時(shí)間。其中,AES-CCM 模式的分組大小和密鑰長度為128bits,分別統(tǒng)計(jì)了數(shù)量N為100、1000、10000和10萬的100B和1KB的消息時(shí),執(zhí)行認(rèn)證加密模塊所需的時(shí)間tae和執(zhí)行驗(yàn)證解密模塊所需的時(shí)間tvd,單位為s。其中,消息選取100B和1KB的全0比特串。
(2)對(duì)于廣播認(rèn)證協(xié)議,本文評(píng)估了該協(xié)議使用不同的哈希函數(shù)的情況下各階段的運(yùn)行時(shí)間。具體地,本文統(tǒng)計(jì)了當(dāng)分組數(shù)量k分別取2、4、8、16、32、64、128 和256 時(shí),使用MD5、SHA-1、SHA-256 和SHA-512 的哈希函數(shù)時(shí)的簽名生成時(shí)間和簽名驗(yàn)證時(shí)間,單位為ms。仿真地面站發(fā)送一個(gè)1MB的飛控指令給無人機(jī)。
6.2.1 數(shù)據(jù)安全傳輸協(xié)議性能測(cè)試
無人機(jī)對(duì)100B 和1KB 的數(shù)據(jù)執(zhí)行認(rèn)證加密模塊所需的時(shí)間tae如圖7所示。無人機(jī)對(duì)100B的數(shù)據(jù)進(jìn)行100次認(rèn)證加密耗時(shí)0.09s,進(jìn)行1000 次認(rèn)證加密耗時(shí)0.64s,進(jìn)行10000 次認(rèn)證加密耗時(shí)3.74s,進(jìn)行105次認(rèn)證加密耗時(shí)40.9s。無人機(jī)對(duì)1KB 的數(shù)據(jù)進(jìn)行100 次認(rèn)證加密耗時(shí)0.09s,進(jìn)行1000次認(rèn)證加密耗時(shí)0.5s,進(jìn)行10000次認(rèn)證加密耗時(shí)3.79s,進(jìn)行105次認(rèn)證加密耗時(shí)43.02s。
地面站執(zhí)行驗(yàn)證解密模塊所需的時(shí)間tvd如圖8 所示。地面站對(duì)100B的數(shù)據(jù)進(jìn)行100次驗(yàn)證解密耗時(shí)0.06s,進(jìn)行1000 次驗(yàn)證解密耗時(shí)0.6s,進(jìn)行10000 次驗(yàn)證解密耗時(shí)3.6s,進(jìn)行105次驗(yàn)證解密耗時(shí)38.88s。地面站對(duì)1KB 的數(shù)據(jù)進(jìn)行100次驗(yàn)證解密耗時(shí)0.06s,進(jìn)行1000次驗(yàn)證解密耗時(shí)0.45s,進(jìn)行10000次驗(yàn)證解密耗時(shí)3.72s,進(jìn)行105次驗(yàn)證解密耗時(shí)40.54s。
圖7 AES-CCM認(rèn)證加密模塊的運(yùn)行時(shí)間Fig.7 Running time of the authenticated encryption module of AES-CCM
圖8 AES-CCM驗(yàn)證解密模塊的運(yùn)行時(shí)間Fig.8 Running time of the verification and decryption module of AES-CCM
由上述數(shù)據(jù)可以分析得出,由于本文所提出的數(shù)據(jù)安全傳輸協(xié)議基于對(duì)稱密碼體制,發(fā)送100B 和1KB 的消息時(shí),平均每個(gè)消息的認(rèn)證加密時(shí)間和解密驗(yàn)證時(shí)間均不超過1ms,數(shù)據(jù)安全傳輸協(xié)議的開銷較小。
6.2.2 飛控廣播認(rèn)證協(xié)議性能測(cè)試
本文所提出的飛控廣播認(rèn)證協(xié)議在分組數(shù)量k取不同的值和使用不同的哈希函數(shù)的情況下,地面站的簽名生成時(shí)間ts如圖9 所示。當(dāng)哈希函數(shù)為MD5,對(duì)一個(gè)大小為1MB的飛控指令生成一次簽名,選取分組數(shù)量k為2時(shí),耗時(shí)2.6ms;k為4 時(shí),耗時(shí)2.52ms;k為8 時(shí),耗時(shí)2.58ms;k為16 時(shí),耗時(shí)2.54ms;k為32 時(shí),耗時(shí)2.58ms。當(dāng)哈希函數(shù)為SHA-1,對(duì)一個(gè)大小為1MB 的飛控指令生成一次簽名,選取分組數(shù)量k為2 時(shí),耗時(shí)1.03ms;k為4 時(shí),耗時(shí)1.02ms;k為8時(shí),耗時(shí)1.01ms;k為16時(shí),耗時(shí)1.02ms;k為32時(shí),耗時(shí)1ms。當(dāng)哈希函數(shù)為SHA-256,對(duì)一個(gè)大小為1MB 的飛控指令生成一次簽名,選取分組數(shù)量k為2 時(shí),耗時(shí)1.17ms;k為4 時(shí),耗時(shí)1.18ms;k為8 時(shí),耗時(shí)1.22ms;k為16 時(shí),耗時(shí)1.23ms;k為32 時(shí),耗時(shí)1.19ms;k為64 時(shí),耗時(shí)1.19ms;k為128時(shí),耗時(shí)1.2ms。當(dāng)哈希函數(shù)為SHA-512,對(duì)一個(gè)大小為1MB的飛控指令生成一次簽名,選取分組數(shù)量k為2時(shí),耗時(shí)2.52ms;k為4時(shí),耗時(shí)2.65ms;k為8時(shí),耗時(shí)2.49ms;k為16 時(shí),耗時(shí)2.55ms;k為32 時(shí),耗時(shí)2.63ms;k為64 時(shí),耗時(shí)2.59ms;k為128時(shí),耗時(shí)2.63ms;k為256時(shí),耗時(shí)2.65ms。
圖9 簽名生成時(shí)間Fig.9 Running time of signature generation
當(dāng)k取不同的值,選擇不同的哈希函數(shù),無人機(jī)的簽名驗(yàn)證時(shí)間tv如圖10 所示。當(dāng)哈希函數(shù)為MD5,對(duì)一個(gè)大小為1MB 的飛控指令進(jìn)行簽名驗(yàn)證,選取分組數(shù)量k為2 時(shí),耗時(shí)2.6ms;k為4時(shí),耗時(shí)2.52ms;k為8時(shí),耗時(shí)2.58ms;k為16 時(shí),耗時(shí)2.54ms;k為32 時(shí),耗時(shí)2.58ms。當(dāng)哈希函數(shù)為SHA-1,對(duì)一個(gè)大小為1MB的飛控指令進(jìn)行簽名驗(yàn)證,選取分組數(shù)量k為2 時(shí),耗時(shí)1.03ms;k為4 時(shí),耗時(shí)1.02ms;k為8時(shí),耗時(shí)1.01ms;k為16時(shí),耗時(shí)1.02ms;k為32時(shí),耗時(shí)1ms。當(dāng)哈希函數(shù)為SHA-256,對(duì)一個(gè)大小為1MB 的飛控指令進(jìn)行簽名驗(yàn)證,選取分組數(shù)量k為2 時(shí),耗時(shí)1.17ms;k為4 時(shí),耗時(shí)1.18ms;k為8時(shí),耗時(shí)1.22ms;k為16時(shí),耗時(shí)1.23ms;k為32 時(shí),耗時(shí)1.19ms;k為64 時(shí),耗時(shí)1.19ms;k為128 時(shí),耗時(shí)1.2ms。當(dāng)哈希函數(shù)為SHA-512,對(duì)一個(gè)大小為1MB的飛控指令進(jìn)行簽名驗(yàn)證,選取分組數(shù)量k為2時(shí),耗時(shí)2.52ms;k為4 時(shí),耗時(shí)2.65ms;k為8 時(shí),耗時(shí)2.49ms;k為16 時(shí),耗時(shí)2.55ms;k為32 時(shí),耗時(shí)2.65ms;k為64 時(shí),耗時(shí)2.6ms;k為128時(shí),耗時(shí)2.67ms;k為256時(shí),耗時(shí)2.7ms。
圖10 簽名驗(yàn)證時(shí)間Fig.10 Running time of signature verification
由上述數(shù)據(jù)可以分析得出,由于本文中選取的飛控指令的長度較大(1MB),在對(duì)其進(jìn)行簽名的生成和驗(yàn)證時(shí),飛控指令的大小對(duì)運(yùn)行時(shí)間的影響相對(duì)較大,而分組數(shù)量k的值對(duì)運(yùn)行時(shí)間的影響相對(duì)較小。此外,選取不同的哈希函數(shù)和分組數(shù)量k值,對(duì)大小為1MB 的飛控指令進(jìn)行簽名生成和驗(yàn)證的時(shí)間總體上較小,為1~2.7ms。因此,本文所提出的基于一次簽名的飛控廣播認(rèn)證協(xié)議具有高效性。
本文提出了一種無人機(jī)網(wǎng)絡(luò)中數(shù)控分離的安全傳輸機(jī)制,針對(duì)無人機(jī)網(wǎng)絡(luò)的數(shù)據(jù)通信鏈路提出了一種基于AESCCM認(rèn)證加密機(jī)制的數(shù)據(jù)安全傳輸協(xié)議;針對(duì)無人機(jī)網(wǎng)絡(luò)的飛控指令提出了一種基于一次簽名的飛控廣播認(rèn)證協(xié)議;安全性分析結(jié)果表明所提出的數(shù)據(jù)安全傳輸協(xié)議能夠保證無人機(jī)發(fā)送給地面站的數(shù)據(jù)的機(jī)密性和完整性,所提出的飛控廣播認(rèn)證協(xié)議能夠保證飛控指令的完整性。仿真試驗(yàn)結(jié)果表明,所提出的數(shù)據(jù)安全傳輸協(xié)議在發(fā)送100B和1KB 的消息時(shí),平均每個(gè)消息的認(rèn)證加密時(shí)間和解密驗(yàn)證時(shí)間均不超過1ms;所提出的飛控廣播認(rèn)證協(xié)議在使用不同的哈希函數(shù)時(shí),對(duì)1MB的飛控指令生成簽名和驗(yàn)證簽名的時(shí)間約為1~2.7ms,在無人機(jī)網(wǎng)絡(luò)的應(yīng)用中具有高效性。