摘要:當(dāng)前數(shù)據(jù)是一種重要的資源,同時數(shù)據(jù)安全也非常重要,本文針對數(shù)據(jù)庫存在的安全問題,提出了基于中間件隔離的方法對目標(biāo)數(shù)據(jù)庫進(jìn)行訪問,即用戶不能直接訪問數(shù)據(jù)庫,而是通過中間件解析權(quán)限來間接訪問數(shù)據(jù)庫。對不同的權(quán)限級別設(shè)置不同的保護(hù)方式,讓數(shù)據(jù)庫與客戶端之間隔離連接。
關(guān)鍵詞:中間件;消息通訊;加密
中圖分類號:TP311.13 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 22-0000-02
1 引言
隨著信息管理系統(tǒng)的快速發(fā)展,數(shù)據(jù)庫和計算機(jī)網(wǎng)絡(luò)之間的聯(lián)系和應(yīng)用越來越緊密,而部署在網(wǎng)絡(luò)中的數(shù)據(jù)庫服務(wù)器總是容易被攻擊的對象,因此數(shù)據(jù)庫的安全性越來越重要,對數(shù)據(jù)庫訪問時的安全性要求越來越高?,F(xiàn)在大多數(shù)企業(yè)仍然采用老套的方法來保護(hù)數(shù)據(jù)庫—殺毒軟件,這樣是完全不夠的。從國外的市場來看,基于數(shù)據(jù)庫與中間件的訪問方式已經(jīng)成為主流,能夠提高數(shù)據(jù)訪問量和安全性。
2 中間件技術(shù)
2.1 中間件技術(shù)概述
中間件通常是處于操作系統(tǒng)和應(yīng)用程序之間,中間件最早出現(xiàn)在 1980 年代后期,在 1990年代中期,由于互聯(lián)網(wǎng)的快速發(fā)展,中間件的應(yīng)用日益普及。通常中間件集成在一起,構(gòu)成一個平臺,通過硬件之間互聯(lián)形成各種負(fù)責(zé)分發(fā)和通信中間件。在學(xué)術(shù)界長期、廣泛的研究,定義中間件為系統(tǒng)軟件和應(yīng)用軟件之間的一種起連接作用的軟件,解決異構(gòu)網(wǎng)絡(luò)環(huán)境下分布式應(yīng)用軟件的通信、互操作和協(xié)同等問題,提高應(yīng)用系統(tǒng)的易移植性、適應(yīng)性和可靠性,例如:現(xiàn)在的分布式中間件技術(shù)。在工業(yè)界目前根據(jù)中間件的不同應(yīng)用領(lǐng)域又劃為:事務(wù)式中間件、過程式中間件、面向消息的中間件和面向?qū)ο笾虚g件等,其中基于數(shù)據(jù)庫訪問的中間件是面向消息中間件,必須具備通訊支持,并發(fā)支持和最重要的安全性支持。
2.2 面向消息中間件的關(guān)鍵技術(shù)
消息中間件通過消息交換支持分布應(yīng)用的通信,將應(yīng)用層和底層數(shù)據(jù)分開,但又保證用戶使用時感覺不到中間層的存在的機(jī)制。在網(wǎng)絡(luò)分布式通信時,用戶使用消息中間件發(fā)送消息到服務(wù)器或者請求服務(wù)器執(zhí)行某個服務(wù)。如果發(fā)送的消息是請求服務(wù)的消息,那么中間件將觸發(fā)服務(wù)器,并傳遞參數(shù),當(dāng)服務(wù)器處理完后,根據(jù)請求的消息或者服務(wù)返回一個應(yīng)答消息;在分布式系統(tǒng)中,面向消息中間件有著特有的支持異步的消息傳輸模式,這也很符合現(xiàn)代大型數(shù)據(jù)庫的訪問機(jī)制——具備高效的并行處理能力。用戶將待發(fā)送的消息交給消息中間件,然后可繼續(xù)處理其它業(yè)務(wù),當(dāng)用戶不是實時通訊的時候,消息進(jìn)入消息隊列緩沖,一旦用戶需要消息返回時,就可以在緩沖區(qū)中獲得返回結(jié)果。這種異步消息機(jī)制,松散了客戶與服務(wù)器之間的耦合關(guān)系,提高了系統(tǒng)的伸縮性。此外,消息中間件的另一個特點是支持組通信,即是將同一條消息發(fā)送給多個服務(wù)器或者不同的集群,然后各個服務(wù)器返回消息由中間件組合或者分發(fā),這樣有效實現(xiàn),多對一或者多對多的客戶與服務(wù)器之間的映射關(guān)系;對于中間件的可靠性方面,面向消息中間件實現(xiàn)容錯的主要途徑就是實現(xiàn)消息隊列,該隊列將消息緩存到永久存儲器中從而保證消息的持久性。以上都是消息中間件的優(yōu)點,并且有很多相關(guān)應(yīng)用,如銀行系統(tǒng),數(shù)據(jù)庫訪問系統(tǒng)等,但經(jīng)典的面向消息中間件無自動的安全性控制機(jī)制,因此本文對于訪問安全性要求高的數(shù)據(jù)庫訪問中間件,提出了加密型消息中間件,即不同的安全級別用戶設(shè)置不同的加密機(jī)制,消息隊列中傳送的關(guān)鍵信息通過密文傳送后解密訪問數(shù)據(jù)庫,這樣保證客戶端和數(shù)據(jù)庫端的傳輸數(shù)據(jù)不會被竊取和偽裝。
2.3 數(shù)據(jù)庫與中間件通訊設(shè)計
首先中間件的通訊體系結(jié)構(gòu)是:客戶端與中間件,中間件到數(shù)據(jù)庫都是是直接物理連接,但是客戶端與數(shù)據(jù)庫不能直接連接,而是一個邏輯連接。數(shù)據(jù)庫中間件位于客戶端與數(shù)據(jù)庫之間把二者隔離開來。其次中間件的數(shù)據(jù)通訊機(jī)制是:中間件采用流套接字實現(xiàn)與各個客戶之間的數(shù)據(jù)通訊,多個連接由多個線程完成,其中全部架構(gòu)在中間件服務(wù)器中,服務(wù)器獨立處理多連接多線程,這樣的并發(fā)的通訊機(jī)制使得訪問效率大大提高。最后,數(shù)據(jù)庫訪問控制中間件的通訊關(guān)鍵是中間件與數(shù)據(jù)庫之間的連接,本文采用JDBC連接,多用戶共享一個數(shù)據(jù)連接。同時為了處理這個問題,必須通過一個數(shù)據(jù)連接管理器,連接了中間件和后臺數(shù)據(jù)庫。當(dāng)對數(shù)據(jù)庫的發(fā)出訪問請求,經(jīng)過中間件的數(shù)據(jù)連接管理器尋找可用連接,通過可用連接將請求服務(wù)命令或者消息傳遞到該數(shù)據(jù)庫。然后該數(shù)據(jù)庫執(zhí)行相應(yīng)的命令或者服務(wù),并將結(jié)果通過原來的連接傳送到客戶端。
2.4 數(shù)據(jù)庫與中間件安全設(shè)計
對于中間件安全性,首先約定不同人員設(shè)置不同的操作權(quán)限和方式,系統(tǒng)安全員:管理整個系統(tǒng)的安全等級,增加或刪除主體和客體或者設(shè)置和修改主體和客體的安全級。系統(tǒng)管理員:負(fù)責(zé)維護(hù)系統(tǒng)日常操作,特權(quán)級是可以修改系統(tǒng)安全員的安全級。審計員:操作和管理審計相關(guān)信息,供特權(quán)用戶瀏覽結(jié)果。通過設(shè)置不同人員的權(quán)限級別,在訪問數(shù)據(jù)庫時,中間件需要設(shè)計一些機(jī)制:
(1)增加數(shù)據(jù)安全級等級化。對不同用戶指定不同的安全級別,對數(shù)據(jù)元組附加一個指定的標(biāo)記安全級等級,以便提高不同客戶數(shù)據(jù)的安全性。(2)強(qiáng)制存取控制機(jī)制。強(qiáng)制訪問控制是數(shù)據(jù)安全級等級化的強(qiáng)制訪問控制基礎(chǔ)的,當(dāng)訪問控制權(quán)的安全級等于或高于該文件或者數(shù)據(jù)的可讀寫的安全級時,才能讀寫。在強(qiáng)制存儲控制中設(shè)置了特權(quán)用戶管理,包括命令授權(quán)和特權(quán)管理等一些特權(quán)設(shè)置,系統(tǒng)安全員、管理員和審計員分別擁有自己的特權(quán)用戶權(quán)限,方便系統(tǒng)的交互和糾錯,在客戶訪問系統(tǒng)文件時,系統(tǒng)會根據(jù)各自被授予的權(quán)限行使職權(quán),其原理等同linux系統(tǒng)的權(quán)限機(jī)制。(3)通訊安全加密機(jī)制。為了更安全保障中間件和客戶端的通訊,本文加入分級加密通信機(jī)制,即:常用主體(用戶)設(shè)置高級加密機(jī)制,因為用戶是頻繁訪問數(shù)據(jù)庫,那么這些訪問的數(shù)據(jù)一般是黑客想獲得的,而且在當(dāng)用戶量大的時候,那么黑客偽裝的可能性就更多,因此必須賦予最高的加密通信機(jī)制;安全員和審計員設(shè)置通常的加密機(jī)制,甚至可以不加密,同樣從訪問頻度上可認(rèn)為信息被監(jiān)聽的可能性很低,在此過程中,只需要將安全員和審計員的訪問信息記入日志,就能很好控制訪問的安全性;系統(tǒng)管理員則需要高加密,應(yīng)為系統(tǒng)管理員控制著中間件與數(shù)據(jù)庫訪問的最高權(quán)限,一旦通訊信息丟失,將危機(jī)整個數(shù)據(jù)庫系統(tǒng)。所以形成下圖1的設(shè)計模型。
3 數(shù)據(jù)庫安全訪問實現(xiàn)
3.1 中間件服務(wù)器
現(xiàn)代數(shù)據(jù)庫都基于互聯(lián)網(wǎng),那么中間件必須擁有可并發(fā)性的特性,所以為了解決這一問題,將中間件單獨用一個小型服務(wù)器處理,硬件上主要用解決并發(fā)的IBM小型服務(wù)器。軟件上可以采用unix或者linux作為操作系統(tǒng),tuxedo作為中間件,搭建并發(fā)型通信控制中間件服務(wù)器,用戶通過中間件邏輯連接數(shù)據(jù)庫,同時中間件服務(wù)器判斷用戶權(quán)限,解決數(shù)據(jù)庫并發(fā)連接訪問和記錄用戶各種操作信息到日志文件。
3.2 客戶端和數(shù)據(jù)庫服務(wù)端
客戶端和服務(wù)端在邏輯上和物理上都是對等的,在客戶端與服務(wù)端通信需要加密關(guān)鍵信息,同時服務(wù)端返回的關(guān)鍵信息加密返回到客戶端。在軟硬件上,客戶端和服務(wù)端是根據(jù)實際需求進(jìn)行選擇,可參照文獻(xiàn)[4]。
4 結(jié)束語
在數(shù)據(jù)庫管理系統(tǒng)引入中間件通訊,是提高國內(nèi)部署在互聯(lián)網(wǎng)的數(shù)據(jù)庫系統(tǒng)安全性的關(guān)鍵技術(shù)。本文基于近幾年中間件發(fā)展基礎(chǔ),提出了數(shù)據(jù)庫安全訪問控制通訊中間件,并將加密機(jī)制運(yùn)用到中間件通訊機(jī)制中,賦予信息的安全級級別,使對數(shù)據(jù)庫訪問和通訊都提高安全等級。
參考文獻(xiàn):
[1]徐晶,許煒.消息中間件綜述[J].計算機(jī)工程,2005.31(16),73-76.
[2]張云勇、張智江,中間件技術(shù)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2004.
[3]Vinoski, S. An Overview of Middleware, A. Llamosf and A. St rohmeier (Eds.): Ada-Europ 2004,LNCS 3063,pp.35-51,2004.
[4]侯廷剛.服務(wù)器搭建與管理.北京:清華大學(xué)出版社,2011.