袁銘 王敬平 馬冬冬 周方
(中國電子科技集團(tuán)公司第三十二研究所 上海市 201808)
隨著計算機(jī)、網(wǎng)絡(luò)通訊、數(shù)字加密等信息技術(shù)不斷發(fā)展和完善,信息的安全傳輸與處理已成為社會各領(lǐng)域研究的熱點(diǎn)[1]。由于我國之前國產(chǎn)軟硬件基礎(chǔ)水平較為薄弱,當(dāng)時所建立的傳輸系統(tǒng)大多基于Intel 處理器、Windows 操作系統(tǒng)等外國軟硬件產(chǎn)品。近年來,隨著我國國力的不斷增強(qiáng),以美國為代表的西方反華勢力加大了對華技術(shù)限制的力度與范圍,對高科技產(chǎn)品零部件等采取更嚴(yán)格的出口管制措施。因此,研究與開發(fā)一款基于國產(chǎn)化平臺、完全自主可控、安全高效的新一代關(guān)重信息系統(tǒng)成為了當(dāng)前的迫切需要[2]。
基于專有網(wǎng)絡(luò)的國產(chǎn)關(guān)重信息傳輸處理系統(tǒng)采用2 級部署方式,節(jié)點(diǎn)分為中心節(jié)點(diǎn)和分區(qū)節(jié)點(diǎn)。中心節(jié)點(diǎn)與分區(qū)節(jié)點(diǎn)的區(qū)別在于,中心節(jié)點(diǎn)具有關(guān)重報文的集中存儲轉(zhuǎn)發(fā)服務(wù)功能,并支持關(guān)重報文查詢與下載服務(wù),因此相較于分區(qū)節(jié)點(diǎn),中心節(jié)點(diǎn)還需要中心服務(wù)器。
圖中基于專有網(wǎng)絡(luò)的國產(chǎn)關(guān)重信息傳輸處理系統(tǒng)的硬件環(huán)境由5 款國產(chǎn)化設(shè)備組成,各設(shè)備名稱及功能如表 1 所示:
表1:基于專有網(wǎng)絡(luò)的國產(chǎn)關(guān)重信息傳輸處理系統(tǒng)硬件環(huán)境組成表
表1 中的中心服務(wù)器、傳輸終端、接入終端都是采用基于飛騰FT2000 新四核處理器和銀河麒麟操作系統(tǒng)的國產(chǎn)終端平臺。
基于專有網(wǎng)絡(luò)的國產(chǎn)關(guān)重信息傳輸處理系統(tǒng)在軟件方面由中心服務(wù)軟件、終端報文處理軟件兩個業(yè)務(wù)軟件以及國產(chǎn)WPS 辦公軟件、文件傳輸軟件、國產(chǎn)達(dá)夢數(shù)據(jù)庫軟件、開源數(shù)據(jù)庫SQLite 等輔助軟件組成。
1.2.1 中心服務(wù)軟件架構(gòu)
中心服務(wù)軟件的總體架構(gòu)如圖1 所示,在邏輯上可分為服務(wù)接口層、業(yè)務(wù)邏輯層、支撐層和數(shù)據(jù)層。
圖1:中心服務(wù)軟件總體架構(gòu)圖
1.2.2 報文處理軟件的架構(gòu)
在邏輯上可分為展示層、業(yè)務(wù)邏輯層、支撐層和數(shù)據(jù)層。
展示層是基于跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架Qt開發(fā)的,通過Qt 的GUI 模塊繪制了程序的窗口主界面以及各種子界面,為軟件使用者提供美觀、易用的圖形用戶界面。
業(yè)務(wù)邏輯層從業(yè)務(wù)需求出發(fā)實(shí)現(xiàn)了關(guān)重報文的編輯、發(fā)送、接收、存儲、刪除等報文全生命周期管理功能,并從安全性和可維護(hù)性角度出發(fā)實(shí)現(xiàn)了用戶管理、日志管理、配置管理、安全運(yùn)維管理、數(shù)據(jù)備份與恢復(fù)等其他功能。
支撐層對各種外部資源調(diào)用接口進(jìn)行適配和封裝,為業(yè)務(wù)邏輯層的功能實(shí)現(xiàn)提供了有效的支持,其中數(shù)據(jù)庫調(diào)用模塊針對SQLite數(shù)據(jù)庫訪問接口進(jìn)行了二次封裝,實(shí)現(xiàn)了報文信息、用戶信息、日志信息的增、刪、改、查操作;WPS 辦公軟件調(diào)用模塊針對金山WPS Office 辦公軟件進(jìn)行適配,提供了報文展示、報文編輯、報文要素編輯、報文打印等接口;加密卡調(diào)用模塊對PCIE 加密卡的調(diào)用接口進(jìn)行封裝,實(shí)現(xiàn)了報文的加解密、報文簽名的生成與驗證、報文HASH 值計算、MAC 計算等接口調(diào)用;報文傳輸軟件調(diào)用模塊和數(shù)據(jù)交換控制器調(diào)用模塊,分別對報文傳輸軟件和數(shù)據(jù)交換控制器進(jìn)行協(xié)議適配,實(shí)現(xiàn)了報文在不同節(jié)點(diǎn)之間的加密數(shù)據(jù)安全傳遞以及報文在傳輸終端與接入終端之間的數(shù)據(jù)單向傳遞;WebService 服務(wù)調(diào)用模塊針對中心服務(wù)軟件提供的WebService 接口進(jìn)行適配,用以訪問中心服務(wù)軟件的報文狀態(tài)信息上報、證書查詢、簽名驗證等服務(wù)。
數(shù)據(jù)層包括用戶本地存儲的報文和附件文件、WPS 報文模板文件、用戶收發(fā)報文信息數(shù)據(jù)庫、用戶操作日志數(shù)據(jù)庫、地址信息數(shù)據(jù)庫等,為業(yè)務(wù)邏輯層和展示層提供數(shù)據(jù)支撐,以供其進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)展示。
2.1.1 報文發(fā)送
用戶打開發(fā)報界面時,在界面上編輯報文正文和要素,并選取附件后,觸發(fā)發(fā)送指令,調(diào)用傳輸加密接口將報文和附件加密到指定目錄下。根據(jù)報文要素信息生成報文xml 文件,并且對報文文件和附件進(jìn)行循環(huán)冗余校驗(Cyclic Redundancy Check,CRC)計算[3],向文件傳輸軟件發(fā)送消息。得到文件傳輸軟件反饋的發(fā)送成功響應(yīng)后,將報文信息記入數(shù)據(jù)庫,完成發(fā)送過程。
2.1.2 報文來報處理流程
報文處理軟件使用UDP通訊的方式與文件傳輸軟件進(jìn)行交互。當(dāng)文件傳輸軟件收到報文后,將報文存在指定位置,然后通過UDP將報文路徑信息發(fā)送給報文處理軟件。報文處理軟件根據(jù)UDP 報文獲取報文正文位置、附件位置、CRC 校驗值等信息。然后報文處理軟件根據(jù)上述信息執(zhí)行報文正文和附件文件的CRC 計算與校驗,并解密報文正文將標(biāo)題、關(guān)鍵字等要素信息存入數(shù)據(jù)庫。最后在用戶界面以文字或聲音方式提示用戶收到新報文。
2.2.1 報文加密設(shè)計
中心服務(wù)軟件的關(guān)重報文加密模塊支持多線程操作,互斥地訪問密碼卡,“打開”函數(shù)中進(jìn)行加鎖操作,“關(guān)閉”函數(shù)進(jìn)行解鎖操作。當(dāng)有加密需求時,先調(diào)用“打開”函數(shù),再調(diào)用模塊中的“加密接口”函數(shù),加密完成后,調(diào)用“關(guān)閉函數(shù)”。
2.2.2 報文解密設(shè)計
中心服務(wù)軟件的關(guān)重報文解密模塊支持多線程操作,互斥地訪問密碼卡,“打開”函數(shù)中進(jìn)行加鎖操作,“關(guān)閉”函數(shù)進(jìn)行解鎖操作。當(dāng)有解密需求時,先調(diào)用“打開”函數(shù),再調(diào)用模塊中的“解密接口”函數(shù),解密完成后,調(diào)用“關(guān)閉函數(shù)”。
2.3.1 數(shù)據(jù)交換控制器單向?qū)?/p>
接入終端和傳輸終端上的報文處理軟件通過數(shù)據(jù)交換控制器進(jìn)行關(guān)重報文的單向?qū)?。報文處理軟件會首先建立單?dú)線程與數(shù)據(jù)交換控制器服務(wù)建立連接,再通過約定的通信格式來獲取交換控制器的狀態(tài),若是發(fā)送狀態(tài),則可以進(jìn)行發(fā)送,其他狀態(tài)則提示無法發(fā)送(需人工操作將控制器從接收狀態(tài)或斷開狀態(tài)轉(zhuǎn)換為發(fā)送狀態(tài));然后將報文和附件解密到虛擬盤,接著從虛擬盤中獲取報文及附件,將報文和附件按照約定格式合并,最后調(diào)用數(shù)據(jù)交換控制器傳輸接口進(jìn)行發(fā)送。
2.3.2 數(shù)據(jù)交換控制器單向?qū)С?/p>
報文處理軟件響應(yīng)數(shù)據(jù)交換控制器的來報信息,按照約定格式將來報解析成正文及附件,存放到虛擬盤中,報文要素信息存入數(shù)據(jù)庫,觸發(fā)軟件界面提示。
2.4.1 安全證書上報
報文處理軟件在節(jié)點(diǎn)接入專網(wǎng)時,會將一個公鑰文件上傳至中心服務(wù)軟件,該公鑰文件(即安全證書)可供報文接收方下載,用以驗證接收方所接收報文的發(fā)送者身份。
2.4.2 報文驗證簽名
報文處理軟件在進(jìn)行報文生成時,會在加密前使用秘鑰為報文產(chǎn)生一串別人無法偽造的數(shù)字(即簽名),并附加在報文文件結(jié)尾,用以作為對信息的發(fā)送者發(fā)送信息真實(shí)性的一個有效證明。接收端的報文處理軟件在收到其他節(jié)點(diǎn)發(fā)來的關(guān)重報文后,使用該節(jié)點(diǎn)對應(yīng)的安全證書與報文原文計算出摘要信息,與報文文件結(jié)尾的簽名比較是否一致。若一致,則說明收到的信息是完整的,在傳輸過程中沒有被篡改,否則說明信息被篡改過。
為保證關(guān)重報文在各個終端之間傳輸之后,最終收到的報文沒有出現(xiàn)內(nèi)容丟失或被惡意篡改,基于專有網(wǎng)絡(luò)的國產(chǎn)關(guān)重信息傳輸處理系統(tǒng)綜合采用了循環(huán)冗余校驗(Cyclic Redundancy Check,CRC)技術(shù)與消息認(rèn)證碼(Message Authentication Codes,MAC)技術(shù)。報文XML 生成后,發(fā)報端根據(jù)報文內(nèi)容和HmacMD5 算法,生成MAC 秘鑰[4],并將MAC 秘鑰附加在文件結(jié)尾,生成傳輸態(tài)報文文件。之后基于專有網(wǎng)絡(luò)的國產(chǎn)關(guān)重信息傳輸處理系統(tǒng)軟件使用循環(huán)冗余校驗技術(shù),根據(jù)傳輸態(tài)報文文件生成32位循環(huán)冗余校驗碼[5],然后將傳輸態(tài)報文文件與32位校驗碼一同交由傳輸軟件進(jìn)行傳輸。各中間終端或中心服務(wù)器收到傳輸態(tài)報文文件與32 位校驗碼后,都會對傳輸態(tài)報文文件進(jìn)行完整性校驗[6],一旦出現(xiàn)校驗失敗情況,則終止傳輸,并向上一終端反饋。最終收報終端在收到傳輸態(tài)報文文件與32 位校驗碼,并完成CRC 校驗后,將傳輸態(tài)報文文件重新還原為報文XML 文件與MAC 秘鑰。使用報文XML 文件和統(tǒng)一的MAC 算法,獲得新的MAC 秘鑰。比較兩個MAC 秘鑰是否一致,可判斷報文文件是否一致。
SQLite 作為一個開源的嵌入式數(shù)據(jù)庫,具有系統(tǒng)開銷小、檢索效率高等特性。在基于專有網(wǎng)絡(luò)的國產(chǎn)關(guān)重信息傳輸處理系統(tǒng)中SQLite 數(shù)據(jù)庫用于存儲終端的收發(fā)報記錄。然而開源的SQLite數(shù)據(jù)庫默認(rèn)不提供用戶登錄限制,任何人都可以通過使用命令行工具或圖形工具篡改數(shù)據(jù)庫內(nèi)容。為保證數(shù)據(jù)的安全性,需針對SQLite 進(jìn)行了安全加固。我們使用SQLite 本身提供的sqlite3_key和sqlite3_rekey 的接口,實(shí)現(xiàn)了數(shù)據(jù)庫文件的密碼設(shè)置。
基于專有網(wǎng)絡(luò)的國產(chǎn)關(guān)重信息傳輸處理系統(tǒng)實(shí)現(xiàn)了軍隊、黨政部門或特種企業(yè)內(nèi)部各部門、乃至各分區(qū)節(jié)點(diǎn)之間的關(guān)重信息安全、高效傳遞,提高了關(guān)重信息系統(tǒng)的信息化水平。平臺采用全國產(chǎn)化軟硬件,擺脫了對外國高科技產(chǎn)品的技術(shù)依賴,進(jìn)一步增強(qiáng)了國產(chǎn)化信息系統(tǒng)的研發(fā)能力和自主可控水平。未來專有網(wǎng)絡(luò)關(guān)重信息系統(tǒng)還將在增強(qiáng)信息安全水平、提高業(yè)務(wù)處理流程自動化等幾個方面進(jìn)一步完善,以滿足我國在信息安全領(lǐng)域的新需求。