两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

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

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

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