講解數據庫加密技術(shù)的功能特性與實(shí)現方法
隨著(zhù)電子商務(wù)逐漸越來(lái)越多的應用,數據的安全問(wèn)題越來(lái)越受到重視。一是企業(yè)本身需要對自己的關(guān)鍵數據進(jìn)行有效的保護;二是企業(yè)從應用服務(wù)提供商(Application Service Provider,ASP)處獲得應用支持和服務(wù),在這種情況下,企業(yè)的業(yè)務(wù)數據存放在ASP處,其安全性無(wú)法得到有效的保障。因為傳統的數據庫保護方式是通過(guò)設定口令字和訪(fǎng)問(wèn)權限等方法實(shí)現的,數據庫管理員可以不加限制地訪(fǎng)問(wèn)和更改數據庫中的所有數據。解決這一問(wèn)題的關(guān)鍵是要對數據本身加密,即使數據不幸泄露或丟失,也難以被人破譯,關(guān)于這一點(diǎn)現基本數據庫產(chǎn)品都支持對數據庫中的所有數據加密存儲。
對數據進(jìn)行加密,主要有三種方式:系統中加密、客戶(hù)端(DBMS外層)加密、服務(wù)器端(DBMS內核層)加密??蛻?hù)端加密的好處是不會(huì )加重數據庫服務(wù)器的負載,并且可實(shí)現網(wǎng)上的傳輸加密,這種加密方式通常利用數據庫外層工具實(shí)現。而服務(wù)器端的加密需要對數據庫管理系統本身進(jìn)行操作,屬核心層加密,如果沒(méi)有數據庫開(kāi)發(fā)商的配合,其實(shí)現難度相對較大。此外,對那些希望通過(guò)ASP獲得服務(wù)的企業(yè)來(lái)說(shuō),只有在客戶(hù)端實(shí)現加解密,才能保證其數據的安全可靠。
1. 常用數據庫加密技術(shù)
信息安全主要指三個(gè)方面。一是數據安全,二是系統安全,三是電子商務(wù)的安全。核心是數據庫的安全,將數據庫的數據加密就抓住了信息安全的核心問(wèn)題。
對數據庫中數據加密是為增強普通關(guān)系數據庫管理系統的安全性,提供一個(gè)安全適用的數據庫加密平臺,對數據庫存儲的內容實(shí)施有效保護。它通過(guò)數據庫存儲加密等安全方法實(shí)現了數據庫數據存儲保密和完整性要求,使得數據庫以密文方式存儲并在密態(tài)方式下工作,確保了數據安全。
1.1 數據庫加密技術(shù)的功能和特性
經(jīng)過(guò)近幾年的研究,我國數據庫加密技術(shù)已經(jīng)比較成熟。
一般而言,一個(gè)行之有效的數據庫加密技術(shù)主要有以下6個(gè)方面的功能和特性。
(1)身份認證:
用戶(hù)除提供用戶(hù)名、口令外,還必須按照系統安全要求提供其它相關(guān)安全憑證。如使用終端密鑰。
(2) 通信加密與完整性保護:
有關(guān)數據庫的訪(fǎng)問(wèn)在網(wǎng)絡(luò )傳輸中都被加密,通信一次一密的意義在于防重放、防篡改。
(3) 數據庫數據存儲加密與完整性保護:
數據庫系統采用數據項級存儲加密,即數據庫中不同的記錄、每條記錄的不同字段都采用不同的密鑰加密,輔以校驗措施來(lái)保證數據庫數據存儲的保密性和完整性,防止數據的非授權訪(fǎng)問(wèn)和修改。
(4) 數據庫加密設置:
系統中可以選擇需要加密的數據庫列,以便于用戶(hù)選擇那些敏感信息進(jìn)行加密而不是全部數據都加密。只對用戶(hù)的敏感數據加密可以提高數據庫訪(fǎng)問(wèn)速度。這樣有利于用戶(hù)在效率與安全性之間進(jìn)行自主選擇。
(5)多級密鑰管理模式:
主密鑰和主密鑰變量保存在安全區域,二級密鑰受主密鑰變量加密保護,數據加密的密鑰存儲或傳輸時(shí)利用二級密鑰加密保護,使用時(shí)受主密鑰保護。
(6) 安全備份:
系統提供數據庫明文備份功能和密鑰備份功能。
1.2 對數據庫加密系統基本要求
(1) 字段加密;
(2) 密鑰動(dòng)態(tài)管理;
(3) 合理處理數據;
(4) 不影響合法用戶(hù)的操作;
(5) 防止非法拷貝;
1.3 數據加密的算法
加密算法是一些公式和法則,它規定了明文和密文之間的變換方法。密鑰是控制加密算法和解密算法的關(guān)鍵信息,它的產(chǎn)生、傳輸、存儲等工作是十分重要的。
數據加密的基本過(guò)程包括對明文(即可讀信息)進(jìn)行翻譯,譯成密文或密碼的代碼形式。該過(guò)程的逆過(guò)程為解密,即將該編碼信息轉化為其原來(lái)的形式的過(guò)程。
DES算法, DES(Data Encryption Standard)是由IBM公司在1970年以后發(fā)展起來(lái)的,于1976年11月被美國政府采用,DES隨后被美國國家標準局和美國國家標準協(xié)會(huì )(American National Standard Institute,ANSI)承認, DES算法把64位的明文輸入塊變?yōu)?4位的密文輸出塊,它所使用的密鑰也是64位,DES算法中只用到64位密鑰中的其中56位。
三重DES, DES的密碼學(xué)缺點(diǎn)是密鑰長(cháng)度相對比較短,因此,人們又想出了一個(gè)解決其長(cháng)度的方法,即采用三重DES,三重DES是DES的一種變形。這種方法使用兩個(gè)獨立的56位密鑰對交換的信息(如EDI數據)進(jìn)行3次加密,從而使其有效密鑰長(cháng)度達到112位或168位, 對安全性有特殊要求時(shí)則要采用它。
RSA算法它是第一個(gè)既能用于數據加密也能用于數字簽名的算法。它易于理解和操作,也很流行。算法的名字就是發(fā)明者的名字:Ron Rivest, AdiShamir 和Leonard Adleman, 但RSA的安全性一直未能得到理論上的證明, RSA的安全性依賴(lài)于大數的因子分解,但并沒(méi)有從理論上證明破譯RSA的難度與大數分解難度等價(jià)。即RSA的重大缺陷是無(wú)法從理論上把握它的保密性能如何,而且密碼學(xué)界多數人士?jì)A向于因子分解不是NPC問(wèn)題, RSA算法是第一個(gè)能同時(shí)用于加密和數字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現在已近二十年,經(jīng)歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優(yōu)秀的公鑰方案之一。
AES是美國高級加密標準算法,將在未來(lái)幾十年里代替DES在各個(gè)領(lǐng)域中得到廣泛應用,盡管人們對AES還有不同的看法,但總體來(lái)說(shuō),AES作為新一代的數據加密標準匯聚了強安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn)。AES設計有三個(gè)密鑰長(cháng)度:128,192,256位,相對而言,AES的128密鑰比DES的56密鑰強1021倍。AES算法主要包括三個(gè)方面:輪變化、圈數和密鑰擴展。在理論上,此加密方法需要國家軍事量級的破解設備運算10年以上時(shí)間才可能破譯。
1.4 數據庫數據加密的實(shí)現
使用數據庫安全保密中間件對數據庫進(jìn)行加密是最簡(jiǎn)便直接的方法。主要是通過(guò)系統中加密、DBMS內核層(服務(wù)器端)加密和DBMS外層(客戶(hù)端)加密。
在系統中加密,在系統中無(wú)法辨認數據庫文件中的數據關(guān)系,將數據先在內存中進(jìn)行加密,然后文件系統把每次加密后的內存數據寫(xiě)入到數據庫文件中去,讀入時(shí)再逆方面進(jìn)行解密就,這種加密方法相對簡(jiǎn)單,只要妥善管理密鑰就可以了。缺點(diǎn)對數據庫的讀寫(xiě)都比較麻煩,每次都要進(jìn)行加解密的工作,對程序的編寫(xiě)和讀寫(xiě)數據庫的速度都會(huì )有影響。
在DBMS內核層實(shí)現加密需要對數據庫管理系統本身進(jìn)行操作。這種加密是指數據在物理存取之前完成加解密工作。這種加密方式的優(yōu)點(diǎn)是加密功能強,并且加密功能幾乎不會(huì )影響DBMS的功能,可以實(shí)現加密功能與數據庫管理系統之間的無(wú)縫耦合。其缺點(diǎn)是加密運算在服務(wù)器端進(jìn)行,加重了服務(wù)器的負載,而且DBMS和加密器之間的接口需要DBMS開(kāi)發(fā)商的支持。
在DBMS外層實(shí)現加密的好處是不會(huì )加重數據庫服務(wù)器的負載,并且可實(shí)現網(wǎng)上的傳輸,加密比較實(shí)際的做法是將數據庫加密系統做成DBMS的一個(gè)外層工具,根據加密要求自動(dòng)完成對數據庫數據的加解密處理。
采用這種加密方式進(jìn)行加密,加解密運算可在客戶(hù)端進(jìn)行,它的優(yōu)點(diǎn)是不會(huì )加重數據庫服務(wù)器的負載并且可以實(shí)現網(wǎng)上傳輸的加密,缺點(diǎn)是加密功能會(huì )受到一些限制,與數據庫管理系統之間的耦合性稍差。
數據庫加密系統分成兩個(gè)功能獨立的主要部件:一個(gè)是加密字典管理程序,另一個(gè)是數據庫加解密引擎。數據庫加密系統將用戶(hù)對數據庫信息具體的加密要求以及基礎信息保存在加密字典中,通過(guò)調用數據加解密引擎實(shí)現對數據庫表的加密、解密及數據轉換等功能。數據庫信息的加解密處理是在后臺完成的,對數據庫服務(wù)器是透明的。
按以上方式實(shí)現的數據庫加密系統具有很多優(yōu)點(diǎn):首先,系統對數據庫的最終用戶(hù)是完全透明的,管理員可以根據需要進(jìn)行明文和密文的轉換工作;其次,加密系統完全獨立于數據庫應用系統,無(wú)須改動(dòng)數據庫應用系統就能實(shí)現數據加密功能;第三,加解密處理在客戶(hù)端進(jìn)行,不會(huì )影響數據庫服務(wù)器的效率。
數據庫加解密引擎是數據庫加密系統的核心部件,它位于應用程序與數據庫服務(wù)器之間,負責在后臺完成數據庫信息的加解密處理,對應用開(kāi)發(fā)人員和操作人員來(lái)說(shuō)是透明的。數據加解密引擎沒(méi)有操作界面,在需要時(shí)由操作系統自動(dòng)加載并駐留在內存中,通過(guò)內部接口與加密字典管理程序和用戶(hù)應用程序通訊。數據庫加解密引擎由三大模塊組成:加解密處理模塊、用戶(hù)接口模塊和數據庫接口模塊。
2. 結束語(yǔ)
上面的論述還遠遠沒(méi)達到數據庫安全需要,比如現在的數據庫基本都基于網(wǎng)絡(luò )架構,網(wǎng)際的安全傳輸等,也是要重點(diǎn)考慮的方面。一個(gè)好的安全系統必須綜合考慮核運用這些技術(shù),以保證數據的安全,通過(guò)以上論述希望對大家有所幫助,同時(shí)也和大家一起討論一起學(xué)習,共同進(jìn)步。
評論