數(shù)據(jù)庫加密技術(shù)對比
數(shù)據(jù)庫加密是基于存儲(chǔ)層加密的防護(hù)方式,不僅可以有效解決數(shù)據(jù)庫明文存儲(chǔ)引起的泄密風(fēng)險(xiǎn),也可以防止來自內(nèi)部或者外部的入侵及越權(quán)訪問行為。
前置代理及加密網(wǎng)關(guān)技術(shù)
該技術(shù)思路是在數(shù)據(jù)庫之前增加一道安全代理服務(wù).安全代理服務(wù)存在于客戶端應(yīng)用與數(shù)據(jù)庫存儲(chǔ)引擎之間,負(fù)責(zé)完成庫中數(shù)據(jù)的加解密工作,加密數(shù)據(jù)存儲(chǔ)在安全代理服務(wù)中。這種技術(shù)也會(huì)存在一些問題和限制:
1、由于在安全增強(qiáng)代理中需要存儲(chǔ)加密數(shù)據(jù),因此要解決與數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的一致性問題,這基本不可實(shí)現(xiàn)。
2、數(shù)據(jù)的聯(lián)合檢索問題:由于在數(shù)據(jù)庫內(nèi)外都存在數(shù)據(jù),這些數(shù)據(jù)的聯(lián)合檢索將變得很困難;SQL語法的完全兼容也非常困難。
3、開發(fā)無法透明問題:數(shù)據(jù)庫協(xié)議雖然存在標(biāo)準(zhǔn),但事實(shí)上每個(gè)不同的數(shù)據(jù)庫版本都會(huì)進(jìn)行若干變更、擴(kuò)展和增強(qiáng),使用了這些特性的用戶必須進(jìn)行改造。同時(shí)在安全代理中對數(shù)據(jù)庫通訊協(xié)議的模擬非常困難。
應(yīng)用層加密技術(shù)
應(yīng)用層加密的主要技術(shù)原理在于,應(yīng)用系統(tǒng)通過加密API(JDBC,ODBC,C API等)對敏感數(shù)據(jù)進(jìn)行加密,將加密數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫的底層文件中;在進(jìn)行數(shù)據(jù)檢索時(shí),將密文數(shù)據(jù)取回客戶端,再進(jìn)行解密。另外應(yīng)用系統(tǒng)將自行管理密鑰體系。
這種方案也存在明顯缺陷,最主要的不足在于,應(yīng)用程序必須對數(shù)據(jù)進(jìn)行加解密,增加編程復(fù)雜度,而且無法對現(xiàn)有的系統(tǒng)做到透明,應(yīng)用程序必須進(jìn)行大規(guī)模的改造。
基于視圖和觸發(fā)器的后置代理技術(shù)
這種技術(shù)使用“視圖”+“觸發(fā)器”+“擴(kuò)展索引”+“外部調(diào)用”的方式實(shí)現(xiàn)數(shù)據(jù)加密,同時(shí)保證應(yīng)用完全透明。它的核心思想是充分利用數(shù)據(jù)庫自身提供的應(yīng)用定制擴(kuò)展能力,分別使用其觸發(fā)器擴(kuò)展能力、索引擴(kuò)展能力、自定義函數(shù)擴(kuò)展能力以及視圖等技術(shù)來滿足數(shù)據(jù)存儲(chǔ)加密,加密后數(shù)據(jù)檢索,對應(yīng)用無縫透明等最主要需求。這種方案的技術(shù)原理主要有以下四個(gè)方面
1、通過視圖實(shí)現(xiàn)加密數(shù)據(jù)透明查詢處理
數(shù)據(jù)庫的視圖可以實(shí)現(xiàn)對表內(nèi)數(shù)據(jù)的過濾、投影、聚集、關(guān)聯(lián)和函數(shù)運(yùn)算。該方案正是通過數(shù)據(jù)庫的視圖原理實(shí)現(xiàn)對數(shù)據(jù)的透明訪問;首先對將原有的表進(jìn)行改名,然后在該表上建立與原表同名的視圖;在視圖內(nèi)實(shí)現(xiàn)對敏感列的解密函數(shù)調(diào)用,實(shí)現(xiàn)數(shù)據(jù)的解密。
2、通過觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)的加密插入和更新處理
數(shù)據(jù)庫中的觸發(fā)器可以實(shí)現(xiàn)對數(shù)據(jù)更新動(dòng)作的特定行為的響應(yīng),同時(shí)數(shù)據(jù)庫中可以支持針對視圖的觸發(fā)器。這種方案在建立的視圖上建立Instead of觸發(fā)器,通過Instead of觸發(fā)器實(shí)現(xiàn)對明文數(shù)據(jù)的加密,將加密數(shù)據(jù)插入到表中。
3、通過數(shù)據(jù)庫的擴(kuò)展索引接口實(shí)現(xiàn)加密索引
4、通過外部接口調(diào)用實(shí)現(xiàn)獨(dú)立于數(shù)據(jù)庫的權(quán)限控制和國產(chǎn)加密算法
在實(shí)現(xiàn)透明加密訪問和高效索引訪問之外,另一重要目的是實(shí)現(xiàn)對國產(chǎn)加密算法的調(diào)用和獨(dú)立于數(shù)據(jù)庫的權(quán)限控制。實(shí)現(xiàn)這一目的的技術(shù)關(guān)鍵是外部程序調(diào)用和外部通訊支持。在數(shù)據(jù)庫中支持外部程序調(diào)用,只要定義好通訊接口即可。









