數(shù)據(jù)庫(kù)系統(tǒng)擔(dān)負(fù)著存儲(chǔ)和管理信息的任務(wù),集中存放著大量數(shù)據(jù),而且又為眾多用戶直接共享。泄露或破壞這些信息將會(huì)造成企業(yè)癱瘓,給國(guó)家?guī)?lái)巨大的損失,甚至危及國(guó)家安全,需要采取適當(dāng)?shù)拇胧┻M(jìn)行數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的防護(hù)。
事實(shí)證明,保證數(shù)據(jù)安全性的最好方法是數(shù)據(jù)加密。歐美國(guó)家雖然提供了一些加密產(chǎn)品,但很難保證其中沒(méi)有陷阱,國(guó)內(nèi)目前也沒(méi)有真正有效的數(shù)據(jù)庫(kù)加密軟件?,F(xiàn)在流行的大型數(shù)據(jù)庫(kù)系統(tǒng)提供了許多安全技術(shù),基本能夠滿足一般的數(shù)據(jù)庫(kù)應(yīng)用需求。但對(duì)一些特殊的安全需求,它們提供的安全技術(shù)還是不夠完備的,因此,為了企業(yè)、政府甚至是國(guó)家的安全,開(kāi)發(fā)安全、可靠的數(shù)據(jù)庫(kù)加密系統(tǒng)已迫在眉睫。
一、數(shù)據(jù)庫(kù)加密的常用辦法及其缺陷
現(xiàn)在數(shù)據(jù)庫(kù)系統(tǒng)主要基于三個(gè)層次進(jìn)行數(shù)據(jù)庫(kù)加密工作,即0S、DBMS內(nèi)核層、DBMS外層。目前常用的辦法是在DBMS外核層加密。 DBMS外核層加密是將數(shù)據(jù)庫(kù)加密系統(tǒng)做成DBMS的一個(gè)工具,其優(yōu)點(diǎn)是不會(huì)加重?cái)?shù)據(jù)庫(kù)服務(wù)器的負(fù)載并可以實(shí)現(xiàn)網(wǎng)上傳輸加密,缺點(diǎn)是加密功能會(huì)受一些限制。作為一種通過(guò)加密方式來(lái)保護(hù)數(shù)據(jù)的專門系統(tǒng),數(shù)據(jù)庫(kù)加密系統(tǒng)并不是一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),而是一個(gè)將DBMS部分功能、加密器和密鑰管理三者緊密結(jié)合起來(lái)的系統(tǒng)。顯然數(shù)據(jù)庫(kù)加密系統(tǒng)實(shí)際上主要實(shí)現(xiàn)的還是加密器(包括加密定義工具)的功能,它既可工作于數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)與DBMS之間,又可作為一個(gè)獨(dú)立工作的系統(tǒng)直接與DBMS交互。
選擇數(shù)據(jù)庫(kù)加密方法要充分考慮數(shù)據(jù)庫(kù)特點(diǎn),如數(shù)據(jù)保存比較長(zhǎng),每次操作涉及數(shù)據(jù)量較大等。下面分析幾種常用的加密方法,為了適合數(shù)據(jù)庫(kù)的特點(diǎn),還需要對(duì)數(shù)據(jù)庫(kù)加密方法進(jìn)行局部的改動(dòng)。
1、基于文件的數(shù)據(jù)庫(kù)加密技術(shù)
把數(shù)據(jù)庫(kù)文件作為整體,用加密器和加密算法對(duì)整個(gè)數(shù)據(jù)庫(kù)文件加密,形成密文來(lái)保證數(shù)據(jù)的真實(shí)性和完整性。利用這種方法,數(shù)據(jù)的共享是通過(guò)用戶用解密密鑰對(duì)整個(gè)數(shù)據(jù)庫(kù)文件進(jìn)行解密來(lái)實(shí)現(xiàn)的,但多方面的缺點(diǎn)極大地限制了這一方法的實(shí)際應(yīng)用。首先,數(shù)據(jù)修改的工作將變得十分困難,需要進(jìn)行解密、修改、復(fù)制和加密四個(gè)操作,極大地增加了系統(tǒng)的時(shí)空開(kāi)銷;其次,即使用戶只是需要查看某一條記錄,也必須將整個(gè)數(shù)據(jù)庫(kù)文件解密,這樣無(wú)法實(shí)現(xiàn)對(duì)文件中不需要讓用戶知道的信息的控制。因此,這種力法只適用于能回避這些限制的應(yīng)用環(huán)境。
2、基于記錄的數(shù)據(jù)庫(kù)加密技術(shù)
一般而言,數(shù)據(jù)庫(kù)系統(tǒng)中每條記錄所包含的信息都具有一定的封閉性,即從某種程度上說(shuō)它獨(dú)立完整地存儲(chǔ)了一個(gè)實(shí)體的數(shù)據(jù),因此是最常用的數(shù)據(jù)庫(kù)信息加密手段。這種方法的基本思路是:基于記錄的加密技術(shù)在各自密書(shū)的作用下,將數(shù)據(jù)庫(kù)的每一個(gè)記錄加密成密文并存放于數(shù)據(jù)庫(kù)文件中;記錄的查找是通過(guò)將需查找的值加密成密碼文后進(jìn)行的,然而基于記錄的數(shù)據(jù)庫(kù)保護(hù)有一個(gè)缺點(diǎn),就是在解密一個(gè)記錄的數(shù)據(jù)時(shí),無(wú)法實(shí)現(xiàn)對(duì)這個(gè)記錄中不需要的字段不解密,在選擇某個(gè)字段的某些記錄時(shí),如果不對(duì)含有這個(gè)字段的所有記錄進(jìn)行解密就無(wú)法進(jìn)行選擇。
3、子密鑰數(shù)據(jù)庫(kù)加密方法
子密鑰加密算法的核心思想是根據(jù)數(shù)據(jù)庫(kù)(主要針對(duì)關(guān)系型數(shù)據(jù)庫(kù))中數(shù)據(jù)組織的特點(diǎn)。在加密時(shí)以記錄為單位進(jìn)行加密操作,而在查詢需要解密時(shí)。則是以數(shù)據(jù)項(xiàng)為單位進(jìn)行解密操作。兩者所用的密鑰是不同的,加密所用的密鑰是針對(duì)整個(gè)記錄的密鑰,而解密所用的密鑰是針對(duì)該數(shù)據(jù)項(xiàng)的子密鑰。該算法的理論依據(jù)是我國(guó)著名的孫子定理(中國(guó)剩余定理)
二、常用數(shù)據(jù)庫(kù)加密方案對(duì)數(shù)據(jù)庫(kù)的影響
數(shù)據(jù)加密是通過(guò)對(duì)明文進(jìn)行復(fù)雜的加密操作,進(jìn)而無(wú)法發(fā)現(xiàn)明文和密文之間、密文和密鑰之間的內(nèi)在關(guān)系,也就是說(shuō)經(jīng)過(guò)加密的數(shù)據(jù)經(jīng)得起來(lái)自OS和DBMS的攻擊。但在數(shù)據(jù)庫(kù)中以密文形式存在的敏感數(shù)據(jù)無(wú)法使用數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的一些功能。DBMS的功能比較完備,然而數(shù)據(jù)庫(kù)數(shù)據(jù)加密以后,DBMS的一些功能將無(wú)法直接使用。
1、加密字段不能實(shí)現(xiàn)索引功能。
為了達(dá)到迅速查詢的目的,數(shù)據(jù)庫(kù)文件需要建立一些索引。索引建立和應(yīng)用必須是明文狀態(tài),否則將失去索引的作用。有的DBMS中可以建立索引,這類索引也需要在明文狀態(tài)下建立、維護(hù)和使用。
2、表間的連接碼字段不能加密。
數(shù)據(jù)模型規(guī)范化以后,數(shù)據(jù)庫(kù)表之間存在著密切的聯(lián)系,這種相關(guān)性往往是通過(guò)局部編碼聯(lián)系的,這些編碼若加密就無(wú)法進(jìn)行表與表之間的連接運(yùn)算。
3、無(wú)法實(shí)現(xiàn)對(duì)數(shù)據(jù)制約因素的定義。
數(shù)據(jù)庫(kù)管理系統(tǒng)定義了數(shù)據(jù)之間的制約規(guī)則。數(shù)據(jù)一旦加密,DBMS將無(wú)法實(shí)現(xiàn)這一功能,而且,值域的定義也無(wú)法進(jìn)行。
4、密文數(shù)據(jù)無(wú)法實(shí)現(xiàn)SQL的排序、分組和分類功能。
SELECT語(yǔ)句中的Group、Orderby、Having子句分別完成分組、排序、分類等操作。這些子句的操作對(duì)象如果是加密數(shù)據(jù),那么解密后的明文數(shù)據(jù)將失去原語(yǔ)句的分組、排序、分類作用,顯然這不是用戶所需要的。
5、SQL語(yǔ)言中的內(nèi)部函數(shù)將對(duì)加密數(shù)據(jù)失去作用。
6、BDMS對(duì)各種類型數(shù)據(jù)均提供了一些內(nèi)部函數(shù),這些函數(shù)不能直接作用于加密數(shù)據(jù)。
7、BDMS的一些應(yīng)用開(kāi)發(fā)工具的使用受到限制。
DBMS的一些應(yīng)用開(kāi)發(fā)工具不能直接對(duì)加密數(shù)據(jù)進(jìn)行操作,因而它們的使用會(huì)受到限制。
數(shù)據(jù)庫(kù)加密影響了一些數(shù)據(jù)庫(kù)管理系統(tǒng)的功能,如閱讀語(yǔ)句中的函數(shù)、排序、分組等,但可以通過(guò)組件技術(shù)來(lái)實(shí)現(xiàn)這些功能,如可采用SQL解釋器。所以說(shuō)數(shù)據(jù)庫(kù)加密以后,DBMS的一些功能將無(wú)法直接使用,但可以在DBMS外層的SMS(安全管理系統(tǒng))中增加組件來(lái)實(shí)現(xiàn)這些功能。
三、全新的數(shù)據(jù)庫(kù)加密解決方案——DataBaseSec
鑒于傳統(tǒng)數(shù)據(jù)庫(kù)加密辦法具有種種缺陷,并對(duì)數(shù)據(jù)庫(kù)性能造成很大的影響,北京億賽通科技發(fā)展有限公司推出了全新的數(shù)據(jù)庫(kù)加密系統(tǒng)DataBaseSec。DataBaseSec拋棄了傳統(tǒng)的數(shù)據(jù)庫(kù)加密的思路,而是從數(shù)據(jù)庫(kù)的存儲(chǔ)設(shè)備著手,通過(guò)全磁盤加密結(jié)合端口管理的方式,真正實(shí)現(xiàn)了數(shù)據(jù)庫(kù)全部數(shù)據(jù)加密,并有效地解決了數(shù)據(jù)庫(kù)管理員的超級(jí)權(quán)力可能導(dǎo)致的泄密問(wèn)題,是全球最為領(lǐng)先的解決方案。
億賽通數(shù)據(jù)庫(kù)加密系統(tǒng)DataBaseSec主要有以下優(yōu)勢(shì):
1. 采用高強(qiáng)度的加密算法,加密后的數(shù)據(jù)不可破譯;
2. 數(shù)據(jù)信息在加密后,其占用的存儲(chǔ)空間并不明顯增大;
3. 全磁盤加密技術(shù)是透明動(dòng)態(tài)加解密技術(shù),加密和解密速度快,不改變用戶操作系統(tǒng),不降低系統(tǒng)性能,對(duì)用戶來(lái)說(shuō)完全透明;
4. 采用全磁盤加密技術(shù)與端口控制相結(jié)合的制衡機(jī)制,能保證數(shù)據(jù)庫(kù)管理員和網(wǎng)絡(luò)管理員之間互相制約,解決了數(shù)據(jù)庫(kù)管理員權(quán)限過(guò)大無(wú)法控制的問(wèn)題;
5. 對(duì)數(shù)據(jù)庫(kù)的加密不影響系統(tǒng)的原有功能,保持對(duì)數(shù)據(jù)庫(kù)操作的靈活性和簡(jiǎn)便性;
6. 加密后的數(shù)據(jù)庫(kù)仍能滿足用戶在不同類別程度的訪問(wèn)。