第四章數據庫安加密技術_第1頁
第四章數據庫安加密技術_第2頁
第四章數據庫安加密技術_第3頁
第四章數據庫安加密技術_第4頁
第四章數據庫安加密技術_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第四章第四章 數據庫加密技術數據庫加密技術數據加密的必要性v網絡技術、網絡協議是公開的v操作系統的漏洞v網絡是黑客竊取情報的場所v我國網絡技術落后數據加密的作用(看不懂、改不了)v解決外部黑客侵入后盜竊數據的問題v解決外部黑客侵入后篡改數據的問題v解決內部黑客侵入后盜竊數據的問題v解決內部黑客侵入后篡改數據的問題v解決CPU、操作系統等被黑客軟件安裝木馬的問題基本數據庫加密模式基本數據庫加密模式基本數據庫加密模式基本數據庫加密模式v加密橋的目標:應用系統的數據庫字段加密后,仍可實現各種數據庫操作。v加密橋相當于一個加密數據的“結構化查詢語言”SQL(Structured Query Langu

2、age)語句編譯執行器,數據庫所有對加密數據操作的SQL語句不再由數據庫管理系統(DBMS, database management system )執行,改由加密橋執行,相當于建立一套新的用于操作加密數據的SQL語言。第四章第四章 數據庫的加密數據庫的加密41 數據庫安全概述數據庫安全概述計算機系統的數據形式有兩種:一種是文件形式;另一種是數據庫形式。文件組織形式的數據缺乏數據共享性,而數據庫組織形式的數據具有共享性、獨立性、一致性、完整性和可訪問性,因而得到廣泛應用,現已成為計算機系統存儲數據的主要形式。因為操作系統對數據庫文件沒有特殊的安全保護措施,數據庫的安全必須通過數據庫管理系統來實

3、現。因此本節先討論數據庫安全的重要性和數據庫面臨的安全威脅,然后討論數據庫的安全需求,最后介紹其安全技術。第四章第四章 數據庫的安全與加密數據庫的安全與加密41 數據庫加密數據庫加密據庫加密方法數據庫的數據組織方式可以有很多種類一個數據庫表對應一個操作系統管理的文件整個數據庫組織為一個大的文件,甚至可以是跨硬件設備文件卷的大文件。一些數據庫管理系統將操作系統的功能接管過來,整個數據庫管理系統包括了操作系統的文件系統功能,形成專用的數據庫系統。75 數據庫加密數據庫加密數據中的數據以可讀的形式存儲在數據庫中,這是一個嚴重的不安全因素。對于一些計算機用戶,完全可以修改其中信息或從存儲介質中導出機密

4、信息,這樣就難以核實這些信息的真實性。要徹底解決這些問題,除了傳輸過程中采取加密保護和控制非法訪問外,還必須對存儲的數據進行加密保護。對存儲在計算機系統外部存儲器里的數據進行保護的手段是多種多樣的,而數據加密方法是最基本的技術之一,特別是對于竊取或篡改數據之類的犯罪和破壞活動來說更是一種有效的保護措施。因此,數據庫安全技術中,采用密碼控制手段來保護數據庫中存儲的數據。751數據庫的加密要求數據庫的加密要求對數據庫的加密主要有以下幾點要求:1)加密系統應該是實際上是不可破的。因為數據庫保存時間長,不可能采用一次一密的加密方法,為了數據的安全,應該變換密鑰。2)數據加密后,存儲空間應該沒有明顯的增

5、加。3)為了維護系統的原有性能,加密和解密的速度應足夠快。4)加密系統要有盡可能靈活的授權機制。由于一個龐大的數據庫由多個用戶共享,但不是所有的用戶都能使用全部數據。對大多數用戶來說,只能使用其中的一部分。因此,加密系統應有很強的訪問控制的授權機制與之相配合。為使數據能充分靈活的共享,加密后應當允許用戶以不同的粒度進行訪問。5)加密系統應提供一套安全的、使用靈活的密鑰管理機構。6)加密后,對數據庫的查詢、檢索、修改和更新要簡便、靈活。742 數據庫的加密方式數據庫的加密方式根據數據庫的特點,數據庫的加密一般采用如下三種方式:1)庫外加密數據庫管理系統與操作系統的接口方式有三種:一是直接利用文件

6、系統的功能;二是直接利用操作系統的I/O模塊;三是直接調用存儲管理。因此,可以將數據在庫外加密,然后納入數據庫內。如在數據庫系統外加密(采用文件加密的方法),形成存儲塊,然后文件系統每次交給數據庫管理系統(DBMS)一個完整的數據存儲塊,將數據塊存入數據庫內。文件系統把整個數據庫當成一個文件,將每一個存儲塊當成一個文件記錄,文件系統與數據庫管理系統交換的就是塊號。當DBMS要求組裝數據塊或插入數據記錄時,就向文件系統申請一塊,以便建立索引。DBMS為了更好的管理這個存儲塊,需要確定如下參數:塊號、塊大小、塊頭信息、標志位、塊尾信息等。庫外加密方法比較簡單,密鑰管理也相對簡單,只需借用文件加密的

7、密鑰管理辦法。但是,加密的數據塊納入數據庫時,要對數據進行完整性約束,而加密后的數據可能會超出約束范圍,因此要在算法或數據庫系統中做些必要的改動,以利于公共數據字典(CCD)的使用和維護系統的完整性要求。2)庫內加密根據數據庫結構的特點,要對數據進行加密,可以增設一數據加密模式實現數據的加密。該加密模式所處的位置應在模式與存儲模式之間,如圖7.5所示。圖中的物理數據是系統中存放于存儲介質上的數據庫,而DBMS中的存儲模式描述了數據的物理結構;概念模式描述了數據庫的全局邏輯結構;子模式描述了相應用戶的數據視圖,定義了其相應的內部數據模型。在概念模式和存儲模式之間,增加一個數據加密模式,就可以在描

8、述數據存儲的物理結構之前,對待存儲的數據進行加密處理,或者在使用存放的物理數據之前,對其進行解密處理。加密的粒度(單位)可以是記錄、域或者數據元素。粒度是指一次訪問操作所及到的被訪問對象大小。圖7.5數據描述子模塊概念模式加密模式存儲模式子模塊硬件加密裝置物理數據庫DBMS加密模型(1)記錄(元組)加密如果一個用戶只允許訪問數據庫的少數紀錄,而不是大量紀錄,那么采用的加密方式應以記錄加密方式較好。因為它具有靈活性、高效和適應性強等優點,因此是數據庫常用的加密方式。記錄加密方式,實質上是把數據庫的每一行作為一個文件進行加密。此時每一個記錄必須有一個密鑰與之匹配。因此,產生和管理記錄密鑰比較復雜。

9、(2)域(屬性)加密對于許多用戶來說,常以域(字段)的方式訪問數據庫,那么數據庫的加密方式以數據項加密方式為好。這種加密方式和記錄加密方式是同一類型的,一個是對數據庫的行進行加密,另一個是對數據庫的列加密。它的缺點與記錄加密相同,密鑰的產生和管理比較復雜。(3)數據項加密數據項加密方法最早是由Denning,D.E于1983年提出。數據項是數據庫加密的最小粒度。這種加密方式具有更好的靈活性和適應性,完全支持數據庫的各種功能(如記錄、數據項查詢、修改)。它把每個數據元素看作一個文件進行加密,每個被加密的元素有一個與之一一對應的加密密鑰。由于它的粒度小,因此加密效率低,而且元素密鑰的產生和管理比記

10、錄加密和域加密方式要復雜。 考慮一個具有N條記錄,M個屬性的關系數據庫。Xij表示第i條(i=N)記錄上的第j個(j=M)屬性的數據項。加密Xij,生成密文Cij最直接的方法是:取一個數據庫密匙K,令Cij=E(K,Xij),同時有Xij=D(K,Cij)。這里,E是任意一種分組對稱加密算法(例如3DES算法),D為E對應的解密算法(一般情況下,D和E十分類似,下面只考慮E),加密和解密采用的是同一密匙K。當Xij的長度小于對稱加密算法E所需要的塊長時,要對Xij進行擴展,使其達到足夠的長度;當Xij的長度大于塊長,但不是塊長的整數倍時,可以有兩種處理方式:一是將其擴展成長度的整數倍,二是對不

11、夠塊長的部分采用流密碼加密方法進行加密。這里只討論Xij為塊長的整數倍時的情況。 上述加密方法的安全性是很低的。對于不同記錄p和q上屬性相同的兩個數據項Xpj和Xqj,若Xpj=Xqj,由上述加加密算法可知加密后的密文是相同的,即Cpj=Cqj。這樣,如果Cpj和Cqj中的任意一個被破譯,那么Xpj和Xqj就會同時被泄露。由于同一屬性中數據項的取值在一定范圍之內,且往往呈現一定的概率分布,攻擊者甚至可以捕獲得原文,而直接通過統計就方法,就可以得到有關的原文信息。上述缺陷產生的原因在于值相同的原文加密后密文的值也相同,根本原因在于加密采用的密匙是同一個密匙。為了避免這種情況,對不同的數據項,采用

12、不同的密匙進行加密,即對任意Xij,有密匙Kij,密文Cij=E(Kij,Xij)。這樣做,解決了上面所說的安全問題。但是,由于密匙數量的增加,又引出了密匙的產生和管理等問題。例如,對于一個N條記錄、M個屬性的數據庫,就需要有N*M個不同密匙。這么多的密匙,出于安全和效率上的考慮,顯然是不能全部存儲在介質上的,只能在需要的時候動態生成。同時,數據庫中的數據需長期存放,要保證加密解密的一致性,對數據項解密時所用的密匙應和加密時所用的密匙完全一樣,即前后產生的密匙要相同。因此,密匙不可能隨機產生,而只能通過某種固定的函數關系生成。該函數關系只與數據項在表中的位置有關,而與數據項的值無關。通常,與數

13、據項位置相關的幾個量有:它所在的表,所在的記錄和屬性。設每個表有一個表密匙TK,每條記錄有一個不需加密的標志Ri,每一屬性也有一標志Cj,那么數據項Xij的密匙Kij可如下產生:Kij=f(TK,Ri,Cj)這里,f是數據項密匙生成函數,其中一般包含分組加密算法。該分組加密算法可以與數據項加密所用的塊加密算法一致,也可以不一致。這里假設是一致的,都是E。密匙生成函數f應該滿足以下3個安全條件:不同數據項的密匙相同的概率很小;即使已知數據項Xij的一些信息(如取值范圍、概率分布),也不可能由密文Cij獲得Xij的其他信息;由某一個數據項密匙難于求得其他數據項密匙。另一方面,數據項密匙產生的速度應

14、盡可能地快,這也是衡量生成函數好壞的一項重要標準。影響數據項密匙生成速度的最主要因素是執行分組加密算法E的次數,這是因為一個高強度的塊加密算法E,執行它所需要的時間是比較長的。所以,一個密匙生成函數的效率也就越高。因此,衡量一個數據項密匙生成函數效率的高低,最主要的就是看它執行塊加密算法E的次數。3)硬件加密上述加密方式既可用軟件實現,也可用硬件實現。硬件加密是在物理存儲器(磁盤)與數據庫系統之間加一個硬件裝置,使之與實際的數據庫系統脫離。這種方式首先要求數據庫應存在專一磁盤上,并且對進入盤時控制信息不加密,而只對數據加密。753加密影響加密影響DBMS的功能比較完備,如Oracle,Sysb

15、ase,DB2,Informix等采用CLIENT/SWEVER結構的數據庫管理系統均具有數據管理和應用開發等工具。然而,數據庫數據加密以后,DBMS的一些功能將無法使用。1、無法實現對數據約束條件的定義:數據庫系統定義了數據之間的完整性約束條件,數據一旦加密,DBMS將無法實現這一功能,而且,值域的定義也無法進行。此外,數據庫中的每個字段的類型、長度都有具體的限定。數據加密時,數值類型的數據只能在數值范圍內加密,日期和字符類型的數據只能在各自的類型范圍內加密,密文長度不能超過字段限定的長度,否則DBMS將無法接受這些加密過的數據。2、密文數據的排序、分組和分類:SELECT語句中ORDERB

16、Y、GROUPBY子句分別完成分組、排序、分類等操作。這些子句的操作對象如果是加密數據,那么解密后的明文數據將失去原語句的分組、排序、分類作用,這顯然不是用戶所需要的。3、SQL語言中的內部函數將對加密數據失去作用:DBMS對各種數據類型均提供了一些內部函數,這些函數不能直接作用于加密數據。4、DBMS的一些應用開發工具的使用受到限制:DBMS的一些應用開發工具不能直接對加密數據進行操作,因而它們的使用會受到限制。數據庫加密算法數據長時間保存,運行中又要對數據進行反復操作,操作時機又是隨機的。適用于數據庫環境的特殊的數據庫加密技術。(1)子密鑰數據庫加密算法(2)秘密同態算法v經過加密的數據經得起來自OS和DBMS的攻擊;v另一方面,DBMS要完成對數據庫文件的管理和使用,必須具有能夠識別部分數據的條件。v因此,只能對數據庫中數據進行部分加密。v下面列出一些不能加密的數據:v索引字段不能加密v關系運算的比較字段不能加密v表間的連接碼字段不能加密5數據庫加密的不同層次1操作系統(OS)層加密這種方式由于很難確認數據庫文件中的數據關系,從而無法產生合理的密鑰,也無法進行合

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論