加密粒度

加密粒度

資料庫加密粒度是指數據加密的最小單位,通常可以分為檔案級、表級、欄位級、記錄級和數據項級等五個層次。

基本介紹

  • 中文名:加密粒度
  • 外文名:encryption granularity
  • 定義:數據加密的最小單位
  • 分類:檔案級、表級、欄位級、記錄級等
  • 系統:資料庫
  • 套用學科:計算機原理
加密的要求,加密方式,資料庫加密粒度,檔案級加密,表級加密,記錄級加密,欄位級加密,數據項級加密,

加密的要求

一般來說,一個良好的資料庫加密系統應該滿足以下基本要求:
1.支持各種粒度加密
僅能加密檔案或某些基表是不夠的,為了更好地控制資料庫的安全,必須支持各種不同粒度的加密,至少要支持欄位粒度的加密。
2.良好的密鑰管理機制
資料庫有很多用戶,資料庫加密的粒度又有多種,因此密鑰量很大。極端情況下,每個加密數據項都需要一個密鑰,這與一般的密鑰管理機制有很大的不同。需要一個良好的密鑰管理機制,來組織和存儲大量密鑰。
3.合理處理數據
這包括幾方面的內容。首先要恰當地處理數據類型,否則DBMS將會因加密後的數據不符合定義的數據類型而拒絕載入;其次,需要處理數據的存儲問題,實現資料庫加密後,應該基本上不增加存儲空間開銷。
4.不影響合法用戶的操作
加密系統影響數據操作的回響時間應儘量短,在現階段,平均延遲時間不應超過0.1秒。此外,對資料庫的合法用戶來說,數據的錄入、修改和檢索操作應該是透明的,不需要考慮數據的加、解密問題。

加密方式

在3個不同層次實現對資料庫數據的加密,這3個層次分別是作業系統層、DBMS核心層和DBMS外層。
(1)作業系統層加密:在作業系統層無法辨認資料庫檔案中的數據關係,從而無法產生合理的密鑰,對密鑰合理的管理和使用也很難。所以,對大型資料庫來說,在作業系統層對資料庫檔案進行加密很難實現。
(2)DBMS核心層實現加密:這種加密是指數據加密在DBMS核心層實現。這種加密方式的優點是加密功能強,並且加密功能幾乎不會影響DBMS的功能,可以實現加密功能與資料庫管理系統之間的無縫耦合。其缺點是加密運算在伺服器端進行,加重了伺服器的負載,而且DBMS和加密器之間的接口需要DBMS開發商的支持。
加密粒度
(3)DBMS外層實現加密:比較實際的做法是將資料庫加密系統做成DBMS的一個外層工具,根據加密要求自動完成對資料庫數據的加/解密處理。採用這種加密方式,加/解密運算可在客戶端進行。它的優點是不會加重資料庫伺服器的負擔並且可以實現網上傳輸的加密,缺點是加密功能會受到一些限制,與資料庫管理系統之間的耦合性稍差。
加密粒度
資料庫加密系統分成兩個功能獨立的主要部件:一個是加密字典及其管理程式,另一個是資料庫加/解密引擎。資料庫加密系統將用戶對資料庫信息具體的加密要求以及參數信息保存在加密字典中,通過調用數據加/解密引擎實現對資料庫表的加密、解密及數據轉換等功能。資料庫信息的加/解密處理對資料庫伺服器是透明的。
加密粒度
按以上方式實現的資料庫加密系統具有很多優點:首先,系統對資料庫的最終用戶是完全透明的,管理員可以根據需要進行明文和密文的轉換工作;其次,加密系統完全獨立於資料庫套用系統,無需改動資料庫套用系統就能實現數據加密功能;第三,加/解密處理在客戶端進行,不會影響資料庫伺服器的效率。
資料庫加/解密引擎是資料庫加密系統的核心部件,它位於客戶程式與資料庫伺服器之間,負責在後台完成資料庫信息的加/解密處理,對套用開發人員和操作人員來說是透明的。數據加/解密引擎沒有操作界面,在需要時由作業系統自動載入並駐留在記憶體中。
資料庫加/解密引擎由3大模組組成:加/解密處理模組、用戶接口模組和資料庫接口模組。其中,用戶接口模組的主要工作是接受用戶的操作請求,並判斷是否需要加懈密處理;資料庫接口模組要去存取資料庫伺服器;加/解密處理模組完成資料庫加/解密引擎的初始化、內部專用命令的處理、加密字典信息的檢索、加密字典緩衝區的管理、SQL命令的加密變換、查詢結果的解密處理以及加解密算法實現等功能,另外還包括一些公用的輔助函式。

資料庫加密粒度

資料庫加密粒度是指數據加密的最小單位,通常可以分為檔案級、表級、欄位級、記錄級和數據項級等五個層次。

檔案級加密

檔案級加密把資料庫檔案作為一個整體,對整個資料庫檔案用加密算法和加密密鑰加密,形成密文的形式來確保數據的機密性。檔案級加密的優點是加密方法簡單,只需要對存儲在磁碟中的相應資料庫檔案進行加密處理即可。密鑰的數量少,便於管理。缺點是由於對整個資料庫檔案都進行了加密,所以即使只需要查詢檔案中的一條記錄,也必須對整個資料庫檔案進行解密。而資料庫又是一個隨機訪問量很大的系統,因此,系統性能將受到很大的影響,用戶訪問速度不可避免的大大降低。故檔案級加密一般用於輔存中備份的資料庫。

表級加密

表級加密的對象是資料庫中的表。數據表包含多個表,並不是所有的表都有提高的安全需要,因而只需要對其中一些包含敏感信息的表進行加密,以保護它們的安全性。與檔案級加密相比,採用表級加密粒度,系統的查詢性能會有所改善.因為對於未加密表的查詢,系統性能不會受到影響,對於加密表的查詢,只需要解密對應的加密表,而不要解密整個資料庫、在實行表級加密時,可以採用對存儲數據的磁碟塊(頁面)進行加密,但是,這種方法與DBMS集成時.需要對DBMS內部一些核心模組進行修改,包括對語法分析器、解釋器和查詢執行器的修改,而目前一些主流的商用DBMS都不開放原始碼,很難把這種方法與它們集成起來。

記錄級加密

記錄級加密的對象是數據表中的記錄。記錄中各欄位值連線一起進行加密處理,加密後輸出一列字元串、在實現記錄級加密時,一般通過調用資料庫系統專門的加密函式,對頁面中的記錄進行加密。與檔案級和表級加密相比,這種加密方式粒度更細,可選擇的靈活性更好。但是,基於記錄的資料庫保護有一個缺點,由於其操作的對象是記錄,解密時也是以記錄為單位進行的,這樣不能保證對某個記錄中不需要的欄位不解密,在選擇某個欄位的某些記錄時,如果不對含有這個欄位的所有記錄進行僻密就無法進行選擇、因此,這種方法相對來說也欠缺一定的靈活性,同時也需要對DBMS核心進行修改。

欄位級加密

欄位級加密又稱為域加密或屬性級加密,加密對象是關係中的某個欄位。在實際套用中,欄位級加密是一個較好的選擇。一些重要和敏感的信息往往出現在關係中的某些列,如信用卡號、身份證號、銀行卡號等,利用欄位級加密,可以實現只對這些重要數據進行加密保護,而無須對普通數據也進行加密,靈活性較好。在實現欄位級加密時,可以採取多種方式,既可以在DBMS外部完成,也可以在DBMS內部完成。

數據項級加密

數據項級加密也稱數據元素級加密,在資料庫的加密粒度中,數據項級加密粒度最小,安全性和靈活性在以上加密方式中也是最高的,實現方式與欄位級加密相似,只是各欄位數據項分別用不同的數據項密鑰完成,所需密鑰個數=記錄個數×欄位個數,數量非常驚人,因此密鑰管理將會非常複雜,系統的執行效率也會受到影響。

相關詞條

熱門詞條

聯絡我們