程 鑫,付懿姝,王 鑫,席晟哲
(國網(wǎng)河南省電力公司安陽供電公司,河南安陽 455000)
在OSI 開放式連接模式中,應(yīng)用層協(xié)議定義了在多個終端上運(yùn)行的應(yīng)用軟件之間的消息交換,并定義了通信雙方進(jìn)行信息傳遞和解讀:通過特定的協(xié)議,傳送方將特定的信息按照特定的協(xié)議進(jìn)行打包,最后以位流的方式在整個網(wǎng)絡(luò)中傳播;接收端在接收到數(shù)據(jù)包后,根據(jù)網(wǎng)絡(luò)協(xié)議的要求對其進(jìn)行處理,然后將其轉(zhuǎn)化為文件或者向其他的網(wǎng)絡(luò)發(fā)送。通信協(xié)議包含三大部分:①語法。數(shù)據(jù)的格式、編碼和結(jié)構(gòu);②語義。信息的構(gòu)成、區(qū)分控制體系、通信內(nèi)容;③時間。通信的時間,通信內(nèi)容的順序。由于通信數(shù)據(jù)需要在沒有反饋的情況下進(jìn)行,因此,傳統(tǒng)的網(wǎng)絡(luò)協(xié)議堆疊無法與本系統(tǒng)的底層硬件架構(gòu)相適應(yīng)。確保資料的安全性;文章重點討論了傳輸?shù)目煽啃詥栴},包括單路光閘專用傳輸協(xié)議的設(shè)計,采用正向誤差校正技術(shù)保證了光閘光傳輸?shù)目煽啃?,并采用MD5技術(shù)對文件進(jìn)行完整性驗證。
在單向光閘的傳輸控制系統(tǒng)的設(shè)計時,要充分考慮通信的基本要求和應(yīng)用環(huán)境。既要考慮傳輸技術(shù)及相關(guān)協(xié)議的共性要求,又要兼顧不同網(wǎng)絡(luò)環(huán)境下的實際應(yīng)用需求?;谛畔踩暯?,對傳輸系統(tǒng)中的每個環(huán)節(jié)的潛在隱患進(jìn)行多重分析。具體應(yīng)完成以下幾個方面的基本內(nèi)容。
1.1.1 單向性
為了有效保證涉密網(wǎng)絡(luò)從非涉密網(wǎng)絡(luò)傳輸信息和數(shù)據(jù)的基本安全,既要確保邏輯層面對數(shù)據(jù)的單向無反饋傳輸,又要確保物理層傳輸?shù)膯蜗蚋綦x機(jī)制。
1.1.2 涉密環(huán)境的信息安全
涉密涉密網(wǎng)絡(luò)在與非涉密的外網(wǎng)進(jìn)行數(shù)據(jù)通信時,容易受到未經(jīng)授權(quán)的用戶或?qū)嶓w的攻擊,從而造成信息的泄露,危及涉密信息主體的根本利益。為此,要采取一系列的軟件和硬件手段確保機(jī)密信息的絕對安全。同時,為了避免目標(biāo)文件傳輸中,惡意攻擊者單向?qū)⒉《疚募魉偷缴婷墉h(huán)境中,單向控制系統(tǒng)必須指定相應(yīng)授權(quán)的用戶,并配備相關(guān)病毒過濾之類的安全模塊。
1.1.3 業(yè)務(wù)數(shù)據(jù)的穩(wěn)定傳輸
單向光閘傳輸控制系統(tǒng)設(shè)計需要充分確保單向無反饋的傳輸,這將對數(shù)據(jù)傳輸?shù)目煽啃援a(chǎn)生一定的影響。所以,在設(shè)計單向光閘過程要通過軟、硬件兩個方面進(jìn)行,以確保數(shù)據(jù)傳輸?shù)陌踩院涂煽啃浴?/p>
凡接入私有傳輸協(xié)議的信息系統(tǒng),均應(yīng)秉持“上網(wǎng)不涉密”的基本安全目標(biāo)。為有效保障涉密信息的基本安全,既保證涉密環(huán)境中常態(tài)化接入又能確保外網(wǎng)相關(guān)的信息數(shù)據(jù)傳輸安全。這就要求進(jìn)行單向光閘傳輸控制系統(tǒng)進(jìn)行設(shè)計時,要滿足機(jī)密性、完整性和高效性的信息安全目標(biāo)任務(wù)。
所謂的協(xié)議(在這里中特指的是網(wǎng)絡(luò)協(xié)議),是一種由通信各方共同遵守的協(xié)議。如以何種形式傳送,怎樣彼此辨認(rèn)等。IP 協(xié)議是以太網(wǎng)中最為關(guān)鍵的一種協(xié)議,它已經(jīng)成為各計算機(jī)網(wǎng)絡(luò)的基本規(guī)范。私有協(xié)議是一種企業(yè)制定內(nèi)部規(guī)范,它在公司外部不公開規(guī)范細(xì)節(jié),文章將私有協(xié)議定義為一系列僅適用于為實現(xiàn)本系統(tǒng)安全性要求,并依據(jù)其設(shè)計出相應(yīng)的網(wǎng)絡(luò)協(xié)議。采用私有協(xié)議可以從某種意義上解決網(wǎng)絡(luò)通信的基本安全問題,從而達(dá)到通信安全控制的目的。文章所描述的單向光閘是專為涉密環(huán)境中文件單向傳輸需求而定制。為保證通信過程的可控性,提高對信道的利用率,文章設(shè)計的私有傳輸協(xié)議,在提高了傳輸效率的同時可以有效阻止非法數(shù)據(jù)的傳輸,從而保證了只有符合該協(xié)議的數(shù)據(jù)才能通過單向光閘。
文章所述的單向光閘是專門針對在機(jī)密環(huán)境下進(jìn)行單程傳輸?shù)囊蠖O(shè)計的。為了確保通信過程的可控性和提高信道利用率,提出了一種私有的傳輸協(xié)議,它既能有效地防止非法的數(shù)據(jù)的傳輸,又能有效保證符合協(xié)議數(shù)據(jù)要求而通過單向光閘。
結(jié)合TCP 和UDP 的特點,充分考慮用戶環(huán)境的安全性要求,結(jié)合單向光閘的軟、硬件特性,設(shè)計了一套用于單程光閘的私有DMTP 傳輸協(xié)議。
DMTP 協(xié)議的主要作用是,將從通信代理處發(fā)出的PDU 制成一種能夠被單向光閘傳送系統(tǒng)識別的數(shù)據(jù)包,然后通過單光纖通道傳送到接收機(jī),再由接收機(jī)進(jìn)行處理。
單向光纖傳輸通道的傳輸特性確保了在鏈路層上的所有以太網(wǎng)數(shù)據(jù)通道均為單向傳輸。基于單向光閘傳輸系統(tǒng)的應(yīng)用背景和安全性要求,將單向光閘傳送系統(tǒng)置于多個密級網(wǎng)絡(luò)中,涉密網(wǎng)絡(luò)僅負(fù)責(zé)接收和接收,而無涉密網(wǎng)僅負(fù)責(zé)傳送數(shù)據(jù),并與發(fā)射機(jī)相連。由于數(shù)據(jù)包的數(shù)量很大,所以在數(shù)據(jù)流的傳輸中,采用了多路傳輸技術(shù),并針對數(shù)據(jù)流的特點,提出了一組專用的數(shù)據(jù)傳輸協(xié)議,從物理和邏輯兩個方面實現(xiàn)了數(shù)據(jù)的雙向不反饋。因為多路傳輸技術(shù)在協(xié)議中的應(yīng)用,所以將其稱為DMTP(DMTP)。圖1 顯示了DMTP 協(xié)議的網(wǎng)絡(luò)模型。
圖1 DMTP協(xié)議網(wǎng)絡(luò)模型圖
單向光閘私有傳送協(xié)議是在傳送層工作的,DMTP 主要負(fù)責(zé)整個數(shù)據(jù)的傳送與控制,將特定的通信細(xì)節(jié)隱藏給上層的使用者,如同在不同的傳送實體之間建立一條可靠的虛擬通道。DMTP 私有傳送協(xié)議的分組結(jié)構(gòu)見圖2:
圖2 DMTP數(shù)據(jù)包結(jié)構(gòu)圖
保證傳輸數(shù)據(jù)的完整性是本系統(tǒng)的主要研究方向,而完整性檢驗技術(shù)則能夠通過對信息摘要的計算來判定文檔的完整性。在傳送和傳送時,為了保證文檔的傳送完整性,將文檔標(biāo)題中的MD5標(biāo)記和MD5的數(shù)值設(shè)計為:在發(fā)送文件前對文檔進(jìn)行概要運(yùn)算,并將概要信息存儲在文檔信息頭部,接收方收到數(shù)據(jù)后分析文檔標(biāo)題,獲取MD5的數(shù)值,再進(jìn)行與MD5的比較。如果兩者相同,則表示在發(fā)送時沒有丟失,否則表明文檔完整性有問題,在發(fā)送時數(shù)據(jù)包丟失。
FEC 是為了提高數(shù)據(jù)通信的可靠性而設(shè)計的一種差錯控制技術(shù)。在單程光纖中,如果發(fā)生了傳輸差錯,接收方將不能再次發(fā)送數(shù)據(jù)。發(fā)送方將監(jiān)督符號添加到所需傳送的數(shù)據(jù)信息。在接收端檢測到錯誤信號時,能及時修正錯誤。在發(fā)射初期,信號源生成k 位信息,并將其傳送到編碼器。在此數(shù)據(jù)序列之后,編碼器添加(n-k)比特冗余奇偶校驗碼,最后編碼器輸出n位數(shù)據(jù)。隨著數(shù)據(jù)的冗余度的增加,數(shù)據(jù)包中的純數(shù)據(jù)所占的比重將會降低。但是,在數(shù)據(jù)的冗余程度足夠大的情況下,接收方所接收到的信息的精確度就會得到保障。編碼后的碼字經(jīng)過調(diào)制器的處理,變成一個可以傳送到頻道的信號。信號經(jīng)通道傳輸至接收機(jī),接收機(jī)在接收端接收到編碼字后,將其解調(diào)成數(shù)字信號。最后,通過與原始碼的特殊關(guān)系,譯碼器能夠檢測出錯誤并獲得相應(yīng)的碼字。最后把這個數(shù)字的資料傳送到寄宿者那里。FEC 將為每個Ethernet 提供FEC的代碼。起始標(biāo)簽和終止標(biāo)簽通過10位編碼來完成,在頓尾加入冗余奇偶校驗字節(jié),F(xiàn)EC 將對以太網(wǎng)貼的全部內(nèi)容進(jìn)行編碼,其中包含前導(dǎo)碼、以太網(wǎng)包頭以及FCS 校驗位。僅不對空閑字符進(jìn)行編碼。在FEC編碼之后幀結(jié)構(gòu)見圖3。
圖3 具備FEC功能的幀結(jié)構(gòu)圖
Libpcap 是一個非常成熟的數(shù)據(jù)包捕捉框架,它采用BPF 包過濾機(jī)制,為用戶的應(yīng)用程序提供一個包捕捉的接口。但是Libpcap 必須要對內(nèi)存進(jìn)行多次復(fù)制,PF_RING 可以捕捉并存儲在一個環(huán)形緩沖器中,這樣就可以通過Libpcap 把數(shù)據(jù)包mmap 傳送到一個應(yīng)用程序中,從而大幅降低存儲的復(fù)制次數(shù),同時利用PF_RING 和Libpcap 可以有效地獲取數(shù)據(jù)包。
在以太網(wǎng)中,數(shù)據(jù)是以幀為單位進(jìn)行的,而幀則是以廣播的方式傳送到各個主機(jī),主機(jī)收到ARP 廣播后,就會判斷出是否向自己發(fā)出了請求,并決定是否接受,這樣就可以捕捉到數(shù)據(jù)包。包捕捉機(jī)制主要有包捕捉機(jī)制、核心級分組篩選機(jī)制以及數(shù)據(jù)端口接收端。該方法通過在數(shù)據(jù)鏈路層上設(shè)置一個旁路過程,從網(wǎng)絡(luò)卡的緩存隊列中提取和處理,最終由應(yīng)用程序的數(shù)據(jù)包捕捉機(jī)制傳輸?shù)綉?yīng)用。封包捕捉機(jī)制不會對操作系統(tǒng)的網(wǎng)絡(luò)協(xié)議找出產(chǎn)生任何影響,但是因為它不能解析出特定的傳輸協(xié)議,所以內(nèi)核的網(wǎng)絡(luò)協(xié)議會將其丟棄。這樣不僅不會影響系統(tǒng)的性能,而且還可以自動分析所獲取的數(shù)據(jù)包。
Libpcap 采用BPF 的分組過濾機(jī)制,BPF 的過濾主要是基于內(nèi)核,它能設(shè)計出對應(yīng)的策略,在捕捉到數(shù)據(jù)包的同時,對不必要的分組進(jìn)行篩選。Libpcap是一個在應(yīng)用程序?qū)用嫔线\(yùn)行的包捕捉程序。
PF_RING 是Luca Deri 開發(fā)的一種基于“零拷貝”技術(shù)的快速數(shù)據(jù)包捕捉庫,可以很好地解決傳統(tǒng)的數(shù)據(jù)包捕捉技術(shù)所遇到的困難。PF_RING 與常規(guī)方法不同,它將從網(wǎng)卡緩沖中收到的數(shù)據(jù)包儲存在一個由兩個接口組成的環(huán)狀緩沖器中,一個用于存儲網(wǎng)卡的寫入,一個用于為用戶程序提供一個接口,而PF_RING 則利用mmap 來完成對數(shù)據(jù)包的讀取。
本研究主要包括兩方面的內(nèi)容:光閘專用協(xié)議的實現(xiàn)以及光纖單室內(nèi)的正向誤差校正。在光閘網(wǎng)專用協(xié)議中,首先介紹了光閩專用協(xié)議的概念,然后針對其特性進(jìn)行了詳細(xì)的設(shè)計。文章介紹了在傳輸過程中,文檔的報頭結(jié)構(gòu),接收方通過對報文報頭的分解,得到報文報頭,得到與報文有關(guān)的信息,然后再對報文進(jìn)行處理,從而形成一個文件。在文檔信息標(biāo)頭中使用MD5,可以對文檔進(jìn)行完整性檢查。前向誤差校正技術(shù)部分,對FEC正向誤差校正的機(jī)理進(jìn)行了說明,并給出了RS 碼的基本理論,并給出了RS 糾錯編解碼的具體實現(xiàn)方法。文章對數(shù)據(jù)包捕獲技術(shù)進(jìn)行了深入的探討,探討了Libpcap 包捕捉的基本理論,并探討了PF_RING 技術(shù)的特性,并將PF_RING 技術(shù)與Libpcap 包捕捉機(jī)制進(jìn)行結(jié)合,從而實現(xiàn)對數(shù)據(jù)包的捕獲和信息處理。