摘 要:數(shù)據(jù)庫(kù)技術(shù)的不斷發(fā)展與應(yīng)用,促使數(shù)據(jù)庫(kù)在安全方面具有較大隱患。目前,對(duì)于數(shù)據(jù)庫(kù)的安全保障主要是控制訪問(wèn),若訪問(wèn)控制無(wú)效,則整個(gè)數(shù)據(jù)庫(kù)的安全無(wú)法保障。因此,數(shù)據(jù)庫(kù)加密技術(shù)則成為了保障其安全的重要方法之一。本文主要對(duì)數(shù)據(jù)庫(kù)加密的幾種方法進(jìn)行了分析,并比較其優(yōu)點(diǎn)與不足之處。
關(guān)鍵詞:數(shù)據(jù)庫(kù);加密技術(shù);比較
中圖分類(lèi)號(hào):TP393.092
1 數(shù)據(jù)庫(kù)加密技術(shù)
數(shù)據(jù)庫(kù)加密技術(shù)是將數(shù)據(jù)庫(kù)中人們能夠看懂的數(shù)據(jù)信息轉(zhuǎn)化為無(wú)法識(shí)別的數(shù)據(jù)信息,從而有效避免數(shù)據(jù)外泄。其中,需要加密的數(shù)據(jù)統(tǒng)稱為明文,而經(jīng)過(guò)轉(zhuǎn)變之后,人們無(wú)法看懂的信息則是密文,兩者的轉(zhuǎn)化規(guī)則即為加密。一般情況下,加密和解密都是在密鑰管理中被控制的。
通常,對(duì)系統(tǒng)加密時(shí)可從三個(gè)層次進(jìn)行:(1)數(shù)據(jù)庫(kù)操作系統(tǒng)層加密。即對(duì)系統(tǒng)文件直接加密,只需要添加一個(gè)中間層,就能夠?qū)崿F(xiàn)加密要求。此方法需要進(jìn)行數(shù)據(jù)庫(kù)的加密或者解密操作,可靠性較低。此外,由于無(wú)法生成有效的密鑰,也就無(wú)法對(duì)密鑰進(jìn)行管理控制。因此,此方法只適用于小型數(shù)據(jù)庫(kù),而加密大型數(shù)據(jù)庫(kù)則不現(xiàn)實(shí);(2)管理系統(tǒng)內(nèi)核層加密。即數(shù)據(jù)在存儲(chǔ)到硬件設(shè)備之前對(duì)信息進(jìn)行加密及解密。此方法的優(yōu)勢(shì)在于難以破解,不會(huì)給DBMS帶來(lái)較大影響,容易將加密與系統(tǒng)融合在一起。不過(guò)此方法需要服務(wù)器支持,因而會(huì)為服務(wù)器帶來(lái)影響,且兩者之間需要DBMS生產(chǎn)商提供相應(yīng)的接口。;(3)在DBMS外層加密。通常是把加密系統(tǒng)當(dāng)做工具,外圍在DBMS上,用戶根據(jù)自己的實(shí)際情況進(jìn)行加密及解密操作。此方法的優(yōu)勢(shì)在于直接在客戶端執(zhí)行,不會(huì)為服務(wù)器產(chǎn)生任何影響,并順利完成網(wǎng)絡(luò)傳輸。缺點(diǎn)則是難以實(shí)現(xiàn),與系統(tǒng)無(wú)法默契的融合在一起。
2 數(shù)據(jù)庫(kù)加密的技術(shù)方法
數(shù)據(jù)庫(kù)數(shù)據(jù)量比較大,存儲(chǔ)時(shí)間長(zhǎng),內(nèi)容繁雜,常需進(jìn)行大量的查詢操作,因此數(shù)據(jù)庫(kù)加密操作、解密操作以及密鑰管理等內(nèi)容要滿足一定的要求:首先,要確保數(shù)據(jù)庫(kù)數(shù)據(jù)處于一定的安全范圍內(nèi),因此,加密算法要數(shù)據(jù)的完整性、保密性得到切實(shí)保障,避免相關(guān)數(shù)據(jù)未經(jīng)授權(quán)被訪問(wèn)或者篡改;其次,由于數(shù)據(jù)庫(kù)數(shù)據(jù)較多,常需要進(jìn)行查詢操作,因此要提高加密算法的方便性,盡量避免降低查詢效率;再次,數(shù)據(jù)庫(kù)組織結(jié)構(gòu)盡量不要都大的變動(dòng),要確保明文及密文的長(zhǎng)度相當(dāng),沒(méi)有很大差別;最后,數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)時(shí)間長(zhǎng),密鑰管理要做到安全、可靠、靈活。目前,對(duì)數(shù)據(jù)庫(kù)進(jìn)行加密的研究?jī)?nèi)容主要是數(shù)據(jù)庫(kù)加密/解密引擎的尋找,以及查詢、刪除及插入等方法上?;谝陨蟽?nèi)容的加密方法有以下幾點(diǎn):
2.1 秘密同態(tài)技術(shù)。數(shù)據(jù)庫(kù)加密技術(shù)的探索方向是研究確保數(shù)據(jù)庫(kù)安全性、實(shí)用性、簡(jiǎn)便性的加密方法。為了有效提高數(shù)據(jù)庫(kù)的查詢效率,有人提出了秘密同態(tài)的概念。所謂秘密同態(tài),即假設(shè)Ek1代表加密函數(shù),Dk2代表解密函數(shù),明文數(shù)據(jù)空間中的元素是有效集合{M1,……,Mn},α與β表示運(yùn)算,假如α(Ek1(M1),……,Ek1(Mn))=Ek1(β(M1,……,Mn))成立,則函數(shù)族群(Ek1Dk2、α、β)可以被看做秘密同態(tài)。秘密同態(tài)技術(shù)在數(shù)據(jù)處于密文的狀態(tài)下可直接進(jìn)行操作,因此在很大程度上提高了密文數(shù)據(jù)庫(kù)的查詢速度。不過(guò)此方法對(duì)已知明文攻擊具有很大的漏洞,缺乏足夠的安全性。秘密同態(tài)技術(shù)可以查詢沒(méi)有被解密的密文,因而提高了密文數(shù)據(jù)庫(kù)的查詢效率,但是此方法對(duì)加密算法有約束條件,因此沒(méi)有很強(qiáng)的適用性,無(wú)法被廣泛使用。
2.2 密文索引技術(shù)。密文索引技術(shù)也可以有效提高數(shù)據(jù)庫(kù)查詢效率。假設(shè)用戶的查詢屬性是A,為其建立的索引是A+,A作為保密內(nèi)容,用戶只能看到其索引A+,如此一來(lái),不僅使用戶的查詢操作比較方便,還有效提高了數(shù)據(jù)庫(kù)數(shù)據(jù)的安全性。加密粒度中具有為字段、記錄等內(nèi)容進(jìn)行加密的方法,此方法同樣適合建立索引。加密粒度中還具備為屬性加密的方法,此加密算法將屬性列作為最小加密單元,就算為屬性建立索引,也需要在檢索過(guò)程中解密整個(gè)屬性列,因此不適合用于建立密文索引。
關(guān)于密文索引的建立方法還有很多。比如,分散密文索引技術(shù),此加密技術(shù)是以哈希算法為基礎(chǔ)的。因?yàn)樗饕龜?shù)據(jù)的地址是按照密文形式存儲(chǔ)的,難以獲得密文和索引之間的對(duì)應(yīng)關(guān)系,雖然可以和低手的靜態(tài)分析進(jìn)行抗衡,但無(wú)法有效消除動(dòng)態(tài)跟蹤技術(shù)。以防止內(nèi)部受攻擊的基于元祖的索引方法,對(duì)索引查詢統(tǒng)一會(huì)返回與之匹配的元組,從而降低了查詢速度及效率。此外,還有數(shù)組索引、順序索引以及矩陣索引等多種技術(shù)。為大型數(shù)據(jù)庫(kù)建立索引時(shí),由于其包含的數(shù)據(jù)量比較大,建立的索引無(wú)法全部存儲(chǔ)在主存中,可采用B+樹(shù)的方法把多余的索引存儲(chǔ)在外存中,需要采用時(shí)再把所需索引調(diào)入主存中進(jìn)行使用。B+樹(shù)存儲(chǔ)方法有較大缺陷,因?yàn)閿?shù)據(jù)庫(kù)常會(huì)進(jìn)行存儲(chǔ)、修改或者刪除等操作,節(jié)點(diǎn)的刪減容易導(dǎo)致B+樹(shù)存儲(chǔ)的不平衡,致使查詢效率低下。因此,小型數(shù)據(jù)庫(kù)則可以采用矩陣形式存放索引,將所有索引存入主存,可有效提高查詢速度。目前常使用的密文索引技術(shù)大多數(shù)防范外部攻擊的,少數(shù)防范內(nèi)部攻擊的密文索引技術(shù)在實(shí)用性、安全性及可靠性等方面還是存在較多的安全問(wèn)題。
2.3 子密鑰加密技術(shù)?;跀?shù)據(jù)庫(kù)的加密方法,主要是以記錄為單位進(jìn)行加密,查詢時(shí)需要解密整個(gè)字段,或者解密需要查詢的明文,在一定程度上降低了查詢效率。因此子密鑰數(shù)據(jù)庫(kù)加密技術(shù)應(yīng)運(yùn)而生。采用多級(jí)子密鑰可以有效提高子密鑰系統(tǒng)的安全性能。從加密算法的核心內(nèi)容是根據(jù)數(shù)據(jù)庫(kù)數(shù)據(jù)組織的特點(diǎn),以記錄為單位實(shí)施加密操作,解密時(shí)則以字段為單位進(jìn)行操作。因此,系統(tǒng)中存在兩種密鑰,即加密記錄的密鑰和解密字段的密鑰。采用子密鑰加密技術(shù),彌補(bǔ)了針對(duì)記錄進(jìn)行加密的方法的不足之處。不過(guò),由于此系統(tǒng)存在兩種密鑰,從而在一定程度上提高了密鑰管理的難度與復(fù)雜性。
3 結(jié)束語(yǔ)
數(shù)據(jù)庫(kù)加密技術(shù)可有效保證數(shù)據(jù)庫(kù)的安全性。選擇合適、有效的數(shù)據(jù)庫(kù)加密技術(shù),能夠在很大程度上提高數(shù)據(jù)庫(kù)的安全性能。目前,使用的數(shù)據(jù)庫(kù)加密技術(shù)雖然很多,但各種技術(shù)仍然存在不同程度的缺陷,無(wú)法充分保障數(shù)據(jù)庫(kù)的安全性。因此,我們還要進(jìn)一步研究數(shù)據(jù)庫(kù)加密技術(shù),有效提高數(shù)據(jù)庫(kù)的安全性與可靠性,確保系統(tǒng)訪問(wèn)控制不會(huì)被黑客攻破,避免數(shù)據(jù)庫(kù)信息被泄露。
參考文獻(xiàn):
[1]馬文斌.數(shù)據(jù)庫(kù)中常用的加密技術(shù)[J].同煤科技,2013(02).
[2]李?lèi)?ài)英,白艷玲.文件型數(shù)據(jù)庫(kù)加密技術(shù)分析[J].網(wǎng)絡(luò)與信息,2012(01).
[3]劉勇.網(wǎng)絡(luò)數(shù)據(jù)庫(kù)加密技術(shù)研究與實(shí)現(xiàn)探析[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2014(04).
作者簡(jiǎn)介:朱振立(1976.07-),男,河北固安人,工程師,本科,研究方向:計(jì)算機(jī)。
作者單位:河北省公安消防總隊(duì),石家莊 050000