數(shù)據(jù)文件加密在船舶故障遠(yuǎn)程診斷系統(tǒng)中的應(yīng)用

由于網(wǎng)絡(luò)的開放性,不可避免地帶來了許多安全問題。尤其對(duì)于軍用船舶等保密程度較高的對(duì)象,對(duì)其數(shù)據(jù)的安全存儲(chǔ)和安全傳輸提出了更高的要求。為此我們從實(shí)際應(yīng)用的角度針對(duì)船舶故障遠(yuǎn)程診斷系統(tǒng)的數(shù)據(jù)文件加密問題以及相應(yīng)的解決方案進(jìn)行了探討分析,提出了一種應(yīng)用在中間層軟件上的數(shù)據(jù)文件加密存儲(chǔ)模型,對(duì)如何保證監(jiān)測數(shù)據(jù)的安全性有很強(qiáng)的指導(dǎo)意義。

一、船舶故障遠(yuǎn)程診斷系統(tǒng)中數(shù)據(jù)文件加密思路

在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫管理員(DBA)具有至高無上的權(quán)限,既負(fù)責(zé)各項(xiàng)系統(tǒng)管理工作,又可以查詢數(shù)據(jù)庫中的一切信息,也就是說DBA可以訪問任何用戶的任何信息,這就給企業(yè)的保密信息產(chǎn)生了極大的安全威脅。為了解決這些問題,一般的方法是各用戶(或用戶組)的數(shù)據(jù)由用戶用自己的密鑰加密,之后再存放于數(shù)據(jù)庫中,這樣在解密之前,DBA無法對(duì)數(shù)據(jù)進(jìn)行操作,非法用戶也只能獲得被加密過的密文,但卻無法了解密文的含義。本文在此基礎(chǔ)上,設(shè)計(jì)了一種應(yīng)用在中間層軟件上的數(shù)據(jù)文件加密存儲(chǔ)方案,并結(jié)合故障診斷監(jiān)測數(shù)據(jù)的特點(diǎn)以實(shí)例運(yùn)行,其性能較傳統(tǒng)方法有很大提高。數(shù)據(jù)安全問題也普遍存在于其它信息管理系統(tǒng)中,因此該方案的研究為解決類似問題也提供了思路。

二、船舶故障遠(yuǎn)程診斷系統(tǒng)

1、船舶故障遠(yuǎn)程診斷系統(tǒng)結(jié)構(gòu)

船舶故障遠(yuǎn)程診斷系統(tǒng)采用分布式B/S結(jié)構(gòu)模式,一方面在企業(yè)內(nèi)部設(shè)立狀態(tài)監(jiān)測服務(wù)器,在船舶主要?jiǎng)恿C(jī)械設(shè)備上設(shè)立狀態(tài)監(jiān)測點(diǎn),將實(shí)時(shí)采集的數(shù)據(jù)存入服務(wù)器;另一方面在技術(shù)力量較強(qiáng)的科研院所建立相應(yīng)的故障診斷中心,設(shè)立故障診斷服務(wù)器。當(dāng)設(shè)備運(yùn)行出現(xiàn)異常征兆時(shí),用戶可通過瀏覽器訪問故障診斷服務(wù)器,將采集的數(shù)據(jù)上傳到遠(yuǎn)程診斷服務(wù)中心,診斷中心專家將根據(jù)用戶的請(qǐng)求進(jìn)行診斷分析,并將結(jié)果自動(dòng)發(fā)給客戶,實(shí)現(xiàn)對(duì)故障的早期診斷和設(shè)備的及時(shí)維修。船舶遠(yuǎn)程故障診斷系統(tǒng)
的通信模型如圖1所示:

數(shù)據(jù)文件加密在船舶故障遠(yuǎn)程診斷系統(tǒng)中的應(yīng)用

2、故障診斷數(shù)據(jù)安全性及數(shù)據(jù)特點(diǎn)

在網(wǎng)絡(luò)環(huán)境下,診斷中心接受從用戶端傳送的大量信息,包括設(shè)備基本信息、樣點(diǎn)信息、油樣信息、紅外光譜數(shù)據(jù)、理化監(jiān)測數(shù)據(jù)以及其它各種狀態(tài)參數(shù)等,然后存儲(chǔ)在用戶數(shù)據(jù)庫中,經(jīng)數(shù)據(jù)處理后將診斷結(jié)果以報(bào)表的形式反饋給用戶,包括故障分析、處理和維修歷史記錄等。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)(DBMA)擔(dān)負(fù)著集中存儲(chǔ)和處理這些信息的任務(wù),雖然其安全訪問控制為數(shù)據(jù)安全提供了一定的保障,例如基于權(quán)限的訪問控制等,但這只能滿足一般的安全要求,對(duì)于一些重要或敏感數(shù)據(jù),特別是軍用船舶,一旦某些需要絕對(duì)保密的數(shù)據(jù)被非法用戶獲取,就會(huì)帶來一定程度的損失。由此可見,隨著故障診斷系統(tǒng)智能化程度的提高,數(shù)據(jù)的安全性雖然作為其非功能性需求但發(fā)揮著非常重要的作用。

分析遠(yuǎn)程船舶故障診斷系統(tǒng)的數(shù)據(jù),如光譜分析所得的元素濃度值,如Cu、Fe、Zn等,或主機(jī)在運(yùn)行過程中的各類參數(shù)如溫度、壓力以及振動(dòng)頻率等,很明顯這些數(shù)據(jù)的特點(diǎn)是以數(shù)值為主。對(duì)數(shù)值型數(shù)值,可直接用算術(shù)方法進(jìn)行分析,鑒于故障診斷數(shù)據(jù)的這一特點(diǎn),本文提出了一種應(yīng)用中間層軟件的明文文件加密方案。而對(duì)于沒必要加密的信息,如設(shè)備名稱、油樣編號(hào)、日期等,則不需要進(jìn)行任何操作。

三、數(shù)據(jù)文件加密方案

1、船舶遠(yuǎn)程故障診斷數(shù)據(jù)傳統(tǒng)加密方案

加密是利用一定的加密算法,將明文轉(zhuǎn)換成為無意義的密文,阻止非法用戶理解原始數(shù)據(jù),以實(shí)現(xiàn)數(shù)據(jù)文件的保密性(防止用戶的標(biāo)識(shí)或數(shù)據(jù)被讀?。⑼暾裕ǚ乐箶?shù)據(jù)被更改)和身份驗(yàn)證(確保數(shù)據(jù)發(fā)自特定的一方)。其文件加密和解密過程可描述為:

在發(fā)送端利用加密算法E和加密密鑰Ke對(duì)明文P進(jìn)行加密,得到密文Y=EKe (P)。密文Y被傳送到接收端后,接收端利用解密算法D和解密密鑰Kd對(duì)密文Y進(jìn)行解密,將密文恢復(fù)為明文P=DKd (Y)。數(shù)據(jù)文件加密模型如圖2所示:

數(shù)據(jù)文件加密在船舶故障遠(yuǎn)程診斷系統(tǒng)中的應(yīng)用

對(duì)于船舶遠(yuǎn)程故障診斷系統(tǒng),一般采用實(shí)現(xiàn)簡單、文件加密和解密效率高并且具有較好安全強(qiáng)度的對(duì)稱加密算法,如56bit密鑰的DES加密算法或128bit密鑰的IDEA加密算法;同時(shí)為了實(shí)現(xiàn)數(shù)字簽名和身份認(rèn)證,采用加密強(qiáng)度較高的RSA公開密鑰加密算法。采用這兩種算法相結(jié)合的混合加密機(jī)制,先對(duì)數(shù)據(jù)文件進(jìn)行加密,然后文件系統(tǒng)把每次加密后的數(shù)據(jù)寫入到數(shù)據(jù)庫文件中去,讀入時(shí)再進(jìn)行解密。這是目前常用的密文加密,即加密后的數(shù)據(jù)為不可見,如圖3,表示的是在某次采樣過程中所得到的一系列元素濃度值進(jìn)行密文加密后的視圖。

數(shù)據(jù)文件加密在船舶故障遠(yuǎn)程診斷系統(tǒng)中的應(yīng)用

以上文件加密方法相對(duì)簡單,但存在三個(gè)缺點(diǎn):一是對(duì)數(shù)據(jù)庫的讀寫比較麻煩,每次都要進(jìn)行文件加密和解密過程,降低了數(shù)據(jù)傳輸?shù)乃俣纫约皵?shù)據(jù)庫的工作效率;二是由于要對(duì)整個(gè)數(shù)據(jù)庫或數(shù)據(jù)表進(jìn)行解密操作,開銷巨大,在實(shí)際操作中是不可行的;三是密文加密后盡管數(shù)據(jù)不可見,但會(huì)給攻擊者透露該數(shù)據(jù)已加密這一信息,使其有意識(shí)地去破解密碼,增加了危險(xiǎn)性。為了解決這些問題,本文在遠(yuǎn)程診斷的過程中配置了“中間件”來完成數(shù)據(jù)加密的功能,并將加密模型改為明文文件加密,即加密后的數(shù)據(jù)仍為可見的。

2、改進(jìn)的加密方案

中間層軟件通常是表示網(wǎng)絡(luò)環(huán)境下處于操作系統(tǒng)等系統(tǒng)軟件和應(yīng)用軟件之間的一種起連接作用的分布式軟件,通過應(yīng)用程序接口(API)的形式提供一組軟件服務(wù),可使得網(wǎng)絡(luò)環(huán)境下的若干進(jìn)程、程序或應(yīng)用可以方便地交流信息和有效地進(jìn)行交互與協(xié)同。程序員通過調(diào)用中間件所提供的大量API,實(shí)現(xiàn)異構(gòu)環(huán)境的通訊,從而屏蔽異構(gòu)系統(tǒng)中復(fù)雜的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議。中間件作為連接分布式應(yīng)用的橋梁,越來越被廣泛應(yīng)用。

本文在數(shù)據(jù)管理層與用戶界面層之間配置了一層中間件,將文件加密和解密模塊封裝在中間層軟件上,使之成為B/S三層體系結(jié)構(gòu),如圖4所示。該模型實(shí)現(xiàn)了以下加密過程:用戶方數(shù)據(jù)經(jīng)中間件的加密之后以密文形式被診斷中心數(shù)據(jù)庫服務(wù)器端接收,經(jīng)過診斷中心專家系統(tǒng)的診斷之后生成的信息以密文形式經(jīng)中間件解密成明文反饋給用戶。

數(shù)據(jù)文件加密在船舶故障遠(yuǎn)程診斷系統(tǒng)中的應(yīng)用

采用中間件有以下優(yōu)點(diǎn):第一,文件加密和解密處理在中間件進(jìn)行,可以減輕數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān),提高系統(tǒng)效率;第二,中間件屏蔽了數(shù)據(jù)庫的訪問方式及路徑,在一定程度上阻止了對(duì)數(shù)據(jù)庫的攻擊,有效地實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫中敏感數(shù)據(jù)信息的加密;第三,中間件提供的程序接口定義了一個(gè)相對(duì)穩(wěn)定的高層應(yīng)用環(huán)境,它完全獨(dú)立于數(shù)據(jù)庫應(yīng)用系統(tǒng),因此不管底層的計(jì)算機(jī)硬件和系統(tǒng)軟件怎樣更新?lián)Q代,比如需要更新加密系統(tǒng),只要將中間件升級(jí)更新,并保持中間件對(duì)外的接口定義不變,數(shù)據(jù)庫應(yīng)用系統(tǒng)幾乎不需任何修改,從而保護(hù)了企業(yè)在應(yīng)用軟件開發(fā)和維護(hù)中的重大投資。

3、明文文件加密實(shí)例

按照數(shù)據(jù)庫的結(jié)構(gòu)層次,數(shù)據(jù)庫的加密粒度可以分為相應(yīng)的數(shù)據(jù)庫級(jí)、表級(jí)、記錄級(jí)、字段級(jí)和數(shù)據(jù)項(xiàng)級(jí)。對(duì)于遠(yuǎn)程船舶故障診斷系統(tǒng)的油液監(jiān)測中的光譜分析數(shù)據(jù),在保證一定加密粒度的條件下,同時(shí)使加密對(duì)系統(tǒng)的查詢性能的影響降至最低,對(duì)數(shù)據(jù)文件加密的對(duì)象應(yīng)選擇數(shù)據(jù)表中的記錄。

仍以圖3中的記錄為例,圖5為加密前視圖,加密過程如下:通過調(diào)用專門的加密函數(shù),對(duì)整條記錄一起進(jìn)行加密處理,加密后輸出的是一列與原值截然不同的數(shù)值,得到圖6所示視圖。

數(shù)據(jù)文件加密在船舶故障遠(yuǎn)程診斷系統(tǒng)中的應(yīng)用

這種明文文件加密方案使得明文值加密后仍是可見的值,但已失去了其原始意義,這樣即使管理員或非法用戶得到了該表,也無法判斷這些值是否加密,以及如何加密,因此就無法理解每個(gè)值的真實(shí)含義,從而克服了密文加密在安全性上的不足之處,更有效地保證了關(guān)鍵數(shù)據(jù)的安全性。為了提高文件加密強(qiáng)度,減小破譯的可能性,各記錄可使用不同的加密函數(shù),然后再將所有加密函數(shù)進(jìn)行集中管理。對(duì)于沒必要加密的信息,如油樣編號(hào)、油樣容量、日期等,完全不需要進(jìn)行任何操作,這樣很大程度上提高了數(shù)據(jù)庫檢索效率和系統(tǒng)的使用效能。

為了對(duì)加密數(shù)據(jù)文件進(jìn)行高效查詢,本文設(shè)計(jì)的方法是在原有數(shù)據(jù)表中增加一個(gè)新字段,并存儲(chǔ)該字符數(shù)據(jù)的特征值。查詢時(shí)主要利用該新增字段,首先對(duì)加密數(shù)據(jù)文件進(jìn)行一次粗略查詢,過濾大部分與查詢條件無關(guān)的記錄;然后對(duì)剩余記錄中的加密數(shù)據(jù)文件進(jìn)行解密,在解密的數(shù)據(jù)上再進(jìn)行一次精確查詢,最終實(shí)現(xiàn)查詢目。這樣就大大提高了加密數(shù)據(jù)文件的查詢檢索性能。

小知識(shí)之B/S結(jié)構(gòu)

B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用??蛻魴C(jī)上只要安裝一個(gè)瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務(wù)器安裝Oracle、Sybase、Informix或_SQL Server等數(shù)據(jù)庫。瀏覽器通過Web Server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。