數(shù)據(jù)庫安全機制_第1頁
數(shù)據(jù)庫安全機制_第2頁
數(shù)據(jù)庫安全機制_第3頁
數(shù)據(jù)庫安全機制_第4頁
數(shù)據(jù)庫安全機制_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1.1 數(shù)據(jù)庫安全機制數(shù)據(jù)庫安全機制是用于實現(xiàn)數(shù)據(jù)庫的各種安全策略的功能集合,正是由這些安全機制來實現(xiàn)安全模型,進而實現(xiàn)保護數(shù)據(jù)庫系統(tǒng)安全的目標。數(shù)據(jù)庫系統(tǒng)的安全機制如圖所示:觸發(fā)器數(shù)據(jù)庫服務器(RDBMS)授權機制約束機制審計視圖操作系統(tǒng)用戶身份驗證存儲過程1.1.1 用戶標識與鑒別用戶標識是指用戶向系統(tǒng)出示自己的身份證明,最簡單的方法是輸入用戶ID和密碼。標識機制用于惟一標志進入系統(tǒng)的每個用戶的身份,因此必須保證標識的惟一性。鑒別是指系統(tǒng)檢查驗證用戶的身份證明,用于檢驗用戶身份的合法性。標識和鑒別功能保證了只有合法的用戶才能存取系統(tǒng)中的資源。由于數(shù)據(jù)庫用戶的安全等級是不同的,因此分配給他們

2、的權限也是不一樣的,數(shù)據(jù)庫系統(tǒng)必須建立嚴格的用戶認證機制。身份的標識和鑒別是DBMS對訪問者授權的前提,并且通過審計機制使DBMS保留追究用戶行為責任的能力。功能完善的標識與鑒別機制也是訪問控制機制有效實施的基礎,特別是在一個開放的多用戶系統(tǒng)的網(wǎng)絡環(huán)境中,識別與鑒別用戶是構筑DBMS安全防線的第1個重要環(huán)節(jié)。近年來一些實體認證的新技術在數(shù)據(jù)庫系統(tǒng)集成中得到應用。目前,常用的方法有通行字認證、數(shù)字證書認證、智能卡認證和個人特征識別等。通行字也稱為“口令”或“密碼”,它是一種根據(jù)已知事物驗證身份的方法,也是一種最廣泛研究和使用的身份驗證法。在數(shù)據(jù)庫系統(tǒng)中往往對通行字采取一些控制措施,常見的有最小長

3、度限制、次數(shù)限定、選擇字符、有效期、雙通行字和封鎖用戶系統(tǒng)等。一般還需考慮通行字的分配和管理,以及在計算機中的安全存儲。通行字多以加密形式存儲,攻擊者要得到通行字,必須知道加密算法和密鑰。算法可能是公開的,但密鑰應該是秘密的。也有的系統(tǒng)存儲通行字的單向Hash值,攻擊者即使得到密文也難以推出通行字的明文。數(shù)字證書是認證中心頒發(fā)并進行數(shù)字簽名的數(shù)字憑證,它實現(xiàn)實體身份的鑒別與認證、信息完整性驗證、機密性和不可否認性等安全服務。數(shù)字證書可用來證明實體所宣稱的身份與其持有的公鑰的匹配關系,使得實體的身份與證書中的公鑰相互綁定。智能卡(有源卡、IC卡或Smart卡)作為個人所有物,可以用來驗證個人身份

4、,典型智能卡主要由微處理器、存儲器、輸入輸出接口、安全邏輯及運算處理器等組成。在智能卡中引入了認證的概念,認證是智能卡和應用終端之間通過相應的認證過程來相互確認合法性。在卡和接口設備之間只有相互認證之后才能進行數(shù)據(jù)的讀寫操作,目的在于防止偽造應用終端及相應的智能卡。根據(jù)被授權用戶的個人特征來進行確證是一種可信度更高的驗證方法,目前已得到應用的個人生理特征包括指紋、語音聲紋(voice- print)、DNA、視網(wǎng)膜、虹膜、臉型和手型等。1.1.2 訪問控制1.1.2.1 概述訪問控制的目的是確保用戶對數(shù)據(jù)庫只能進行經(jīng)過授權的有關操作。在存取控制機制中,一般把被訪問的資源稱為“客體”,把以用戶名

5、義進行資源訪問的進程、事務等實體稱為“主體”。傳統(tǒng)的存取控制機制有兩種,即DAC(Discretionary Access Control,自主存取控制)和MAC(Mandatory Access Control,強制存取控制)。近年來,RBAC(Role-based Access Control,基于角色的存取控制)得到了廣泛的關注。1.1.2.2 數(shù)據(jù)訪問級別和類型DBMS中的安全系統(tǒng)必須具有伸縮性以便為各種數(shù)據(jù)級別授權。數(shù)據(jù)級別有以下幾種:整個數(shù)據(jù)庫、單個關系表(所有行和所有列)、關系表中特定列(所有行)、關系表中的特定行(所有列)以及關系表的特定行和特定列。數(shù)據(jù)的所有訪問模式和類型如下

6、:l 插入或建立。在文件中添加數(shù)據(jù),不銷毀任何數(shù)據(jù)。l 讀取。用戶可通過應用程序或數(shù)據(jù)庫查詢,將數(shù)據(jù)從數(shù)據(jù)庫復制到用戶環(huán)境。l 更新。編寫更新值。l 刪除。刪除和銷毀特定數(shù)據(jù)庫對象。l 移動。移動數(shù)據(jù)對象,但沒有讀取內容的權限。l 執(zhí)行。使用執(zhí)行需要的權限,運行程序或過程。l 確認存在性。確認數(shù)據(jù)庫是否存在特定數(shù)據(jù)庫對象。1.1.2.3 任意控制(DAC)采用該方法以若干種指派模式授予各個用戶訪問特定數(shù)據(jù)項的權限或權力。基于權限說明,用戶能以讀取、更新、插入或刪除模式隨意訪問數(shù)據(jù)項。建立數(shù)據(jù)庫對象的用戶自動得到此對象的所有訪問權限,包括將此對象的權限再授予他人。在授予或撤消訪問權限時,有兩種主

7、要級別:數(shù)據(jù)庫對象:數(shù)據(jù)項或數(shù)據(jù)元素,一般是基本表或視圖用戶:可以用一些授權標識符識別的單個用戶或用戶組授權通常都是在這兩種級別上進行。1. 授權DBMS提供了功能強大的授權機制,它可以給用戶授予各種不同對象(表、視圖、存儲過程等)的不同使用權限(如Select、update、insert、delete等)。在用戶級別,可以授予數(shù)據(jù)庫模式和數(shù)據(jù)操縱方面的以下幾種授權,包括:創(chuàng)建和刪除索引、創(chuàng)建新關系、添加或刪除關系中的屬性、刪除關系、查詢數(shù)據(jù)、插入新數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)等。在數(shù)據(jù)庫對象級別,可將上述訪問權限應用于數(shù)據(jù)庫、基本表、視圖和列等。2. 數(shù)據(jù)庫角色如果要給成千上萬個雇員分配許可,將

8、面臨很大的管理難題,每次有雇員到來或者離開時,就得有人分配或去除可能與數(shù)百張表或視圖有關的權限。這項任務很耗時間而且非常容易出錯。即使建立SQL過程來幫忙,也幾乎需要時時去維護。一個相對特別簡單有效的解決方案就是定義數(shù)據(jù)庫角色。數(shù)據(jù)庫角色是被命名的一組與數(shù)據(jù)庫操作相關的權限,角色是一組相關權限的集合。因此,可以為一組具有相同權限的用戶創(chuàng)建一個角色,使用角色來管理數(shù)據(jù)庫權限可以簡化授權的過程。先創(chuàng)建一個角色,并且把需要的許可分配給角色,而不是分配給個人用戶,然后再把角色分配給特定用戶。當有新的雇員到來時,把角色添加給用戶就提供了所有必要的權限。授權管理機制如圖4-3所示。DBA角色用戶用戶用戶用

9、戶授權授權1.1.2.4 強制控制(MAC)強制訪問控制模型基于與每個數(shù)據(jù)項和每個用戶關聯(lián)的安全性標識(Security Label)。安全性標識被分為若干級別:絕密 (Top Secret)、機密 (Secret)、秘密 (Confidential)、一般 (Public)。數(shù)據(jù)的標識稱為密級(Security Classification),用戶的標識稱為許可級別證(Security Clearance)。在計算機系統(tǒng)中,每個運行的程序繼承用戶的許可證級別,也可以說,用戶的許可證級別不僅僅應用于作為人的用戶,而且應用于該用戶運行的所有程序。當某一用戶以某一密級進入系統(tǒng)時,在確定該用戶能否訪

10、問系統(tǒng)上的數(shù)據(jù)時應遵守如下規(guī)則:l 當且僅當用戶許可證級別大于等于數(shù)據(jù)的密級時,該用戶才能對該數(shù)據(jù)進行讀操作。l 當且僅當用戶的許可證級別小于或等于數(shù)據(jù)的密級時,該用戶才能對該數(shù)據(jù)進行寫操作。第二條規(guī)則表明用戶可以為其寫入的數(shù)據(jù)對象賦予高于自己許可證級別的密級,這樣的數(shù)據(jù)被寫入后用戶自己就不能再讀該數(shù)據(jù)對象了。這兩種規(guī)則的共同點在于它們禁止了擁有高級許可證級別的主體更新低密級的數(shù)據(jù)對象,從而防止了敏感數(shù)據(jù)的泄露。1.1.2.5 基于角色的存取控制(RBAC)RBAC在主體和權限之間增加了一個中間橋梁角色。權限被授予角色,而管理員通過指定用戶為特定角色來為用戶授權。從而大大簡化了授權管理,具有強

11、大的可操作性和可管理性。角色可以根據(jù)組織中的不同工作創(chuàng)建,然后根據(jù)用戶的責任和資格分配角色,用戶可以輕松地進行角色轉換。而隨著新應用和新系統(tǒng)的增加,角色可以分配更多的權限,也可以根據(jù)需要撤銷相應的權限。RBAC核心模型包含了5個基本的靜態(tài)集合,即用戶集(users)、角色集(roles)、特權集 (perms)(包括對象集(objects)和操作集(operators),以及一個運行過程中動態(tài)維護的集合,即會話集(sessions),如圖1-1所示。用戶集包括系統(tǒng)中可以執(zhí)行操作的用戶,是主動的實體;對象集是系統(tǒng)中被動的實體,包含系統(tǒng)需要保護的信息;操作集是定義在對象上的一組操作,對象上的一組操

12、作構成了一個特權;角色則是RBAC模型的核心,通過用戶分配(UA)和特權分配(PA)使用戶與特權關聯(lián)起來。RBAC屬于策略中立型的存取控制模型,既可以實現(xiàn)自主存取控制策略,又可以實現(xiàn)強制存取控制策略。它可以有效緩解傳統(tǒng)安全管理處理瓶頸問題,被認為是一種普遍適用的訪問控制模型,尤其適用于大型組織的有效的訪問控制機制。1.1.2.6 視圖機制幾乎所有的DBMS都提供視圖機制。視圖不同于基本表,它們不存儲實際數(shù)據(jù),數(shù)據(jù)庫表存儲數(shù)據(jù),視圖好象數(shù)據(jù)庫表的窗口,是虛擬表。當用戶通過視圖訪問數(shù)據(jù)時,是從基本表獲得數(shù)據(jù),但只是由視圖中定義的列構成。視圖提供了一種靈活而簡單的方法,以個人化方式授予訪問權限,是強

13、大的安全工具。在授予用戶對特定視圖的訪問權限時,該權限只用于在該視圖中定義的數(shù)據(jù)項,而未用于完整基本表本身。因此,在使用視圖的時候不用擔心用戶會無意地刪除數(shù)據(jù)或者給真實表中添加有害的數(shù)據(jù),并且可以限制用戶只能使用指定部分的數(shù)據(jù),增加了數(shù)據(jù)的保密性和安全性。1.1.3 數(shù)據(jù)庫加密1.1.3.1 概述由于數(shù)據(jù)庫在操作系統(tǒng)中以文件形式管理,所以入侵者可以直接利用操作系統(tǒng)的漏洞竊取數(shù)據(jù)庫文件,或者篡改數(shù)據(jù)庫文件內容。另一方面,數(shù)據(jù)庫管理員(DBA)可以任意訪問所有數(shù)據(jù),往往超出了其職責范圍,同樣造成安全隱患。因此,數(shù)據(jù)庫的保密問題不僅包括在傳輸過程中采用加密保護和控制非法訪問,還包括對存儲的敏感數(shù)據(jù)進

14、行加密保護,使得即使數(shù)據(jù)不幸泄露或者丟失,也難以造成泄密。同時,數(shù)據(jù)庫加密可以由用戶用自己的密鑰加密自己的敏感信息,而不需要了解數(shù)據(jù)內容的數(shù)據(jù)庫管理員無法進行正常解密,從而可以實現(xiàn)個性化的用戶隱私保護。對數(shù)據(jù)庫加密必然會帶來數(shù)據(jù)存儲與索引、密鑰分配和管理等一系列問題,同時加密也會顯著地降低數(shù)據(jù)庫的訪問與運行效率。保密性與可用性之間不可避免地存在沖突,需要妥善解決二者之間的矛盾。數(shù)據(jù)庫中存儲密文數(shù)據(jù)后,如何進行高效查詢成為一個重要的問題。查詢語句一般不可以直接運用到密文數(shù)據(jù)庫的查詢過程中,一般的方法是首先解密加密數(shù)據(jù),然后查詢解密數(shù)據(jù)。但由于要對整個數(shù)據(jù)庫或數(shù)據(jù)表進行解密操作,因此開銷巨大。在實

15、際操作中需要通過有效的查詢策略來直接執(zhí)行密文查詢或較小粒度的快速解密。一般來說,一個好的數(shù)據(jù)庫加密系統(tǒng)應該滿足以下幾個方面的要求。 足夠的加密強度,保證長時間且大量數(shù)據(jù)不被破譯。 加密后的數(shù)據(jù)庫存儲量沒有明顯的增加。 加解密速度足夠快,影響數(shù)據(jù)操作響應時間盡量短。 加解密對數(shù)據(jù)庫的合法用戶操作(如數(shù)據(jù)的增、刪、改等)是透明的。 靈活的密鑰管理機制,加解密密鑰存儲安全,使用方便可靠。1.1.3.2 數(shù)據(jù)庫加密的實現(xiàn)機制數(shù)據(jù)庫加密的實現(xiàn)機制主要研究執(zhí)行加密部件在數(shù)據(jù)庫系統(tǒng)中所處的層次和位置,通過對比各種體系結構的運行效率、可擴展性和安全性,以求得最佳的系統(tǒng)結構。按照加密部件與數(shù)據(jù)庫系統(tǒng)的不同關系,

16、數(shù)據(jù)庫加密機制可以從大的方面分為庫內加密和庫外加密。(1)庫內加密庫內加密在DBMS內核層實現(xiàn)加密,加解密過程對用戶與應用透明,數(shù)據(jù)在物理存取之前完成加解密工作。這種方式的優(yōu)點是加密功能強,并且加密功能集成為DBMS的功能,可以實現(xiàn)加密功能與DBMS之間的無縫耦合。對于數(shù)據(jù)庫應用來說,庫內加密方式是完全透明的。庫內加密方式的主要缺點如下。 對系統(tǒng)性能影響比較大,BMS除了完成正常的功能外,還要進行加解密運算,從而加重了數(shù)據(jù)庫服務器的負載。 密鑰管理風險大,加密密鑰與庫數(shù)據(jù)保存在服務器中,其安全性依賴于DBMS的訪問控制機制。 加密功能依賴于數(shù)據(jù)庫廠商的支持,DBMS一般只提供有限的加密算法與強

17、度可供選擇,自主性受限。(2)庫外加密在庫外加密方式中,加解密過程發(fā)生在DBMS之外,DBMS管理的是密文。加解密過程大多在客戶端實現(xiàn),也有的由專門的加密服務器或硬件完成。與庫內加密方式相比,庫外加密的明顯優(yōu)點如下。 由于加解密過程在客戶端或專門的加密服務器實現(xiàn),所以減少了數(shù)據(jù)庫服務器與DBMS的運行負擔。 可以將加密密鑰與所加密的數(shù)據(jù)分開保存,提高了安全性。 由客戶端與服務器的配合,可以實現(xiàn)端到端的網(wǎng)上密文傳輸。庫外加密的主要缺點是加密后的數(shù)據(jù)庫功能受到一些限制,例如加密后的數(shù)據(jù)無法正常索引。同時數(shù)據(jù)加密后也會破壞原有的關系數(shù)據(jù)的完整性與一致性,這些都會給數(shù)據(jù)庫應用帶來影響。在目前新興的外包

18、數(shù)據(jù)庫服務模式中,數(shù)據(jù)庫服務器由非可信的第三方提供,僅用來運行標準的DBMS,要求加密解密都在客戶端完成。1.1.3.3 數(shù)據(jù)庫加密的粒度一般來說,數(shù)據(jù)庫加密的粒度可以有4種,即表、屬性、記錄和數(shù)據(jù)元素。不同加密粒度的特點不同,總的來說,加密粒度越小,則靈活性越好且安全性越高,但實現(xiàn)技術也更為復雜,對系統(tǒng)的運行效率影響也越大。(1)表加密表級加密的對象是整個表,這種加密方法類似于操作系統(tǒng)中文件加密的方法。即每個表與不同的表密鑰運算,形成密文后存儲。這種方式最為簡單,但因為對表中任何記錄或數(shù)據(jù)項的訪問都需要將其所在表的所有數(shù)據(jù)快速解密,因而執(zhí)行效率很低,浪費了大量的系統(tǒng)資源。在目前的實際應用中,

19、這種方法基本已被放棄。(2)屬性加密屬性加密又稱為“域加密”或“字段加密”,即以表中的列為單位進行加密。一般而言,屬性的個數(shù)少于記錄的條數(shù),需要的密鑰數(shù)相對較少。如果只有少數(shù)屬性需要加密,屬性加密是可選的方法。(3)記錄加密記錄加密是把表中的一條記錄作為加密的單位,當數(shù)據(jù)庫中需要加密的記錄數(shù)比較少時,采用這種方法是比較好的。(4)數(shù)據(jù)元素加密數(shù)據(jù)元素加密是以記錄中每個字段的值為單位進行加密,數(shù)據(jù)元素是數(shù)據(jù)庫中最小的加密粒度。采用這種加密粒度,系統(tǒng)的安全性與靈活性最高,同時實現(xiàn)技術也最為復雜。不同的數(shù)據(jù)項使用不同的密鑰,相同的明文形成不同的密文,抗攻擊能力得到提高。不利的方面是,該方法需要引入大

20、量的密鑰。一般要周密設計自動生成密鑰的算法,密鑰管理的復雜度大大增加,同時系統(tǒng)效率也受到影響。在目前條件下,為了得到較高的安全性和靈活性,采用最多的加密粒度是數(shù)據(jù)元素。為了使數(shù)據(jù)庫中的數(shù)據(jù)能夠充分而靈活地共享,加密后還應當允許用戶以不同的粒度進行訪問。1.1.3.4 加密算法加密算法是數(shù)據(jù)加密的核心,一個好的加密算法產(chǎn)生的密文應該頻率平衡,隨機無重碼,周期很長而又不可能產(chǎn)生重復現(xiàn)象。竊密者很難通過對密文頻率,或者重碼等特征的分析獲得成功。同時,算法必須適應數(shù)據(jù)庫系統(tǒng)的特性,加解密,尤其是解密響應迅速。常用的加密算法包括對稱密鑰算法和非對稱密鑰算法。對稱密鑰算法的特點是解密密鑰和加密密鑰相同,或

21、解密密鑰由加密密鑰推出。這種算法一般又可分為兩類,即序列算法和分組算法。序列算法一次只對明文中的單個位或字節(jié)運算;分組算法是對明文分組后以組為單位進行運算,常用有DES等。非對稱密鑰算法也稱為“公開密鑰算法”,其特點是解密密鑰不同于加密密鑰,并且從解密密鑰推出加密密鑰在計算上是不可行的。其中加密密鑰公開,解密密鑰則是由用戶秘密保管的私有密鑰。常用的公開密鑰算法有RSA等。目前還沒有公認的專門針對數(shù)據(jù)庫加密的加密算法,因此一般根據(jù)數(shù)據(jù)庫特點選擇現(xiàn)有的加密算法來進行數(shù)據(jù)庫加密。一方面,對稱密鑰算法的運算速度比非對稱密鑰算法快很多,二者相差大約23個數(shù)量級;另一方面,在公開密鑰算法中,每個用戶有自己

22、的密鑰對。而作為數(shù)據(jù)庫加密的密鑰如果因人而異,將產(chǎn)生異常龐大的數(shù)據(jù)存儲量。因此,在數(shù)據(jù)庫加密中一般采取對稱密鑰的分組加密算法。1.1.3.5 密鑰管理對數(shù)據(jù)庫進行加密,一般對不同的加密單元采用不同的密鑰。以加密粒度為數(shù)據(jù)元素為例,如果不同的數(shù)據(jù)元素采用同一個密鑰,由于同一屬性中數(shù)據(jù)項的取值在一定范圍之內,且往往呈現(xiàn)一定的概率分布,因此攻擊者可以不用求原文,而直接通過統(tǒng)計方法即可得到有關的原文信息,這就是所謂的統(tǒng)計攻擊。大量的密鑰自然會帶來密鑰管理的問題。根據(jù)加密粒度的不同,系統(tǒng)所產(chǎn)生的密鑰數(shù)量也不同。越是細小的加密粒度,所產(chǎn)生的密鑰數(shù)量越多,密鑰管理也就越復雜。良好的密鑰管理機制既可以保證數(shù)據(jù)

23、庫信息的安全性,又可以進行快速的密鑰交換,以便進行數(shù)據(jù)解密。對數(shù)據(jù)庫密鑰的管理一般有集中密鑰管理和多級密鑰管理兩種體制,集中密鑰管理方法是設立密鑰管理中心。在建立數(shù)據(jù)庫時,密鑰管理中心負責產(chǎn)生密鑰并對數(shù)據(jù)加密,形成一張密鑰表。當用戶訪問數(shù)據(jù)庫時,密鑰管理機構核對用戶識別符和用戶密鑰。通過審核后,由密鑰管理機構找到或計算出相應的數(shù)據(jù)密鑰。這種密鑰管理方式方便用戶使用和管理,但由于這些密鑰一般由數(shù)據(jù)庫管理人員控制,因而權限過于集中。目前研究和應用比較多的是多級密鑰管理體制,以加密粒度為數(shù)據(jù)元素的三級密鑰管理體制為例,整個系統(tǒng)的密鑰由一個主密鑰、每個表上的表密鑰,以及各個數(shù)據(jù)元素密鑰組成。表密鑰被主

24、密鑰加密后以密文形式保存在數(shù)據(jù)字典中,數(shù)據(jù)元素密鑰由主密鑰及數(shù)據(jù)元素所在行、列通過某種函數(shù)自動生成,一般不需要保存。在多級密鑰體制中,主密鑰是加密子系統(tǒng)的關鍵,系統(tǒng)的安全性在很大程度上依賴于主密鑰的安全性。1.1.3.6 數(shù)據(jù)庫加密的局限性數(shù)據(jù)庫加密技術在保證安全性的同時,也給數(shù)據(jù)庫系統(tǒng)的可用性帶來一些影響。(1)系統(tǒng)運行效率受到影響數(shù)據(jù)庫加密技術帶來的主要問題之一是影響效率。為了減少這種影響,一般對加密的范圍做一些約束,如不加密索引字段和關系運算的比較字段等。(2)難以實現(xiàn)對數(shù)據(jù)完整性約束的定義數(shù)據(jù)庫一般都定義了關系數(shù)據(jù)之間的完整性約束,如主外鍵約束及值域的定義等。數(shù)據(jù)一旦加密,DBMS將難

25、以實現(xiàn)這些約束。(3)對數(shù)據(jù)的SQL語言及SQL函數(shù)受到制約SQL語言中的Group by、Order by及Having子句分別完成分組和排序等操作,如果這些子句的操作對象是加密數(shù)據(jù),那么解密后的明文數(shù)據(jù)將失去原語句的分組和排序作用。另外,DBMS擴展的SQL內部函數(shù)一般也不能直接作用于密文數(shù)據(jù)。(4)密文數(shù)據(jù)容易成為攻擊目標加密技術把有意義的明文轉換為看上去沒有實際意義的密文信息,但密文的隨機性同時也暴露了消息的重要性,容易引起攻擊者的注意和破壞,從而造成了一種新的不安全性。加密技術往往需要和其他非加密安全機制相結合,以提高數(shù)據(jù)庫系統(tǒng)的整體安全性。數(shù)據(jù)庫加密作為一種對敏感數(shù)據(jù)進行安全保護的

26、有效手段,將得到越來越多的重視??傮w來說,目前數(shù)據(jù)庫加密技術還面臨許多挑戰(zhàn),其中解決保密性與可用性之間的矛盾是關鍵。1.1.4 審計“審計”功能是DBMS達到C2以上安全級別必不可少的一項指標。因為任何系統(tǒng)的安全措施都是不完美的,蓄意盜竊、破壞數(shù)據(jù)的人總是想方設法打破控制。審計通常用于下列情況:l 審查可疑的活動。例如:當出現(xiàn)數(shù)據(jù)被非授權用戶所刪除、用戶越權操作或權限管理不正確時,安全管理員可以設置對該數(shù)據(jù)庫的所有連接進行審計,和對數(shù)據(jù)庫中所有表的操作進行審計。l 監(jiān)視和收集關于指定數(shù)據(jù)庫活動的數(shù)據(jù)。例如:DBA可收集哪些表經(jīng)常被修改、用戶執(zhí)行了多少次邏輯I/O操作等統(tǒng)計數(shù)據(jù),為數(shù)據(jù)庫優(yōu)化與性

27、能調整提供依據(jù)。對DBA而言,審計就是記錄數(shù)據(jù)庫中正在做什么的過程。審計記錄可以告訴你正在使用哪些系統(tǒng)權限,使用頻率是多少,多少用戶正在登錄,會話平均持續(xù)多長時間,正在特殊表上使用哪些命令,以及許多其他有關事實。審計能幫助DBA完成的操作類型包括:l 為管理程序準備數(shù)據(jù)庫使用報表(每天/周連接多少用戶,每月發(fā)出多少查詢,上周添加或刪除了多少雇員記錄)。l 如果懷疑有黑客活動,記錄企圖闖入數(shù)據(jù)庫的失敗嘗試。l 確定最繁忙的表,它可能需要額外的調整。l 調查對關鍵表的可疑更改。l 從用戶負載方面的預期增長,規(guī)劃資源消耗。審計功能把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志(Audit Log)

28、中。審計日志一般包括下列內容:l 操作類型(如修改、查詢等)。l 操作終端標識與操作人員標識。l 操作日期和時間。l 操作的數(shù)據(jù)對象(如表、視圖、記錄、屬性等)。l 數(shù)據(jù)修改前后的值。DBA可以利用審計跟蹤的功能,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)狀的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內容等。審計通常比較費時間和空間,所以DBMS往往都將其作為可選特征,允許DBA根據(jù)應用對安全性的要求,靈活地打開或關閉審計功能。審計功能一般主要用于安全性要求較高的部門。審計一般可以分為用戶級審計和系統(tǒng)級審計。用戶級審計是任何用戶可設置的審計,主要是針對自己創(chuàng)建的數(shù)據(jù)庫或視圖進行審計,記錄所有用戶對這些表或視圖的一切成功和

29、(或)不成功的訪問要求以及各種類型的SQL操作。系統(tǒng)級審計只能由DBA設置,用以監(jiān)測成功或失敗的登錄要求、監(jiān)測Grant和Revoke操作以及其他數(shù)據(jù)庫級權限下的操作。1.1.5 備份與恢復一個數(shù)據(jù)庫系統(tǒng)總是避免不了故障的發(fā)生。安全的數(shù)據(jù)庫系統(tǒng)必須能在系統(tǒng)發(fā)生故障后利用已有的數(shù)據(jù)備份,恢復數(shù)據(jù)庫到原來的狀態(tài),并保持數(shù)據(jù)的完整性和一致性。數(shù)據(jù)庫系統(tǒng)所采用的備份與恢復技術,對系統(tǒng)的安全性與可靠性起著重要作用,也對系統(tǒng)的運行效率有著重大影響。1.1.5.1 數(shù)據(jù)庫備份常用的數(shù)據(jù)庫備份的方法有如下3種。(1)冷備份冷備份是在沒有終端用戶訪問數(shù)據(jù)庫的情況下關閉數(shù)據(jù)庫并將其備份,又稱為“脫機備份”。這種方

30、法在保持數(shù)據(jù)完整性方面顯然最有保障,但是對于那些必須保持每天24小時、每周7天全天候運行的數(shù)據(jù)庫服務器來說,較長時間地關閉數(shù)據(jù)庫進行備份是不現(xiàn)實的。(2)熱備份熱備份是指當數(shù)據(jù)庫正在運行時進行的備份,又稱為“聯(lián)機備份”。因為數(shù)據(jù)備份需要一段時間,而且備份大容量的數(shù)據(jù)庫還需要較長的時間,那么在此期間發(fā)生的數(shù)據(jù)更新就有可能使備份的數(shù)據(jù)不能保持完整性,這個問題的解決依賴于數(shù)據(jù)庫日志文件。在備份時,日志文件將需要進行數(shù)據(jù)更新的指令“堆起來”,并不進行真正的物理更新,因此數(shù)據(jù)庫能被完整地備份。備份結束后,系統(tǒng)再按照被日志文件“堆起來”的指令對數(shù)據(jù)庫進行真正的物理更新??梢姡粋浞莸臄?shù)據(jù)保持了備份開始時刻

31、前的數(shù)據(jù)一致性狀態(tài)。熱備份操作存在如下不利因素。 如果系統(tǒng)在進行備份時崩潰,則堆在日志文件中的所有事務都會被丟失,即造成數(shù)據(jù)的丟失。 在進行熱備份的過程中,如果日志文件占用系統(tǒng)資源過大,如將系統(tǒng)存儲空間占用完,會造成系統(tǒng)不能接受業(yè)務請求的局面,對系統(tǒng)運行產(chǎn)生影響。 熱備份本身要占用相當一部分系統(tǒng)資源,使系統(tǒng)運行效率下降。(3)邏輯備份邏輯備份是指使用軟件技術從數(shù)據(jù)庫中導出數(shù)據(jù)并寫入一個輸出文件,該文件的格式一般與原數(shù)據(jù)庫的文件格式不同,而是原數(shù)據(jù)庫中數(shù)據(jù)內容的一個映像。因此邏輯備份文件只能用來對數(shù)據(jù)庫進行邏輯恢復,即數(shù)據(jù)導入,而不能按數(shù)據(jù)庫原來的存儲特征進行物理恢復。邏輯備份一般用于增量備份,

32、即備份那些在上次備份以后改變的數(shù)據(jù)。1.1.5.2 數(shù)據(jù)庫恢復在系統(tǒng)發(fā)生故障后,把數(shù)據(jù)庫恢復到原來的某種一致性狀態(tài)的技術稱為“恢復”,其基本原理是利用“冗余”進行數(shù)據(jù)庫恢復。問題的關鍵是如何建立“冗余”并利用“冗余”實施數(shù)據(jù)庫恢復,即恢復策略。數(shù)據(jù)庫恢復技術一般有3種策略,即基于備份的恢復、基于運行時日志的恢復和基于鏡像數(shù)據(jù)庫的恢復。(1)基于備份的恢復基于備份的恢復是指周期性地備份數(shù)據(jù)庫。當數(shù)據(jù)庫失效時,可取最近一次的數(shù)據(jù)庫備份來恢復數(shù)據(jù)庫,即把備份的數(shù)據(jù)拷貝到原數(shù)據(jù)庫所在的位置上。用這種方法,數(shù)據(jù)庫只能恢復到最近一次備份的狀態(tài),而從最近備份到故障發(fā)生期間的所有數(shù)據(jù)庫更新將會丟失。備份的周期

33、越長,丟失的更新數(shù)據(jù)越多。(2)基于運行時日志的恢復運行時日志文件是用來記錄對數(shù)據(jù)庫每一次更新的文件。對日志的操作優(yōu)先于對數(shù)據(jù)庫的操作,以確保記錄數(shù)據(jù)庫的更改。當系統(tǒng)突然失效而導致事務中斷時,可重新裝入數(shù)據(jù)庫的副本,把數(shù)據(jù)庫恢復到上一次備份時的狀態(tài)。然后系統(tǒng)自動正向掃描日志文件,將故障發(fā)生前所有提交的事務放到重做隊列,將未提交的事務放到撤銷隊列執(zhí)行,這樣就可把數(shù)據(jù)庫恢復到故障前某一時刻的數(shù)據(jù)一致性狀態(tài)。(3)基于鏡像數(shù)據(jù)庫的恢復數(shù)據(jù)庫鏡像就是在另一個磁盤上復制數(shù)據(jù)庫作為實時副本。當主數(shù)據(jù)庫更新時,DBMS自動把更新后的數(shù)據(jù)復制到鏡像數(shù)據(jù),始終使鏡像數(shù)據(jù)和主數(shù)據(jù)保持一致性。當主庫出現(xiàn)故障時,可由

34、鏡像磁盤繼續(xù)提供使用,同時DBMS自動利用鏡像磁盤數(shù)據(jù)進行數(shù)據(jù)庫恢復。鏡像策略可以使數(shù)據(jù)庫的可靠性大為提高,但由于數(shù)據(jù)鏡像通過復制數(shù)據(jù)實現(xiàn),頻繁的復制會降低系統(tǒng)運行效率,因此一般在對效率要求滿足的情況下可以使用。為兼顧可靠性和可用性,可有選擇性地鏡像關鍵數(shù)據(jù)。數(shù)據(jù)庫的備份和恢復是一個完善的數(shù)據(jù)庫系統(tǒng)必不可少的一部分,目前這種技術已經(jīng)廣泛應用于數(shù)據(jù)庫產(chǎn)品中,如Oracle數(shù)據(jù)庫提供對聯(lián)機備份、脫機備份、邏輯備份、完全數(shù)據(jù)恢復及不完全數(shù)據(jù)恢復的全面支持。據(jù)預測,以“數(shù)據(jù)”為核心的計算(Data Centric Computing)將逐漸取代以“應用”為核心的計算。在一些大型的分布式數(shù)據(jù)庫應用中,多

35、備份恢復和基于數(shù)據(jù)中心的異地容災備份恢復等技術正在得到越來越多的應用。1.1.6 聚合、推理與多實例數(shù)據(jù)庫安全中,用戶根據(jù)低密級的數(shù)據(jù)和模式的完整性約束推導出高密級的數(shù)據(jù),造成未經(jīng)授權的信息泄露,其主要有兩種方式:推理和聚合。1.1.6.1 聚合(Aggregation)聚合是指這種情形:如果用戶沒有訪問特定信息的權限,但是他有訪問這些信息的組成部分的權限。這樣,她就可以將每個組成部分組合起來,得到受限訪問的信息。用戶可以通過不同的途徑得到信息,通過綜合就可以得到本沒有明確訪問權限的信息。注意:聚合(Aggregation)指的是組合不同來源的信息的行為。用戶沒有明確的權限可以訪問組合起來得到

36、的信息,而組合得到的信息比信息的各個組成部分擁有更高的機密性。下面是一個簡單的概念化例子。假設數(shù)據(jù)庫管理員不想讓Users組的用戶訪問一個特定的句子“The chicken wore funny red culottes.”,他將這個句子分成六個部分,限制用戶訪問。如圖:Emily可以訪問A、C、F三個部分,由于她是個特別聰明的人,她可以根據(jù)這三個部分結合起來得出這個句子的部分。為了防止聚合,需要防止主體和任何主體的應用程序和進程獲得整個數(shù)據(jù)集合的權限,包括數(shù)據(jù)集合的各個獨立組成部分。客體可以進行分類并賦予較高的級別,存儲在容器中,防止低級別權限的主體訪問。對主體的查詢,可以進行跟蹤,并實施基

37、于上下文的分類。這將記錄主體對客體的訪問歷史,并在聚合攻擊發(fā)生時限制訪問企圖。1.1.6.2 推理(Inference)推理(Inference)和聚合很相似。推理指的是主體通過他可以訪問的信息推理出受限訪問的信息。當可以由安全級別較低的數(shù)據(jù)描述出較高級別的數(shù)據(jù)時,就會發(fā)生推理攻擊。注意:推理是得到不是顯性可用的信息的能力。例如,如果一個職員不應該知道軍隊在沙特阿拉伯的行動計劃,但是他可以訪問到食品需求表格和帳篷位置的文檔,那么他就可以根據(jù)食品和帳篷運送的目的地推算出軍隊正在向Dubia地區(qū)移動。在文檔安全性分類中,食品需求和帳篷位置文檔是機密文檔(Confidential),而軍隊行動計劃是絕密文檔(Top of Secret)。由于不同的分類,這個職員可以根據(jù)他知道的信息推理出他不應該知道的秘密。常見的推理通道有以下4種。 執(zhí)行多次查詢,利用查詢結果之間的邏輯聯(lián)系進行推理。用戶一般先向數(shù)據(jù)庫發(fā)出多個查詢請求,這些查詢大多包含一些聚集類型的函數(shù)(如合計和平均值等)。然后利用返回的查詢結果,在綜合分析的基礎上推斷出高級數(shù)據(jù)信息。 利用不同級別數(shù)據(jù)之間的函數(shù)依賴進行推理分析,數(shù)據(jù)表的屬性之間常見的一種關系是“函數(shù)依賴”和“多值依賴”。這些依賴關系有可能產(chǎn)生推理通道,如同一病房的病人患的是同一種病,以及由

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論