現(xiàn)在大部分研究主要集中在數(shù)據(jù)庫基礎(chǔ)設(shè)施安全,也就是存儲、管理和服務(wù)數(shù)據(jù)的引擎。但我們常常忘了,攻擊者的目標(biāo)是數(shù)據(jù)。事實(shí)上,企業(yè)應(yīng)該更多地專注于保護(hù)數(shù)據(jù),而不是擔(dān)心數(shù)據(jù)庫系統(tǒng)。
當(dāng)你聽到“數(shù)據(jù)庫加密”時,你會想到什么?加密靜態(tài)數(shù)據(jù)?也許你想到加密的數(shù)據(jù)庫備份,或者對數(shù)據(jù)庫的互聯(lián)網(wǎng)連接。事實(shí)上,數(shù)據(jù)庫加密包括所有這些因素。從安全性、成本和性能方面來看,數(shù)據(jù)庫加密有一些不同的類型。
應(yīng)用層加密
正如它的名字所暗示的,應(yīng)用層加密是由使用數(shù)據(jù)庫來存儲信息的應(yīng)用程序來執(zhí)行。應(yīng)用程序開發(fā)人員通常在發(fā)送數(shù)據(jù)到數(shù)據(jù)庫之前,會利用第三方加密庫來加密數(shù)據(jù),當(dāng)從數(shù)據(jù)庫中讀取數(shù)據(jù)時再進(jìn)行解密。
這種加密方法有幾個有點(diǎn),數(shù)據(jù)和加密密鑰不是存儲在數(shù)據(jù)庫,這樣,平臺或者數(shù)據(jù)庫管理員都不能訪問它們。此外,應(yīng)用程序開發(fā)人員來決定加密的數(shù)據(jù),以及細(xì)粒度的水平。
不過,這種方法也存在缺點(diǎn):很難將應(yīng)用層的加密調(diào)整用于傳統(tǒng)應(yīng)用程序;每個讀取和寫入操作(SQL查詢)的數(shù)據(jù)庫必須使用加密,這需要巨大的成本來開發(fā)和測試。此外,對于加密的數(shù)據(jù),企業(yè)不能使用一些數(shù)據(jù)庫功能,例如索引。由于加密輸出是隨機(jī)的,加密數(shù)據(jù)元素的排序也將是隨機(jī)的。
最后,加密的數(shù)據(jù)通常是二進(jìn)制格式,這意味著表格必須重構(gòu)為接受二進(jìn)制,而不是傳統(tǒng)的文本、數(shù)據(jù)或貨幣數(shù)值??傊瑧?yīng)用層加密提供最高的安全性,同時需要付出最高的成本和部署時間。
本地?cái)?shù)據(jù)庫對象加密
所有主流關(guān)系型數(shù)據(jù)庫供應(yīng)商都會提供一種或者多種類型的加密,首先,我們稱之為“本地?cái)?shù)據(jù)庫對象加密”,因?yàn)榧用芤嫖挥跀?shù)據(jù)庫內(nèi)部。加密屬于數(shù)據(jù)庫代碼的一部分,你可以將其配置為保護(hù)特定的數(shù)據(jù)庫對象(例如表格和模式)。密鑰保存在數(shù)據(jù)庫內(nèi)部,在系統(tǒng)表格中,這樣當(dāng)重新啟動時,它們也可以訪問到數(shù)據(jù)庫。
本地對象加密的優(yōu)勢是,它是完全自足的加密方法。這種方法對于媒體加密很有效,因?yàn)樵趶?fù)制到存儲驅(qū)動器或磁帶備份之前,數(shù)據(jù)已經(jīng)被加密了。
更多信息請查看IT技術(shù)專欄