李慧珍,唐盼盼
(商丘職業(yè)技術(shù)學(xué)院,河南 商丘 476000)
密文數(shù)據(jù)庫(kù)系統(tǒng)可以根據(jù)用戶的不同需求,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行不同程度的加密處理后存儲(chǔ)起來(lái)。這樣不僅保護(hù)了數(shù)據(jù)庫(kù)中的敏感數(shù)據(jù),而且一個(gè)沒有密鑰的用戶即便能夠非法入侵到系統(tǒng)中,但是因?yàn)槿鄙俳饷苊荑€,也就不可能獲得有意義的數(shù)據(jù)。顯然,密文數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用對(duì)保護(hù)敏感數(shù)據(jù)的安全性具有非常重要的作用。
(1)基于OS層的密文數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。在OS層實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的加密,可以在很大程度上增強(qiáng)OS對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的保護(hù),基于OS層的密文數(shù)據(jù)庫(kù)的實(shí)現(xiàn)機(jī)制的最大優(yōu)點(diǎn)就是可以從根本上防止非法用戶通過線程或進(jìn)程及文件、磁盤、內(nèi)存等隱蔽通道訪問數(shù)據(jù)庫(kù)敏感數(shù)據(jù)。一般對(duì)于大型的數(shù)據(jù)庫(kù)來(lái)說,在OS層對(duì)數(shù)據(jù)庫(kù)文件進(jìn)行加密的數(shù)據(jù)庫(kù)加密系統(tǒng),實(shí)現(xiàn)起來(lái)具有較大難度。所以,該機(jī)制主要應(yīng)用于小型的數(shù)據(jù)庫(kù)系統(tǒng)。
(2)基于DBMS內(nèi)核層的密文數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。在DBMS內(nèi)核層實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的加密,是指在對(duì)數(shù)據(jù)中的數(shù)據(jù)完成庫(kù)物理存取之前,就完成對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的加密和解密工作。這種基于DBMS內(nèi)核層的密文數(shù)據(jù)庫(kù)的實(shí)現(xiàn)機(jī)制,雖然具有加密功能強(qiáng)的各種顯著優(yōu)點(diǎn),但其缺點(diǎn)也是非常明顯的,一般基于DBMS內(nèi)核層的密文數(shù)據(jù)庫(kù)在服務(wù)器端進(jìn)行加密和解密運(yùn)算時(shí),由于對(duì)數(shù)據(jù)加密存在一定的限制,因而就加重了數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載,這對(duì)DBMS原有功能也會(huì)造成一定的影響。
(3)DBMS外層的密文數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。在采用基于DBMS外層的密文數(shù)據(jù)庫(kù)的實(shí)現(xiàn)機(jī)制這種加密方式進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)的加密時(shí),對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的加密和解密運(yùn)算可以在客戶端進(jìn)行,這種實(shí)現(xiàn)機(jī)制的優(yōu)點(diǎn)是不會(huì)加重?cái)?shù)據(jù)庫(kù)服務(wù)器的負(fù)載,而且可以實(shí)現(xiàn)加密數(shù)據(jù)的在線傳輸,缺點(diǎn)是加密功能會(huì)受一些限制。
(1)基于直接索引的密文數(shù)據(jù)庫(kù)索引機(jī)制。基于直接索引的密文數(shù)據(jù)庫(kù)索引機(jī)制就是在對(duì)明文數(shù)據(jù)庫(kù)的索引功能進(jìn)行改造的基礎(chǔ)上來(lái)實(shí)現(xiàn)的,將索引樹中每個(gè)節(jié)點(diǎn)的數(shù)據(jù)用其對(duì)應(yīng)的密文代替,生成密文數(shù)據(jù)庫(kù)的密文索引樹。基于直接索引的密文數(shù)據(jù)庫(kù)索引機(jī)制所采用的索引樹多是二叉樹、B+樹等。在進(jìn)行索引的檢索時(shí),先將根節(jié)點(diǎn)解密并與查詢條件進(jìn)行比較,由此決定下一個(gè)要檢索的節(jié)點(diǎn),直至找到滿足查詢條件的所有節(jié)點(diǎn)。其中基于直接索引的密文數(shù)據(jù)庫(kù)索引機(jī)制的優(yōu)點(diǎn)就是可以在查詢時(shí)將索引樹調(diào)入內(nèi)存,從而在很大程度上降低了內(nèi)存與外存之間數(shù)據(jù)的交換時(shí)間,大大提高了數(shù)據(jù)庫(kù)數(shù)據(jù)查詢的效率。盡管如此,基于直接索引的密文數(shù)據(jù)庫(kù)索引機(jī)制也有一定的缺點(diǎn),因?yàn)槊芪乃饕龢渲械牡刂窋?shù)據(jù)都是以明文的形式來(lái)保存的,這樣攻擊者就可以將各節(jié)點(diǎn)的密文數(shù)據(jù)按其對(duì)應(yīng)的明文進(jìn)行排序,然后統(tǒng)計(jì)相應(yīng)的數(shù)據(jù)加密規(guī)律,進(jìn)而獲得可用于解密的敏感數(shù)據(jù)。
(2)基于地址加密的密文數(shù)據(jù)庫(kù)索引機(jī)制。基于地址加密的密文數(shù)據(jù)庫(kù)索引機(jī)制是針對(duì)基于地址加密的密文數(shù)據(jù)庫(kù)索引機(jī)制的缺陷而設(shè)計(jì)的,該機(jī)制通過對(duì)數(shù)據(jù)地址進(jìn)行加密存儲(chǔ)。然后將每一個(gè)記錄對(duì)應(yīng)的唯一性字段與記錄的屬性值進(jìn)行關(guān)聯(lián),并將密文索引中的數(shù)據(jù)地址以密文的形式進(jìn)行存儲(chǔ)。這樣攻擊者如果無(wú)法獲得密文與索引的對(duì)應(yīng)關(guān)系的話,即使擁有密文數(shù)據(jù)及其對(duì)應(yīng)的索引,也無(wú)法進(jìn)行加密數(shù)據(jù)的破解。基于地址加密的密文數(shù)據(jù)庫(kù)索引機(jī)制的缺點(diǎn)就是如果攻擊者能動(dòng)態(tài)跟蹤整個(gè)密文數(shù)據(jù)庫(kù)的訪問過程,就比較有可能找到密文與索引的對(duì)應(yīng)關(guān)系,進(jìn)而就能夠得到可乘之機(jī)。
(3)基于地址加密的密文數(shù)據(jù)庫(kù)索引機(jī)制。基于地址加密的密文數(shù)據(jù)庫(kù)索引機(jī)制能有效地解決攻擊者對(duì)密文數(shù)據(jù)和索引的對(duì)應(yīng)關(guān)系進(jìn)行動(dòng)態(tài)追蹤分析的問題。該機(jī)制可以很好地屏蔽密文數(shù)據(jù)庫(kù)中密文與索引地址的對(duì)應(yīng)關(guān)系。基于地址加密的密文數(shù)據(jù)庫(kù)索引機(jī)制訪問索引之后,要對(duì)兩個(gè)密文數(shù)據(jù)進(jìn)行訪問,這樣做的目的就是為了產(chǎn)生混淆效果。以至于大大降低攻擊者對(duì)密文數(shù)據(jù)和索引的對(duì)應(yīng)關(guān)系進(jìn)行動(dòng)態(tài)追蹤分析成功的概率,進(jìn)而在一定程度上就是密文數(shù)據(jù)庫(kù)的安全性得到大大的提高。
所謂的直接查詢策略,就是對(duì)加密的數(shù)據(jù)不需要解密,直接對(duì)密文數(shù)據(jù)進(jìn)行查詢操作的查詢策略,其中,比較常用的直接查詢策略有秘密序列加密技術(shù)策略、同態(tài)加密技術(shù)策略以及保持有序的加密技術(shù)策略。
(1)秘密序列加密技術(shù)策略。采用序列密碼算法對(duì)數(shù)據(jù)進(jìn)行加密存儲(chǔ)時(shí),它使用序列密碼算法將原數(shù)據(jù)與隨機(jī)發(fā)生器產(chǎn)生的隨機(jī)數(shù)進(jìn)行異或運(yùn)算后得到的密文存儲(chǔ)起來(lái)。而在查詢時(shí),將密文與查詢?cè)~進(jìn)行異或運(yùn)算后將運(yùn)算結(jié)果與隨機(jī)數(shù)進(jìn)行比較,如果有相同的,就說明查詢的文件中包含所查詢的詞,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)查詢的效果。
(2)同態(tài)加密技術(shù)策略。同態(tài)加密技術(shù)策略是利用秘密同態(tài)函數(shù)對(duì)數(shù)據(jù)進(jìn)行加密后,可以直接在密文上進(jìn)行查詢操作,進(jìn)而在很大程度上降低了數(shù)據(jù)加密與解密所需的開銷,從而有效提高了密文數(shù)據(jù)庫(kù)的操作性能。
(3)保持有序的加密技術(shù)策略。保持有序的加密技術(shù)策略的實(shí)現(xiàn)是先將明文值進(jìn)行轉(zhuǎn)換得到密文,然后給定一個(gè)目標(biāo)分布函數(shù),要求經(jīng)加密轉(zhuǎn)換的密文不僅要保持有序,而且要服從給定的目標(biāo)函數(shù)的分布。這樣一來(lái)就可以直接對(duì)密文進(jìn)行帶集函數(shù)查詢、單值查詢以及范圍查詢等查詢操作,大大提高了密文數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢效率。
所謂的兩階段查詢策略就是先在密文數(shù)據(jù)的基礎(chǔ)上進(jìn)行一次簡(jiǎn)單的查詢,然后將臨時(shí)查詢的結(jié)果進(jìn)行解密,然后再對(duì)解密的結(jié)果進(jìn)行一次精確的查詢,所得到的結(jié)果即為查詢結(jié)果。由于在初始查詢階段把一些無(wú)關(guān)的記錄給過濾掉了,因此,就大大減少了第二次精確查詢時(shí)的密文數(shù)據(jù)量,進(jìn)而不僅提高了檢索效率,而且降低了不必要的解密開銷。目前兩階段查詢策略的實(shí)現(xiàn)方法有兩種,一種方法是通過在表中建立一個(gè)索引字段,然后利用建立的索引字段進(jìn)行模糊查詢,然后將得到的臨時(shí)結(jié)果進(jìn)行解密,最后進(jìn)行精確查詢得出最終結(jié)果;另外一種方法就是利用 SQL編譯器將查詢語(yǔ)句中所涉及到的加密字段進(jìn)行加密重寫,進(jìn)而實(shí)現(xiàn)兩階段查詢策略。
密文數(shù)據(jù)庫(kù)的索引機(jī)制和查詢技術(shù)是數(shù)據(jù)庫(kù)加密研究領(lǐng)域中的重要課題。基于高效的索引機(jī)制的查詢技術(shù)是使密文數(shù)據(jù)庫(kù)得以廣泛應(yīng)用的前提。然而,在密文數(shù)據(jù)庫(kù)查詢領(lǐng)域中還存在一些關(guān)鍵問題有待解決,如何解決這些問題將成為該領(lǐng)域的研究重點(diǎn)。
[1]劉偉.數(shù)據(jù)庫(kù)的密文索引機(jī)制[J].華中科技大學(xué)學(xué)報(bào),2009,(13).[2]馬勺布.一種動(dòng)態(tài)安全的密文數(shù)據(jù)庫(kù)檢索方法[J].計(jì)算機(jī)工程,2010,(6).
[3]袁丁.基于密文數(shù)據(jù)庫(kù)中數(shù)組檢索的研究[J].計(jì)算機(jī)應(yīng)用,2005,(25).