航空專用網(wǎng)環(huán)境Web數(shù)據(jù)庫加密技術(shù)

在航空產(chǎn)品的研制過程中,需要多個(gè)航空研究所和企業(yè)共同參與研制和設(shè)計(jì),各參研單位需要在航空專用網(wǎng)絡(luò)環(huán)境通過Web模式交換和共享數(shù)據(jù)庫中保密級(jí)別非常高的數(shù)據(jù)。因此,航空專用網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)庫的安全是至關(guān)重要的。航空專用網(wǎng)絡(luò)環(huán)境Web數(shù)據(jù)庫中的數(shù)據(jù),在應(yīng)用程序?qū)?shù)據(jù)庫訪問之前進(jìn)行加密處理,即數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行加密存儲(chǔ),非法用戶即使獲得了數(shù)據(jù)庫中的數(shù)據(jù),也無法使用,從而提高數(shù)據(jù)庫的安全性。

一、數(shù)據(jù)庫加密的方法

對(duì)數(shù)據(jù)庫進(jìn)行加密處理應(yīng)滿足下列基本要求:加密后的數(shù)據(jù)仍然存放在數(shù)據(jù)庫系統(tǒng)中;加密后的數(shù)據(jù)庫,其操作仍然是可行和有效的,合法用戶對(duì)數(shù)據(jù)庫的訪問,其效率不受明顯影響,嚴(yán)格的身份認(rèn)證,使非法用戶不能對(duì)加密數(shù)據(jù)進(jìn)行正確訪問。為滿足上述要求,在對(duì)數(shù)據(jù)庫進(jìn)行加密時(shí)。需考慮并解決下面幾個(gè)問題。

1、Web 數(shù)據(jù)加密層次 

對(duì)數(shù)據(jù)庫進(jìn)行加密,可在軟件的各個(gè)層次上進(jìn)行,主要有操作系統(tǒng)層、DBMS內(nèi)核層和DBMS外圍層。在操作系統(tǒng)層實(shí)現(xiàn)加密,由于無法辨認(rèn)數(shù)據(jù)庫文件中數(shù)據(jù)之間的關(guān)系,因而無法根據(jù)數(shù)據(jù)關(guān)系進(jìn)行加密,只能對(duì)整個(gè)數(shù)據(jù)庫文件加密,這對(duì)于大型數(shù)據(jù)庫是沒有實(shí)際意義的。

在DBMS內(nèi)核層實(shí)現(xiàn)加密,數(shù)據(jù)的加密和解密過程可以在物理存取之前完成。從而不影響數(shù)據(jù)庫的各種操作,并且加密效率高,但需要有DBMS廠商提供的DBMS內(nèi)核接口的支持,而DBMS廠商都不提供這方面技術(shù)支持,所以實(shí)現(xiàn)非常困難。

在DBMS的外圍層實(shí)現(xiàn)加密是將數(shù)據(jù)庫加密系統(tǒng)作為DBMS的一個(gè)外層工具,在實(shí)現(xiàn)時(shí)既可以充分考慮數(shù)據(jù)庫中的各種數(shù)據(jù)關(guān)系,又不需要開發(fā)商的支持,是一種切實(shí)可行的加密方法。

2、加密粒度 

加密粒度是指數(shù)據(jù)庫加密的最小單位,數(shù)據(jù)庫加密的粒度有文件、記錄、字段和數(shù)據(jù)項(xiàng)。加密單位越小,靈活性越強(qiáng),使用范圍越廣,但實(shí)現(xiàn)難度越大。

文件級(jí)加密實(shí)現(xiàn)簡(jiǎn)單,但嚴(yán)重影響效率,尤其是系統(tǒng)的并發(fā)度下降。

數(shù)據(jù)項(xiàng)加密,靈活性最高,但實(shí)現(xiàn)技術(shù)最復(fù)雜,同樣影響數(shù)據(jù)庫操作的效率。

記錄加密是對(duì)一個(gè)完整的一行記錄進(jìn)行加密與解密,實(shí)現(xiàn)相對(duì)簡(jiǎn)單,這是因?yàn)殛P(guān)鍵字、索引等技術(shù)都是針對(duì)記錄行的,數(shù)據(jù)存儲(chǔ)是通過索引實(shí)現(xiàn)的,而索引是對(duì)應(yīng)表中的行進(jìn)行組織的,即在索引中,每行都映射一個(gè)索引值,并且對(duì)數(shù)據(jù)庫的操作大多數(shù)都是針對(duì)記錄行進(jìn)行的,所以這里實(shí)現(xiàn)的是記錄級(jí)加密。

3、加密算法 

數(shù)據(jù)庫中存儲(chǔ)大量數(shù)據(jù),并且數(shù)據(jù)之間存在確定的邏輯關(guān)系。因此,對(duì)數(shù)據(jù)庫中的數(shù)據(jù)的加密算法應(yīng)滿足如下要求:

數(shù)據(jù)庫加密后,數(shù)據(jù)量不應(yīng)明顯增加;攻擊者僅依據(jù)數(shù)據(jù)量的邏輯關(guān)系破解數(shù)據(jù)庫中的加密數(shù)據(jù)是十分困難的;某一記錄加密后;其長(zhǎng)度不變,加、解密速度要足夠快,數(shù)據(jù)操作響應(yīng)時(shí) 間應(yīng)該讓用戶能夠接受。

4、數(shù)據(jù)庫加密的限制 

數(shù)據(jù)庫中數(shù)據(jù)表與數(shù)據(jù)表之間,字段與字段之間常常存在著密切的聯(lián)系,為了加速查詢,需要建立索引,許多操作都帶有條件選擇,而條件中的選擇項(xiàng)必須是明文,在對(duì)數(shù)據(jù)庫加密時(shí),要充分考慮這些條件。由于被索引項(xiàng)和條件選擇項(xiàng)的保密級(jí)別低或者無需保密,在這里對(duì)它們不進(jìn)行加密。這樣,對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行加密,對(duì)上述限制條件不加密,不會(huì)影響應(yīng)用程序中的SQL語句對(duì)數(shù)據(jù)庫進(jìn)行操作。

二、航空專用網(wǎng)數(shù)據(jù)庫加密的系統(tǒng)結(jié)構(gòu)與實(shí)現(xiàn)

1、航空專用網(wǎng)基于B/S模式的數(shù)據(jù)庫加密系統(tǒng)結(jié)構(gòu)

基于B/S模式的網(wǎng)絡(luò)信息系統(tǒng),其應(yīng)用程序都在服務(wù)器端,客戶端只需要瀏覽器,不需要開發(fā)專用的應(yīng)用程序,用戶通過瀏覽器實(shí)現(xiàn)與服務(wù)器的信息傳輸和訪問。

數(shù)據(jù)加密在Web服務(wù)器與后臺(tái)數(shù)據(jù)庫之間實(shí)現(xiàn),這樣既簡(jiǎn)單可行又不影響訪問速度及系統(tǒng)執(zhí)行的效率,數(shù)據(jù)庫加密系統(tǒng)結(jié)構(gòu)如圖所示。

航空專用網(wǎng)環(huán)境Web數(shù)據(jù)庫加密技術(shù)加密系統(tǒng)處于ASP和ADO/ODBC中間,通常所稱的中間件,在這里是指ASP+ADO/ODBC。當(dāng)瀏覽器以HTTP協(xié)議的數(shù)據(jù)訪問請(qǐng)求達(dá)到Web服務(wù)器端時(shí),加密系統(tǒng)截取ASP對(duì)數(shù)據(jù)庫的訪問,如果是數(shù)據(jù)輸入,將數(shù)據(jù)加密后提交給 ADO/ODBC,最后數(shù)據(jù)以加密的形式存儲(chǔ)在數(shù)據(jù)庫中。如果是數(shù)據(jù)查詢,由ADO/ODBC讀出后,將加密的數(shù)據(jù)解密后提交給ASP,從而起到安全作用。本系統(tǒng)對(duì)有安全要求的數(shù)據(jù)進(jìn)行加密、解密處理,如果數(shù)據(jù)的保密程度低或者是無安全要求的數(shù)據(jù),系統(tǒng)不做加密處理,將訪問無保密或公開的數(shù)據(jù)的請(qǐng)求旁路掉。即使黑客闖入系統(tǒng)內(nèi),繞過安全系統(tǒng)通過ADO/ODBC訪問被加密的保密數(shù)據(jù),由于無法得到加密方法和密鑰而無法解密。

2、航空專用網(wǎng)加密系統(tǒng)實(shí)現(xiàn)

(1)加密系統(tǒng)軟件結(jié)構(gòu)

航空專用網(wǎng)環(huán)境Web數(shù)據(jù)庫加密技術(shù)

加密系統(tǒng)軟件由4部分組成,分別是用戶驗(yàn)證、訪問控制、加密、解密引擎和訪問列表,前3個(gè)部分的功能分別由3個(gè)模塊實(shí)現(xiàn)。

(2)用戶驗(yàn)證

當(dāng)建立一個(gè)新的數(shù)據(jù)庫用戶時(shí),將該用戶名存入訪問列表中,系統(tǒng)使用random對(duì)象隨機(jī)生成一個(gè)64位二進(jìn)制數(shù)據(jù)作為用戶密鑰,對(duì)用戶口令進(jìn)行加密,加密后的口令放在密鑰數(shù)據(jù)庫中。當(dāng)該用戶初始訪問數(shù)據(jù)庫時(shí),由該模塊將該用戶名在訪問列表中進(jìn)行匹配,匹配成功,則將加密的口令從密鑰數(shù)據(jù)庫取出與當(dāng)前用戶交互的口令比較,一致后往下進(jìn)行。

(3)訪問控制

訪問控制完成對(duì)數(shù)據(jù)庫安全操作,根據(jù)安全條件、狀態(tài)、權(quán)限和操作類型決定加密、解密等操作。

當(dāng)一個(gè)數(shù)據(jù)庫用戶創(chuàng)建一個(gè)數(shù)據(jù)表時(shí),該用戶把允許訪問該表的用戶名、允許訪問的方式如查詢、插入、刪除、修改等存入到訪問列表中。在插入數(shù)據(jù)時(shí),除主關(guān)鍵字、索引項(xiàng)、條件選擇項(xiàng)外,其它數(shù)據(jù)項(xiàng)通過調(diào)用加密、解密引擎進(jìn)行加密,然后存入到數(shù)據(jù)庫中。

對(duì)于允許訪問該數(shù)據(jù)表權(quán)限的其它用戶對(duì)該數(shù)據(jù)表進(jìn)行查詢時(shí),通過正常的選擇語句找到相應(yīng)行后,將被加密的各數(shù)據(jù)項(xiàng)通過調(diào)用加密、解密引擎后解密成明文,傳輸給用戶。

如果是插入記錄,與數(shù)據(jù)庫擁有者相同,其處理方法與上述基本相同,區(qū)別是到訪問列表中驗(yàn)證是否擁有數(shù)據(jù)庫插入權(quán)限。修改操作是先從列表中驗(yàn)證權(quán)限,通過后調(diào)用加密解密引擎將修改后的加密數(shù)據(jù)存入數(shù)據(jù)表中。刪除操作只需驗(yàn)證權(quán)限,如果驗(yàn)證通過即可刪除,不用調(diào)用加密、解密引擎。

當(dāng)創(chuàng)建一個(gè)數(shù)據(jù)表時(shí),系統(tǒng)用random對(duì)象自動(dòng)產(chǎn)生一個(gè)數(shù)據(jù)密鑰,該數(shù)據(jù)密鑰由用戶密鑰加密后也存入密鑰數(shù)據(jù)庫。對(duì)記錄加密只需數(shù)據(jù)密鑰,需要解密時(shí)需要有數(shù)據(jù)密鑰。要獲得數(shù)據(jù)密鑰,必須要獲得用戶密鑰,只有輸入正確的用戶口令即可獲得用戶密鑰。

(4)加密、解密引擎

加密、解密引擎是實(shí)現(xiàn)數(shù)據(jù)庫中數(shù)據(jù)加密與解密功能的,是系統(tǒng)的核心部件,對(duì)于保密的數(shù)據(jù),必須調(diào)用它來實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密與解密。由于數(shù)據(jù)庫對(duì)數(shù)據(jù)訪問的響應(yīng)時(shí)間要求很短,對(duì)大量數(shù)據(jù)的加密,尤其是解密的處理時(shí)間要短,為此選擇了加密速度較快的DES算法。選擇DES的另一個(gè)重要原因是它為單密鑰(對(duì)稱密鑰),本系統(tǒng)是一個(gè)系統(tǒng)內(nèi)部及一個(gè)模塊內(nèi)進(jìn)行加密與解密,只需一個(gè)密鑰即可,這一點(diǎn)不同于2個(gè)用戶在網(wǎng)絡(luò)上傳輸數(shù)據(jù)時(shí)的加密機(jī)制。

(5)訪問列表

訪問列表的全稱是訪問控制列表,其存儲(chǔ)內(nèi)容為用戶名、口令的明文、允許訪問的數(shù)據(jù)庫和數(shù)據(jù)表、數(shù)據(jù)庫和數(shù)據(jù)表的訪問權(quán)限、當(dāng)前用戶數(shù)據(jù)庫的安全條件和狀態(tài)等信息。訪問列表對(duì)應(yīng)密鑰數(shù)據(jù)庫中的一個(gè)表安全系統(tǒng)的加密密鑰也以一個(gè)數(shù)據(jù)表的形式存儲(chǔ)在密鑰數(shù)據(jù)庫中。由于使用用戶密鑰和數(shù)據(jù)密鑰已經(jīng)達(dá)到系統(tǒng)的安全要求,訪問列表中的數(shù)據(jù)以明文的形式存儲(chǔ)。

(6)系統(tǒng)性能測(cè)試

系統(tǒng)性能測(cè)試分別在無加密系統(tǒng)和使用本加密系統(tǒng)進(jìn)行,每次測(cè)試時(shí)對(duì)數(shù)據(jù)庫訪問了40次,訪問操作包括查詢、插入、刪除和修改,各占10次,對(duì)40次的訪問時(shí)間取平均值,測(cè)試結(jié)果如表 所示:

航空專用網(wǎng)環(huán)境Web數(shù)據(jù)庫加密技術(shù)

測(cè)試結(jié)果表明,增加了本加密系統(tǒng)后,在數(shù)據(jù)安全性提高的同時(shí),系統(tǒng)的響應(yīng)時(shí)間與不加密相比是完全可以接受。

航空專用網(wǎng)環(huán)境下系統(tǒng)數(shù)據(jù)庫中的敏感數(shù)據(jù)經(jīng)加密系統(tǒng)處理后,變成形式上無規(guī)則的亂碼,即使非法使用者竊取了數(shù)據(jù)庫文件后,仍然難以得到所需的信息。由于密鑰管理采用了二級(jí)加密機(jī)制,無論是數(shù)據(jù)密鑰還是用戶密鑰都是以加密形式存儲(chǔ)的因此即使非法用戶打開了數(shù)據(jù)庫,也無法解密用戶密鑰,更不可能得到數(shù)據(jù)密鑰,無法對(duì)加密數(shù)據(jù)進(jìn)行解密。

小知識(shí)之Web數(shù)據(jù)庫

Web數(shù)據(jù)庫屬于深度Web(Deep Web)的一種資源形勢(shì),通常指在互聯(lián)網(wǎng)中以Web查詢接口方式訪問的數(shù)據(jù)庫資源,其結(jié)構(gòu)是后臺(tái)采用數(shù)據(jù)庫管理系統(tǒng)存儲(chǔ)數(shù)據(jù)信息,對(duì)外提供包含表單的Web頁面作為訪問接口,查詢結(jié)果也以包含數(shù)據(jù)列表的Web頁面形式返回給用戶。