任華新
摘要:隨著關(guān)系型數(shù)據(jù)庫(kù)在計(jì)算機(jī)應(yīng)用領(lǐng)域越來(lái)越多的應(yīng)用,數(shù)據(jù)的安全問(wèn)題越來(lái)越受到重視。如果對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行加密處理,那么數(shù)據(jù)庫(kù)的安全性就能有所提高。所以,數(shù)據(jù)庫(kù)加密是解決數(shù)據(jù)庫(kù)安全問(wèn)題最為有效的一種方法。關(guān)系型數(shù)據(jù)庫(kù)的加密技術(shù)有很多,關(guān)鍵是應(yīng)該使用那種方法,所以關(guān)系型數(shù)據(jù)庫(kù)中加密技術(shù)的研究是非常必要的。
關(guān)鍵詞:關(guān)系型數(shù)據(jù)庫(kù);加密;加密算法;粒度
中圖分類(lèi)號(hào):F062.5文獻(xiàn)標(biāo)志碼:A文章編號(hào):1673-291X(2009)32-0258-02
數(shù)據(jù)庫(kù)技術(shù)是信息系統(tǒng)的核心和基礎(chǔ),它的出現(xiàn)極大地促進(jìn)了計(jì)算機(jī)應(yīng)用向各行各業(yè)的滲透。數(shù)據(jù)庫(kù)的建設(shè)規(guī)模、數(shù)據(jù)庫(kù)信息量的大小和使用頻度已逐漸成為衡量一個(gè)國(guó)家信息化程度的重要標(biāo)志。在眾多數(shù)據(jù)庫(kù)模型中關(guān)系型數(shù)據(jù)庫(kù)是現(xiàn)今使用最廣泛、最容易理解和使用的數(shù)據(jù)庫(kù)模型。大多數(shù)的企業(yè)級(jí)系統(tǒng)數(shù)據(jù)庫(kù)都采用關(guān)系型數(shù)據(jù)庫(kù)。下面本文就將對(duì)關(guān)系型數(shù)據(jù)庫(kù)加密進(jìn)行一些探討性的研究。
1關(guān)系型數(shù)據(jù)庫(kù)加密的必要性
關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)的安全不僅依賴(lài)自身內(nèi)部的安全機(jī)制,還與外部網(wǎng)絡(luò)環(huán)境、應(yīng)用環(huán)境、從業(yè)人員素質(zhì)等因素息息相關(guān)。因此,從廣義上講,數(shù)據(jù)庫(kù)系統(tǒng)的安全框架可以劃分為三個(gè)層次,即網(wǎng)絡(luò)系統(tǒng)層次、宿主操作系統(tǒng)層次、數(shù)據(jù)庫(kù)管理系統(tǒng)層次。
這三個(gè)層次構(gòu)筑成數(shù)據(jù)庫(kù)系統(tǒng)的安全體系,與數(shù)據(jù)安全的關(guān)系是逐步緊密的,防范的重要性也逐層加強(qiáng),從外到內(nèi)、由表及里保證數(shù)據(jù)的安全。但是,值得注意的是OS和DBMS對(duì)數(shù)據(jù)庫(kù)文件本身仍然缺乏有效的保護(hù)措施,無(wú)法阻擋對(duì)數(shù)據(jù)文件本身的攻擊。最簡(jiǎn)單的,如有人偷走了存放數(shù)據(jù)文件的硬盤(pán),則文件中的信息將被泄露。
據(jù)有關(guān)資料報(bào)道,80%的計(jì)算機(jī)犯罪來(lái)自系統(tǒng)內(nèi)部。在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)庫(kù)管理員的權(quán)力是至高無(wú)上,他既負(fù)責(zé)各項(xiàng)系統(tǒng)管理工作,又可以查詢(xún)數(shù)據(jù)庫(kù)中的一切信息。為此,不少系統(tǒng)以種種手段來(lái)削弱系統(tǒng)管理員的權(quán)力。實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫(kù)加密以后,各用戶(hù)(或用戶(hù)組)的數(shù)據(jù)由用戶(hù)用自己的密鑰加密,數(shù)據(jù)庫(kù)管理員獲得的信息無(wú)法進(jìn)行正常解密,從而保證了用戶(hù)信息的安全。
2關(guān)系型數(shù)據(jù)庫(kù)加密的要求與限制
2.1關(guān)系型數(shù)據(jù)庫(kù)加密的要求
由于關(guān)系型數(shù)據(jù)庫(kù)本身的特點(diǎn)和實(shí)際應(yīng)用需求,對(duì)關(guān)系型數(shù)據(jù)庫(kù)加密一般應(yīng)實(shí)現(xiàn)以下功能:
(1)由于關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)信息的生命周期一般比較長(zhǎng),所以加強(qiáng)加密的力度,難以破譯;
(2)數(shù)據(jù)信息在加密后,不能明顯地?cái)U(kuò)大存儲(chǔ)空間;
(3)不能影響數(shù)據(jù)庫(kù)的使用速度,即加/解密速度都應(yīng)足夠快;
(4)加密系統(tǒng)應(yīng)同時(shí)提供一套安全的、靈活的密鑰管理機(jī)構(gòu),提供靈活的加密要求滿(mǎn)足;
(5)加密后的關(guān)系型數(shù)據(jù)庫(kù)仍能滿(mǎn)足用戶(hù)在不同類(lèi)別程度上的訪(fǎng)問(wèn)。
2.2關(guān)系型數(shù)據(jù)庫(kù)加密的限制
數(shù)據(jù)加密通過(guò)對(duì)明文進(jìn)行復(fù)雜的加密操作,以達(dá)到無(wú)法發(fā)現(xiàn)明文和密文之間、密文和密鑰之間的內(nèi)在關(guān)系,復(fù)雜性已經(jīng)破譯的難度要求足夠高,也就是說(shuō)經(jīng)過(guò)加密的數(shù)據(jù)經(jīng)得起來(lái)自DS和DBMS的攻擊。另一方面,DBMS要完成對(duì)數(shù)據(jù)庫(kù)文件的管理和使用,必須具有能夠識(shí)別部分?jǐn)?shù)據(jù)的條件。因此,只能對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行部分加密。以下幾點(diǎn)是我們?cè)诮o關(guān)系型數(shù)據(jù)庫(kù)加密時(shí)應(yīng)該注意的問(wèn)題。
(1)索引字段不能加密
為了達(dá)到快速查詢(xún)的目的,關(guān)系型數(shù)據(jù)庫(kù)文件需要建立一些索引,它們的建立和應(yīng)用必須是明文狀態(tài),否則將失去索引的作用。
(2)關(guān)系運(yùn)算的比較字段不能加密
DBMS要組織和完成關(guān)系運(yùn)算,運(yùn)算的數(shù)據(jù)一般都要經(jīng)過(guò)條件篩選,這種“條件”選擇項(xiàng)必須是明文,否則DBMS將無(wú)法進(jìn)行比較篩選。
(3)表間的連接碼字段不能加密
關(guān)系型數(shù)據(jù)庫(kù)中表之間存在著密切的聯(lián)系,這種相關(guān)性往往是“外部編碼”聯(lián)系的,這些編碼若加密就無(wú)法進(jìn)行表與表之間的連接運(yùn)算。
3關(guān)系型數(shù)據(jù)庫(kù)加密方式
關(guān)系型數(shù)據(jù)庫(kù)加密方式數(shù)據(jù)庫(kù)加密,主要分為兩種方式:DBMS外部加密和DBMS內(nèi)部加密。
3.1 DBMS外部加密
DBMS外部加密的優(yōu)點(diǎn)是,不需要修改DBMS,只需要在應(yīng)用程序或者操作系統(tǒng)中增加相應(yīng)的加/解密模塊即可。但是,這種方法也有一些缺點(diǎn),首先它不能支持各種加密粒度。其次,它僅僅對(duì)用戶(hù)數(shù)據(jù)進(jìn)行加密,而不能對(duì)元數(shù)據(jù)、索引數(shù)據(jù)、日志等進(jìn)行加密。因此,安全性受到影響。再者,數(shù)據(jù)的完整性檢查需要應(yīng)用程序來(lái)完成,不能盡量發(fā)揮DBMS的作用,因?yàn)閿?shù)據(jù)加密后,沒(méi)有辦法在DBMS完整性檢查,而需要在應(yīng)用程序中增加這項(xiàng)功能,實(shí)現(xiàn)起來(lái)非常麻煩。
3.2 DBMS內(nèi)部加密
一般選擇在數(shù)據(jù)物理存取之前進(jìn)行加/解密操作。這種方法的優(yōu)點(diǎn)是,由于DBMS能夠區(qū)分各種粒度的數(shù)據(jù),所以,可以支持各種粒度的加密,加密粒度可以靈活地選擇。另外,在DBMS內(nèi)部實(shí)現(xiàn)加密,可以更有效地利用DBMS內(nèi)部的訪(fǎng)問(wèn)控制機(jī)制、授權(quán)機(jī)制等各種功能。更重要的是,關(guān)系型數(shù)據(jù)庫(kù)一個(gè)重要特點(diǎn)是被多個(gè)應(yīng)用共享,這種方法的加解密都是在DBMS內(nèi)部完成,對(duì)應(yīng)用程序是透明的,不需要在多個(gè)應(yīng)用中進(jìn)行修改,使用起來(lái)比較方便,且容易保持?jǐn)?shù)據(jù)的一致性,缺點(diǎn)是需要修改DBMS的內(nèi)核。關(guān)系型數(shù)據(jù)庫(kù)的關(guān)鍵術(shù)語(yǔ)有:數(shù)據(jù)庫(kù)、表、字段、行和數(shù)據(jù)元素?;旧峡梢葬槍?duì)這幾方面形成一種加密的方法。
(1)數(shù)據(jù)庫(kù)級(jí)
加密的對(duì)象是整個(gè)數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)中所有的對(duì)象進(jìn)行加密處理。這種加密方法只需要對(duì)存儲(chǔ)在磁盤(pán)中的相應(yīng)數(shù)據(jù)庫(kù)文件進(jìn)行加密處理即可,密鑰的數(shù)量少,便于管理。但是,采用此加密粒度,對(duì)性能會(huì)帶來(lái)很大的影響。即使只需要查詢(xún)一條記錄,也需要對(duì)整個(gè)數(shù)據(jù)庫(kù)進(jìn)行解密。這樣,訪(fǎng)問(wèn)的速度不可避免的要降低。
(2)表級(jí)
加密的對(duì)象是數(shù)據(jù)庫(kù)中的基本元素表。關(guān)系型數(shù)據(jù)庫(kù)包含多個(gè)表,并不是所有的表都有很高的安全需要,因而只需要對(duì)其中一些包含敏感信息的表進(jìn)行加密。與數(shù)據(jù)庫(kù)級(jí)加密相比,采用表級(jí)加密粒度,系統(tǒng)的查詢(xún)性能會(huì)有所改善,因?yàn)閷?duì)于未加密表的查詢(xún),系統(tǒng)性能不會(huì)受到影響,對(duì)于加密表的查詢(xún),只需要解密對(duì)應(yīng)的加密表,而不要解密整個(gè)數(shù)據(jù)庫(kù)。但是,這種方法與DBMS集成時(shí),需要對(duì)DBMS內(nèi)部一些核心模塊進(jìn)行修改,這些工作是很困難完成的。
(3)記錄級(jí)
加密的對(duì)象是數(shù)據(jù)表中的記錄,即對(duì)整條記錄一起進(jìn)行加密處理。在實(shí)現(xiàn)記錄級(jí)加密時(shí),通過(guò)調(diào)用專(zhuān)門(mén)的加密函數(shù),對(duì)記錄進(jìn)行加密。與數(shù)據(jù)庫(kù)和表級(jí)加密相比,這種加密的粒度更細(xì),可選擇的靈活性更好。但是,它和表級(jí)加密一樣,這種方法也需要對(duì)DBMS內(nèi)核進(jìn)行修改。
(4)字段級(jí)
加密的對(duì)象是關(guān)系中的某個(gè)字段,即表中的列。一張表包含多個(gè)字段,在某些時(shí)候,并不是所有的字段都需要加密。因?yàn)樵趯?shí)際生活中,一些重要和敏感的信息往往出現(xiàn)在關(guān)系中的某些列,只需要對(duì)這些重要數(shù)據(jù)進(jìn)行加密保護(hù),而不用對(duì)所有字段。在實(shí)現(xiàn)字段級(jí)加密時(shí),可以采取多種方式,既可以在DBMS外部完成,也可以在DBMS內(nèi)部完成。
(5)數(shù)據(jù)項(xiàng)級(jí)
加密的對(duì)象是記錄中的某個(gè)字段值,它是數(shù)據(jù)庫(kù)加密的最小粒度。數(shù)據(jù)項(xiàng)級(jí)加密的方法更為靈活,它的實(shí)現(xiàn)方式與字段級(jí)加密相似,但其密鑰管理將會(huì)更加復(fù)雜。
4加密算法比較
加密算法是一些公式和法則,它規(guī)定了明文和密文之間的變換方法。密鑰是控制加密算法和解密算法的關(guān)鍵信息,它的產(chǎn)生、傳輸、存儲(chǔ)等工作是十分重要的。
DES算法,DES(Data Encryption Standard)是把64位的明文輸入塊變?yōu)?4位的密文輸出塊,它所使用的密鑰也是64位,但只用到其中56位。Des的密碼學(xué)缺點(diǎn)是密鑰長(zhǎng)度相對(duì)比較短,因此,人們又想出了一個(gè)解決其長(zhǎng)度的方法,即采用三重DES,三重DES是DES的一種變形。
RSA算法,它是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。RSA的重大缺陷是無(wú)法從理論上把握它的保密性能如何,而且密碼學(xué)界多數(shù)人士?jī)A向于因子分解不是NPC問(wèn)題,RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,也易于理解和操作。
AES算法,將在未來(lái)幾十年里代替DES在各個(gè)領(lǐng)域中得到廣泛應(yīng)用,總體來(lái)說(shuō),AES作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn)匯聚了強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn)。AES設(shè)計(jì)有三個(gè)密鑰長(zhǎng)度:128、192、256位,相對(duì)而言,AES的128密鑰比DES的56密鑰強(qiáng)1 021倍。AES算法主要包括三個(gè)方面:輪變化、圈數(shù)和密鑰擴(kuò)展。
5結(jié)束語(yǔ)
上面介紹的只是關(guān)系型數(shù)據(jù)庫(kù)加密方法的一些探討性研究,這些論述還遠(yuǎn)遠(yuǎn)沒(méi)達(dá)到關(guān)系型數(shù)據(jù)庫(kù)安全需要,比如現(xiàn)在的關(guān)系型數(shù)據(jù)庫(kù)基本都給與網(wǎng)絡(luò)架構(gòu),網(wǎng)際的安全傳輸?shù)?也是要重點(diǎn)考慮的方面,等等。一個(gè)好的安全系統(tǒng)必須綜合考慮如何運(yùn)用這些技術(shù),以保證數(shù)據(jù)的安全。
參考文獻(xiàn):
[1]胡志奇.數(shù)據(jù)庫(kù)安全與加密技術(shù)研究[J].計(jì)算機(jī)與現(xiàn)代化,2003,(11):24-3.
[2]王曉峰,王尚平,秦波.數(shù)據(jù)庫(kù)加密方法研究[J].西安理工大學(xué)學(xué)報(bào),2002,(6):68-73.
[3]陳衛(wèi).數(shù)據(jù)庫(kù)加密密鑰的分配與管理技術(shù)[J].清華大學(xué)學(xué)報(bào),1994,(1):54,60.
[4]411N .G albreath.C ryptographyfo rIn tenretan dd atabasea ppilcaitons.W ileyP ublishing,In c,2002.
責(zé)任編輯 馮勝利