李慧珍,唐盼盼
(商丘職業(yè)技術(shù)學(xué)院,河南 商丘 476000)
密文數(shù)據(jù)庫(kù)系統(tǒng)可以根據(jù)用戶(hù)的不同需求,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行不同程度的加密處理后存儲(chǔ)起來(lái)。這樣不僅保護(hù)了數(shù)據(jù)庫(kù)中的敏感數(shù)據(jù),而且一個(gè)沒(méi)有密鑰的用戶(hù)即便能夠非法入侵到系統(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)就是可以從根本上防止非法用戶(hù)通過(guò)線(xiàn)程或進(jìn)程及文件、磁盤(pán)、內(nèi)存等隱蔽通道訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)敏感數(shù)據(jù)。一般對(duì)于大型的數(shù)據(jù)庫(kù)來(lái)說(shuō),在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)算可以在客戶(hù)端進(jìn)行,這種實(shí)現(xiàn)機(jī)制的優(yōu)點(diǎn)是不會(huì)加重?cái)?shù)據(jù)庫(kù)服務(wù)器的負(fù)載,而且可以實(shí)現(xiàn)加密數(shù)據(jù)的在線(xiàn)傳輸,缺點(diǎn)是加密功能會(huì)受一些限制。
(1)基于直接索引的密文數(shù)據(jù)庫(kù)索引機(jī)制?;谥苯铀饕拿芪臄?shù)據(jù)庫(kù)索引機(jī)制就是在對(duì)明文數(shù)據(jù)庫(kù)的索引功能進(jìn)行改造的基礎(chǔ)上來(lái)實(shí)現(xiàn)的,將索引樹(shù)中每個(gè)節(jié)點(diǎn)的數(shù)據(jù)用其對(duì)應(yīng)的密文代替,生成密文數(shù)據(jù)庫(kù)的密文索引樹(shù)?;谥苯铀饕拿芪臄?shù)據(jù)庫(kù)索引機(jī)制所采用的索引樹(shù)多是二叉樹(shù)、B+樹(shù)等。在進(jìn)行索引的檢索時(shí),先將根節(jié)點(diǎn)解密并與查詢(xún)條件進(jìn)行比較,由此決定下一個(gè)要檢索的節(jié)點(diǎn),直至找到滿(mǎn)足查詢(xún)條件的所有節(jié)點(diǎn)。其中基于直接索引的密文數(shù)據(jù)庫(kù)索引機(jī)制的優(yōu)點(diǎn)就是可以在查詢(xún)時(shí)將索引樹(shù)調(diào)入內(nèi)存,從而在很大程度上降低了內(nèi)存與外存之間數(shù)據(jù)的交換時(shí)間,大大提高了數(shù)據(jù)庫(kù)數(shù)據(jù)查詢(xún)的效率。盡管如此,基于直接索引的密文數(shù)據(jù)庫(kù)索引機(jī)制也有一定的缺點(diǎn),因?yàn)槊芪乃饕龢?shù)中的地址數(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ī)制通過(guò)對(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)系的話(huà),即使擁有密文數(shù)據(jù)及其對(duì)應(yīng)的索引,也無(wú)法進(jìn)行加密數(shù)據(jù)的破解?;诘刂芳用艿拿芪臄?shù)據(jù)庫(kù)索引機(jī)制的缺點(diǎn)就是如果攻擊者能動(dòng)態(tài)跟蹤整個(gè)密文數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)過(guò)程,就比較有可能找到密文與索引的對(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)追蹤分析的問(wèn)題。該機(jī)制可以很好地屏蔽密文數(shù)據(jù)庫(kù)中密文與索引地址的對(duì)應(yīng)關(guān)系?;诘刂芳用艿拿芪臄?shù)據(jù)庫(kù)索引機(jī)制訪(fǎng)問(wèn)索引之后,要對(duì)兩個(gè)密文數(shù)據(jù)進(jìn)行訪(fǎng)問(wèn),這樣做的目的就是為了產(chǎn)生混淆效果。以至于大大降低攻擊者對(duì)密文數(shù)據(jù)和索引的對(duì)應(yīng)關(guān)系進(jìn)行動(dòng)態(tài)追蹤分析成功的概率,進(jìn)而在一定程度上就是密文數(shù)據(jù)庫(kù)的安全性得到大大的提高。
所謂的直接查詢(xún)策略,就是對(duì)加密的數(shù)據(jù)不需要解密,直接對(duì)密文數(shù)據(jù)進(jìn)行查詢(xún)操作的查詢(xún)策略,其中,比較常用的直接查詢(xú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)。而在查詢(xún)時(shí),將密文與查詢(xún)?cè)~進(jìn)行異或運(yùn)算后將運(yùn)算結(jié)果與隨機(jī)數(shù)進(jìn)行比較,如果有相同的,就說(shuō)明查詢(xún)的文件中包含所查詢(xún)的詞,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)查詢(xún)的效果。
(2)同態(tài)加密技術(shù)策略。同態(tài)加密技術(shù)策略是利用秘密同態(tài)函數(shù)對(duì)數(shù)據(jù)進(jìn)行加密后,可以直接在密文上進(jìn)行查詢(xún)操作,進(jìn)而在很大程度上降低了數(shù)據(jù)加密與解密所需的開(kāi)銷(xiāo),從而有效提高了密文數(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ù)查詢(xún)、單值查詢(xún)以及范圍查詢(xún)等查詢(xún)操作,大大提高了密文數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢(xún)效率。
所謂的兩階段查詢(xún)策略就是先在密文數(shù)據(jù)的基礎(chǔ)上進(jìn)行一次簡(jiǎn)單的查詢(xún),然后將臨時(shí)查詢(xún)的結(jié)果進(jìn)行解密,然后再對(duì)解密的結(jié)果進(jìn)行一次精確的查詢(xún),所得到的結(jié)果即為查詢(xún)結(jié)果。由于在初始查詢(xún)階段把一些無(wú)關(guān)的記錄給過(guò)濾掉了,因此,就大大減少了第二次精確查詢(xún)時(shí)的密文數(shù)據(jù)量,進(jìn)而不僅提高了檢索效率,而且降低了不必要的解密開(kāi)銷(xiāo)。目前兩階段查詢(xún)策略的實(shí)現(xiàn)方法有兩種,一種方法是通過(guò)在表中建立一個(gè)索引字段,然后利用建立的索引字段進(jìn)行模糊查詢(xún),然后將得到的臨時(shí)結(jié)果進(jìn)行解密,最后進(jìn)行精確查詢(xún)得出最終結(jié)果;另外一種方法就是利用 SQL編譯器將查詢(xún)語(yǔ)句中所涉及到的加密字段進(jìn)行加密重寫(xiě),進(jìn)而實(shí)現(xiàn)兩階段查詢(xún)策略。
密文數(shù)據(jù)庫(kù)的索引機(jī)制和查詢(xún)技術(shù)是數(shù)據(jù)庫(kù)加密研究領(lǐng)域中的重要課題。基于高效的索引機(jī)制的查詢(xún)技術(shù)是使密文數(shù)據(jù)庫(kù)得以廣泛應(yīng)用的前提。然而,在密文數(shù)據(jù)庫(kù)查詢(xún)領(lǐng)域中還存在一些關(guān)鍵問(wèn)題有待解決,如何解決這些問(wè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).