數(shù)據(jù)庫加密方法
根據(jù)數(shù)據(jù)庫按數(shù)據(jù)組織方式劃分的諸多種類,加密方法可以粗略地分為3種,即庫外加密、庫內(nèi)加密以及硬件加密。
一、庫外加密
對于依賴于操作系統(tǒng)進行數(shù)據(jù)管理(包括文件管理)的數(shù)據(jù)管理系統(tǒng)來說,庫外加密是大多數(shù)數(shù)據(jù)庫管理系統(tǒng)采取的策略。數(shù)據(jù)庫管理系統(tǒng)一般可以通過3個層面的API獲取操作系統(tǒng)在數(shù)據(jù)管理和樹訪問處理等方面的支持:
1、直接調用操作系統(tǒng)文件系統(tǒng)功能。即最常見的一種方式。
2、直接調用操作系統(tǒng)的I/O模塊。
3、直接調用操作系統(tǒng)的存儲管理。
例如:可以直接存取訪問磁盤的物理柱面、磁道以及扇區(qū),實際上是繞過了操作系統(tǒng)的文件系統(tǒng)管理功能。后兩種方式一般是為了追求效率的目標,但是往往要增加許多數(shù)據(jù)共享方面的難度。
3種方式都可以在數(shù)據(jù)庫外對數(shù)據(jù)進行加密處理,然后納入數(shù)據(jù)庫管理系統(tǒng)。實際上是首先
1、在文件系統(tǒng)內(nèi)對文件加密,形成數(shù)據(jù)存儲塊后,通過文件系統(tǒng)一次一個加密分組地進行存人或取出操作;
2、加密后存入文件,從文件取出后進行解密;
3、交給數(shù)據(jù)庫管理系統(tǒng)繼續(xù)處理。
文件系統(tǒng)和DBMS交換信息主要是塊號。數(shù)據(jù)庫管理系統(tǒng)DBMS通過文件系統(tǒng)管理這些加密分組,必要的參數(shù)還包括塊的長度、塊號、塊頭標志信息域、塊尾信息等。原則上講,庫外加密的數(shù)據(jù)庫管理系統(tǒng)可以基本不變,因為文件系統(tǒng)交給數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)組織方式基本未變。庫外加密方式的優(yōu)點是:對數(shù)據(jù)庫管理系統(tǒng)DBMS的特殊要求比較少,實現(xiàn)上只要增加一個中間層次負責加密解密數(shù)據(jù)即可。
相對于其他方法,密鑰的管理也簡單得多,與操作系統(tǒng)內(nèi)部文件加密的密鑰管理基本相同。但是,由于數(shù)據(jù)在查找時必須全部進行解密操作,因此,往往需要付出較大的時空代價。
此外,在實現(xiàn)數(shù)據(jù)完整性約束條件時,數(shù)據(jù)字典中的數(shù)據(jù)和數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的同步問題也需要付出額外的代價,必須在算法或系統(tǒng)內(nèi)部處理上加以安排。
二、庫內(nèi)加密
經(jīng)典的數(shù)據(jù)庫系統(tǒng)將內(nèi)部結構劃分為3層,即存儲模式、內(nèi)模式和外模式。
1、存儲模式負責描述數(shù)據(jù)的物理結構;
2、內(nèi)模式描述數(shù)據(jù)的全局邏輯結構;
3、外模式又稱子模式,負責描述數(shù)據(jù)的局部邏輯結構。
從3模式結構出發(fā)考慮數(shù)據(jù)庫數(shù)據(jù)加密問題的核心就是在樹據(jù)的各個層次的映射過程中增加一個加密映射層次,或者稱之為加密模式。加密映射層次位于內(nèi)模式和存儲模式之間為好。加密單位或者粒度可以是表、紀錄、域或數(shù)據(jù)元素。
顯然所選擇的加密粒度的粒度越精細,需要掌管的加密密鑰的數(shù)量就愈大,密鑰管理的難度和復雜性就越高,但是由于加密解密的粒度細化,加密解密的針對性比庫外加密方式更強,所以原則上講時空效率應當是比較好的,而且由于是在數(shù)據(jù)庫管理系統(tǒng)內(nèi)部實現(xiàn)的,所以和數(shù)據(jù)存取訪問控制機制、授權機制等數(shù)據(jù)庫安全機制的結合比較有效,效率比較高。
三、硬件加密
對數(shù)據(jù)庫而言,硬件加密主要解決靜態(tài)數(shù)據(jù)的加密問題。不論哪種加密方式,均可以用硬件加密的方式加以實現(xiàn)。
小知識之數(shù)據(jù)庫管理系統(tǒng):
數(shù)據(jù)庫管理系統(tǒng)(database management system)是一種操縱和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護數(shù)據(jù)庫,簡稱dbms。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過dbms訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過dbms進行數(shù)據(jù)庫的維護工作。它可使多個應用程序和用戶用不同的方法在同時或不同時刻去建立,修改和詢問數(shù)據(jù)庫。










