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









