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