專利名稱:基于存儲(chǔ)加密的數(shù)據(jù)庫安全保密系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)信息安全領(lǐng)域,特別是涉及數(shù)據(jù)庫安全保密系統(tǒng)。
背景技術(shù):
信息安全問題是影響信息化進(jìn)程的重要因素之一。近年來,業(yè)界對(duì)信息安全的重要性有 了很深的認(rèn)識(shí),采取了大量積極有效的措施,但都偏重于網(wǎng)絡(luò)和操作系統(tǒng)的保護(hù),對(duì)數(shù)據(jù)庫 中的信息實(shí)施直接保護(hù)的并不多。實(shí)際上,數(shù)據(jù)庫是信息存放的倉庫,其安全性是信息安全 的核心,也是信息安全的最后一道防線。目前普遍采用的商品化數(shù)據(jù)庫管理系統(tǒng)在用戶身份 驗(yàn)證、權(quán)限控制等方面一般不能滿足安全級(jí)別要求比較高的系統(tǒng)需要,因此,這些系統(tǒng)經(jīng)常 在應(yīng)用中采取一些安全增強(qiáng)的辦法,比如對(duì)敏感數(shù)據(jù)進(jìn)行加密。
在應(yīng)用中對(duì)敏感的數(shù)據(jù)庫數(shù)據(jù)進(jìn)行加密,可以防止因?yàn)榫W(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)庫管理系 統(tǒng)、存儲(chǔ)介質(zhì)出現(xiàn)安全問題導(dǎo)致的對(duì)數(shù)據(jù)庫內(nèi)容機(jī)密性和完整性的破壞,對(duì)提升數(shù)據(jù)庫應(yīng)用 系統(tǒng)的安全性具有重要作用。但是在應(yīng)用中對(duì)數(shù)據(jù)庫內(nèi)容進(jìn)行加密會(huì)顯著增加應(yīng)用系統(tǒng)開發(fā) 和維護(hù)的難度,也不適用于無法獲得源代碼的系統(tǒng),應(yīng)用范圍受到很大限制。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種基于存儲(chǔ)加密的數(shù)據(jù)庫安全保密系統(tǒng),本系統(tǒng) 采用中間件,不用修改應(yīng)用系統(tǒng),提高了數(shù)據(jù)庫的安全性。
本發(fā)明所采用的技術(shù)方案是基于存儲(chǔ)加密的數(shù)據(jù)庫安全保密系統(tǒng),包括數(shù)據(jù)庫加密服 務(wù)系統(tǒng)、數(shù)據(jù)庫加密擴(kuò)展組件、安全數(shù)據(jù)庫訪問接口和管理工具;數(shù)據(jù)庫加密服務(wù)系統(tǒng)運(yùn)行 在裝有密碼裝置的加密服務(wù)器上,該服務(wù)系統(tǒng)對(duì)所述數(shù)據(jù)庫安全保密系統(tǒng)中所有數(shù)據(jù)進(jìn)行加 脫密,并集中實(shí)施安全控制與管理;數(shù)據(jù)庫加密擴(kuò)展組件注冊(cè)到密文數(shù)據(jù)庫上運(yùn)行的數(shù)據(jù)庫 管理系統(tǒng)中,該組件連接數(shù)據(jù)庫加密服務(wù)系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),調(diào)用數(shù)據(jù)庫加密服務(wù)系統(tǒng) 上的密碼服務(wù)功能實(shí)現(xiàn)常規(guī)數(shù)據(jù)的加脫密;安全數(shù)據(jù)庫訪問接口運(yùn)行在應(yīng)用服務(wù)器上運(yùn)行的 應(yīng)用系統(tǒng)進(jìn)程空間,為應(yīng)用系統(tǒng)提供安全透明的數(shù)據(jù)庫訪問支持;管理工具是管理人員進(jìn)行 各項(xiàng)安全配置管理的工具,該工具運(yùn)行在加密服務(wù)器上。
本發(fā)明的優(yōu)點(diǎn)本發(fā)明提供符合數(shù)據(jù)庫訪問標(biāo)準(zhǔn)的接口,支持常規(guī)數(shù)據(jù)和大數(shù)據(jù)對(duì)象的 透明加密。本發(fā)明為應(yīng)用系統(tǒng)屏蔽了安全功能的復(fù)雜細(xì)節(jié),使得應(yīng)用系統(tǒng)無需修改就可以實(shí) 現(xiàn)安全升級(jí)。本發(fā)明實(shí)現(xiàn)了安全功能的封裝和隔離,達(dá)到了安全功能的應(yīng)用無關(guān)和透明的效 果,減少了安全功能對(duì)應(yīng)用開發(fā)和維護(hù)的影響。
圖l是本發(fā)明的安全數(shù)據(jù)庫訪問接口的示意圖。
圖2是本發(fā)明的功能結(jié)構(gòu)圖。
圖3是本發(fā)明的系統(tǒng)總體結(jié)構(gòu)圖。圖4是安全數(shù)據(jù)庫訪問接口中連接建立的流程圖。 圖5是安全數(shù)據(jù)庫訪問接n中SQL (結(jié)構(gòu)化査詢語言)處理流程圖。 圖6是表加密管理工具中定義表加密的流程圖。 圖7是交互命令處理器工作流程圖。
具體實(shí)施例方式
本發(fā)明的設(shè)計(jì)思想采用中間件技術(shù),從數(shù)據(jù)庫訪問接口入手,通過提供安全的數(shù)據(jù)庫 訪問接口,就可以截獲應(yīng)用系統(tǒng)對(duì)數(shù)據(jù)庫的操作,然后根據(jù)操作的語義自動(dòng)進(jìn)行數(shù)據(jù)庫加密。 安全數(shù)據(jù)庫訪問接口遵循數(shù)據(jù)庫訪問接口的工業(yè)標(biāo)準(zhǔn),這樣,訪問密文的應(yīng)用系統(tǒng)就像訪問 明文一樣訪問數(shù)據(jù)庫,應(yīng)用系統(tǒng)不用修改,不會(huì)因?yàn)閿?shù)據(jù)庫內(nèi)容的加密帶來應(yīng)用系統(tǒng)開發(fā)、 維護(hù)難度和工作量的增加,沒有源代碼的應(yīng)用系統(tǒng)也可以實(shí)施數(shù)據(jù)庫內(nèi)容加密。本發(fā)明還綜 合應(yīng)用增強(qiáng)身份認(rèn)證、訪問控制、安全審計(jì)等安全措施,提升了數(shù)據(jù)庫應(yīng)用系統(tǒng)的安全性。
普通數(shù)據(jù)庫應(yīng)用中,最底層為操作系統(tǒng),操作系統(tǒng)操控?cái)?shù)據(jù)庫管理系統(tǒng)向應(yīng)用系統(tǒng)提供 數(shù)據(jù)庫服務(wù)。操作系統(tǒng)可采用Windows、 Linux或Unix,數(shù)據(jù)庫管理系統(tǒng)可采用0racle、 SQL Server、 DB2或Sybase
為做到安全功能對(duì)應(yīng)用系統(tǒng)的封裝和隔離,實(shí)現(xiàn)應(yīng)用系統(tǒng)對(duì)加密數(shù)據(jù)的透明訪問,在應(yīng) 用系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)間增加安全數(shù)據(jù)庫訪問接口 (如圖l),接管應(yīng)用系統(tǒng)和數(shù)據(jù)庫管理 系統(tǒng)間的操作,然后根據(jù)操作的語義進(jìn)行數(shù)據(jù)加密、訪問控制、審計(jì)等安全處理。因?yàn)樵摻?口符合數(shù)據(jù)庫訪問的工業(yè)標(biāo)準(zhǔn),所以應(yīng)用系統(tǒng)不需要修改。安全數(shù)據(jù)庫訪問接口運(yùn)行在應(yīng)用 系統(tǒng)進(jìn)程空間,在其內(nèi)部不可能直接實(shí)現(xiàn)各種安全功能,因此需要一套系統(tǒng)來支持這些安全 功能的實(shí)現(xiàn)。
如圖2和圖3所示,本發(fā)明包括數(shù)據(jù)庫加密服務(wù)系統(tǒng)、數(shù)據(jù)庫加密擴(kuò)展組件、安全數(shù)據(jù) 庫訪問接口和管理工具。數(shù)據(jù)庫加密服務(wù)系統(tǒng)運(yùn)行在加密服務(wù)器上,密碼裝置為數(shù)據(jù)庫加密 服務(wù)系統(tǒng)提供密碼支持。該服務(wù)系統(tǒng)對(duì)所述數(shù)據(jù)庫安全保密系統(tǒng)中所有數(shù)據(jù)進(jìn)行加脫密;并 集中實(shí)施安全控制與管理,如用戶身份的集中認(rèn)證,針對(duì)用戶數(shù)據(jù)的訪問進(jìn)行集中的訪問控 制和審計(jì)。數(shù)據(jù)庫加密擴(kuò)展組件注冊(cè)到數(shù)據(jù)庫管理系統(tǒng)中,該組件連接數(shù)據(jù)庫加密服務(wù)系統(tǒng) 和數(shù)據(jù)庫管理系統(tǒng),調(diào)用數(shù)據(jù)庫加密服務(wù)系統(tǒng)上的密碼服務(wù)功能實(shí)現(xiàn)常規(guī)數(shù)據(jù)的加脫密。數(shù) 據(jù)庫加密擴(kuò)展組件是運(yùn)行在數(shù)據(jù)庫管理系統(tǒng)的進(jìn)程空間的一系列加脫密函數(shù),可在SQL中直 接調(diào)用。安全數(shù)據(jù)庫訪問接口應(yīng)用系統(tǒng)進(jìn)程空間,為應(yīng)用系統(tǒng)提供安全透明的數(shù)據(jù)庫訪問支 持。安全數(shù)據(jù)庫訪問接口一方面連接到數(shù)據(jù)庫加密服務(wù)使用其上的身份認(rèn)證、訪問控制、審 計(jì)、數(shù)據(jù)加脫密等功能,另一方面連接到數(shù)據(jù)庫管理系統(tǒng),通過數(shù)據(jù)庫管理系統(tǒng)進(jìn)行數(shù)據(jù)庫 數(shù)據(jù)的讀寫。管理工具是管理人員進(jìn)行各項(xiàng)安全配置管理的工具,可運(yùn)行在管理控制臺(tái)計(jì)算 機(jī)上。
管理工具包括密鑰管理工具、系統(tǒng)管理工具、表加密管理工具和交互命令處理器。管理 工具中密鑰管理和系統(tǒng)管理工具不涉及數(shù)據(jù)庫中的數(shù)據(jù),因此直接連接到數(shù)據(jù)庫加密服務(wù)系 統(tǒng),而表加密管理工具和交互命令處理器因?yàn)樯婕皵?shù)據(jù)庫中數(shù)據(jù)的操作,因此通過安全數(shù)據(jù) 庫訪問接口連接到數(shù)據(jù)庫加密服務(wù)和數(shù)據(jù)庫管理系統(tǒng)。密鑰管理工具用于密鑰的生成、備份、恢復(fù)。密鑰管理工具在創(chuàng)建密鑰集時(shí)可以設(shè)置口 令,這樣只有知道該口令的人可以使用使用密鑰管理工具對(duì)密鑰進(jìn)行管理和使用,相當(dāng)于一 個(gè)獨(dú)立的密鑰管理角色。系統(tǒng)設(shè)定,給用戶授予管理角色導(dǎo)致的用戶鎖定必須由密鑰管理角 色解鎖,這樣可以防止其它管理員的串通帶來的安全問題。
數(shù)據(jù)庫加密服務(wù)系統(tǒng)還提供系統(tǒng)管理角色、安全管理角色、審計(jì)管理角色。安全管理角 色負(fù)責(zé)對(duì)用戶的鎖定與解鎖,對(duì)系統(tǒng)管理員和系統(tǒng)用戶進(jìn)行監(jiān)督和控制。系統(tǒng)管理角色通過 系統(tǒng)管理工具對(duì)全部用戶和系統(tǒng)進(jìn)行管理和維護(hù),如增加、刪除、修改用戶等,其操作導(dǎo)致 用戶的鎖定。審計(jì)管理角色負(fù)責(zé)審計(jì)日志的查詢、分析和歸檔;表加密管理工具用于定義表 中需要加密的列,同時(shí)可進(jìn)行表中數(shù)據(jù)的查看、導(dǎo)入導(dǎo)出;交互命令處理器執(zhí)行用戶輸入的 SQL語句,并顯示執(zhí)行結(jié)果。
在對(duì)常規(guī)數(shù)據(jù)進(jìn)行查詢時(shí),將常規(guī)數(shù)據(jù)組成視圖,并通過數(shù)據(jù)庫加密擴(kuò)展組件和數(shù)據(jù)庫 加密服務(wù)系統(tǒng)對(duì)常規(guī)數(shù)據(jù)進(jìn)行加脫密。視圖是一個(gè)虛擬表,其內(nèi)容由查詢定義。同真實(shí)的表 一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。視圖在數(shù)據(jù)庫中并不是以數(shù)據(jù)值存儲(chǔ)集形式 存在,除非是索引視圖。視圖的行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且在引用 視圖時(shí)動(dòng)態(tài)生成。常規(guī)數(shù)據(jù)的加密通過視圖上的觸發(fā)器執(zhí)行,即在視圖的INSERT和UPDATE 觸發(fā)器中,對(duì)相應(yīng)列的內(nèi)容調(diào)用加密函數(shù)加密后,再寫入存儲(chǔ)加密數(shù)據(jù)的基表中。常規(guī)數(shù)據(jù) 的脫密通過視圖執(zhí)行,即在視圖的SELECT子句中相應(yīng)列的位置調(diào)用對(duì)應(yīng)該類型的脫密函數(shù)。 大數(shù)據(jù)對(duì)象的加脫密則在安全數(shù)據(jù)庫訪問接口中執(zhí)行。
如圖6所示,表加密管理工具定義需要加密的列屬性的過程如下
1) 備份表中數(shù)據(jù),開始定義需要加密的列屬性;
2) 通過表加密管理工具將列加密定義寫到列加密數(shù)據(jù)字典,列加密定義包括加密列名稱、 類型、長(zhǎng)度、小數(shù)位、可否為空、缺省值;
3) 計(jì)算加密后各列類型和長(zhǎng)度,創(chuàng)建一個(gè)存儲(chǔ)加密數(shù)據(jù)的基表,保證表名未被使用,且 不同于待加密表名;
4) 創(chuàng)建名為待加密表名的視圖,從存儲(chǔ)加密數(shù)據(jù)的基表取數(shù)據(jù);若在選擇出的列中,涉 及常規(guī)加密數(shù)據(jù)的,則在SELECT子句中調(diào)用解密函數(shù)解密;
5) 在視圖上創(chuàng)建INSERT觸發(fā)器,接收插入的明文數(shù)據(jù),調(diào)用加密函數(shù),將涉及的常規(guī) 加密數(shù)據(jù)加密后,寫入存儲(chǔ)加密數(shù)據(jù)的基表;
6) 在視圖上創(chuàng)建UPDATE觸發(fā)器,接收更新的明文數(shù) ,調(diào)用加密函數(shù),將涉及的常規(guī) 加密數(shù)據(jù)加密后,寫入存儲(chǔ)加密數(shù)據(jù)的基表以覆蓋原數(shù)據(jù)。
7) 恢復(fù)表中數(shù)據(jù)。
8) 結(jié)束對(duì)需要加密的列屬性的定義過程。 安全數(shù)據(jù)庫訪問接口包括
AD0DBC,該接口是供應(yīng)用系統(tǒng)訪問加密數(shù)據(jù)用的ODBC Driver (開放式數(shù)據(jù)庫連接驅(qū)動(dòng)); ADJDBC,該接口是供應(yīng)用系統(tǒng)訪問加密數(shù)據(jù)用的JDBC Driver (Java數(shù)據(jù)庫連接驅(qū)動(dòng)); AD0LEDB,該接口是供應(yīng)用系統(tǒng)訪問加密數(shù)據(jù)用的OLE DB Provider (對(duì)象鏈接嵌入式數(shù)據(jù)庫接口)。
在安全數(shù)據(jù)庫訪問接口中,首先要為應(yīng)用系統(tǒng)提供連接到加密數(shù)據(jù)庫的功能,然后是提 供數(shù)據(jù)庫數(shù)據(jù)訪問服務(wù)。連接功能實(shí)現(xiàn)流程如圖4所示,安全數(shù)據(jù)庫訪問接口從應(yīng)用系統(tǒng)獲 取或直接讀取身份認(rèn)證信息,連接到數(shù)據(jù)庫加密服務(wù)系統(tǒng),請(qǐng)求系統(tǒng)對(duì)用戶進(jìn)行身份認(rèn)證。 如果身份認(rèn)證失敗(N),則給應(yīng)用系統(tǒng)返回錯(cuò)誤代碼或拋出異常;如果成功(Y),則返回訪 問安全數(shù)據(jù)庫的令牌。接下來安全數(shù)據(jù)庫訪問接口連接到數(shù)據(jù)庫管理系統(tǒng),并把該令牌作為 參數(shù)調(diào)用數(shù)據(jù)庫加密擴(kuò)展組件的相關(guān)函數(shù),使該組件連接到數(shù)據(jù)庫加密服務(wù),這樣數(shù)據(jù)庫加 密擴(kuò)展就可以調(diào)用數(shù)據(jù)庫加密服務(wù)的功能進(jìn)行常規(guī)數(shù)據(jù)的加脫密。
如圖5所示,安全數(shù)據(jù)庫訪問接口對(duì)數(shù)據(jù)加脫密的步驟為
a) 通過安全數(shù)據(jù)庫訪問接口對(duì)SQL進(jìn)行詞法和語法分析;
b) 比較列加密數(shù)據(jù)字典,判斷SQL是否涉及對(duì)大數(shù)據(jù)對(duì)象(LOB)的加密更新或査詢, 若是對(duì)大數(shù)據(jù)對(duì)象進(jìn)行更新(INSERT或UPDATE),轉(zhuǎn)至步驟c),若是對(duì)大數(shù)據(jù)對(duì)象進(jìn)行查詢
(SELECT),轉(zhuǎn)至步驟d),其它情況直接交給數(shù)據(jù)庫管理系統(tǒng)執(zhí)行;
c) 安全數(shù)據(jù)庫訪問接口通過數(shù)據(jù)庫加密系統(tǒng),將SQL參數(shù)中大數(shù)據(jù)對(duì)象對(duì)應(yīng)的值加密為 一新的大數(shù)據(jù)對(duì)象,并提交密文數(shù)據(jù)庫保存,最后獲得執(zhí)行結(jié)果代碼,這樣數(shù)據(jù)庫中存儲(chǔ)的 就是加密的內(nèi)容;
d) 安全數(shù)據(jù)庫訪問接口通過數(shù)據(jù)庫加密系統(tǒng),將SQL結(jié)果集中大數(shù)據(jù)對(duì)象對(duì)的值脫密為 一新的大數(shù)據(jù)對(duì)象,并返回給應(yīng)用系統(tǒng)。
交互命令處理器執(zhí)行用戶輸入的SQL語句,并顯示執(zhí)行結(jié)果,其處理流程如圖7所示。 用戶輸入完成SQL語句后,選擇執(zhí)行按鈕,命令處理器對(duì)輸入的SQL進(jìn)行詞法和語法分析, 并判斷是否是SELECT語句,如果是(Y)就從數(shù)據(jù)庫取數(shù)據(jù)并以表格方式顯示;如果不是(N) 就交數(shù)據(jù)庫執(zhí)行并顯示執(zhí)行的結(jié)果狀態(tài),比如增加、更新、刪除的數(shù)據(jù)行數(shù)等。因?yàn)槊钐?理器通過安全數(shù)據(jù)庫訪問接口訪問數(shù)據(jù),因此在其中不需要考慮數(shù)據(jù)加密問題和其它安全問 題。
實(shí)施例
用戶登陸應(yīng)用系統(tǒng),向加密數(shù)據(jù)庫存儲(chǔ)須加密的數(shù)據(jù)。應(yīng)用系統(tǒng)通過安全數(shù)據(jù)庫訪問接 口、數(shù)據(jù)庫加密服務(wù)系統(tǒng)進(jìn)行身份驗(yàn)證,驗(yàn)證通過。然后再由數(shù)據(jù)庫加密擴(kuò)展組件中的加密 函數(shù)調(diào)用數(shù)據(jù)庫加密服務(wù)器中的密碼裝置對(duì)普通數(shù)據(jù)進(jìn)行加密,由安全數(shù)據(jù)庫訪問接口對(duì)大 數(shù)據(jù)對(duì)象進(jìn)行加密。最后將加密后的數(shù)據(jù)通過數(shù)據(jù)庫管理系統(tǒng)存入加密數(shù)據(jù)庫。
用戶登陸應(yīng)用系統(tǒng),向加密數(shù)據(jù)庫査詢數(shù)據(jù)。應(yīng)用系統(tǒng)通過安全數(shù)據(jù)庫訪問接口、數(shù)據(jù) 庫加密服務(wù)系統(tǒng)進(jìn)行身份驗(yàn)證,驗(yàn)證通過。然后再由數(shù)據(jù)庫加密擴(kuò)展組件中的脫密函數(shù)調(diào)用 數(shù)據(jù)庫加密服務(wù)器中的密碼裝置對(duì)普通數(shù)據(jù)進(jìn)行脫密,由安全數(shù)據(jù)庫訪問接口對(duì)大數(shù)據(jù)對(duì)象 進(jìn)行脫密。最后將脫密后的數(shù)據(jù)提交給用戶。
權(quán)利要求
1.基于存儲(chǔ)加密的數(shù)據(jù)庫安全保密系統(tǒng),其特征在于其包括數(shù)據(jù)庫加密服務(wù)系統(tǒng)、數(shù)據(jù)庫加密擴(kuò)展組件、安全數(shù)據(jù)庫訪問接口和管理工具;數(shù)據(jù)庫加密服務(wù)系統(tǒng)運(yùn)行在裝有密碼裝置的加密服務(wù)器上,該服務(wù)系統(tǒng)對(duì)所述數(shù)據(jù)庫安全保密系統(tǒng)中處理的數(shù)據(jù)進(jìn)行加脫密,并集中實(shí)施安全控制與管理;數(shù)據(jù)庫加密擴(kuò)展組件注冊(cè)到數(shù)據(jù)庫管理系統(tǒng)中,該組件連接數(shù)據(jù)庫加密服務(wù)系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),調(diào)用數(shù)據(jù)庫加密服務(wù)系統(tǒng)上的密碼服務(wù)功能實(shí)現(xiàn)常規(guī)數(shù)據(jù)的加脫密;安全數(shù)據(jù)庫訪問接口運(yùn)行在應(yīng)用系統(tǒng)進(jìn)程空間,為應(yīng)用系統(tǒng)提供安全透明的數(shù)據(jù)庫訪問支持;管理工具是管理人員進(jìn)行各項(xiàng)安全配置管理的工具,可運(yùn)行在管理控制臺(tái)計(jì)算機(jī)上。
2. 如權(quán)利要求1所述的數(shù)據(jù)庫安全保密系統(tǒng),其特征在于管理工具包括密鑰管理工具、 系統(tǒng)管理工具、表加密管理工具和交互命令處理器;數(shù)據(jù)庫加密服務(wù)系統(tǒng)提供系統(tǒng)管理角色、 安全管理角色、審計(jì)管理角色;密鑰管理工具對(duì)應(yīng)密鑰管理角色,用于密鑰的生成、備份、 恢復(fù),解鎖特權(quán)用戶;安全管理角色負(fù)責(zé)對(duì)用戶的鎖定與解鎖,對(duì)系統(tǒng)管理員和系統(tǒng)用戶進(jìn) 行監(jiān)督和控制;系統(tǒng)管理角色通過系統(tǒng)管理工具對(duì)全部用戶和系統(tǒng)進(jìn)行管理和維護(hù);審計(jì)管 理角色負(fù)責(zé)審計(jì)日志的查詢、分析和歸檔;表加密管理工具用于定義表中需要加密的列,同 時(shí)可進(jìn)行表中數(shù)據(jù)的査看、導(dǎo)入導(dǎo)出;交互命令處理器執(zhí)行用戶輸入的SQL語句,并顯示執(zhí) 行結(jié)果。
3. 如權(quán)利要求2所述的數(shù)據(jù)庫安全保密系統(tǒng),其特征在于在對(duì)常規(guī)數(shù)據(jù)進(jìn)行查詢時(shí), 將常規(guī)數(shù)據(jù)組成視圖,并通過數(shù)據(jù)庫加密擴(kuò)展組件和數(shù)據(jù)庫加密服務(wù)系統(tǒng)對(duì)常規(guī)數(shù)據(jù)進(jìn)行加 脫密,常規(guī)數(shù)據(jù)的加密通過視圖上的觸發(fā)器執(zhí)行,常規(guī)數(shù)據(jù)的脫密通過視圖執(zhí)行;大數(shù)據(jù)對(duì) 象的加脫密則在安全數(shù)據(jù)庫訪問接口中執(zhí)行。
4. 如權(quán)利要求1所述的數(shù)據(jù)庫安全保密系統(tǒng),其特征在于安全數(shù)據(jù)庫訪問接口包括 AD0DBC,該接口是供應(yīng)用系統(tǒng)訪問加密數(shù)據(jù)用的ODBC Driver;ADJDBC,該接口是供應(yīng)用系統(tǒng)訪問加密數(shù)據(jù)用的JDBC Driver; AD0LEDB,該接口是供應(yīng)用系統(tǒng)訪問加密數(shù)據(jù)用的OLE DB Provider。
5. 如權(quán)利要求3所述的數(shù)據(jù)庫安全保密系統(tǒng),其特征在于表加密管理工具定義需要加密 的列屬性的過程如下5. 1)通過表加密管理工具將列加密定義寫到列加密數(shù)據(jù)字典;5.2) 創(chuàng)建一個(gè)存儲(chǔ)加密數(shù)據(jù)的基表,保證表名未被使用,且不同于待加密表名;5.3) 創(chuàng)建名為待加密表名的視圖,從存儲(chǔ)加密數(shù)據(jù)的基表取數(shù)據(jù),若在選擇出的列中, 涉及常規(guī)加密數(shù)據(jù)的,則在SELECT子句中調(diào)用解密函數(shù)解密;5.4) 在視圖上創(chuàng)建INSERT觸發(fā)器,接收插入的明文數(shù)據(jù),調(diào)用加密函數(shù),將涉及的常 規(guī)加密數(shù)據(jù)加密后,寫入存儲(chǔ)加密數(shù)據(jù)的基表;5.5) 在視圖上創(chuàng)建UPDATE觸發(fā)器,接收更新的明文數(shù)據(jù),調(diào)用加密函數(shù),將涉及的常 規(guī)加密數(shù)據(jù)加密后,寫入存儲(chǔ)加密數(shù)據(jù)的基表以覆蓋原數(shù)據(jù)。
6.如權(quán)利要求5所述的數(shù)據(jù)庫安全保密系統(tǒng),其特征在于安全數(shù)據(jù)庫訪問接口對(duì)數(shù)據(jù)加 脫密的步驟為6. 1)通過安全數(shù)據(jù)庫訪問接口對(duì)SQL進(jìn)行詞法和語法分析;6.2) 比較列加密數(shù)據(jù)字典,判斷SQL是否涉及加密大數(shù)據(jù)對(duì)象的更新或査詢,若是對(duì)大 數(shù)據(jù)對(duì)象進(jìn)行更新,轉(zhuǎn)至步驟6.3),若是對(duì)大數(shù)據(jù)對(duì)象進(jìn)行査詢,轉(zhuǎn)至步驟6.4),其它情況 直接交數(shù)據(jù)庫管理系統(tǒng)執(zhí)行;6.3) 安全數(shù)據(jù)庫訪問接口通過數(shù)據(jù)庫加密系統(tǒng),將SQL參數(shù)中大數(shù)據(jù)對(duì)象對(duì)應(yīng)的值加密 為一新的大數(shù)據(jù)對(duì)象,并提交密文數(shù)據(jù)庫保存;6.4) 安全數(shù)據(jù)庫訪問接口通過數(shù)據(jù)庫加密系統(tǒng),將SQL結(jié)果集中大數(shù)據(jù)對(duì)象的值脫密為 一新的大數(shù)據(jù)對(duì)象,并返回給應(yīng)用系統(tǒng)。
7. 如權(quán)利要求1 6中任一項(xiàng)所述的數(shù)據(jù)庫安全保密系統(tǒng),其特征在于應(yīng)用系統(tǒng)通過安 全數(shù)據(jù)庫訪問接口連接到加密數(shù)據(jù)庫的步驟為首先安全數(shù)據(jù)庫訪問接口從應(yīng)用系統(tǒng)獲取或 直接讀取身份認(rèn)證信息,并連接到數(shù)據(jù)庫加密服務(wù)系統(tǒng),請(qǐng)求系統(tǒng)對(duì)用戶進(jìn)行身份認(rèn)證;如 果身份認(rèn)證失敗,則給應(yīng)用系統(tǒng)返回錯(cuò)誤代碼或拋出異常,停止連接過程;如果成功,則返 回訪問安全數(shù)據(jù)庫的令牌;接下來安全數(shù)據(jù)庫訪問接口連接到數(shù)據(jù)庫管理系統(tǒng),并把該令牌 作為參數(shù)調(diào)用數(shù)據(jù)庫加密擴(kuò)展組件的相關(guān)函數(shù),使該組件連接到數(shù)據(jù)庫加密服務(wù)系統(tǒng)。
8. 如權(quán)利要求2、 3、 5、 6中任一項(xiàng)所述的數(shù)據(jù)庫安全保密系統(tǒng),其特征在于交互命令 處理器執(zhí)行用戶輸入的SQL語句,并顯示執(zhí)行結(jié)果,其處理流程包括用戶輸入完成SQL語 句后,交互命令處理器對(duì)輸入的SQL進(jìn)行詞法和語法分析,并判斷是否是SELECT語句,如果 是就從數(shù)據(jù)庫取數(shù)據(jù)并以表格方式顯示;如果不是就交數(shù)據(jù)庫執(zhí)行并顯示執(zhí)行的結(jié)果狀態(tài)。
全文摘要
本發(fā)明提供了一種基于存儲(chǔ)加密的數(shù)據(jù)庫安全保密系統(tǒng)。系統(tǒng)包括數(shù)據(jù)庫加密服務(wù)器、數(shù)據(jù)庫加密擴(kuò)展組件、安全數(shù)據(jù)庫訪問接口和管理工具。數(shù)據(jù)庫加密服務(wù)系統(tǒng)對(duì)所述數(shù)據(jù)庫安全保密系統(tǒng)中所有數(shù)據(jù)進(jìn)行加脫密,并集中實(shí)施安全控制與管理。數(shù)據(jù)庫加密擴(kuò)展組件提供與數(shù)據(jù)庫加密服務(wù)系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)的連接,還提供調(diào)用數(shù)據(jù)庫加密服務(wù)系統(tǒng)上的密碼服務(wù)功能來實(shí)現(xiàn)常規(guī)數(shù)據(jù)的加脫密。安全數(shù)據(jù)庫訪問接口為應(yīng)用系統(tǒng)提供安全透明的數(shù)據(jù)庫訪問支持。管理工具是管理人員進(jìn)行各項(xiàng)安全配置管理的工具。本發(fā)明提供符合數(shù)據(jù)庫訪問的接口標(biāo)準(zhǔn);支持常規(guī)數(shù)據(jù)和大數(shù)據(jù)對(duì)象的透明加脫密;還為應(yīng)用系統(tǒng)屏蔽了實(shí)現(xiàn)數(shù)據(jù)庫安全保密功能的復(fù)雜細(xì)節(jié)。
文檔編號(hào)G06F21/00GK101639882SQ20091006375
公開日2010年2月3日 申請(qǐng)日期2009年8月28日 優(yōu)先權(quán)日2009年8月28日
發(fā)明者捷 劉, 胡和平, 趙友橋, 路松峰, 黃保華 申請(qǐng)人:華中科技大學(xué);武漢華工安鼎信息技術(shù)有限責(zé)任公司