陳靖宇
(中國(guó)船舶重工集團(tuán)公司第七二三研究所,江蘇 揚(yáng)州 225101)
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)已廣泛應(yīng)用于現(xiàn)代軍事領(lǐng)域,人民防空(以下簡(jiǎn)稱人防)也加快了信息化建設(shè)的步伐[1]。但其中的人防雷達(dá)組網(wǎng)通訊時(shí)受環(huán)境與成本等因素限制,難以自建專用保密網(wǎng)絡(luò),而往往租用電信網(wǎng)絡(luò)專線進(jìn)行信息交互,其網(wǎng)絡(luò)設(shè)備與民用設(shè)備沒(méi)有完全隔離,易受到敵方的入侵,安全性難以保障;另一方面,由于其安全等級(jí)較部隊(duì)的武器裝備低,較少使用軍用密碼機(jī)進(jìn)行加密傳輸,一般使用簡(jiǎn)單的加密方法甚至直接采用明碼傳輸,通訊協(xié)議又多采用不可靠的用戶數(shù)據(jù)報(bào)協(xié)議(UDP),易被敵方獲取并破解進(jìn)而造成泄密,對(duì)人防工程具有較大的危害。因此需要采用一種不易破解、通用化、開發(fā)成本低、實(shí)時(shí)性高的安全措施將各雷達(dá)間的信息進(jìn)行加密傳輸,保障其信息安全。
安全套接層協(xié)議(SSL)以及后續(xù)的傳輸層安全協(xié)議(TLS)和數(shù)據(jù)傳輸層協(xié)議(DTLS)是網(wǎng)絡(luò)通信的常用安全協(xié)議。SSL利用數(shù)據(jù)加密技術(shù)廣泛應(yīng)用于Internet網(wǎng)絡(luò)通訊,可確保數(shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中不會(huì)被截取及竊聽,為數(shù)據(jù)通訊提供安全支持。雖然早期版本有心臟漏血的漏洞,但很快進(jìn)行了修補(bǔ),其安全性有較高的保障,且得到了長(zhǎng)期驗(yàn)證。TLS支持傳輸控制協(xié)議(TCP),但是對(duì)于人防雷達(dá)組網(wǎng)通訊常用的UDP協(xié)議則無(wú)法支持。DTLS則是在TLS協(xié)議的基礎(chǔ)上進(jìn)行了擴(kuò)展,提供了對(duì)UDP的支持,可以看做是UDP版本的TLS,具備了同樣的安全機(jī)制和防護(hù)等級(jí)。 DTLS協(xié)議簡(jiǎn)單易用,開發(fā)成本低,已被廣泛用于電子郵件協(xié)議(如交互郵件訪問(wèn)協(xié)議(IMAP)和郵局協(xié)議(POP)等)。
針對(duì)人防雷達(dá)組網(wǎng)通訊中常用的UDP協(xié)議安全問(wèn)題,本文提出一種在人防雷達(dá)組網(wǎng)通訊中利用OpenSSL開發(fā)包,實(shí)現(xiàn)基于DTLS協(xié)議的密鑰生成與管理、數(shù)據(jù)加密解密和身份驗(yàn)證的軟件方案,提高人防雷達(dá)組網(wǎng)通訊的安全性。
由于人防雷達(dá)組網(wǎng)時(shí)多采用公用網(wǎng)絡(luò),因此首先要保證網(wǎng)絡(luò)鏈路的安全,需要在構(gòu)建網(wǎng)絡(luò)環(huán)境時(shí)注意以下幾點(diǎn):
(1) 雷達(dá)系統(tǒng)與外網(wǎng)應(yīng)采取物理隔離,不可接入外網(wǎng)交換機(jī)或計(jì)算機(jī);
(2) 使用訪問(wèn)控制設(shè)備或軟件限制各節(jié)點(diǎn)的訪問(wèn)權(quán)限,防止超出權(quán)限的數(shù)據(jù)訪問(wèn);
(3) 安裝防火墻與安全軟件對(duì)入侵者進(jìn)行防范,可及時(shí)發(fā)現(xiàn)非授權(quán)設(shè)備接入并將其隔離;
(4) 可采用雙冗余網(wǎng)絡(luò)、雙服務(wù)器的方式提高網(wǎng)絡(luò)與數(shù)據(jù)的可靠性與安全性。
一個(gè)典型的人防雷達(dá)網(wǎng)絡(luò)構(gòu)架一般由一個(gè)控制中心、若干部雷達(dá)以及防空武器組成,之間通過(guò)光纖與網(wǎng)絡(luò)交換機(jī)、路由器等連接,如圖1所示。
圖1 人防雷達(dá)網(wǎng)結(jié)結(jié)構(gòu)示意圖
控制中心一般安裝有多部計(jì)算機(jī),配置有網(wǎng)絡(luò)防火墻、殺毒軟件等安全設(shè)備,安全保障條件與設(shè)施較為全面。因此在控制中心設(shè)有訪問(wèn)管理服務(wù)器與認(rèn)證服務(wù)器,作為DTLS的服務(wù)器端,而雷達(dá)顯示與控制終端計(jì)算機(jī)(簡(jiǎn)稱用戶終端)與遠(yuǎn)端的雷達(dá)與防空武器作為客戶端。訪問(wèn)控制(AC)服務(wù)器是一個(gè)可信任的資源服務(wù)器,其中存儲(chǔ)了網(wǎng)絡(luò)中各雷達(dá)節(jié)點(diǎn)的權(quán)限,另一個(gè)則是認(rèn)證授權(quán)(CA)。在網(wǎng)絡(luò)中,身份由服務(wù)器的公鑰密碼體制(PKC)建立,由X.509證書提供。X.509證書中包括有證書版本、序列號(hào)、簽名算法標(biāo)識(shí)符、簽發(fā)人、有效期以及最核心主體公鑰信息,認(rèn)證中心CA通過(guò)證書簽名標(biāo)記確認(rèn)證書擁有者的身份,防止攻擊者通過(guò)偽造證書假冒節(jié)點(diǎn)身份,并使接收者可以檢測(cè)證書是否被修改[2]。
控制中心的用戶終端計(jì)算機(jī)可以與AC服務(wù)器進(jìn)行認(rèn)證,并請(qǐng)求對(duì)雷達(dá)節(jié)點(diǎn)接入授權(quán),AC服務(wù)器檢查用戶的訪問(wèn)權(quán)限決定是否允許建立連接,如允許則建立兩者間的DTLS握手。管理服務(wù)器與認(rèn)證服務(wù)器的環(huán)境構(gòu)建本文不做描述,下文將重點(diǎn)說(shuō)明使用DTLS協(xié)議的握手與傳輸過(guò)程。
DTLS 協(xié)議是在UDP的套接字上實(shí)現(xiàn)了客戶機(jī)與服務(wù)器的握手連接,在握手過(guò)程中通過(guò)使用算法實(shí)現(xiàn)了數(shù)據(jù)加密,利用驗(yàn)證機(jī)制和證書實(shí)現(xiàn)了通信雙方的身份認(rèn)證。另外,DTLS還有一個(gè)簡(jiǎn)單的超時(shí)重傳機(jī)制來(lái)處理UDP丟包問(wèn)題。
DTLS 協(xié)議介于TCP/IP的網(wǎng)絡(luò)傳輸層和應(yīng)用層之間(見圖2),與常規(guī)的TCP/IP發(fā)送方式不同的是,應(yīng)用層數(shù)據(jù)不是直接發(fā)送給傳輸層,而是發(fā)送給SSL層,SSL層對(duì)應(yīng)用層數(shù)據(jù)進(jìn)行加密并增加SSL加密信息頭(簡(jiǎn)稱SSL頭),SSL層處理后的數(shù)據(jù)作為傳輸層輸入之后與正常TCP/IP協(xié)議一樣發(fā)送到網(wǎng)絡(luò)上。接收與之相反,在傳輸層收到數(shù)據(jù)后去除SSL頭并對(duì)數(shù)據(jù)解密后,將明文發(fā)送到接收方的應(yīng)用層。
圖2 SSL在TCP/IP協(xié)議中的位置
DLTS協(xié)議的模型由上層的握手消息、應(yīng)用數(shù)據(jù)、改變密碼規(guī)則、警告消息以及記錄層組成,如圖3所示。
當(dāng)客戶端與服務(wù)器需要通過(guò)DTLS協(xié)議發(fā)送數(shù)據(jù)時(shí),首先對(duì)應(yīng)用層數(shù)據(jù)進(jìn)行分段、壓縮與加密,之后添加DTLS記錄頭,封裝協(xié)議后調(diào)用UDP的套接字進(jìn)行發(fā)送。接收過(guò)程則與之相反,不過(guò)接收方需先判斷消息是否被加密,進(jìn)而需解密后方可讀取出正確的數(shù)據(jù)。建立數(shù)據(jù)報(bào)文的過(guò)程如圖4所示。
圖3 DTLS協(xié)議模型
DTLS的傳輸過(guò)程則分為握手和握手建立之后的數(shù)據(jù)傳輸。其中握手過(guò)程分為4個(gè)階段,如圖5所示。
圖4 DTLS協(xié)議數(shù)據(jù)包的建立過(guò)程
圖5 DTLS握手過(guò)程
第一階段:建立安全能力。
客戶端向服務(wù)端發(fā)送Client Hello(客戶機(jī)握手)消息,并等待服務(wù)端響應(yīng);服務(wù)端向客戶端發(fā)送Server Hello(服務(wù)器握手)消息,包含服務(wù)器選擇的連接參數(shù)。
第二階段:服務(wù)器認(rèn)證與秘鑰交換。
服務(wù)器端向客戶端發(fā)送 Certificate(即證書),使客戶機(jī)能用服務(wù)器證書中的服務(wù)器公鑰認(rèn)證服務(wù)器。服務(wù)器端請(qǐng)求客戶端數(shù)字證書,客戶端在 Certificate Verify 消息中證明自己的身份,服務(wù)端向客戶端發(fā)送Server Hello消息,標(biāo)示客戶機(jī)可以驗(yàn)證服務(wù)器發(fā)送的X.509證書。
第三階段:客戶機(jī)認(rèn)證與秘鑰交換。
服務(wù)器端請(qǐng)求客戶端數(shù)字證書,如客戶端有證書即對(duì)身份進(jìn)行雙向認(rèn)證,如沒(méi)有證書時(shí)則隨機(jī)生成。
第四階段:完成。
客戶機(jī)發(fā)送改變加密規(guī)范(Change Cipher Specs)、完成(Finished)消息,后服務(wù)器發(fā)送改變加密規(guī)范(Change Cipher Specs)、完成(Finished)消息。
客戶端收到服務(wù)器發(fā)來(lái)的會(huì)話秘鑰與Finished報(bào)文后,標(biāo)志整個(gè)握手階段的結(jié)束,便可發(fā)送應(yīng)用數(shù)據(jù),并且應(yīng)用數(shù)據(jù)會(huì)一直用會(huì)話秘鑰加密,從而保證通訊內(nèi)容的安全性[3]。
雷達(dá)組網(wǎng)通訊中實(shí)現(xiàn)DTLS通訊最為便捷的方法是利用開源的OpenSSL開發(fā)包。OpenSSL 采用C語(yǔ)言作為開發(fā)語(yǔ)言,支持Windows、Linux等多種平臺(tái),對(duì)SSL和TLS 提供了較好的支持。早期的版本只支持TCP,經(jīng)過(guò)擴(kuò)展,新版已支持UDP。OpenSSL開發(fā)包內(nèi)置有SSL協(xié)議庫(kù)、應(yīng)用程序以及密碼算法庫(kù),提供了主要的密碼算法、密鑰和證書管理功能以及SSL協(xié)議[4]。
使用OpenSSL 開發(fā)包實(shí)現(xiàn)網(wǎng)絡(luò)的加密傳輸可分為服務(wù)器端與客戶端2種。服務(wù)器端的通信過(guò)程一般包括: SSL 庫(kù)初始化,載入證書和私鑰,創(chuàng)建 SSL,利用 SSL 進(jìn)行收發(fā),產(chǎn)生私鑰與公鑰。創(chuàng)建好套接字后與服務(wù)器端連接產(chǎn)生SSL,將套接字加入到 SSL 當(dāng)中,建立SSL通信后就可以利用 SSL進(jìn)行收發(fā)數(shù)據(jù)(使用OpenSSL庫(kù)的加密算法)等操作,操作結(jié)束后關(guān)閉并釋放 SSL,整個(gè)連接請(qǐng)求完成后系統(tǒng)可關(guān)閉連接并釋放 SSL_CTX[5]??蛻舳送ㄐ胚^(guò)程與之基本相似,只是少了對(duì)私鑰與公鑰的產(chǎn)生與管理。使用OpenSSL實(shí)現(xiàn)服務(wù)器端與客戶端通訊的過(guò)程如圖6所示。
圖6 使用OpenSSL實(shí)現(xiàn)服務(wù)器端與客戶端通訊的過(guò)程
軟件實(shí)現(xiàn)的流程圖如圖7所示,OpenSSL也提供了例程可供參考。
圖7 使用OpenSSL 開發(fā)DTLS通訊的軟件流程圖
由于本文設(shè)計(jì)的系統(tǒng)中通訊硬件采用的是小型嵌入式處理器,運(yùn)算能力有限,因此我們選用簡(jiǎn)化的預(yù)共享密鑰(PSK)交換算法,即在服務(wù)端預(yù)置密鑰,簡(jiǎn)化了密鑰交換過(guò)程,可快速完成信息交換。 缺點(diǎn)是一旦PSK泄露,將無(wú)法保證安全性。OpenSSL自帶有多種加密算法庫(kù),如高級(jí)加密標(biāo)準(zhǔn)(AES)、非對(duì)稱加密復(fù)法(RSA)、對(duì)稱密碼體制DES、PSK等,開發(fā)者可直接調(diào)用。因此對(duì)于加密算法,本文不再贅述。但需注意的是,不同算法帶來(lái)的數(shù)據(jù)傳輸及計(jì)算性能開銷是不同的,需要針對(duì)不同的情況選擇合適的算法。
通過(guò)簡(jiǎn)化握手過(guò)程與加密算法等手段,在實(shí)際使用過(guò)程中,采用DTLS協(xié)議在無(wú)較大數(shù)據(jù)量的情況下收發(fā)網(wǎng)絡(luò)數(shù)據(jù)較常規(guī)方式對(duì)處理器的占用與數(shù)據(jù)的實(shí)時(shí)性影響不大,不影響整個(gè)系統(tǒng)的性能。
人民防空是一項(xiàng)重要的國(guó)防安全戰(zhàn)略,人防雷達(dá)組網(wǎng)可大大提升整體防空能力,但組網(wǎng)后的網(wǎng)絡(luò)安全并未得到足夠的重視,戰(zhàn)時(shí)易受到敵方攻擊。近幾年人防建設(shè)投入持續(xù)加大,但針對(duì)人防雷達(dá)組網(wǎng)通訊安全的研究則相對(duì)較少。本文基于廣泛應(yīng)用于互聯(lián)網(wǎng)的DTLS協(xié)議,提出了一種雷達(dá)組網(wǎng)通訊上端到端的安全傳輸實(shí)現(xiàn)方案,該方案主要利用OpenSSL實(shí)現(xiàn)DTLS協(xié)議的握手過(guò)程以及對(duì)用戶和節(jié)點(diǎn)身份的雙向認(rèn)證,并對(duì)數(shù)據(jù)進(jìn)行加密傳輸。本方案軟件開發(fā)成本低,實(shí)現(xiàn)難度小,可以大大提高人防雷達(dá)組網(wǎng)通訊的安全性。