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