周楊景
(廣東工業(yè)大學(xué)信息工程學(xué)院,廣東 廣州 510006)
?
數(shù)據(jù)庫安全機(jī)制綜述
周楊景
(廣東工業(yè)大學(xué)信息工程學(xué)院,廣東 廣州 510006)
數(shù)據(jù)庫技術(shù)作為一門日趨成熟的計算機(jī)技術(shù),安全問題不容忽視,尤其在云計算這個新的計算機(jī)時代里。結(jié)合云計算環(huán)境以及目前威脅數(shù)據(jù)庫安全的主要問題,本文會從數(shù)據(jù)庫安全機(jī)制的概念入手,并對其實現(xiàn)技術(shù)進(jìn)行深入探討,并從幾個角度對數(shù)據(jù)庫安全機(jī)制實現(xiàn)方案進(jìn)行闡述,最后根據(jù)收集數(shù)據(jù)總結(jié)數(shù)據(jù)庫安全機(jī)制的發(fā)展趨勢。
數(shù)據(jù)庫;云計算;安全機(jī)制;數(shù)據(jù)庫加密
技術(shù)發(fā)展促使軟、硬件設(shè)施性能產(chǎn)生質(zhì)的飛躍,而“云計算”理念的提出也是的老舊的設(shè)備系統(tǒng)能與新設(shè)施有效整合無論是互聯(lián)網(wǎng)還是局域網(wǎng),通信速度比以前更快,數(shù)據(jù)吞吐量更高,高并發(fā)的環(huán)境也讓相關(guān)業(yè)務(wù)系統(tǒng)對數(shù)據(jù)的處理更加高效,新型企業(yè)服務(wù)器較傳統(tǒng)的服務(wù)器更為專業(yè),部署更為簡約穩(wěn)定。
云計算是在分布式處理等技術(shù)的基礎(chǔ)上發(fā)展起來的,它可以自我維護(hù)和管理龐大的虛擬計算資源,提供各種IT服務(wù)[1]。根據(jù)其提供者,可以劃分為私有云和公有云。前者的資源供包含多個用戶的單一組織專有,平臺的業(yè)務(wù)數(shù)據(jù)資源與該資源管理組織有十分密切的業(yè)務(wù)關(guān)系,典型的例子有銀行,政府機(jī)構(gòu),電信等通信運(yùn)營商。后者的資源有第三方組織所有并依據(jù)相關(guān)行業(yè)規(guī)定租賃資源給相關(guān)組織,平臺內(nèi)的相關(guān)業(yè)務(wù)數(shù)據(jù)可能與第三方并無關(guān)系,比如阿里云,百度云盤,360云盤,騰訊微云等。
數(shù)據(jù)安全問題一直是企業(yè)關(guān)注的,每個公有云提供商都對外宣稱,其服務(wù)在各方面都是非常安全,但對企業(yè)而言,特別是大型企業(yè),和業(yè)務(wù)有關(guān)的數(shù)據(jù)是其生命線,是不能夠受到任何形式的威脅。所以很多企業(yè)更多會采用私有云的技術(shù)對其傳統(tǒng)的數(shù)據(jù)中心系統(tǒng)進(jìn)行輕量級的改造以保證其數(shù)據(jù)安全穩(wěn)定的使用。正因如此,基于數(shù)據(jù)庫的安全機(jī)制更有用武之地了。
傳統(tǒng)的數(shù)據(jù)庫安全的定義,以C.P.Pfleeger 在“Security in Computing-Database Security.PTR,1997”中對傳統(tǒng)數(shù)據(jù)庫安全的定義描述了其典型的特性,云數(shù)據(jù)庫的對數(shù)據(jù)庫安全特性提出了新的要求。文章[1],[6]中提出了補(bǔ)充了易用性,高可用性,同態(tài)性,其中同態(tài)性指的是授權(quán)用戶對已加密的原數(shù)據(jù)處理后得到的結(jié)果與采用相同處理作用的原數(shù)據(jù)再加密結(jié)果一致。
相對而言,數(shù)據(jù)庫安面臨著的威脅也可以分為以下幾類。數(shù)據(jù)泄露,數(shù)據(jù)庫環(huán)境本身和數(shù)據(jù)庫管理方面存在漏洞,導(dǎo)致數(shù)據(jù)通過各種渠道被人竊取。數(shù)據(jù)篡改,由于數(shù)據(jù)位置或傳播途徑已被人獲取,通過已知信息將數(shù)據(jù)進(jìn)行惡意修改或刪除,致使數(shù)據(jù)不準(zhǔn)確,或是不可使用。數(shù)據(jù)災(zāi)難,由于自然原因或人為因素導(dǎo)致數(shù)據(jù)庫環(huán)境故障,庫內(nèi)數(shù)據(jù)無法使用。
數(shù)據(jù)災(zāi)難已有學(xué)者提出數(shù)據(jù)災(zāi)備冗余技術(shù)和高可用性技術(shù),本文不做詳細(xì)介紹,文章的重點集中在數(shù)據(jù)泄露,數(shù)據(jù)泄露所造成的影響確實需要受到重視,而其造成威脅的手段主要來自于外界的漏洞進(jìn)攻和內(nèi)部管理漏洞,類似文章[3]提出的SQL注入等,而類似這樣的進(jìn)攻手段采取相應(yīng)的防火墻設(shè)備能很程度提升防護(hù)的效率。來自于內(nèi)部的管理漏洞,使得數(shù)據(jù)相對于經(jīng)常執(zhí)行開發(fā)和維護(hù)工作技術(shù)管理人員是可見的,這對于數(shù)據(jù)本身的安全造成了很大影響,這種現(xiàn)象本文中叫做數(shù)據(jù)耦合。
為保障數(shù)據(jù)安全性,有效地實現(xiàn)技術(shù)人員與業(yè)務(wù)數(shù)據(jù)的分離,必須要有基于數(shù)據(jù)庫服務(wù)器運(yùn)行原理的實現(xiàn)工具和技術(shù)。論文[8]中首次提出了“服務(wù)的數(shù)據(jù)庫”的概念,為提高可用性將數(shù)據(jù)庫進(jìn)行外包,交托給非可信的第三方管理,這極大地推動了數(shù)據(jù)加密安全技術(shù)的應(yīng)用和研究。
核心算法作為核心技術(shù)尤為重要。文章[8]提出了好的數(shù)據(jù)庫應(yīng)滿足的標(biāo)準(zhǔn)。傳統(tǒng)加密算法有對稱加密算法和非對稱加密算法,前者運(yùn)行速度快,后者破譯難度高,典型對稱加密算法有DES,AES等,它們都是發(fā)展較為成熟的分組對稱加密算法,[9]中提到非對稱算法比較典型的有RSA、Elgamal、背包算法、Rabin、D-H、ECC等,應(yīng)用較為廣泛的為RSA算法,以及基于Diffie-Hellman密鑰交換算法Elgamal。
為適應(yīng)復(fù)雜化的數(shù)據(jù)庫的應(yīng)用場景,數(shù)據(jù)加密算法的性能也在提高,典型新算法有散列加密算法和同態(tài)加密算法,前者主要利用散列函數(shù)的特性,實現(xiàn)消息摘要,驗證,以及保護(hù)用戶秘鑰的效果,這種算法是不可解密的,而后者算法能對已加密的原數(shù)據(jù)在不解密狀態(tài)下進(jìn)行與明文相同的操作,有助于用戶實現(xiàn)不解密操作數(shù)據(jù),降低了工作量和數(shù)據(jù)處于危險的概率。典型的散列算法有MD5,而典型的同態(tài)加密算法有paillier算法,rsa算法,而paillier具有加法同態(tài)特性,RSA算法具有乘法同態(tài)特性,文章[6]提出的算法具有全同態(tài)特性。
算法組合的機(jī)制能兼顧安全和運(yùn)行效率很很多,文章[10]中提出一種二級密鑰機(jī)制,通過對稱加密算法加密明文,非對稱加密算法加密秘鑰,這種方法雖然在效率和方法上得到了提升,但這對秘鑰的管理成了新的研究課題,文章[4]提出的三級秘鑰機(jī)制有效地將秘鑰管理的重心轉(zhuǎn)換到了庫外。
隨著加密明文的數(shù)據(jù)量與并行訪問和操作的用戶越來越多,授權(quán)訪問控制所帶來的秘鑰管理問題成了研究的熱點,文章[11]提出了一種一種新的基于全局邏輯層次圖(global logical hierarchical graph,GLHG)的密鑰推導(dǎo)機(jī)制的,有效的減少了秘鑰管理的數(shù)量和管理得難度,而且適用于用戶節(jié)點增加和減少的復(fù)雜情況。
首先在機(jī)制加載上,結(jié)合一款開源數(shù)據(jù)庫自行開發(fā)符合安全機(jī)制要求的定制數(shù)據(jù)庫,典型的有MySql,Postgresql。也可利用數(shù)據(jù)庫本身提供的工具進(jìn)行二次開發(fā)以實現(xiàn)安全機(jī)制,如Oracle數(shù)據(jù)庫就引入了DBMS_OBFUSCATION_TOOLKIT的PL/SQL包,支持最常用的分組加密算法,利用它開發(fā)而成的存儲過程可以很容易在庫內(nèi)實現(xiàn)加脫密,而執(zhí)行過程對數(shù)據(jù)查閱者而言是透明的。還有種常見的方式是將數(shù)據(jù)的加脫密過程進(jìn)行“外包”,即采用客戶端加脫密的方式處理上傳和查詢的數(shù)據(jù),庫本身只作為存放數(shù)據(jù)的庫,這種模式被稱為DAS模型。這三種加載方式各有優(yōu)劣,第一種能夠通過不斷地“開發(fā)-維護(hù)-升級改造”構(gòu)建健壯的安全機(jī)制,通過這種方式能夠更精確的分離技術(shù)人員與業(yè)務(wù)數(shù)據(jù),但是成本太高,難度大,第二種方式彌補(bǔ)了第一種的不足,提供基于SQL的優(yōu)化,如Oracle對PL/SQL程序在內(nèi)存中專門開辟了一塊共享SQL區(qū)來增加PL/SQL的執(zhí)行效率,但這種方式帶來了兩個問題,數(shù)據(jù)在傳遞過程中是明文狀態(tài)的,另一個是數(shù)據(jù)庫庫內(nèi)加密大多是對稱加密,若秘鑰被破解,密文數(shù)據(jù)就會曝光,第三種方式彌補(bǔ)了第二種方式的不足,而且在加密算法的選擇上也比第二種更為豐富,但是通過間接的手段調(diào)用SQL指令顯然使得程序結(jié)構(gòu)復(fù)雜,維護(hù)優(yōu)化難度大,所以綜合考慮,使用第二種方式進(jìn)行其他密文處理過程而第三種方式來實現(xiàn)安全機(jī)制的加脫密處理是一種比較可取的方式。
算法作為安全機(jī)制核心,能夠決定安全機(jī)制的品質(zhì)和性能,而為構(gòu)建高效的安全機(jī)制,算法選擇或是開發(fā)多數(shù)取決于業(yè)務(wù)環(huán)境和相關(guān)數(shù)據(jù)組織。針對特定攻擊的算法注重檢測比如文章[3]所提出的算法就是針對可能會產(chǎn)生SQL注入攻擊的潛在惡意IP和惡意用戶檢測。有些算法則是為特定安全機(jī)制而設(shè)定的,文章[4]提出的秘鑰生成算法很適合其三重秘鑰管理機(jī)制中對明文數(shù)據(jù)項的差異化分組加密提供差異化工作秘鑰。而云計算環(huán)境下對處于加密安全狀態(tài)的數(shù)據(jù)的操作和高效查詢分析,前提是使用具有同態(tài)特性的加密算法,文章[6]開發(fā)出的全同態(tài)加密算法是針對云數(shù)據(jù)庫字符和數(shù)字?jǐn)?shù)據(jù),并且能基于算法有效地返回所需的關(guān)鍵數(shù)據(jù)。無論是傳統(tǒng)的加密環(huán)境,還是云計算環(huán)境,秘鑰的管理都是需要考慮的重要問題,其中一個典型的解決方案就是秘鑰更替。文章[14]提出的秘鑰推導(dǎo)機(jī)制可以應(yīng)對云計算環(huán)境的多用戶情況下的秘鑰更替同時支持動態(tài)擴(kuò)展用戶節(jié)點,這種思路可以借鑒用來研究對于關(guān)系型數(shù)據(jù)庫表數(shù)據(jù)的加密秘鑰的管理上增加授權(quán)訪問的屬性。亦有不少學(xué)者利用數(shù)據(jù)特點和數(shù)學(xué)原理,同時為了優(yōu)化和改善已有算法存在的缺陷。文章[13]中提出的算法利用混沌特性生成難以分析的偽隨機(jī)序列實現(xiàn)序列加密,其中的明文序列置換步驟,就可以借鑒用來提供解決有序明文加密在語序上被人攻擊的問題。
安全機(jī)制作用的最終對象是數(shù)據(jù),以合適的數(shù)據(jù)結(jié)構(gòu)和形式來承載和展現(xiàn)數(shù)據(jù)是一個值得探討的問題,以數(shù)據(jù)庫端而論,傳統(tǒng)的是以關(guān)系型表作為數(shù)據(jù)的承載體,所以此類數(shù)據(jù)被稱為結(jié)構(gòu)化數(shù)據(jù),而現(xiàn)在的非結(jié)構(gòu)化數(shù)據(jù)很多組織和管理方式都是由關(guān)系型表演化而來,比如文章[1]提出了兩種新型的鍵值對和行組表組的關(guān)系模型,這兩種新型數(shù)據(jù)模型其原理和方法都是基于關(guān)系型數(shù)據(jù)表的。所以對關(guān)系型數(shù)據(jù)表的處理方法和形式的選擇對數(shù)據(jù)的使用效率也是有影響的。傳統(tǒng)的加密信息大多為數(shù)字類型,而隨著大家對個人隱私的保護(hù)和重視,而類似于文章[4],加密的對象慢慢被字符型型所替代,而像文章[13]中構(gòu)成待加密的圖片的二進(jìn)制數(shù)據(jù)類型在數(shù)據(jù)庫中都能轉(zhuǎn)化成字符型數(shù)據(jù)。不過,為了滿足安全機(jī)制的加密要求,必須針對加密算法定制數(shù)據(jù)類型,文章[6]定制的BIGINT數(shù)據(jù)類型,就是專門針對同態(tài)加密所使用的數(shù)據(jù)類型,但基于現(xiàn)階段的通用數(shù)據(jù)類型,這樣雖然忽視了數(shù)據(jù)類型通用化的原則,不利于數(shù)據(jù)遷移,但在一定程度上增加了數(shù)據(jù)的安全性,令敵手無法很輕松的解析特定數(shù)據(jù)類型。
數(shù)據(jù)庫安全機(jī)制的提出,其中一個重要的出發(fā)點就是實現(xiàn)敏感數(shù)據(jù)與技術(shù)人員的隔離,但其研究的前提就是保證系統(tǒng)可用,隨著各方學(xué)者,技術(shù)人員不斷深入的研究和探索,將有可能出現(xiàn)以下的發(fā)展趨勢:
(1)自定義數(shù)據(jù)類型的數(shù)據(jù)庫加密算法的開發(fā),傳統(tǒng)的數(shù)據(jù)類型雖然具有通用性,便于遷移處理,基于這一點,開發(fā)出具有加密定制化的數(shù)據(jù)庫加密類型,既滿足了加密算法特定的操作要求,又能保證密文數(shù)據(jù)難以被解析出來。
(2)加密數(shù)據(jù)使用的性能優(yōu)化,安全機(jī)制的實現(xiàn)前提是要保證數(shù)據(jù)庫整體可用,要滿足這一點,就必須研究密文數(shù)據(jù)在數(shù)據(jù)庫中的使用性能,比如查詢時對I/O的影響,sql執(zhí)行計劃的響應(yīng)時間,相對于明文數(shù)據(jù)多出的冗余空間對磁盤空間的影響。而這方面的研究有助于推動加密算法在數(shù)據(jù)庫方面的應(yīng)用。
(3)基于邏輯圖的秘鑰管理技術(shù),要實現(xiàn)密文數(shù)據(jù)應(yīng)用在多用戶交互訪問的環(huán)境下,必須要對來訪用戶提供授權(quán)屬性,同時也能動態(tài)擴(kuò)展訪問用戶控制節(jié)點,而這種技術(shù)剛好滿足這兩個條件,同時這種技術(shù)也支持半可信代理重加密手段,定時更新加密秘鑰,保證數(shù)據(jù)安全。(4)基于混沌理論的偽隨機(jī)技術(shù),由于混沌系統(tǒng)非周期性、類隨機(jī)性和非重復(fù)性,能夠生成性能較好的偽隨機(jī)數(shù),逐漸被學(xué)者們重視用來研究為其他數(shù)學(xué)過程提供更好的隨機(jī)輔助。
(5)高安全性同態(tài)加密算法,同態(tài)加密算法雖然具備能直接操作密文的優(yōu)勢,文章[14]提出現(xiàn)階段普遍具有同態(tài)屬性的加密算法大多都局限于選擇明文攻擊下的安全,很多學(xué)者逐漸將研究的重點轉(zhuǎn)向更高安全性的算法上,比如學(xué)者在文章[15]提出的基于容錯學(xué)習(xí)體制的同態(tài)加密體制。
本文結(jié)合數(shù)據(jù)庫技術(shù)和加密安全技術(shù)描述安全機(jī)制的原理和概念,技術(shù),方案,以及可能會出現(xiàn)的趨勢和研究方向,并結(jié)合當(dāng)前云計算的復(fù)雜環(huán)境環(huán)境下列舉出社會各方研究人員,工程師,相關(guān)企業(yè)單位對安全機(jī)制的各方面技術(shù)的推進(jìn)與改善,接著通過機(jī)制加載,庫選型,機(jī)制范圍,算法選取,數(shù)據(jù)處理對象幾個角度結(jié)合提到的技術(shù),列舉了業(yè)界一些已提出的方案,并對此進(jìn)行比較,最后根據(jù)所學(xué)文獻(xiàn)對數(shù)據(jù)庫安全機(jī)制可能出現(xiàn)的趨勢和方向作出了一個歸納性的判斷和選擇。
[1]林子雨,賴永炫,林琛,謝怡,鄒權(quán).云數(shù)據(jù)庫研究[J].軟件學(xué)報,2012,05:1148-1166.
[2]陳志偉.同態(tài)密碼理論的研究與應(yīng)用[D].西安電子科技大學(xué),2014.
[3]陳小兵,張漢煜,駱力明,黃河.SQL注入攻擊及其防范檢測技術(shù)研究[J].計算機(jī)工程與應(yīng)用,2007,11:150-152+203
[4]王元珍,馮超.數(shù)據(jù)庫加密系統(tǒng)的研究與實現(xiàn)[J].計算機(jī)工程與應(yīng)用,2005,08:170-172.
[5]安然,陳馳,徐震.數(shù)據(jù)庫加密中間件的設(shè)計與實現(xiàn)[J].計算機(jī)工程與設(shè)計,2009,14:3261-3265.
[6]李美云,李劍,黃超.基于同態(tài)加密的可信云存儲平臺[J].信息網(wǎng)絡(luò)安全,2012,09:35-40.
[7]H.Hacigumus,B.Iyer and S.Mehrotra,“Providing database as a service,”Data Engineering,2002.Proceedings.18th International Conference on,San Jose,CA,2002,pp.29-38.
[8]朱勤,駱軼姝,樂嘉錦.數(shù)據(jù)庫加密與密文數(shù)據(jù)查詢技術(shù)綜述[J].東華大學(xué)學(xué)報(自然科學(xué)版),2007,04:543-548.
[9]非對稱加密算法[DB/OL].http://baike.baidu.com/lin kurl=WJ6Zvi0Xmea1b64AvvXbc3h3vs9j2cr8-vKYkVuM5QVJ 5aeyOgmbS1IpShpcjwji98qX0sOg8Hsamp_w2dVLga#5.html,2016
[10]朱魯華,陳榮良.數(shù)據(jù)庫加密系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程,2002,08:61-63.
[11]程芳權(quán),彭智勇,宋偉,王書林,崔一輝.可信云存儲環(huán)境下支持訪問控制的密鑰管理[J].計算機(jī)研究與發(fā)展,2013,08:1613-1627.
[12]蔡琴.XML加密特點及粒度選擇[J].新疆師范大學(xué)學(xué)報(自然科學(xué)版),2006,03:81-84.
[13]趙雪章,席運(yùn)江.一種基于混沌理論的數(shù)據(jù)加密算法設(shè)計[J].計算機(jī)仿真,2011,02:120-123.
[14]光焱,祝躍飛,顧純祥,鄭永輝,湯全有.一種針對全同態(tài)加密體制的密鑰恢復(fù)攻擊[J].電子與信息學(xué)報,2013,12:2999-3004.
[15]Brakerski Z and Vaikuntanathan V.Efficient fully homomorphic encryption from(standard)LWE[C].The IEEE 52nd Annual Symposium on Foundations of Computer Science Proceedings,Palm Springs,California,USA,2011:97-106.
周楊景(1991-),男,湖南湘潭人,研究生,主要研究領(lǐng)域為數(shù)據(jù)庫技術(shù),廣東工業(yè)大學(xué)信息工程學(xué)院。
TP311.13
A
1671-1602(2016)16-0195-03