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