蘇州建設(shè)交通高等職業(yè)技術(shù)學(xué)校 李 慧
內(nèi)存數(shù)據(jù)庫加密層次分析與方案選擇
蘇州建設(shè)交通高等職業(yè)技術(shù)學(xué)校 李 慧
數(shù)據(jù)庫系統(tǒng)擔(dān)負(fù)著存儲(chǔ)和管理信息的任務(wù),集中存放著大量數(shù)據(jù),而且又為眾多用戶直接共享。泄露或破壞這些信息將會(huì)造成企業(yè)癱瘓,給國家?guī)砭薮蟮膿p失,甚至危及國家安全,需要采取適當(dāng)?shù)拇胧┻M(jìn)行數(shù)據(jù)庫內(nèi)數(shù)據(jù)的防護(hù)。保證數(shù)據(jù)安全性的最好方法是數(shù)據(jù)加密。因此,開發(fā)安全、可靠的數(shù)據(jù)庫加密系統(tǒng)已迫在眉睫。
根據(jù)數(shù)據(jù)庫的結(jié)構(gòu)可知,實(shí)現(xiàn)數(shù)據(jù)庫的加密可以從三個(gè)層次考慮:OS(Operating System,操作系統(tǒng))操作系統(tǒng)層、DBMS (Database Management System,數(shù)據(jù)庫管理系統(tǒng))內(nèi)核層和DBMS 外層。
1.在OS層加密。從操作系統(tǒng)的角度來看,OS 層位于DBMS層之下,所以無法辨認(rèn)數(shù)據(jù)庫文件中的數(shù)據(jù)關(guān)系,也就無法合理地產(chǎn)生、管理和使用密鑰。因此,在OS 層對(duì)數(shù)據(jù)庫文件進(jìn)行加密,對(duì)于大型數(shù)據(jù)庫來說,目前還難以實(shí)現(xiàn)。
2.在DBMS內(nèi)核層加密。在DBMS 內(nèi)核層實(shí)現(xiàn)加密,是指數(shù)據(jù)在物理存取之前完成加(解)密工作。這種方式的優(yōu)點(diǎn)是加密功能強(qiáng),并且加密功能幾乎不會(huì)影響其他功能;缺點(diǎn)是在服務(wù)器端進(jìn)行加(解)密運(yùn)算,加重了數(shù)據(jù)庫服務(wù)器的負(fù)載,并且因?yàn)榧樱ń猓┟苁窃趦?nèi)核中完成,就勢(shì)必需要數(shù)據(jù)庫供應(yīng)商對(duì)其進(jìn)行技術(shù)支持,這一點(diǎn)不容易實(shí)現(xiàn)。DBMS 內(nèi)核層加密關(guān)系如圖1所示。
圖1 DBMS內(nèi)核層加密關(guān)系
3.在DBMS外層加密。DBMS外層實(shí)現(xiàn)加密在安全層實(shí)現(xiàn)加密就是將數(shù)據(jù)庫加密系統(tǒng)做成一個(gè)安全層工具。采用這種加密方法的優(yōu)點(diǎn)是可擴(kuò)充性強(qiáng),數(shù)據(jù)庫的加解密系統(tǒng)可以做成一個(gè)獨(dú)立平臺(tái),不需要數(shù)據(jù)庫供應(yīng)商進(jìn)行技術(shù)支持,并且可以將加密密文直接在網(wǎng)上傳輸;缺點(diǎn)是數(shù)據(jù)庫的功能和查詢效率會(huì)受一些限制。DBMS外層加密關(guān)系如圖2所示。
圖2 DBMS外層加密關(guān)系
數(shù)據(jù)庫數(shù)據(jù)的存儲(chǔ)加密、解密處理可以在數(shù)據(jù)庫系統(tǒng)的不同層次實(shí)現(xiàn),分別形成以下方案。
1.添加加密定義接口和處理模塊,以及對(duì)數(shù)據(jù)加解密軟件或硬件的調(diào)用接口。由于該方案的實(shí)現(xiàn)需要修改DBMS源代碼,而我國目前使用的數(shù)據(jù)庫管理系統(tǒng)大多數(shù)是國外開發(fā)的,無法獲得源代碼,該方案受條件限制難以實(shí)現(xiàn)。另外,由于內(nèi)核級(jí)加密勢(shì)必增加服務(wù)器的負(fù)載(尤其是使用硬件加密),在多用戶環(huán)境中將影響系統(tǒng)整體效率。因此,可以先由應(yīng)用程序調(diào)用執(zhí)行加密運(yùn)算的軟件或硬件實(shí)現(xiàn)數(shù)據(jù)明密轉(zhuǎn)換,然后將加密文傳遞給數(shù)據(jù)管理系統(tǒng)存儲(chǔ)。該方案的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,不需要在系統(tǒng)軟件層(如DBMS層和OS層)進(jìn)行任何修改工作。但該缺點(diǎn)是應(yīng)用不透明,每個(gè)需要數(shù)據(jù)加(解)密的應(yīng)用都要處理數(shù)據(jù)加(解)密運(yùn)算調(diào)用、數(shù)據(jù)類型轉(zhuǎn)換等工作,增加了應(yīng)用開發(fā)的復(fù)雜度和難度。另外,由于數(shù)據(jù)類型轉(zhuǎn)換模塊難以插入應(yīng)用開發(fā)工具中,將會(huì)造成開發(fā)工具中的一些功能失效,這對(duì)于圖形界面的應(yīng)用開發(fā)來說也是極大的損失。
2.利用應(yīng)用接口層,在數(shù)據(jù)庫應(yīng)用和內(nèi)核之間增加加(解)密功能模塊。該方案避免了修改內(nèi)核時(shí)的應(yīng)用開發(fā),具有較高的透明度,同時(shí)可以實(shí)現(xiàn)客戶端加密、解密,對(duì)數(shù)據(jù)庫系統(tǒng)整體影響較小??蛻簦ǚ?wù)器)模式最大的優(yōu)越性就是合理分擔(dān)計(jì)算,因此一些應(yīng)由服務(wù)器端DBMS內(nèi)核完成的處理(如視圖處理),不應(yīng)該放置在客戶端完成。
3.對(duì)磁盤塊進(jìn)行加密,實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)加密。例如軟件移動(dòng)存儲(chǔ)加密王,它的特點(diǎn)是能夠?qū)Υ鎯?chǔ)在里面的數(shù)據(jù)進(jìn)行加密,從而保證數(shù)據(jù)不被非法盜用。但是,這種加密必須由軟件輔助完成,在安裝完移動(dòng)硬盤的驅(qū)動(dòng)之后,再安裝一個(gè)加密管理軟件就可以實(shí)現(xiàn)。加密是通過在特定的硬盤分區(qū)里生成加密防衛(wèi)區(qū)實(shí)現(xiàn)的,只有提供了正確的密碼,才可以讀取存儲(chǔ)在其中的數(shù)據(jù)。因此,該方案適于保證移動(dòng)硬盤的攜帶安全,保證備份數(shù)據(jù)的安全,但是對(duì)于大數(shù)據(jù)量、頻繁訪問的應(yīng)用來說是不合適的。
數(shù)據(jù)庫系統(tǒng)安全框架的三個(gè)層次是相輔相成的,各層次的防范重點(diǎn)和所采取的技術(shù)手段也不盡相同,一個(gè)好的安全系統(tǒng)必須綜合考慮核運(yùn)用這些技術(shù),以保證數(shù)據(jù)的安全。