摘要:該文在對分布式數據庫和三層C/S模型進行簡介的基礎之上,對分布式數據庫加密系統(tǒng)的實現和數據庫加密數據的處理進行了一定的分析和研究,并給出了此種分布式數據庫加密系統(tǒng)的優(yōu)點。
關鍵詞:分布式數據庫;加密系統(tǒng);加密處理
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)22-601-03
The Research for Realizing Distributed Database Encryption System
TU Wen
(Wenshan Teacher's College,Wenshan 663000,China)
Abstract: This essay is studied on the base of the introduction of the distributed databases and three-tier of C/S model, it is done some analysis and research on realizing the distributed database encryption system and handling database encryption data, and gives the advantages of such distributed database encryption system.
Key words: distributed database; encryption system; encrypted
隨著計算機網絡技術的發(fā)展,數據庫安全問題受到越來越多的關注,如果我們對數據庫中的數據進行加密處理,那么數據庫的安全性就能有所提高,即使某一用戶非法入侵到系統(tǒng)中或者盜得數據存儲介質,沒有相應的解密密鑰,他仍然不能得到所需數據。所以,數據庫加密是解決數據庫安全問題最為有效的一種方法。本文就C/S模式下的分布式數據庫加密技術進行研究。
1 分布式數據庫
1.1 分布式數據庫概念
分布式數據庫是地理上(或物理上)分散而邏輯上集中的數據庫系統(tǒng)。分布式數據庫興起于70年代,繁榮于80年代,而在90年代分布式數據庫更以其在分布性和開放性方面得天獨厚的優(yōu)勢重又獲得了青睞。但其應用領域己不在局限于聯(lián)機事務處理應用,從分布式計算、Intemet應用、數據倉庫到高效的數據復制都可以看到分布式數據庫系統(tǒng)的影子。分布式數據庫系統(tǒng)是數據庫技術與網絡技術相結合的產物。數據庫技術的廣泛應用使得用戶不僅需要獨立地進行數據資源的管理,而且需要高層次的協(xié)作,這一點集中式的數據庫是很難辦到的,分布式數據庫的研究成為必然。
隨著網絡環(huán)境的日益普及,新的應用呈現出許多相似的特點,那就是開放性和分布性。以數據倉庫為例,它建立在原有多個數據庫系統(tǒng)之上,需要能從異構數據庫中提取數據并且能逐步擴展處理能力和系統(tǒng)規(guī)模:而對于internet商業(yè)應用來說分布性和開放性更是最基本的要求,并且隨著人們對事務處理、安全防范及較復雜的Web應用需求的增加,Web上的只讀信息存取將會很快讓位于面向商業(yè)活動的讀/寫存取,也就是說從簡單的數據系統(tǒng)全球聯(lián)網查詢逐漸向更具有分布式數據庫系統(tǒng)特色的應用環(huán)境過渡。
1.2 分布式數據庫的特點
1)自治相結合的控制
在集中式數據庫中,為了提供資源共享,保證數據的安全性和完整性。對數據資源進行集中控制,由數據管理員(DBA)監(jiān)督和維護系統(tǒng)的正常運行,這是采用數據庫管理技術的作用之一。
在分布式數據庫中,一般具有分層控制的結構。其數據共享有二個層次:局部共享和全局共享。局部共享是指在局部數據庫中存儲局部場地上的那些用戶的共享數據;全局共享是指分布式數據庫的各個結點上還存儲可供網絡上其他結點上的用戶共享數據,以支持系統(tǒng)中的全局應用。這樣,相應的控制也具有兩個層次:集中控制和結點自治。各個結點的局部的數據庫管理系統(tǒng)DBMS可以獨立地管理局部數據庫,具有結點自治性。同時系統(tǒng)又具有集中控制的機制,協(xié)調各個局部DBMS的工作,執(zhí)行全局應用。分布式數據庫系統(tǒng)采用的就是這種集中和自治相結合的控制結構。
2)數據獨立性
數據獨立性是數據庫方法的特征之一。在集中式數據庫中數據獨立性包括兩方面的內容:數據的邏輯獨立性和數據的物理獨立性。這兩方面的獨立意味著數據的實際在組織對應用程序員是透明的。在編寫程序時是根據數據的“概念性”結構,即概念模式來進行的。使用戶的應用程序與數據的全局邏輯結構和存儲結構沒有關系。
3)適當的數據冗余度
在分布式數據庫中要適當增加數據的冗余,同一數據在不同的結點上存在著它的復本增加系統(tǒng)的冗余方便了檢索,提高了可行性、可用性。
4)全局的一致性、可恢復性和并發(fā)控制
分布式數據庫中的各個局部數據庫應滿足集中式數據庫的一致性,可恢復性和具有并發(fā)控制。同時還要保證整個分布式數據庫的全局一致性、全局的可恢復性與并發(fā)控制。因此在分布式數據庫中這方面的控制內容更多,實現起來也更復雜。一致性、可恢復性和并發(fā)控制雖不相同。但解決的方法都涉及到事務的管理。分布式數據庫中全局應用要涉及到兩個或兩個以上結點的數據,這時一個事務往往由不同結點上的不同操作組成,是一種全局的事務。事務是一個不可分割的執(zhí)行單位,要么完整地執(zhí)行,要么撤消,完全不執(zhí)行。在執(zhí)行分布式數據庫系統(tǒng)里的全局事務時,如果其中一個結點上的那部分操作己完成,而另一個結點出項故障,操作失敗,那么應該撤消前一結點己執(zhí)行的操作,不再執(zhí)行該事務的其他操作,讓全局事務回到初始狀態(tài)。
2 三層C/S模型介紹
在20世紀80年代后期,基于C/S模型的分布式應用系統(tǒng)得到了廣泛使用。C/S模型是一個通用的、基于消息的模塊化結構,用來提高系統(tǒng)的可用性、靈活性、互操作性以及可擴展性。在C/S模型中,客戶定義為一個服務的請求者,服務器定義為一個服務的提供者。C/S模式是一種用于在并發(fā)進程間相互交互的模型,客戶進程向服務進程發(fā)請求,服務進程對客戶進程的請求進行處理,并將結果返回給客戶進程。這樣,客戶進程就從事務的復雜性和負載中解放出來??蛻暨M程和服務進程之間的交互是一個合作的、相互影響的交互,在這個交互過程中,客戶進程是主動的發(fā)請求,而服務進程是被動的接收請求后,在對請求進行處理,然后將結果返回個客戶進程。
■
圖1 三層C/S模型
三層C/S模型優(yōu)點:
1)易于維護:業(yè)務邏輯修改僅需修改應用程序服務器的相應部分。
2)性能提高:把計算負擔從功能不強的客戶機轉移到功能強大的服務器能充分利用計算機資源,使應用程序的執(zhí)行到最佳狀態(tài)。
3)易于管理:用應用程序服務器的不同組件實現相應的業(yè)務邏輯,可將大型、復雜的應用程序劃分為更易于管理的模塊,而且各組件可重復使用。
3 分布式數據庫加密系統(tǒng)實現
本文中使用的分布式數據庫加密系統(tǒng)的結構圖(圖2)。
系統(tǒng)中的應用服務器相當于三層C/S模型中的表示層,用來處理業(yè)務請求及返回處理結果;加密服務器相當于三層C/S模型中的業(yè)務邏輯層處理數據的加/解密和密鑰管理;數據庫服務器相當于三層C/S模型中的數據層,處理加密服務器和數據庫服務器之間的數據傳輸。
在上面分布式數據庫系統(tǒng)結構中,用戶訪問數據庫的流程如下:
1)客戶端向應用服務器發(fā)出數據訪問請求;
2)應用服務器響應客戶端的請求,要求用戶輸入訪問數據庫所需的用戶密鑰進行客戶與加密服務器之間的身份認證;
3)認證通過后,應用服務器將數據訪問請求發(fā)送到加密服務器根據用戶及數據訪問請求,加密服務器驗證客戶是否有權限訪問請求的數據庫內容,驗證通過則提取相應的數據庫加密密鑰,從數據庫服務器中提取密文進行解密,驗證未通過則拒絕訪問;
4)加密服務器將解密后的數據通過SSL加密信道傳輸給應用服務器;
5)應用服務器將數據通過SSL加密信道傳輸給客戶端。
加密服務器主要完成系統(tǒng)的數據加/解密、密鑰管理工作。系統(tǒng)中的除了數
據庫服務器與數據庫服務器之間的傳輸不需要通過SSL信道,因為它們之間的數據傳輸本來就是密文或者是不需要保密的明文,其余的數據傳輸都是通過SSL加密信道來傳輸的。
4 數據庫加密數據的處理
本文使用的數據庫為SQLSERVER2000,實現了在數據庫的字段級加密,可以選擇數據庫中任何表中的任何字段進行加密,可以根據需要進行靈活加密。
對于數據庫內容的加密,其數據類型是需要處理的,否則,加密后的數據會出現與定義數據類型不符合的情況,從而產生數據庫管理系統(tǒng)拒絕加載的情況。比較成熟的解決辦法是建立密文表來存放密文,凡是需要加密的數據都定義為計算機二進制數據類型,加密以后插入數據庫的數據全部為二進制數據類型的數據。在用戶進行檢索的時候,加密系統(tǒng)將自動脫密,同時迅速轉換成所定義的數據類型。在系統(tǒng)提供的操作界面上,用戶能夠確定需要加密的庫表,同時選擇想要加密的列數據。
在輸入某條庫表紀錄的時候,加密系統(tǒng)會立即得到該庫表的加密要求,同時對該列數據進行加密,并將密文存入到數據庫表中。對需要加密的列數據進行加密,然后將得到的密文插入到數據庫表中。
當應用系統(tǒng)查得一條數據庫表記錄時,系統(tǒng)查得該表的加密要求。如果是明文(該表沒有加密要求),則直接將明文記錄交付用戶。如果有加密要求則先驗證用戶權限,通過嚴整則將每個需要脫密的列數據脫密,并將所得到的明文交付用戶。當修改一條數據庫表記錄時,情況與插入一條記錄相似。
5 此分布式數據庫加密系統(tǒng)的優(yōu)點
這種體系的優(yōu)點是:
1)由于所有的加/解密及密鑰管理工作都在加密服務器中進行,因而可以大大減輕數據庫服務器的負擔,提高數據庫服務器的效率;
2)實現了加密密鑰信息與數據加密信息的分離,使得加密密鑰的管理更為簡便安全;
3)由于將數據的加/解密及密鑰管理工作分離出來,可以為整個數據庫系統(tǒng)環(huán)境提供一種標準的加密服務。
此系統(tǒng)基本上符合了分布式數據庫加密的要求:
1)數據庫在經過加密之后,數據的總量不應該有較大的增加;
2)數據在經過加密后期長度不變;
3)不同子系統(tǒng)之間的快速,安全訪問;
4)數據傳輸的安全。
6 結束語
分布式數據庫加密還有待更多、更深入的研究,有廣闊的前景和實際應用價值,其技術的進步也會極大地推動分布式數據庫安全技術的全面發(fā)展。
例如密文數據庫的查詢,對于基于字段級的加密,一般情況如果想要查詢其中的某一數據項就需要先解密整列數據再進行查詢,這樣效率就比較低。解決這個問題的一個方法就是建索引,但是索引是以明文形式存在,也不安全;另一個方法就是如果有一個好的查詢算法能先過濾掉一些無關的數據,再進行解密查詢,這樣就能提高查詢效率。其中的查詢算法是關鍵。
本文由于本人知識水平和時間有限,未對分布式數據庫加密技術作更全面、深入的研究。文中亦會有不妥和疏漏之處,敬請各位同行批評、指正。
參考文獻:
[1] 劉啟原,劉怡.數據庫與信息系統(tǒng)的安全[M].北京:科學出版社,2006.
[2] 余祥宣,崔永泉,崔國華.分布式環(huán)境下數據庫加密密鑰管理方案[J].華中科技大學學報(自然科學版),2002(4).
[3] 高敬欣,陳志剛,熊策.基于三層C/S模型的銀行電子設備管理系統(tǒng)的設計與實現[J].計算技術與自動化,2004(9).