亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng)的制作方法

文檔序號:6554985閱讀:555來源:國知局
專利名稱:安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬信息安全領(lǐng)域,涉及一種安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng)。
背景技術(shù)
現(xiàn)在數(shù)據(jù)庫安全對許多企業(yè)網(wǎng)絡(luò)來說是非常重要的,甚至關(guān)系到一個企業(yè)的生存和發(fā)展。因而企業(yè)常常采取一定的措施如采取訪問權(quán)限控制,數(shù)據(jù)庫備份、防火墻等來保護系統(tǒng)的安全。但是這些傳統(tǒng)的安全保護措施具有一定的局限性和不足。例如某些非授權(quán)用戶可能繞過系統(tǒng)的訪問控制機制入侵?jǐn)?shù)據(jù)庫,非法地獲取數(shù)據(jù);備份數(shù)據(jù)庫的介質(zhì)丟失,造成數(shù)據(jù)庫中數(shù)據(jù)的泄露;以防火墻為代表的反入侵網(wǎng)絡(luò)安全技術(shù)不等于信息安全的全部。此外在系統(tǒng)中權(quán)限足夠高的用戶可能獲取一些敏感信息。在絕大多數(shù)信息系統(tǒng)中,沒有加密的數(shù)據(jù)庫就如同沒有上鎖的文件柜,對別有用心的人而言,剽竊、篡改易如反掌。因此,如何有效地保證數(shù)據(jù)庫系統(tǒng)的安全,實現(xiàn)數(shù)據(jù)的保密性、完整性和有效性,數(shù)據(jù)庫的安全管理日益成為人們關(guān)注的焦點之一。解決這一問題的關(guān)鍵是要對數(shù)據(jù)本身加密,即使數(shù)據(jù)不幸泄露或丟失,也難以被人破譯,關(guān)于這一點現(xiàn)基本數(shù)據(jù)庫產(chǎn)品都支持對數(shù)據(jù)庫中的所有數(shù)據(jù)加密存儲。對數(shù)據(jù)進行加密,主要有三種方式系統(tǒng)中加密、客戶端(DBMS外層) 加密、服務(wù)器端(DBMS內(nèi)核層)加密。客戶端加密的好處是不會加重數(shù)據(jù)庫服務(wù)器的負(fù)載, 并且可實現(xiàn)網(wǎng)上的傳輸加密,這種加密方式通常利用數(shù)據(jù)庫外層工具實現(xiàn)。而服務(wù)器端的加密需要對數(shù)據(jù)庫管理系統(tǒng)本身進行操作,屬核心層加密,如果沒有數(shù)據(jù)庫開發(fā)商的配合, 其實現(xiàn)難度相對較大。數(shù)據(jù)庫的加密比單獨文件的加密要復(fù)雜。按照數(shù)據(jù)庫的結(jié)構(gòu)層次,根據(jù)不同的加密需求,可以將數(shù)據(jù)庫的加密粒度可以分為數(shù)據(jù)庫級、表級、記錄級、字段級和數(shù)據(jù)項級(1)數(shù)據(jù)庫級加密的對象是整個數(shù)據(jù)庫,這意味著對所有的用戶數(shù)據(jù)表、系統(tǒng)數(shù)據(jù)表、索引、視圖和存儲過程等等都進行加密處理。這種加密方法簡單,只需要對存儲在磁盤中的相應(yīng)數(shù)據(jù)庫文件進行加密處理即可,密鑰的數(shù)量少,一個數(shù)據(jù)庫只對應(yīng)一個密鑰,管理方便。但是,數(shù)據(jù)庫一個重要特征是數(shù)據(jù)共享性高,被多個用戶和應(yīng)用共享使用,需要接受大量的隨機訪問。一般來說,用戶訪問數(shù)據(jù)庫時,是為了將符合條件的記錄檢索出來。如果采用數(shù)據(jù)庫級加密方式,即使只需要查詢少量的記錄,也需要對整個數(shù)據(jù)庫進行解密,對系統(tǒng)性能會產(chǎn)生極大的影響。但是,對于輔存中備份的數(shù)據(jù)庫,可以采取這種加密粒度。(2)表級加密的對象是數(shù)據(jù)庫中的表。通常來說,數(shù)據(jù)庫包含多個表,只需要對其中一些包含敏感信息的表進行加密,以保護它們的安全性。與數(shù)據(jù)庫級加密比較,采用表級加密粒度,系統(tǒng)的查詢性能會有所改善,因為對于未加密表的查詢,與傳統(tǒng)查詢方法一樣,系統(tǒng)性能不會受到影響,對于加密表的查詢,只需要解密對應(yīng)的加密表,而不要解密整個數(shù)據(jù)庫。在實行表級加密時,可以采用對存儲數(shù)據(jù)的磁盤塊(頁面)進行加密。但是,這種方法與DBMS集成時,需要對DBMS內(nèi)部一些核心模塊進行修改,包括對語法分析器、解釋器和查詢執(zhí)行器的修改,而目前一些主流的商用DBMS都不開放源代碼,很難把這種方法與它們集成起來。
(3)記錄級加密的對象是數(shù)據(jù)表中的記錄,記錄中各字段值連接一起進行加密處理,加密后輸出一列字符串。在實現(xiàn)記錄級加密時,通過調(diào)用專門的加密函數(shù),對頁面中記錄進行加密。與數(shù)據(jù)庫和表級加密相比,這種加密的粒度更細(xì),可選擇的靈活性更好。比如說,一個公司的人事資料,要求對部門經(jīng)理職位以上的人員采取加密措施進行保密,那么可以只選擇這些記錄加密,而不必要對所有記錄進行加密。但是,和表級加密一樣,這種方法也需要對DBMS內(nèi)核進行修改。(4)字段級加密的對象是關(guān)系中的某個字段。字段級加密是一個很好的選擇, 因為在實際生活中,一些重要和敏感的信息往往出現(xiàn)在關(guān)系中的某些列,如信用卡號、身份證號、銀行賬號等,只需要對這些重要數(shù)據(jù)進行加密保護,而沒有必要對普通數(shù)據(jù)也進行加密。例如,有一個客戶表,它包含客戶ID、姓名、地址和信用卡號。在這個表中,沒有必要去加密客戶ID,我們最想加密的字段是信用卡號。在實現(xiàn)字段級加密時,可以采取多種方式, 既可以在DBMS外部(比如,應(yīng)用程序)完成,也可以在DBMS內(nèi)部(比如,內(nèi)模式)完成。(5)數(shù)據(jù)項級加密的對象是記錄中的某個字段值,它是數(shù)據(jù)庫加密的最小粒度。 數(shù)據(jù)項級加密的方法更為靈活,它的實現(xiàn)方式與字段級加密相似,但其密鑰管理將會更加復(fù)雜。數(shù)據(jù)項級的加密具有很好的適用性,在某些這類系統(tǒng)中,采用單一的密鑰加密,這會導(dǎo)致一個密鑰泄露,整個數(shù)據(jù)庫泄露的問題。有些這類的系統(tǒng)采用單獨的文件來存儲這些獨立的密鑰。防止密文分析和密文替代的攻擊,需要對不同的數(shù)據(jù)項采用不同的密鑰。但是如果數(shù)據(jù)庫中數(shù)據(jù)項太多,一一為這些數(shù)據(jù)項存儲一個密鑰,不僅需要大量的空間,而且管理起來也很麻煩。本發(fā)明針對數(shù)據(jù)項級的加密,通過采用hash函數(shù)來派生諸多不同的密鑰,加密數(shù)據(jù)庫中每一個數(shù)據(jù)項的信息。在具體加密實現(xiàn)上,使用數(shù)據(jù)庫安全保密中間件對數(shù)據(jù)庫進行加密是最簡便直接的方法。主要是通過系統(tǒng)中加密、DBMS內(nèi)核層(服務(wù)器端)加密和DBMS外層(客戶端) 加密。在系統(tǒng)中加密,在系統(tǒng)中無法辨認(rèn)數(shù)據(jù)庫文件中的數(shù)據(jù)關(guān)系,將數(shù)據(jù)先在內(nèi)存中進行加密,然后文件系統(tǒng)把每次加密后的內(nèi)存數(shù)據(jù)寫入到數(shù)據(jù)庫文件中去,讀入時再逆方面進行解密就,這種加密方法相對簡單,只要妥善管理密鑰就可以了。缺點對數(shù)據(jù)庫的讀寫都比較麻煩,每次都要進行加解密的工作,對程序的編寫和讀寫數(shù)據(jù)庫的速度都會有影響; 在DBMS內(nèi)核層實現(xiàn)加密需要對數(shù)據(jù)庫管理系統(tǒng)本身進行操作。這種加密是指數(shù)據(jù)在物理存取之前完成加解密工作。這種加密方式的優(yōu)點是加密功能強,并且加密功能幾乎不會影響DBMS的功能,可以實現(xiàn)加密功能與數(shù)據(jù)庫管理系統(tǒng)之間的無縫耦合。其缺點是加密運算在服務(wù)器端進行,加重了服務(wù)器的負(fù)載,而且DBMS和加密器之間的接口需要DBMS開發(fā)商的支持;在DBMS外層實現(xiàn)加密的好處是不會加重數(shù)據(jù)庫服務(wù)器的負(fù)載,并且可實現(xiàn)網(wǎng)上的傳輸,加密比較實際的做法是將數(shù)據(jù)庫加密系統(tǒng)做成DBMS的一個外層工具,根據(jù)加密要求自動完成對數(shù)據(jù)庫數(shù)據(jù)的加解密處理。采用這種加密方式進行加密,加解密運算可在客戶端進行,它的優(yōu)點是不會加重數(shù)據(jù)庫服務(wù)器的負(fù)載并且可以實現(xiàn)網(wǎng)上傳輸?shù)募用埽秉c是加密功能會受到一些限制,與數(shù)據(jù)庫管理系統(tǒng)之間的耦合性稍差。按以上方式實現(xiàn)的數(shù)據(jù)庫加密系統(tǒng)具有很多優(yōu)點首先,系統(tǒng)對數(shù)據(jù)庫的最終用戶是完全透明的,管理員可以根據(jù)需要進行明文和密文的轉(zhuǎn)換工作;其次,加密系統(tǒng)完全獨立于數(shù)據(jù)庫應(yīng)用系統(tǒng),無須改動數(shù)據(jù)庫應(yīng)用系統(tǒng)就能實現(xiàn)數(shù)據(jù)加密功能;第三,加解密處理在客戶端進行,不會影響數(shù)據(jù)庫服務(wù)器的效率。

發(fā)明內(nèi)容
本發(fā)明旨在克服現(xiàn)有大粒度加密的數(shù)據(jù)庫系統(tǒng)的不靈活的缺點,以及現(xiàn)有的數(shù)據(jù)項級加密的數(shù)據(jù)庫系統(tǒng)密鑰的生成、存儲和管理等各方面的問題,提供一種非常容易生成、 存儲和管理密鑰的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng)。為了簡化密鑰的管理,減少密鑰量,同時又防止密鑰之間泄露信息,或者是通過單個數(shù)據(jù)項的密鑰反推主密鑰,帶來安全隱患,本系統(tǒng)采用單向函數(shù),比如hash函數(shù)來派生密鑰,其派生方法為利用一個派生密鑰加上這個數(shù)據(jù)項唯一的定位信息,產(chǎn)生hash值,截取有效位作為這個數(shù)據(jù)項的對應(yīng)密鑰。這樣數(shù)據(jù)庫中每一個數(shù)據(jù)項都有自己的密鑰,而且由于采用不可逆函數(shù),所以,密碼分析者無法通過某一個數(shù)據(jù)項的密鑰去推測另外數(shù)據(jù)項的密鑰和派生密鑰,從而可以保證各種特殊環(huán)境下的安全性,各個密鑰之間似乎具有獨立性,但是卻無需采用復(fù)雜的方法來一一生成,由于這些密鑰均是由派生密鑰派生而來,所以,只需要存儲好派生密鑰即可。為了便于不同的用戶向數(shù)據(jù)庫存儲加密的數(shù)據(jù),而其他的非最高權(quán)限用戶無法解密,利用了公鑰算法來加密派生密鑰。數(shù)據(jù)庫附帶一個或者多個加密屬性表,這個表中存放各種信息和屬性,包括數(shù)據(jù)項是否被加密(這樣保證數(shù)據(jù)庫系統(tǒng)的靈活性,無需加密的信息可以以明文形式存在,減少系統(tǒng)的負(fù)擔(dān)),加密的字段或者數(shù)據(jù)項是什么樣的編碼等?;诎踩缘目紤],數(shù)據(jù)庫采用多級的密鑰管理措施將數(shù)據(jù)庫加密用的私鑰用數(shù)據(jù)庫的管理員的用戶名和密碼的hash獲得對稱的密鑰,采用對稱加密算法加以保存,將派生密鑰用數(shù)據(jù)庫公鑰加密保存,派生密鑰利用公鑰加密保護,使用時先解密私鑰,再用私鑰解密加密的派生密鑰,利用派生密鑰獲得數(shù)據(jù)項對應(yīng)的密鑰,采用流密碼算法加密或者解密數(shù)據(jù)項。以上是最少級別的密鑰管理方式,實際上為了進一步的安全性,可以在中間增加多級的密鑰,但是這會影響系統(tǒng)的性能。數(shù)據(jù)加密(901)數(shù)據(jù)的加密過程如下1)用戶登錄。數(shù)據(jù)庫系統(tǒng)附帶有雙重身份認(rèn)證功能,第一重為任何一般級別的用戶,可以進行一般的不涉及到需要加解密的安全數(shù)據(jù)的訪問;第二重為有特別身份的、可以訪問安全數(shù)據(jù)的用戶的訪問,需要輸入用戶名和密碼,需要進行解密的時候,先需要進入第二重的身份認(rèn)證,而第二重的身份認(rèn)證中的用戶名和密碼都正確的時候,此時自動用兩者的hash信息來解密被加密的數(shù)據(jù)庫私鑰。一般加密的時候只需要第一重登錄就可以。2)無需保密的數(shù)據(jù)直接存儲。首先根據(jù)數(shù)據(jù)所在位置判斷數(shù)據(jù)是否需要加密,如果無需加密,直接存入數(shù)據(jù)庫;如果需要加密轉(zhuǎn)入下面的加密流程。3)加密數(shù)據(jù)項。加密數(shù)據(jù)項采用對稱加密算法中的流密碼算法,采用對稱密碼算法可以提供速度和性能,而采用其中的流密碼算法,則無需對數(shù)據(jù)項進行填充處理,而且在進行一些不完整的檢索的時候也不受到其他信息的影響,其密鑰由數(shù)據(jù)項的唯一定位信息和派生密鑰的不可逆函數(shù)產(chǎn)生。首先隨機產(chǎn)生派生密鑰K,用派生密鑰K+數(shù)據(jù)項所在的表名N+數(shù)據(jù)項所在行的主鍵M+數(shù)據(jù)項所在列的列值C的Hash值,即HASH(K|N|M|C)值,截取加密數(shù)據(jù)項所采用對稱加密算法的密鑰長度相應(yīng)的位(注意,如果密鑰的長度大于hash 函數(shù)的輸出長度,可以將以上信息分別輸入多個hash),作為所定位的數(shù)據(jù)項的加密密鑰。 注意,本系統(tǒng)中主鍵是不能加密的,如果需要加密,需要采用新的唯一鍵代替或者專門增加一個序號類的主鍵。4)加密派生密鑰。用公鑰加密后的派生密鑰,在處理加密屬性表的時候?qū)⑵浯娣旁趯傩员碇?。用公鑰加密派生密鑰的好處在于,對于不同用戶加密的數(shù)據(jù)可以采用不同的派生密鑰,并且將派生密鑰及其加密的對于的數(shù)據(jù)的信息存放在屬性表中。在這樣的情況下任何人都能加密,但是解密卻需要有最高的權(quán)限。5)存儲加密屬性信息。一般級別的用戶都可以加密數(shù)據(jù),被加密的數(shù)據(jù)的相關(guān)信息存放在加密屬性表中,其主要任務(wù)是描述(或定義)密文數(shù)據(jù)庫系統(tǒng)中各類對象所采用的加密算法,對應(yīng)的用公鑰加密后的派生密鑰,哪些表、字段、記錄、數(shù)據(jù)項被加密了,明文數(shù)據(jù)的編碼類型等等,類似于加密字典,被加密后也存放在屬性表中。數(shù)據(jù)解密(902)數(shù)據(jù)解密是一個相反的過程,但是它需要有最高的權(quán)限,以獲取私鑰,然后逐次解密派生密鑰,得到數(shù)據(jù)項的密鑰。密鑰管理(9O3)為了保證安全性和方便性,本發(fā)明中設(shè)置了多級密鑰。這些密鑰分別存放在不同的區(qū)域私鑰經(jīng)過最高權(quán)限的管理員用戶的用戶名和密碼加密后存放在安全存儲區(qū),另外提供公鑰私鑰的備份功能,管理員可以將公鑰私鑰導(dǎo)出,加密后存放在自己的卡上。派生密鑰經(jīng)過公鑰加密后存放在加密屬性表中。密鑰更新派生密鑰是非常重要的信息,但是可能存在過期、泄漏等情況,所以在密鑰過期和密鑰泄露后,需要更換密鑰,更新時先解密所有的該密鑰涉及到的數(shù)據(jù),然后用更新的密鑰加密,再將更新的密鑰加密存放起來。公鑰私鑰對的更新也同樣先解密所有的該密鑰對所加密過的數(shù)據(jù),然后用更新的密鑰加密。派生密鑰統(tǒng)一由于不同用戶隨機選擇派生密鑰,這些密鑰都以密文形式存放在加密屬性表中,有時候為了減少密鑰量或者更新密鑰,可以進行密鑰統(tǒng)一。數(shù)據(jù)備份(904) 數(shù)據(jù)庫加密系統(tǒng)一般針對重要的數(shù)據(jù),顯然其備份顯得非常重要。出于安全性、防災(zāi)的考慮,對于數(shù)據(jù)庫的備份需要采用加密、簽名的方法,加密方法為,采用隨機產(chǎn)生的對稱密鑰加密整個數(shù)據(jù)庫,同時附加時間戳和數(shù)字簽名,既保證保密性,又防止數(shù)據(jù)被篡改。 同時密鑰也需要進行同樣的加密備份和基于秘密共享的備份。通信安全(9O5)如果用戶在本機進行操作,則無需考慮通信的安全性。如果用戶是通過客戶端和服務(wù)端的通信來訪問,則需要采用安全套接字加密對數(shù)據(jù)庫的訪問,采用安全套接字還可以校驗通信的完整性,防重放。訪問控制(906)數(shù)據(jù)庫加密系統(tǒng)中強制訪問控制依賴于系統(tǒng)的安全等級標(biāo)志和主體的授權(quán)許可訪問級別來進行控制。這種強制訪問控制機制嚴(yán)格控制信息非授權(quán)地從高安全級流向低安全級,系統(tǒng)對數(shù)據(jù)的讀和寫進行嚴(yán)格的控制。
數(shù)據(jù)索引(907)索引是用來快速實現(xiàn)數(shù)據(jù)庫內(nèi)容查詢的技術(shù)。一般索引的創(chuàng)建和應(yīng)用必須是明文狀態(tài),以提高數(shù)據(jù)庫操作性能。否則,索引將會失去作用。而當(dāng)今一些主流數(shù)據(jù)庫產(chǎn)品均不支持對索引字段的加密。在加密的數(shù)據(jù)庫中實現(xiàn)索引也比較困難。在本發(fā)明中,將未加密字段的索引和加密字段的索引分開,未加密索引采用已有的方法。加密字段如果需要索引,則另外建立相應(yīng)的表,將對應(yīng)的字段進行加密,加密依然采用派生密鑰來派生列的密鑰,加密對應(yīng)的列,每一個列采用相同的密鑰,其密鑰的派生方法與數(shù)據(jù)項加密密鑰派生方法類似, 就是不再有主鍵名,即加密密鑰為HASH(派生密鑰I索引文件名I字段名),加密得到的表再根據(jù)密文進行排序索弓I,最后再對索弓I文件進行加密保存,需要檢索的時候再解密。檢索時,先根據(jù)派生密鑰、索引文件名、字段名得到加密密鑰,對需要檢索的明文進行加密,得到密文后,再解密索引文件,在文件中查找對應(yīng)的密文即可。加密采用流密碼算法,有利于針對密文進行檢索,特別是針對不完整的密文檢索。為了提高加密數(shù)據(jù)項的檢索速度,對于不同類型的檢索采用不同的文件,比如完整的檢索則采用密文文件排序后得到的文件,而需要解密的檢索,則對應(yīng)的表中的數(shù)據(jù)是以明文排序得到的文件。秘密共享(卯8)本系統(tǒng)采用秘密共享作為最高權(quán)限管理員的權(quán)限獲得的一種補充途徑,除了最高級管理員可以在輸入自己的用戶名和密碼的時候,可以自動解密私鑰外,系統(tǒng)還利用密鑰共享給m個用戶分配私鑰的份額,必要的時候,用戶可以聯(lián)合起來解密私鑰,獲得最高的權(quán)限,同時也提供了一種額外的私鑰備份。
具體實施例方式系統(tǒng)在實現(xiàn)上有許多的選擇,以下為一個參考實例本實例中采用C/S模式,通過DBMS外層(客戶端)加密來實現(xiàn)數(shù)據(jù)加密,遠(yuǎn)程客戶端和服務(wù)器端采用安全套接字協(xié)議進行連接,保證通信的保密和完整性。數(shù)據(jù)的加密過程實現(xiàn)1)用戶遠(yuǎn)程登錄??蛻舳撕头?wù)端建立起SSL連接,用戶登錄。2)系統(tǒng)驗證用戶身份和權(quán)限,當(dāng)用戶有權(quán)限進行數(shù)據(jù)加密的時候,進行授權(quán),用戶請求輸入數(shù)據(jù),輸入數(shù)據(jù),如果根據(jù)加密屬性表,屬于需要加密的類型,或者用戶初次輸入的時候,設(shè)置某些字段需要加密,則需要對加密屬性表做需要的寫入,同時,客戶端提示用戶隨意移動鼠標(biāo),根據(jù)鼠標(biāo)移動的位移性質(zhì)記錄一個隨機數(shù),與系統(tǒng)中以前的隨機種子,一起輸入一個隨機數(shù)發(fā)生器,產(chǎn)生128bit的隨機數(shù)K作為派生密鑰。若無需保密的數(shù)據(jù)則直接存儲,否則進行加密處理,轉(zhuǎn)入下一步;3)加密數(shù)據(jù)項。若需要加密數(shù)據(jù)項采用RC4簇流密碼算法,該算法密鑰可以設(shè)置不同長度,USbit下已經(jīng)具有很好的安全性,故選用128比特,對于每一個數(shù)據(jù)項的密鑰, 由數(shù)據(jù)項的唯一定位信息和派生密鑰的MD5值產(chǎn)生。具體地,用派生密鑰K+數(shù)據(jù)項所在的表名N+數(shù)據(jù)項所在行的主鍵M+數(shù)據(jù)項所在列的列值C的MD5值,即MD5 (K | N | M | C),剛好為 128比特,符合密鑰長度,用這一密鑰加密對應(yīng)的數(shù)據(jù)項。4)加密派生密鑰。獲取服務(wù)器的管理員公鑰,派生密鑰用公鑰加密后存入加密屬性表。
5)存儲加密屬性信息。數(shù)據(jù)庫系統(tǒng)附帶一個或者多個加密屬性表,這個表中存放各種信息和屬性,包括數(shù)據(jù)項是否被加密(這樣保證數(shù)據(jù)庫系統(tǒng)的靈活性,無需加密的信息可以以明文形式存在,減少系統(tǒng)的負(fù)擔(dān)),加密的字段或者數(shù)據(jù)項是什么樣的編碼或者數(shù)據(jù)類型、加密采用的流密碼算法、用私鑰加密的派生密鑰、派生密鑰的加密范圍。派生密鑰的加密范圍由數(shù)據(jù)庫名、表名、字段名、主鍵組成,一般如果某個項為空,則默認(rèn)為是對所有的使用該密鑰加密,如主鍵為空,則對前面注明的表中的相應(yīng)字段的所有數(shù)據(jù)項均加密。在少數(shù)情況下,可能前面一個用戶是針對大范圍的數(shù)據(jù)采用他的派生密鑰進行加密,而后面一個新用戶要追加數(shù)據(jù),此時,如果此用戶是最高權(quán)限的管理員,可以解密該派生密鑰后, 繼續(xù)用該密鑰派生密鑰加密數(shù)據(jù),如果不是最高權(quán)限管理員,則采用新派生密鑰加密,該派生密鑰對應(yīng)的加密范圍應(yīng)該做詳細(xì)的說明,包括覆蓋的數(shù)據(jù),其對應(yīng)范圍要修改,前一個派生密鑰覆蓋的范圍,需要指定相應(yīng)的表名、字段名、主鍵范圍,以便從前一個密鑰的默認(rèn)覆蓋范圍中剔除。在查找派生密鑰的時候,如果存在密鑰沖突,優(yōu)先選用對應(yīng)的加密范圍最詳細(xì)的密鑰,比如兩個派生密鑰的加密范圍均覆蓋相同的數(shù)據(jù)項,此時一個派生密鑰的覆蓋范圍較大,主鍵為默認(rèn)的空值,而另外一個主鍵是給定的,則認(rèn)定后者是真實的加密密鑰。 系統(tǒng)在密鑰統(tǒng)一的時候,會消除這種沖突。數(shù)據(jù)解密過程實現(xiàn)如下1)讀取加密屬性表,判斷數(shù)據(jù)是否經(jīng)過加密。如果數(shù)據(jù)未經(jīng)加密,直接就可以讀取;如果數(shù)據(jù)是經(jīng)過加密的,則用戶必須用最高權(quán)限的身份登錄。2)解密私鑰。登錄得到認(rèn)證后,可以具有解密權(quán)限,此時系統(tǒng)也根據(jù)用戶名和密碼相應(yīng)的hash值得到密鑰,解密被加密的私鑰。3)解密派生密鑰。根據(jù)屬性表,查到對應(yīng)的被加密的派生密鑰,用私鑰解密就可以得到派生密鑰。4)計算數(shù)據(jù)項密鑰。根據(jù)屬性表,獲得加密所采用的算法,然后根據(jù)加密的時候相同的方法計算HASH值,根據(jù)算法的密鑰長度截取相應(yīng)的密鑰,即得到加密數(shù)據(jù)項密鑰?;媒饷軘?shù)據(jù)項。讀取數(shù)據(jù)庫中的數(shù)據(jù)項的密文,采用加密數(shù)據(jù)項的密鑰進行解密, 根據(jù)屬性表中明文數(shù)據(jù)的編碼類型還原數(shù)據(jù)項明文。密鑰管理和秘密共享實現(xiàn)如下安全數(shù)據(jù)庫加密系統(tǒng)采用三級的密鑰管理措施首先要生成RSA算法的公鑰私鑰對,將數(shù)據(jù)庫加密用的管理員私鑰用數(shù)據(jù)庫的管理員的用戶名和密碼的MD5值作為密鑰, 采用密鑰長度為128bjt AES算法加密私鑰,加以保存在安全存儲區(qū),對應(yīng)的公鑰用于加密派生密鑰,將主密鑰和主密鑰變量用數(shù)據(jù)庫公鑰加密保存,二級密鑰受主密鑰及其變量加密保護,派生密鑰利用二級密鑰加密保護,使用時先解密私鑰,再用私鑰解密加密的主密鑰,然后解密二級密鑰,最后得到派生密鑰,利用派生密鑰獲得數(shù)據(jù)項對應(yīng)的密鑰,采用對稱算法加密或者解密數(shù)據(jù)項。私鑰經(jīng)過最高權(quán)限的管理員用戶的用戶名和密碼加密后存放在安全存儲區(qū),系統(tǒng)具有公鑰私鑰的導(dǎo)入、導(dǎo)出、刪除功能,便于備份和轉(zhuǎn)移安全數(shù)據(jù),私鑰可以用Pfx證書文件格式加密后存放在自己的卡上。系統(tǒng)采用(3,8)門限方案,將私鑰分為8個份額,分配給8個重要的用戶,而必要的時候他們其中3個在一起,都輸入他們的份額,就可以聯(lián)合起來解密私鑰。這種秘密共享可以用于恢復(fù)密鑰和最高管理員權(quán)限的獲得, 系統(tǒng)提供了對于這種秘密共享的審計日志功能,防止用戶惡意勾結(jié)非法獲得權(quán)限。
8
密鑰更新派生密鑰使用期限規(guī)定為最長1年,公鑰私鑰對的使用期限為最長5 年,過期將會強制進行更換,系統(tǒng)通過密鑰的審計日志來記錄密鑰的產(chǎn)生日期等信息,過期的時候?qū)o予提醒。除了到期外,如果管理員認(rèn)為有必要,或者出現(xiàn)密鑰泄露,也需要更新密鑰。更新時,對于所有的派生密鑰會進行統(tǒng)一,系統(tǒng)訪問加密屬性表,解密所有的加密過的數(shù)據(jù),然后用更新的密鑰進行統(tǒng)一加密,同時更新加密屬性表。派生密鑰統(tǒng)一當(dāng)需要減少派生密鑰,保證派生密鑰的一致性的時候,可以啟用派生密鑰統(tǒng)一功能,即先解密所有的被加密的數(shù)據(jù)項,然后利用隨機數(shù)發(fā)生器產(chǎn)生128bit的派生密鑰,再用該密鑰派生所有的數(shù)據(jù)項的加密密鑰,加密對應(yīng)的數(shù)據(jù)項,最后將派生密鑰加密后存儲在加密屬性表中,同時也更新加密屬性表的其他的信息,包括派生密鑰對應(yīng)的加密范圍等。數(shù)據(jù)備份實現(xiàn)如下系統(tǒng)提供數(shù)據(jù)的安全備份功能,將數(shù)據(jù)庫數(shù)據(jù)進行加密備份,并且附加數(shù)字簽名和時間戳,并且備份選擇在異地備份。備份時,先導(dǎo)出所有的數(shù)據(jù)、還有一些加密屬性表等文件,將所有的文件進行壓縮打包,在文件后附加時間戳,時間戳采用固定長度的字節(jié)數(shù), 最后附加一個對打包文件和時間戳的數(shù)字簽名,然后對以上數(shù)據(jù)采用流密碼算法進行加密,得到備份的密文數(shù)據(jù)庫。對應(yīng)的密鑰則采用公鑰進行加密。訪問控制實現(xiàn)如下數(shù)據(jù)庫加密系統(tǒng)中強制訪問控制依賴于系統(tǒng)的安全等級標(biāo)志和主體的授權(quán)許可訪問級別來進行控制。安全等級標(biāo)志和訪問級別采用數(shù)字簽名實現(xiàn),以防止這些重要的權(quán)限信息被篡改后,非法用戶突破授權(quán)許可。這些數(shù)據(jù)存放在一個訪問控制權(quán)限的文件中。 在進行訪問控制時,首先對用戶進行身份認(rèn)證,用戶認(rèn)證一般一開始采用用戶名密碼的形式驗證,高級別的用戶要進行多重身份認(rèn)證,比如采用指紋和語音識別。在通過認(rèn)證以后, 根據(jù)用戶的身份,查詢并且驗證授權(quán)表中的數(shù)字簽名,并且驗證數(shù)字簽名的真實性,均通過后,即進行授權(quán),用戶訪問數(shù)據(jù)庫時,系統(tǒng)對于有安全等級標(biāo)志的數(shù)據(jù)驗證其安全等級標(biāo)志,然后對比用戶是否有權(quán)進行相應(yīng)的訪問。訪問一些加密的數(shù)據(jù),在解密的時候,需要得到授權(quán)許可,方提供對私鑰的解密功能,依次解密私鑰、派生密鑰,計算出數(shù)據(jù)項的密鑰,然后采用算法進行數(shù)據(jù)項的解密,得到數(shù)據(jù)項的明文。數(shù)據(jù)索引實現(xiàn)如下加密字段如果需要索引,則另外建立相應(yīng)的表,將對應(yīng)的字段進行加密,加密依然采用派生密鑰來派生列的密鑰,加密對應(yīng)的列,每一個列采用相同的密鑰,其密鑰的派生方法與數(shù)據(jù)項加密密鑰派生方法類似,就是不再有主鍵名,即加密密鑰為HASH (派生密鑰I索引文件名I字段名),加密得到的表再根據(jù)密文進行排序索引,最后再對索引文件進行加密保存,需要檢索的時候再解密。檢索完全的、精確的數(shù)據(jù)項時,先根據(jù)派生密鑰、索引文件名、字段名得到加密密鑰,對需要檢索的明文進行加密,得到密文后,再解密索引文件,在文件中查找對應(yīng)的密文即可,由于采用流密碼算法,所以如果進行的是不完整的檢索,比如, 數(shù)據(jù)項為“ java程序設(shè)計”,檢索的時候只關(guān)注是否包含java,也可以同樣采用流密碼加密前面的java,然后只對這一部分進行匹配就可以,即使java不是在數(shù)據(jù)項之首,只要知道 java所在的序列位置,也可以用流密碼產(chǎn)生的密鑰流的相應(yīng)位置的密鑰來進行加密,也能夠得到對于的密文段,從而在密文中的對應(yīng)位置進行檢索。如果是檢索復(fù)雜的條件(比如大于、小于、模糊的數(shù)據(jù)項),則需要對對應(yīng)字段進行解密。
權(quán)利要求
1.一種安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng),其特征在于1)對機密數(shù)據(jù)采用數(shù)據(jù)項級粒度的加密,它采用hash函數(shù)根據(jù)一個派生密鑰和數(shù)據(jù)項的唯一定位信息來派生各個數(shù)據(jù)項的加密密鑰;2)派生密鑰采用公鑰進行加密,不同用戶可以采用不同派生密鑰,可以保證不同的用戶均可以向數(shù)據(jù)庫存儲機密數(shù)據(jù);3)系統(tǒng)提供密鑰統(tǒng)一功能,可以將不同的派生密鑰加密的區(qū)域數(shù)據(jù)統(tǒng)一為單個派生密鑰加密數(shù)據(jù);4)當(dāng)派生密鑰的覆蓋范圍發(fā)生沖突時,可根據(jù)最細(xì)致的覆蓋區(qū)域?qū)?yīng)的派生密鑰為正確密鑰的原則來找到真正派生密鑰; 5)加密算法采用流密碼算法。
2.如權(quán)利要求1所述的安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng),其特征在于對于明文和密文數(shù)據(jù)分別采用不同的索引方法1)對于明文數(shù)據(jù)索引采用普通的方法;幻對于密文數(shù)據(jù)檢索,專門建立相應(yīng)的檢索文件,對于相同的字段采用相同的列密鑰加密,加密算法采用流密碼算法,不同的列采用的密鑰不同,該密鑰同樣采用hash函數(shù)派生,采用相同的密鑰派生方法加密原明文數(shù)據(jù)列,用hash函數(shù)根據(jù)一個派生密鑰和索引文件名、列名這類信息來派生各個列的加密密鑰,A)若是進行完整精確檢索的時候,計算列密鑰,加密檢索的數(shù)據(jù)項, 然后進行檢索對比,B)若是進行不完全精確匹配的檢索,可以根據(jù)不同的位置,依照流密碼算法的密鑰流分別得出對應(yīng)位置的密文段進行匹配,C)若是其他的模糊檢索,則需要對列進行解密以檢索。
3.如權(quán)利要求1所述的安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng),其特征在于采用秘密共享方法將管理員的私鑰分為若干份額,可以采用秘密共享方式進行最高權(quán)限的授權(quán),同時可利用秘密共享備份和恢復(fù)私鑰。
4.如權(quán)利要求2所述的安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng),其特征在于對于各種訪問采用強制訪問控制,強制訪問控制采用安全標(biāo)簽來進行,其安全標(biāo)簽附加數(shù)字簽名以防止篡改。客戶端與數(shù)據(jù)庫的通信采用安全協(xié)議進行連接,提供保密性和認(rèn)證。
5.如權(quán)利要求4所述的安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng),其特征在于提供對數(shù)據(jù)庫和密鑰的安全備份,備份需要采用加密,并且附加時間戳和數(shù)字簽名。
6.如權(quán)利要求5所述的安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng),其特征在于提供密鑰管理功能1)定期更換密鑰,并且可以對派生密鑰進行統(tǒng)一,對于密鑰管理進行強制訪問控制,并且進行安全審計日志記錄。2)設(shè)置了多級密鑰。這些密鑰分別存放在不同的區(qū)域私鑰經(jīng)過最高權(quán)限的管理員用戶的用戶名和密碼加密后存放在安全存儲區(qū),派生密鑰經(jīng)過公鑰加密后存放在加密屬性表中。
7.如權(quán)利要求1所述的安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng),其特征在于包含一個加密屬性表,用于存儲加密相關(guān)信息,包括描述(或定義)密文數(shù)據(jù)庫系統(tǒng)中各類對象所采用的加密算法,對應(yīng)的用公鑰加密后的派生密鑰(或者派生密鑰加密的覆蓋范圍),哪些表、字段、 記錄、數(shù)據(jù)項被加密了,明文數(shù)據(jù)的編碼或數(shù)據(jù)類型等。
全文摘要
本發(fā)明涉及一種安全的數(shù)據(jù)項級數(shù)據(jù)庫加密系統(tǒng),對機密數(shù)據(jù)采用數(shù)據(jù)項級粒度的加密,它采用hash函數(shù)根據(jù)一個派生密鑰和數(shù)據(jù)項的唯一定位信息來派生各個數(shù)據(jù)項的加密密鑰,甚至于可以用一個密鑰派生所有的整個數(shù)據(jù)庫加密用的數(shù)據(jù)項加密密鑰,以減少密鑰使用量,并且方便密鑰管理,采用流密碼算法進行數(shù)據(jù)項的加密以避免填充。針對密文索引,也采用流密碼算法進行加密,對于每一個字段(列)采用相同的密鑰進行加密,這樣無論是進行精確的完整或者不完整的檢索,均可以對檢索關(guān)鍵詞進行加密后,對相應(yīng)字段的密文進行匹配。本系統(tǒng)還提供密鑰管理、秘密共享、安全備份、強制訪問控制、安全連接等完善的安全功能。
文檔編號G06F21/24GK102236766SQ201110125639
公開日2011年11月9日 申請日期2011年5月10日 優(yōu)先權(quán)日2011年5月10日
發(fā)明者汪華登, 王勇 申請人:桂林電子科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1