国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      維護數據庫安全的方法和系統(tǒng)的制作方法

      文檔序號:6573201閱讀:259來源:國知局
      專利名稱:維護數據庫安全的方法和系統(tǒng)的制作方法
      技術領域
      本發(fā)明涉及數據庫領域,特別是涉及一種維護數據庫安全的方法和系統(tǒng)。
      技術背景目前,計算機數據存儲的安全問題、敏感數據的防竊取和防篡改問題越 來越引起人們的重視,數據庫系統(tǒng)作為計算機信息系統(tǒng)的核心,數據庫文件 作為信息的聚集體,其安全性將是信息產業(yè)的重中之重。傳統(tǒng)的物理安全、 操作系統(tǒng)安全機制和數據庫訪問控制機制為數據庫提供了一定的安全保障, 但這些并不能滿足數據庫全部的安全需求,無法保證一些部門重要數據和敏 感數據的安全,這就涉及到了對數據的加密問題。對數據庫安全的維護主要通過對數據庫中的數據進行加密來實現?,F有的對數據庫中數據的加密主要在兩個層次進行,即OS (Operation System)層 和DBMS (數據庫管理系統(tǒng))外層(客戶端)。DBMS在存儲數據庫中的數據時,通常會把一個表存儲為OS中的一個文 件,那么對相應的文件加密就達到了對表中的數據進行加密的目的。但是在 OS層加密的粒度是文件級,對加密關系進行操作的時候,首先需要解密文件, 這會極大地降低系統(tǒng)的性能。當前大多數數據庫加密方法是在DBMS外層加密。在敏感數據存儲到數 據庫之前,首先將數據加密,然后再將加密后的數據存進數據庫,加/解密對 DBMS來說是透明的。采用這種方式的優(yōu)點是,加/解密操作既可以放在服務 器端又可以放在客戶端進行。此外,加密粒度可以達到字段級。但這種方式 有其固有的缺陷,提高查詢性能的一個重要機制是使用索引,而索引的建立 通常是依據數據之間的邏輯關系。加密后的數據將很難保持原有的邏輯關系, DBMS在將加密數據存儲到數據庫時,索引的建立將是一個極大的挑戰(zhàn),這 對數據庫的性能和功能都會產生極大影響。發(fā)明內容為了解決上述問題,本發(fā)明的目的在于提供一種在DBMS內核層進行數 據庫安全的維護、不影響DBMS的功能且對系統(tǒng)性能的影響較小的維護數據
      庫安全的系統(tǒng)和方法,在內核層實現數據庫加密可以支持字段級、元組級、 關系級等多種加密粒度。本發(fā)明的目的是通過以下技術方案實現的一種維護數據庫安全的方法,包括以下歩驟步驟S10:用戶創(chuàng)建關系;步驟S20:通過SQL的擴展語句指定是否對其中的數據迸行加密存儲, 若需要進行加密存儲則執(zhí)行步驟S30;若不需要進行加密存儲則執(zhí)行步驟S70; 歩驟S30:密鑰產生器自動產生一個密鑰; 步驟S40:將密鑰存入安全字典中的加密關系表中;步驟S50:在DBMS將數據寫到外存時,查詢系統(tǒng)表中的安全字典,判 斷是否需要加密,若需要加密則進入歩驟S60,若不需加密則進入步驟S70; 步驟S60:利用安全字典中的密鑰對數據進行加密; 步驟S70:將數據寫出到外存。一種維護數據庫安全的系統(tǒng),包括數據庫加密體系和對SQL的擴展。上述的數據庫加密體系包括一個加/解密模塊且在系統(tǒng)表中設置有一個用 來存放密鑰的安全字典。上述的安全字典由加密關系表和密鑰授權表組成。上述的對SQL的擴展包括關系創(chuàng)建語句和關系結構修改語句。本發(fā)明的有益效果在于1) 既保證對敏感數據加密存儲又不影響DBMS的功能,最主要的是不影 響DBMS索引的建立。與當前大多數為維護數據庫安全而采用的在DBMS外 層進行加/解密操作的加/解密方法相比,本發(fā)明提出的在DBMS內核層進行加 /解密的方法是在DBMS將內存中的數據寫到外存(如磁盤、磁帶等)時進行加 密操作,而將外存中的數據讀到內存時進行相應的解密操作。因為數據在內 存中是明文的,所以DBMS的功能不會受到任何影響,并且可以按常規(guī)方式 建立索引。2) 本發(fā)明還可以充分利用索引來減少加/解密的次數及數據量,對系統(tǒng)性 能的影響也比較小。


      圖1為本發(fā)明的維護數據庫安全的方法的流程圖;圖2為關系數據庫管理系統(tǒng)中的頁面結構圖; 圖3為用戶訪問本發(fā)明中的數據庫的流程圖。
      具體實施方式
      下面結合附圖對本發(fā)明的維護數據庫安全的系統(tǒng)和方法進行詳細說明。 本發(fā)明的維護數據庫安全的方法如圖1所示,包括以下步驟.-歩驟S10:用戶創(chuàng)建關系;步驟S20:通過SQL的擴展語句指定是否對其中的數據進行加密存儲, 若需要進行加密存儲則執(zhí)行步驟S30;若不需要進行加密存儲則執(zhí)行歩驟S70; 步驟S30:密鑰產生器自動產生一個密鑰; 步驟S40:將密鑰存入安全字典中的加密關系表中;步驟S50:在DBMS將數據寫到外存時,查詢系統(tǒng)表中的安全字典,判 斷是否需要加密,若需要加密則進入歩驟S60,若不需加密則進入步驟S70;步驟S60:利用安全字典中密鑰對數據進行加密; 步驟S70:將數據寫出到外存。下面對上述步驟的實現方法進行具體說明。在關系數據庫管理系統(tǒng)中,頁面結構通常如圖2示,頁頭主要包含該頁面所屬的數據庫及關系、頁面大小、頁內空閑空間的起始偏移以及頁內空閑 空間的終止偏移等信息。在頁頭和空閑空間之間是一個數組,它的每一個元 素存放了一條記錄在頁面中的起始偏移,數組中元素的個數即頁面中存放記 錄的條數。頁尾是數據域部分,存放關系中的元組,元組按插入順序從后向前存入。根據圖2的頁面結構,如果一個關系中存放敏感數據,那么這個關系的每一個頁面的數據域在內存中是明文的,在外存中是以密文的形式存放的。 加密時,只加密頁面中的數據域。由于數據庫中數據的特性,加密時通常采 用分組加密算法,所以要處理加密數據長度不是分組長度整數倍的情況。例如,假設采用加密算法是64位分組,8個節(jié),如果數據域不是8的整數倍, 則在數據域前面多取幾個字節(jié),使其為8的整數倍再進行加密。加密后,在 頁頭使用兩個比特來設置加密標識,指示出當前頁面已加密及使用的密鑰的 編號。在DBMS內核層實現數據庫加密,在設計數據庫加密體系結構時需要重
      點考慮兩個因素 一是要易于與目前DBMS集成,二是要考慮數據庫加密后 的査詢性能。DBMS是非常復雜的系統(tǒng),所以要盡可能地減少內部結構的改 變,最好只是在合適的位置添加相應的加/解密模塊。在數據庫中存放敏感數 據的關系加密存儲后,數據塊寫入、讀出時都要進行相應的加/解密操作,所 以采用的體系結構要盡可能地減小對性能的影響。基于上面的考慮,在本發(fā)明的體系結構中對DBMS的改動甚小,只是在 DBMS中增加了一個加/解密模塊,并在系統(tǒng)表中增加了一個安全字典來存放 密鑰。用戶在創(chuàng)建關系的時候,可以指定是不是對其加密存儲,如果需要加 密,則在系統(tǒng)表的安全字典中插入一條相應的記錄。在DBMS將數據寫到外 存時,查詢一下系統(tǒng)表中的安全字典,如果需要加密,則首先對數據加密, 再將其寫到外存。同理,當DBMS從外存中讀入數據塊時,如果數據塊是加 密過的,則加/解密模塊査詢安全字典,取出相應的密鑰解密數據塊。從圖中 的結構可以看出,增加加/解密模塊以后對DBMS的功能沒有任何影響,而且 可以利用索引,使得對系統(tǒng)性能的影響降至最低。為了支持數據庫加密,在系統(tǒng)表中增加了一個安全字典,它由兩個表組 成, 一個是加密關系表,另一個是密鑰授權表。加密關系表的每條記錄形如(DID, RID, ETag, Keyl , Key2, UpdtTime, UpdtTag, UpdtCnt, ValidTime)其中DID和RID分別是數據庫ID和關系ID。 ETag標識關系表是否加密存儲及加密存儲時當前活動密鑰編號。Keyl、 Key2分別是密鑰1、密鑰2,UpdtTime是上次密鑰更新時間,UpdtTag、 UpdtCnt分別是密鑰更新是否完成和未完成時當前已更新到的塊號,之所以有兩個密鑰是為了以后密鑰更新的高效性。ValidTime是密鑰的更新周期。密鑰授權表的每條記錄形如(EID, DID, RID, Valid, StartTime, EndTime)其中EID是用戶密鑰ID, DID和RID同前,Valid指示當前記錄是否有 效,StartTime和EndTime指示出起始及截止有效日期。同時,增設了系統(tǒng)安全管理員(SSA),使用專門的接口來管理和維護安全 字典。他通過在密鑰授權表中添加記錄來授予某些用戶訪問機密數據的權限, 也可以調整密鑰的更新周期,還負責用戶EID的發(fā)放和管理。數據庫管理員(DBA)負責常規(guī)的數據庫管理和維護、用戶訪問控制的授權等,但DBA沒有 權限查詢加密過的數據,也不能訪問安全字典,這樣就避免了DBA權限過大 對敏感數據構成的威脅。DBA的訪問控制授權與SSA的密鑰授權是各自獨立 的,從而相互制約。為了實現對數據庫加密,需要擴展ANSI SQL92標準的數據定義語言 DDL。主要在兩個方面擴展, 一是關系的創(chuàng)建語句,另一個是關系結構的修 改語句。在創(chuàng)建新關系時,可以指明是不是對此關系中的數據加密存儲,擴展后的語法為CREATE TABLE關系名(屬姓名類型,……,完整性約束, [, ENCRY])對于已經創(chuàng)建的關系,可以修改關系中的數據是否加密存儲,擴展后的 語法為ALTER TABLE關系名WITH ENCRY [NOW] I WITHOUT ENCRY當用戶創(chuàng)建一個關系時,如果指出這個關系中的數據需要加密存儲,那 么密鑰產生器就會自動產生一個密鑰,并在安全字典的加密關系表中插入如 下一條元組(數據庫ID,新創(chuàng)建關系ID, 1,新產生密鑰,0,當前系統(tǒng)時 間,1, 0,默認密鑰有效期)。將ETag設為1表示關系需要加密存儲,并且 當前活動密鑰是密鑰l。因為還沒用到密鑰2,將Key2置0。將UpdtTag設為 l表示已完成密鑰的更新。在關系已經創(chuàng)建后,可以修改加密選項。如果將加密改為不再加密,只 需在加密關系表中將相應元組的ETag字段設為0,指示出關系不再需要加密 存儲,并不用解密整個關系。用戶以后訪問這個關系時,如果從外存讀入的 數據塊是加密過的,則系統(tǒng)自動從安全字典的加密關系表中取出相應的密鑰 解密。在將其寫回到外存上時,先將頁頭的是否加密標識設為未加密,再明 文寫回,也就是說,在用戶對原加密存儲的關系訪問的過程中完成了關系數 據由密文存儲到明文存儲的轉變。在將以前未加密存儲的關系修改為需要加密存儲時,與新創(chuàng)建一個關系 且指定加密時類似,在安全字典的加密關系表中插入如下一條記錄(數據庫,被修改關系,1,新產生密鑰,0,當前系統(tǒng)時間,0, O默認密鑰有效期)與新創(chuàng)建一個關系且指定加密存儲時的區(qū)別是,將更新是否完成標識UpdtTag設置為O,指示當前更新未完成。因為在修改是否加密項的時候,關 系中可能己有數據,而且通常不是DBMS負荷較低的時候,為了避免影響系 統(tǒng)的性能,沒有立即將數據轉為加密存儲的形式。通過這一設定,把關系由 非加密存儲到加密存儲的轉變交給在系統(tǒng)低負荷時自動運行的密鑰更新程序 去完成。如果關系加密存儲的需求特別緊急,此時可以使用參數,密鑰產生 器會產生一個新密鑰,系統(tǒng)立即從外存中依次讀出關系中的所有塊,加密后 再寫到外存。使用本發(fā)明的維護數據庫安全的方法的數據庫的訪問過程如圖3所示1. 用戶首先使用分配的用戶名和密碼登錄系統(tǒng);2. 訪問控制模塊對用戶名與密碼進行認證,如果正確,DBMS與用戶建 立連接;3. 用戶提交查詢、更新等語句;4. 訪問控制模塊首先檢査用戶是否有權限訪問語句中指定的關系,通過 后,從外存中讀入關系數據塊,如果數據塊是未加密過的(由頁頭判斷),直 接將結果返回給用戶;否則,調用安全控制模塊;5. 安全控制模塊獲取用戶的EID,然后查詢安全字典中的用戶密鑰授權 表,如果該EID有加密數據的密鑰授權,則安全控制模塊從加密關系表中取 出相應的密鑰進行解密,最后向用戶提交結果。
      權利要求
      1、一種維護數據庫安全的方法,其在DBMS內核層進行加密,即在數據物理存取之前進行加/解密操作,其特征在于包括以下步驟步驟S10用戶創(chuàng)建關系;步驟S20通過SQL的擴展語句指定是否對其中的數據進行加密存儲,若需要進行加密存儲則執(zhí)行步驟S30;若不需要進行加密存儲則執(zhí)行步驟S70;步驟S30密鑰產生器自動產生一個密鑰;步驟S40將密鑰存入安全字典中的加密關系表中;步驟S50在DBMS將數據寫到外存時,查詢系統(tǒng)表中的安全字典,判斷是否需要加密,若需要加密則進入步驟S60,若不需加密則進入步驟S70;步驟S60利用安全字典中密鑰對數據進行加密;步驟S70將數據寫出到外存。
      2、 一種維護數據庫安全的系統(tǒng),其特征在于包括數據庫加密體系和對SQL的擴展。
      3、 如權利要求2所述的維護數據庫安全的系統(tǒng),其特征在于所述的數據庫加密體系包括一個加/解密模塊且在系統(tǒng)表中設置有一個用來存放密鑰的 安全字典。
      4、 如權利要求3所述的維護數據庫安全的系統(tǒng),其特征在于所述的安全字典由加密關系表和密鑰授權表組成。
      5、 如權利要求4所述的維護數據庫安全的系統(tǒng),其特征在于所述的對SQL的擴展包括關系創(chuàng)建語句和關系結構修改語句。
      全文摘要
      本發(fā)明公開了一種維護數據庫安全的方法,包括以下步驟用戶創(chuàng)建關系;通過SQL的擴展語句指定是否對其中的數據進行加密存儲,若需要進行加密存儲則密鑰產生器自動產生一個密鑰,若不需要進行加密存儲則將數據寫出到外存;將密鑰產生器產生的密鑰存入安全字典中的加密關系表中;在DBMS將數據寫到外存時,查詢系統(tǒng)表中的安全字典,判斷是否需要加密,若需要加密則利用安全字典中的密鑰對數據進行加密,若不需加密則將數據寫出到外存。本發(fā)明在DBMS將內存中的數據寫到外存時進行加密操作,在將外存中的數據讀到內存時進行解密操作,因為數據在內存中是明文的,所以DBMS的功能不會受到任何影響,并且可以按常規(guī)方式建立索引。
      文檔編號G06F21/24GK101162493SQ20071005982
      公開日2008年4月16日 申請日期2007年10月11日 優(yōu)先權日2007年10月11日
      發(fā)明者尹貽林, 王子博, 陳偉珂 申請人:天津理工大學
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1