數(shù)據(jù)庫(kù)常用的加密技術(shù)

信息安全的核心是數(shù)據(jù)庫(kù)的安全,對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)加密是為增強(qiáng)普通關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的安全性,提供一個(gè)安全適用的數(shù)據(jù)庫(kù)加密平臺(tái),對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)的內(nèi)容實(shí)施有效保護(hù)。它通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)加密等安全方法實(shí)現(xiàn)了數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)保密和完整性要求,使得數(shù)據(jù)庫(kù)以密文方式存儲(chǔ)并在密態(tài)方式下工作,確保了數(shù)據(jù)安全。

根據(jù)文件型數(shù)據(jù)庫(kù)的特點(diǎn),數(shù)據(jù)庫(kù)的加密一般可以有三種方式:

庫(kù)內(nèi)加密

如果從關(guān)系型數(shù)據(jù)庫(kù)的各個(gè)方面出發(fā),很容易形成庫(kù)內(nèi)加密的思想。關(guān)系型數(shù)據(jù)庫(kù)的關(guān)鍵術(shù)語(yǔ)有:表、字段、行和數(shù)據(jù)元素。基本上可以針對(duì)這幾方面形成一種加密的方法。

(1)以表為單位:對(duì)于文件型數(shù)據(jù)庫(kù)來(lái)說(shuō),一個(gè)文件只有一張表,因而對(duì)表的加密可以說(shuō)是對(duì)文件的加密了。對(duì)過(guò)更改文件分配表(FAT)中的說(shuō)明等手段可以實(shí)現(xiàn)對(duì)文件的簡(jiǎn)單加密,但這種加密方式涉及到文件系統(tǒng)底層,誤操作容易造成FAT混亂,而且與文件系統(tǒng)格式有關(guān),因而通常不宜采用。

(2)以記錄或字段(即二維表的行或列)為單位加密:通常情況下,我們?cè)L問(wèn)數(shù)據(jù)庫(kù)時(shí)都是以二維表方式進(jìn)行的,二維表的每一行就是數(shù)據(jù)庫(kù)的一條記錄,二維表的每一列就是數(shù)據(jù)庫(kù)的一個(gè)字段。如果以記錄為單位進(jìn)行加密,那么每讀寫(xiě)一條記錄只需進(jìn)行一次加解密的操作,對(duì)于不需要訪問(wèn)到的記錄,完全不需要進(jìn)行任何操作,所以使用起來(lái)效率會(huì)高一些。但是由于每一個(gè)記錄都必須有一個(gè)密鑰與之匹配,因此產(chǎn)生和管理記錄密鑰比較復(fù)雜。以字段為單位的加密分析與以記錄為單位的加密情況相似。

(3)以數(shù)據(jù)元素為單位加密:由于數(shù)據(jù)元素是數(shù)據(jù)庫(kù)庫(kù)內(nèi)加密的最小單位,因而這種加密方式最徹底的但也是效率最低的。每個(gè)被加密的元素會(huì)有一個(gè)相應(yīng)的密鑰,所以密鑰的產(chǎn)生和管理比記錄加密方式還要復(fù)雜。

庫(kù)外加密

考慮到文件型數(shù)據(jù)庫(kù)系統(tǒng)是基于文件系統(tǒng)的,因而庫(kù)外加密的辦法,應(yīng)該針對(duì)文件IO操作或操作系統(tǒng)而言的,因?yàn)閿?shù)據(jù)庫(kù)管理系統(tǒng)與操作系統(tǒng)的接口方式有三種:一是直接利用文件系統(tǒng)的功能;二是利用操作系統(tǒng)的I/O模塊;三是直接調(diào)用存儲(chǔ)管理。所以在采用庫(kù)外加密的方法時(shí),可以將數(shù)據(jù)先在內(nèi)存中使用DES、RSA等方法進(jìn)行加密,然后文件系統(tǒng)把每次加密后的內(nèi)存數(shù)據(jù)寫(xiě)入到數(shù)據(jù)庫(kù)文件中去(注意是把整個(gè)數(shù)據(jù)庫(kù)普通的文件看待,而不是按數(shù)據(jù)關(guān)系寫(xiě)入),讀入時(shí)再逆方面進(jìn)行解密就可以正常使用了。這種加密方法相對(duì)簡(jiǎn)單,只要妥善管理密鑰就可以了。缺點(diǎn)對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě)都比較麻煩,每次都要進(jìn)行加解密的工作,對(duì)程序的編寫(xiě)和讀寫(xiě)數(shù)據(jù)庫(kù)的速度都會(huì)有影響。

硬件加密

硬件加密主要是相對(duì)于軟件加密的,是指在物理存儲(chǔ)器與數(shù)據(jù)庫(kù)系統(tǒng)之間加上一層硬件作為中間層,加密和解密的工作都由添加的硬件完成。不過(guò)由于添加的硬件與原計(jì)算機(jī)硬件之間可能存在著兼容問(wèn)題,還有在進(jìn)行控制讀寫(xiě)的時(shí)候存在著繁瑣的設(shè)置,所以這種應(yīng)用起來(lái)也不會(huì)太廣泛。