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