專利名稱:一種das模型中的數(shù)據(jù)庫密鑰管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種DAS模型中的數(shù)據(jù)庫密鑰管理方法,屬于電子文本組織歸類領(lǐng) 域。
背景技術(shù):
傳統(tǒng)的密鑰管理通常采用二級密鑰管理,第一級密鑰作為主密鑰,用來加密和解 密工作密鑰,第二級密鑰為工作密鑰,用來加密和解密數(shù)據(jù),這種密鑰管理模式的工作密鑰 和密文數(shù)據(jù)存儲(chǔ)于相同的數(shù)據(jù)庫中,這對工作密鑰的管理非常有利,但在數(shù)據(jù)庫中數(shù)據(jù)庫 管理員享有最高權(quán)限,他可以在任何時(shí)候提取工作密鑰,并在毫無監(jiān)測的情況下解密數(shù)據(jù) 庫密文,同時(shí),非法獲取管理員權(quán)限的攻擊者也可以輕而易舉地解密數(shù)據(jù)庫密文。針對此問 題,現(xiàn)有的密鑰管理策略可分為硬件安全模塊(Hardware Security Module,HSM)和安全服 務(wù)器兩種。HSM用于提供密鑰的安全存儲(chǔ),HSM通過硬件模塊保障密鑰的安全存儲(chǔ),在加密 /解密時(shí),工作密鑰通過HSM動(dòng)態(tài)獲得,使用完成后從服務(wù)器內(nèi)存中清除工作密鑰。另一種 方法是單獨(dú)建立安全服務(wù)器,通過安全服務(wù)器管理用戶、角色、權(quán)限、密鑰。在DBMS中,由安 全模塊和安全服務(wù)器通信來驗(yàn)證用戶的身份和權(quán)限,并加密或解密數(shù)據(jù)。DBA負(fù)責(zé)數(shù)據(jù)庫的 資源管理,而所有安全參數(shù)均由安全管理員(Security Administrator, SA)管理?,F(xiàn)有的數(shù)據(jù)庫加密密鑰管理策略可以大致分為三類第一,密鑰管理策略可以安全地保存主密鑰,但并未給出妥善的工作密鑰管理策 略。在實(shí)際中,工作密鑰的安全直接關(guān)系到數(shù)據(jù)庫中密文數(shù)據(jù)是否可以恢復(fù)為明文。第二,基于XML技術(shù),采用數(shù)據(jù)庫二級密鑰管理策略,這種策略采用了一個(gè)三級 XML結(jié)構(gòu)存儲(chǔ)工作密鑰,而將XML和主密鑰存儲(chǔ)于Smartcard中,這種密鑰管理模式保證了 密鑰的安全性,也提高了密鑰的獲取速度,但由于Smartcard中密鑰的存儲(chǔ)數(shù)量有限,受到 了存儲(chǔ)空間的限制。第三,基于線性空間的正交基方法,采用一種子密鑰數(shù)據(jù)庫加密算法,這種方法對 數(shù)據(jù)庫的所有記錄進(jìn)行加密,解密時(shí)只需解密相應(yīng)數(shù)據(jù)項(xiàng),但這種方法加密模式過于簡單, 且產(chǎn)生了不必要的加密/解密冗余。
發(fā)明內(nèi)容
針對目前DAS模型密鑰管理中安全保障困難、存儲(chǔ)空間受限等問題,提出一種DAS 模型中的數(shù)據(jù)庫密鑰管理方法,能夠同時(shí)適用于關(guān)系數(shù)據(jù)庫和XML數(shù)據(jù)庫,在安全性方面, HSM的存儲(chǔ)方式杜絕了在服務(wù)器端獲得主密鑰或工作密鑰的可能,密鑰字典將二級密鑰信 息存儲(chǔ)于服務(wù)器端,解除了密鑰存儲(chǔ)數(shù)量的限制,多叉樹路徑哈希值的存儲(chǔ)策略隱藏了二 級密鑰信息和數(shù)據(jù)庫密文的鏈接,保障了密鑰的安全性。本發(fā)明的技術(shù)方案如下一種DAS模型中的數(shù)據(jù)庫密鑰管理方法,包括以下步驟第一步通過關(guān)系數(shù)據(jù)庫和XML數(shù)據(jù)庫的路徑,構(gòu)造密鑰字典;
第二步二級密鑰信息存儲(chǔ)于數(shù)據(jù)庫服務(wù)器端,在對數(shù)據(jù)進(jìn)行加密或解密時(shí),通過 密鑰字典查詢確定二級密鑰信息,將二級密鑰信息傳輸至客戶端;第三步數(shù)據(jù)所有者使用主密鑰在客戶端的HSM中產(chǎn)生工作密鑰,而由工作密鑰 完成數(shù)據(jù)的加密和解密。其中第一步中密鑰字典構(gòu)造方法包括以下步驟A 根據(jù)數(shù)據(jù)庫的加密粒度信息,構(gòu)建密鑰字典多叉樹,其中包括數(shù)據(jù)的表名、字段 名、XML路徑、記錄ID和二級密鑰信息,由加密粒度確定具體包含內(nèi)容;B:若數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫,密鑰字典多叉樹路徑的構(gòu)建方式為Key Dictionary-TableName-Column Name-Record ID-Encryption Information ;C 若數(shù)據(jù)庫為XML數(shù)據(jù)庫,密鑰字典多叉樹路徑的構(gòu)建方式為Key Dictionary-TableName-Record ID-XMLPath-Encryption Information ;D 將密鑰字典多叉樹按深度優(yōu)先方式拆分為多條路徑,每條路徑的格式為 PathlRootNode-ChildNode-----LeafNode},并求得其哈希值;E 將二級密鑰信息存儲(chǔ)到多叉樹路徑對應(yīng)的NodeValue字段中,構(gòu)建完成密鑰字
Fffi. 其中第一步中在密鑰字典查詢的方法為首先客戶端提交數(shù)據(jù)庫檢索請求,通過 數(shù)據(jù)庫的密文檢索模塊獲取檢索結(jié)果;其次根據(jù)數(shù)據(jù)庫檢索請求獲得多叉樹的路徑信息, 包括表名、記錄ID、字段信息、XML路徑,對此路徑求哈希,并在密鑰字典中查詢該哈希值對 應(yīng)的二級密鑰信息;然后將二級密鑰信息返回至客戶端,由HSM完成二級密鑰信息的加密, 獲得工作密鑰;最后由HSM提供工作密鑰并完成數(shù)據(jù)庫密文結(jié)果的解密,向用戶返回明文 結(jié)果。其中第二步中查詢確定二級密鑰信息的方法包括以下步驟步驟1執(zhí)行數(shù)據(jù)庫密文檢索,將檢索到的密文結(jié)果返回至客戶端,并根據(jù)數(shù)據(jù)庫 檢索請求確定檢索的表名、字段名、XML路徑、記錄ID相關(guān)信息;步驟2構(gòu)建密鑰字典多叉樹路徑,并對所構(gòu)建的XML路徑求哈希,向服務(wù)器端提交 二級密鑰信息的查詢請求;步驟3服務(wù)器端收到查詢請求后,將客戶端求得的哈希值作為關(guān)鍵詞,在密鑰字 典表中進(jìn)行檢索,獲得二級密鑰信息;步驟4將查詢結(jié)果二級密鑰信息返回至客戶端,由HSM提取主密鑰,完成二級密鑰 信息的加密,獲得工作密鑰;步驟5由HSM采用工作密鑰完成數(shù)據(jù)庫密文結(jié)果的數(shù)據(jù)解密,并將明文結(jié)果返回 給用戶。本發(fā)明的有益效果 本發(fā)明針對HSM中密鑰數(shù)量受限的問題,提出由HSM存儲(chǔ)主密鑰,而通過多叉樹結(jié) 構(gòu)建立密鑰字典,將二級密鑰信息存儲(chǔ)于服務(wù)器端的密鑰管理策略。這種策略通過哈希技 術(shù)保證密鑰字典的安全性,服務(wù)器端難以根據(jù)密鑰字典判斷密文與二級密鑰信息的對應(yīng)關(guān) 系,HSM的主密鑰存儲(chǔ)方式也保證了主密鑰和工作密鑰的安全性,同時(shí),由哈希值的快速匹 配提取密鑰的方式,顯著提高了二級密鑰信息的提取速度,進(jìn)而提高了數(shù)據(jù)庫密鑰的使用 效率。附圖 說明
圖1本發(fā)明的DAS模型中的數(shù)據(jù)庫密鑰管理方法流程框圖;圖2本發(fā)明的DAS模型中的數(shù)據(jù)庫密鑰管理方法中關(guān)系數(shù)據(jù)庫的密鑰字典;圖3本發(fā)明的DAS模型中的數(shù)據(jù)庫密鑰管理方法XML數(shù)據(jù)庫的密鑰字典;圖4本發(fā)明的DAS模型中的數(shù)據(jù)庫密鑰管理方法中多叉樹結(jié)構(gòu)圖;圖5本發(fā)明的DAS模型中的數(shù)據(jù)庫密鑰管理方法中密鑰查詢與提取流程圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對本發(fā)明所述的技術(shù)方案作進(jìn)一步的闡述。如圖1示,主密鑰存儲(chǔ)于客戶端的HSM中,所以密鑰信息的管理不再由傳統(tǒng)模式的 數(shù)據(jù)庫管理員完成,而是數(shù)據(jù)所有者通過HSM完成,如今Smartcard已成為公認(rèn)的最安全和 廉價(jià)的HSM設(shè)備,由于持有Smartcard的人是數(shù)據(jù)所有者,因此這種模式避免了來自外部入 侵者和內(nèi)部管理人員的攻擊,進(jìn)而保障了密鑰管理的安全性。二級密鑰信息按密鑰字典格 式存儲(chǔ)于服務(wù)器端,在對數(shù)據(jù)進(jìn)行加密/解密時(shí),先查詢加密/解密中所需的二級密鑰信 息,將二級密鑰信息傳輸至客戶端,數(shù)據(jù)所有者使用主密鑰在客戶端的HSM中產(chǎn)生工作密 鑰,而由工作密鑰完成數(shù)據(jù)的加密和解密。根據(jù)數(shù)據(jù)庫結(jié)構(gòu)特征的不同,分別建立關(guān)系數(shù)據(jù)庫和XML數(shù)據(jù)庫的密鑰字典結(jié) 構(gòu),如圖2、圖3示,為了能夠適應(yīng)多種粒度的加密,采用多叉樹的數(shù)據(jù)結(jié)構(gòu),這樣無論是關(guān) 系數(shù)據(jù)庫,還是XML數(shù)據(jù)庫,其密鑰字典的建立方式是能夠通用的。另一方面,基于多叉樹 存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)查詢效率不高。在DAS模型中,數(shù)據(jù)庫密文檢索完成后,將檢索結(jié)果返回至 客戶端,檢索結(jié)果可能是明文也可能是密文;若是密文,客戶端在密鑰字典中查詢到二級密 鑰信息的時(shí)間很長,雖然數(shù)據(jù)庫密文檢索的效率得到提高,但大部分時(shí)間會(huì)消耗在密文結(jié) 果的解密上。針對此問題,提出一種基于哈希查詢的二級密鑰信息快速檢索策略,這種策略將 多叉樹按其路徑進(jìn)行拆分,通過關(guān)系模式存儲(chǔ)每條路徑的哈希值、二級密鑰信息、加密粒度 和相關(guān)加密信息,所以關(guān)系數(shù)據(jù)庫和XML數(shù)據(jù)庫的密鑰字典都被轉(zhuǎn)化為相應(yīng)的關(guān)系數(shù)據(jù)存 儲(chǔ),而對多叉樹路徑求哈希的方式間接加密了數(shù)據(jù)庫的表名、字段名、XML路徑等敏感信息, 使服務(wù)器端無法在二級密鑰信息和多叉樹路徑之間建立起對應(yīng)關(guān)系,此外,主密鑰存儲(chǔ)于 Smartcard中,服務(wù)器端更加無法獲得工作密鑰,因此,密鑰信息的安全性獲得了保障,而通 過哈希字段的快速匹配,可獲得和數(shù)據(jù)庫明文檢索性能接近的密文檢索效率。在圖2、圖3示的多叉樹結(jié)構(gòu)中,根據(jù)加密粒度的不同,密鑰字典中需要加密的敏 感信息包括數(shù)據(jù)庫表名、字段名、記錄ID、XML數(shù)據(jù)庫的節(jié)點(diǎn)路徑等信息,二級密鑰信息只 用來產(chǎn)生工作密鑰,因此二級密鑰信息本身不需要加密。假設(shè)密鑰字典的多叉樹結(jié)構(gòu)如圖4 所示,按照深度優(yōu)先遍歷將多叉樹的每條路徑求哈希后,將哈希值存儲(chǔ)于服務(wù)器端,多叉樹 路徑按如下格式存儲(chǔ)Hash (Path {RootNode-ChiIdNode-----LeafNode})RootNode, ChildNode, LeafNode分別代表根節(jié)點(diǎn)、子節(jié)點(diǎn)和葉子節(jié)點(diǎn)。由于多叉 樹的路徑不會(huì)出現(xiàn)重復(fù),且對路徑求哈希后的長度也是相同的,因此這種存儲(chǔ)方式不會(huì)受到基于頻率的攻擊和基于數(shù)據(jù)大小的攻擊。 在密鑰字典的構(gòu)建過程中,采用深度優(yōu)先遍歷多叉樹方式取得每條路徑,根據(jù)路 徑哈希值存儲(chǔ)二級密鑰信息,密鑰字典的產(chǎn)生過程為步驟1根據(jù)數(shù)據(jù)庫的加密粒度信息,構(gòu)建密鑰字典多叉樹,其中可能包括數(shù)據(jù)的 表名、字段名(關(guān)系型數(shù)據(jù)庫)、XML路徑(XML數(shù)據(jù)庫)、記錄ID和二級密鑰信息,由加密 粒度確定具體包含哪些項(xiàng),如加密粒度為記錄級的關(guān)系型數(shù)據(jù)庫,多叉樹包含表名、記錄ID 和二級密鑰信息;步驟2若數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫,密鑰字典多叉樹路徑的構(gòu)建方式為 KeyDictionary-Table Name-Column Name-Record ID-Encryption Information ;步驟3若 數(shù)據(jù)庫為XML數(shù)據(jù)庫,密鑰字典多叉樹路徑的構(gòu)建方式為Key Dictionary-Table Name-R ecordlD-XMLPath-Encryption Information ;步驟4將密鑰字典多叉樹按深度優(yōu)先方式拆分為多條路徑,每條路徑的格式為 PathlRootNode-ChildNode-----LeafNode},并求得其哈希值;步驟5將二級密鑰信息存儲(chǔ)到多叉樹路徑對應(yīng)的NodeValue字段中,構(gòu)建完成的 密鑰字典如表1所示。表1密鑰字典
權(quán)利要求
1.一種DAS模型中的數(shù)據(jù)庫密鑰管理方法,其特征在于包括以下步驟 第一步通過關(guān)系數(shù)據(jù)庫和XML數(shù)據(jù)庫的路徑,構(gòu)造密鑰字典;第二步二級密鑰信息存儲(chǔ)于數(shù)據(jù)庫服務(wù)器端,在對數(shù)據(jù)進(jìn)行加密或解密時(shí),通過密鑰 字典查詢確定二級密鑰信息,將二級密鑰信息傳輸至客戶端;第三步數(shù)據(jù)所有者使用主密鑰在客戶端的HSM中產(chǎn)生工作密鑰,而由工作密鑰完成 數(shù)據(jù)的加密和解密。
2.如權(quán)利要求1所述的一種DAS模型中的數(shù)據(jù)庫密鑰管理方法,其特征在于其中第 一步中密鑰字典構(gòu)造方法包括以下步驟A 根據(jù)數(shù)據(jù)庫的加密粒度信息,構(gòu)建密鑰字典多叉樹,其中包括數(shù)據(jù)的表名、字段名、 XML路徑、記錄ID和二級密鑰信息,由加密粒度確定具體包含內(nèi)容;B:若數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫,密鑰字典多叉樹路徑的構(gòu)建方式為Key Dictionary-TableName-Column Name-Record ID-Encryption Information ;C :若數(shù)據(jù)庫為XML數(shù)據(jù)庫,密鑰字典多叉樹路徑的構(gòu)建方式為Key Dictionary-TableName-Record ID-XMLPath-Encryption Information ;D 將密鑰字典多叉樹按深度優(yōu)先方式拆分為多條路徑,每條路徑的格式為PathlRootNode-ChildNode-----LeafNode},并求得其哈希值;E 將二級密鑰信息存儲(chǔ)到多叉樹路徑對應(yīng)的NodeValue字段中,構(gòu)建完成密鑰字典。
3.如權(quán)利要求1或2所述的一種DAS模型中的數(shù)據(jù)庫密鑰管理方法,其特征在于其 中第一步中在密鑰字典查詢的方法為首先客戶端提交數(shù)據(jù)庫檢索請求,通過數(shù)據(jù)庫的密 文檢索模塊獲取檢索結(jié)果;其次根據(jù)數(shù)據(jù)庫檢索請求獲得多叉樹的路徑信息,包括表名、記 錄ID、字段信息、XML路徑,對此路徑求哈希,并在密鑰字典中查詢該哈希值對應(yīng)的二級密 鑰信息;然后將二級密鑰信息返回至客戶端,由HSM完成二級密鑰信息的加密,獲得工作密 鑰;最后由HSM提供工作密鑰并完成數(shù)據(jù)庫密文結(jié)果的解密,向用戶返回明文結(jié)果。
4.如權(quán)利要求1或2所述的一種DAS模型中的數(shù)據(jù)庫密鑰管理方法,其特征在于其 中第二步中查詢確定二級密鑰信息的方法包括以下步驟步驟1執(zhí)行數(shù)據(jù)庫密文檢索,將檢索到的密文結(jié)果返回至客戶端,并根據(jù)數(shù)據(jù)庫檢索 請求確定檢索的表名、字段名、XML路徑、記錄ID相關(guān)信息;步驟2構(gòu)建密鑰字典多叉樹路徑,并對所構(gòu)建的XML路徑求哈希,向服務(wù)器端提交二級 密鑰信息的查詢請求;步驟3服務(wù)器端收到查詢請求后,將客戶端求得的哈希值作為關(guān)鍵詞,在密鑰字典表 中進(jìn)行檢索,獲得二級密鑰信息;步驟4將查詢結(jié)果二級密鑰信息返回至客戶端,由HSM提取主密鑰,完成二級密鑰信息 的加密,獲得工作密鑰;步驟5由HSM采用工作密鑰完成數(shù)據(jù)庫密文結(jié)果的數(shù)據(jù)解密,并將明文結(jié)果返回給用戶。
全文摘要
本發(fā)明涉及一種DAS模型中的數(shù)據(jù)庫密鑰管理方法,屬于電子文本組織歸類領(lǐng)域。通過關(guān)系數(shù)據(jù)庫和XML數(shù)據(jù)庫的路徑,構(gòu)造密鑰字典;二級密鑰信息存儲(chǔ)于數(shù)據(jù)庫服務(wù)器端,在對數(shù)據(jù)進(jìn)行加密或解密時(shí),通過密鑰字典查詢確定二級密鑰信息,將二級密鑰信息傳輸至客戶端;數(shù)據(jù)所有者使用主密鑰在客戶端的HSM中產(chǎn)生工作密鑰,而由工作密鑰完成數(shù)據(jù)的加密和解密。本發(fā)明能夠同時(shí)適用于關(guān)系數(shù)據(jù)庫和XML數(shù)據(jù)庫,在安全性方面,HSM的存儲(chǔ)方式杜絕了在服務(wù)器端獲得主密鑰或工作密鑰的可能,密鑰字典將二級密鑰信息存儲(chǔ)于服務(wù)器端,解除了密鑰存儲(chǔ)數(shù)量的限制,多叉樹路徑哈希值的存儲(chǔ)策略隱藏了二級密鑰信息和數(shù)據(jù)庫密文的鏈接,保障了密鑰的安全性。
文檔編號H04L29/06GK102143159SQ20111000656
公開日2011年8月3日 申請日期2011年1月13日 優(yōu)先權(quán)日2011年1月13日
發(fā)明者劉念, 周亞建, 平源, 彭維平, 楊義先 申請人:北京郵電大學(xué)