數(shù)據(jù)庫加密實(shí)現(xiàn)方式有哪些?(二)


數(shù)據(jù)庫加密

(一)庫內(nèi)擴(kuò)展加密

通過使用視圖、觸發(fā)器、擴(kuò)展索引等機(jī)制,實(shí)現(xiàn)透明加密。由于引入了獨(dú)立于數(shù)據(jù)庫的第三方程序,通過控制加密解密的權(quán)限,增加了額外的訪問控制。對于數(shù)據(jù)庫內(nèi)不同的用戶,也可以控制其對加密數(shù)據(jù)的訪問。但是這種加密方式不能越過應(yīng)用系統(tǒng),實(shí)現(xiàn)應(yīng)用系統(tǒng)用戶對敏感數(shù)據(jù)的訪問控制。而且這種加密方式依賴于數(shù)據(jù)庫系統(tǒng)的擴(kuò)展索引機(jī)制,并不能在所有數(shù)據(jù)庫上實(shí)現(xiàn)。

(二)數(shù)據(jù)庫加密網(wǎng)關(guān)或加密驅(qū)動

通過對數(shù)據(jù)庫前端部署數(shù)據(jù)庫加密網(wǎng)關(guān),或者通過擴(kuò)展數(shù)據(jù)庫訪問驅(qū)動(如JDBC驅(qū)動)實(shí)現(xiàn)數(shù)據(jù)庫加密。這種方式理論上能夠支持所有的數(shù)據(jù)庫,是一種通用的解決方案,且安全性更高。但是對于所有訪問語句和訪問機(jī)制卻難以全部支持,例如對于網(wǎng)關(guān)之后的存儲過程和觸發(fā)器都無法支持。

(三)應(yīng)用加密網(wǎng)關(guān)

在應(yīng)用系統(tǒng)之前放置加密網(wǎng)關(guān),進(jìn)一步將數(shù)據(jù)加密的位置提前,在數(shù)據(jù)進(jìn)入應(yīng)用系統(tǒng)之前進(jìn)行加密。這種加密方式可以控制應(yīng)用系統(tǒng)的用戶對數(shù)據(jù)的訪問權(quán)限,并且真實(shí)數(shù)據(jù)對所有數(shù)據(jù)庫用戶都是不可見的,是最安全的一種加密方式。事實(shí)上,這種加密方式與具體的數(shù)據(jù)庫無關(guān),是對立與數(shù)據(jù)庫的。但是由于應(yīng)用系統(tǒng)的復(fù)雜性,實(shí)現(xiàn)的難度也較大。

總之,數(shù)據(jù)被加密的位置離用戶越近,安全性越高,同時實(shí)現(xiàn)的難度也越大。以上所述的幾種加密方式,數(shù)據(jù)加密的位置離用戶是逐步靠近的,防護(hù)能力也是逐步提升的。