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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、數(shù)據(jù)庫安全機制數(shù)據(jù)庫安全機制是用于實現(xiàn)數(shù)據(jù)庫的各種安全策略的功能集合,正是由這些安全機制來實現(xiàn)安全模型, 進而實現(xiàn)保護數(shù)據(jù)庫系統(tǒng)安全的目標。數(shù)據(jù)庫系統(tǒng)的安全機制如圖所示:用戶標識與鑒別用戶標識是指用戶向系統(tǒng)出示自己的身份證明,最簡單的方法是輸入用戶ID和密碼。標識機制用于惟一標志進入系統(tǒng)的每個用戶的身份,因此必須保證標識的惟一性。鑒別是指系統(tǒng)檢查驗證用戶的身份證明, 用于檢驗用戶身份的合法性。標識和鑒別功能保證了只有合法的用戶才能存取系統(tǒng)中的資源。由于數(shù)據(jù)庫用戶的安全等級是不同的,因此分配給他們的權(quán)限也是不一樣的,數(shù)據(jù)庫系統(tǒng)必須建立嚴 格的用戶認證機制。身份的標識和鑒別是DBMS對訪問者授權(quán)的

2、前提,并且通過審計機制使DBMS保留追究用戶行為責任的能力。功能完善的標識與鑒別機制也是訪問控制機制有效實施的基礎(chǔ),特別是在一個開 放的多用戶系統(tǒng)的網(wǎng)絡(luò)環(huán)境中,識別與鑒別用戶是構(gòu)筑DBMS安全防線的第1個重要環(huán)節(jié)。近年來一些實體認證的新技術(shù)在數(shù)據(jù)庫系統(tǒng)集成中得到應(yīng)用。目前,常用的方法有通行字認證、數(shù)字 證書認證、智能卡認證和個人特征識別等。通行字也稱為 口令”或密碼”它是一種根據(jù)已知事物驗證身份的方法,也是一種最廣泛研究和使用的 身份驗證法。在數(shù)據(jù)庫系統(tǒng)中往往對通行字采取一些控制措施,常見的有最小長度限制、次數(shù)限定、選擇 字符、有效期、雙通行字和封鎖用戶系統(tǒng)等。一般還需考慮通行字的分配和管理,

3、以及在計算機中的安全 存儲。通行字多以加密形式存儲,攻擊者要得到通行字,必須知道加密算法和密鑰。算法可能是公開的, 但密鑰應(yīng)該是秘密的。也有的系統(tǒng)存儲通行字的單向Hash值,攻擊者即使得到密文也難以推出通行字的明文。數(shù)字證書是認證中心頒發(fā)并進行數(shù)字簽名的數(shù)字憑證,它實現(xiàn)實體身份的鑒別與認證、信息完整性驗 證、機密性和不可否認性等安全服務(wù)。數(shù)字證書可用來證明實體所宣稱的身份與其持有的公鑰的匹配關(guān)系, 使得實體的身份與證書中的公鑰相互綁定。智能卡(有源卡、IC卡或Smart卡)作為個人所有物,可以用來驗證個人身份,典型智能卡主要由微 處理器、存儲器、輸入輸出接口、安全邏輯及運算處理器等組成。在智能

4、卡中引入了認證的概念,認證是 智能卡和應(yīng)用終端之間通過相應(yīng)的認證過程來相互確認合法性。在卡和接口設(shè)備之間只有相互認證之后才 能進行數(shù)據(jù)的讀寫操作,目的在于防止偽造應(yīng)用終端及相應(yīng)的智能卡。根據(jù)被授權(quán)用戶的個人特征來進行確證是一種可信度更高的驗證方法,目前已得到應(yīng)用的個人生理特 征包括指紋、語音聲紋(voice- print )、DNA、視網(wǎng)膜、虹膜、臉型和手型等。訪問控制1.1.2.1 概述訪問控制的目的是確保用戶對數(shù)據(jù)庫只能進行經(jīng)過授權(quán)的有關(guān)操作。在存取控制機制中,一般把被訪 問的資源稱為 “客體”,把以用戶名義進行資源訪問的進程、事務(wù)等實體稱為 “主體 ”。 傳統(tǒng)的存取控制機制有兩種, 即

5、DAC( Discretionary Access Control ,自主存取控制) 和 MAC( Mandatory Access Control,強制存取控制)。近年來,RBAC (Role-based Access Control,基于角色的存取控制)得到了廣泛的關(guān)注。1.1.2.2 數(shù)據(jù)訪問級別和類型DBMS中的安全系統(tǒng)必須具有伸縮性以便為各種數(shù)據(jù)級別授權(quán)。數(shù)據(jù)級別有以下幾種:整個數(shù)據(jù)庫、單個關(guān)系表(所有行和所有列)、關(guān)系表中特定列(所有行)、關(guān)系表中的特定行(所有列)以及關(guān)系表的 特定行和特定列。數(shù)據(jù)的所有訪問模式和類型如下: 插入或建立。在文件中添加數(shù)據(jù),不銷毀任何數(shù)據(jù)。 讀取。用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26、加 密安全機制相結(jié)合,以提高數(shù)據(jù)庫系統(tǒng)的整體安全性。數(shù)據(jù)庫加密作為一種對敏感數(shù)據(jù)進行安全保護的有效手段,將得到越來越多的重視??傮w來說,目前 數(shù)據(jù)庫加密技術(shù)還面臨許多挑戰(zhàn),其中解決保密性與可用性之間的矛盾是關(guān)鍵。審計“審計”功能是 DBMS達到C2以上安全級別必不可少的一項指標。因為任何系統(tǒng)的安全措施都是不完 美的,蓄意盜竊、破壞數(shù)據(jù)的人總是想方設(shè)法打破控制。審計通常用于下列情況: 審查可疑的活動。例如:當出現(xiàn)數(shù)據(jù)被非授權(quán)用戶所刪除、用戶越權(quán)操作或權(quán)限管理不正確時, 安全管理員可以設(shè)置對該數(shù)據(jù)庫的所有連接進行審計,和對數(shù)據(jù)庫中所有表的操作進行審計。 監(jiān)視和收集關(guān)于指定數(shù)據(jù)庫活動的數(shù)據(jù)。例如:

27、DBA 可收集哪些表經(jīng)常被修改、用戶執(zhí)行了多少 次邏輯 I/O 操作等統(tǒng)計數(shù)據(jù),為數(shù)據(jù)庫優(yōu)化與性能調(diào)整提供依據(jù)。對DBA而言,審計就是記錄數(shù)據(jù)庫中正在做什么的過程。審計記錄可以告訴你正在使用哪些系統(tǒng)權(quán)限,使用頻率是多少,多少用戶正在登錄,會話平均持續(xù)多長時間,正在特殊表上使用哪些命令,以及許多其 他有關(guān)事實。審計能幫助 DBA完成的操作類型包括:為管理程序準備數(shù)據(jù)庫使用報表 (每天 /周連接多少用戶, 每月發(fā)出多少查詢, 上周添加或刪除了多 少雇員記錄 )。如果懷疑有黑客活動,記錄企圖闖入數(shù)據(jù)庫的失敗嘗試。 確定最繁忙的表,它可能需要額外的調(diào)整。調(diào)查對關(guān)鍵表的可疑更改。 從用戶負載方面的預(yù)期增

28、長,規(guī)劃資源消耗。審計功能把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志(Audit Log)中。審計日志一般包括下列內(nèi)容:操作類型(如修改、查詢等)。 操作終端標識與操作人員標識。操作日期和時間。 操作的數(shù)據(jù)對象(如表、視圖、記錄、屬性等)。數(shù)據(jù)修改前后的值。DBA 可以利用審計跟蹤的功能,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)狀的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等。審計通常比較費時間和空間,所以DBMS往往都將其作為可選特征,允許DBA根據(jù)應(yīng)用對安全性的要求,靈活地打開或關(guān)閉審計功能。審計功能一般主要用于安全性要求較高的部門。審計一般可以分為用戶級審計和系統(tǒng)級審計。用戶級審計是任何用戶可設(shè)置的審計

29、,主要是針對自己創(chuàng)建 的數(shù)據(jù)庫或視圖進行審計,記錄所有用戶對這些表或視圖的一切成功和(或)不成功的訪問要求以及各種 類型的SQL操作。系統(tǒng)級審計只能由 DBA設(shè)置,用以監(jiān)測成功或失敗的登錄要求、監(jiān)測Grant和Revoke操作以及其他數(shù)據(jù)庫級權(quán)限下的操作。備份與恢復(fù) 一個數(shù)據(jù)庫系統(tǒng)總是避免不了故障的發(fā)生。安全的數(shù)據(jù)庫系統(tǒng)必須能在系統(tǒng)發(fā)生故障后利用已有的數(shù) 據(jù)備份,恢復(fù)數(shù)據(jù)庫到原來的狀態(tài),并保持數(shù)據(jù)的完整性和一致性。數(shù)據(jù)庫系統(tǒng)所采用的備份與恢復(fù)技術(shù), 對系統(tǒng)的安全性與可靠性起著重要作用,也對系統(tǒng)的運行效率有著重大影響。數(shù)據(jù)庫備份常用的數(shù)據(jù)庫備份的方法有如下 3 種。( 1 )冷備份 冷備份是在沒

30、有終端用戶訪問數(shù)據(jù)庫的情況下關(guān)閉數(shù)據(jù)庫并將其備份,又稱為 “脫機備份 ”。這種方法在保持數(shù)據(jù)完整性方面顯然最有保障,但是對于那些必須保持每天24小時、每周 7 天全天候運行的數(shù)據(jù)庫服務(wù)器來說,較長時間地關(guān)閉數(shù)據(jù)庫進行備份是不現(xiàn)實的。( 2 )熱備份 熱備份是指當數(shù)據(jù)庫正在運行時進行的備份, 又稱為 “聯(lián)機備份 ”。因為數(shù)據(jù)備份需要一段時間, 而且備 份大容量的數(shù)據(jù)庫還需要較長的時間,那么在此期間發(fā)生的數(shù)據(jù)更新就有可能使備份的數(shù)據(jù)不能保持完整 性,這個問題的解決依賴于數(shù)據(jù)庫日志文件。在備份時,日志文件將需要進行數(shù)據(jù)更新的指令“堆起來”,并不進行真正的物理更新, 因此數(shù)據(jù)庫能被完整地備份。 備份結(jié)

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

32、邏輯備份文件只能用來對數(shù)據(jù)庫進行邏輯恢 復(fù),即數(shù)據(jù)導(dǎo)入,而不能按數(shù)據(jù)庫原來的存儲特征進行物理恢復(fù)。邏輯備份一般用于增量備份,即備份那 些在上次備份以后改變的數(shù)據(jù)。1.1.5.2 數(shù)據(jù)庫恢復(fù)在系統(tǒng)發(fā)生故障后,把數(shù)據(jù)庫恢復(fù)到原來的某種一致性狀態(tài)的技術(shù)稱為 “恢復(fù) ”,其基本原理是利用 “冗 余”進行數(shù)據(jù)庫恢復(fù)。問題的關(guān)鍵是如何建立 “冗余”并利用 “冗余”實施數(shù)據(jù)庫恢復(fù),即恢復(fù)策略。數(shù)據(jù)庫恢復(fù)技術(shù)一般有 3 種策略,即基于備份的恢復(fù)、基于運行時日志的恢復(fù)和基于鏡像數(shù)據(jù)庫的恢 復(fù)。(1)基于備份的恢復(fù) 基于備份的恢復(fù)是指周期性地備份數(shù)據(jù)庫。當數(shù)據(jù)庫失效時,可取最近一次的數(shù)據(jù)庫備份來恢復(fù)數(shù)據(jù) 庫,即把

33、備份的數(shù)據(jù)拷貝到原數(shù)據(jù)庫所在的位置上。用這種方法,數(shù)據(jù)庫只能恢復(fù)到最近一次備份的狀態(tài), 而從最近備份到故障發(fā)生期間的所有數(shù)據(jù)庫更新將會丟失。備份的周期越長,丟失的更新數(shù)據(jù)越多。(2)基于運行時日志的恢復(fù) 運行時日志文件是用來記錄對數(shù)據(jù)庫每一次更新的文件。對日志的操作優(yōu)先于對數(shù)據(jù)庫的操作,以確 保記錄數(shù)據(jù)庫的更改。當系統(tǒng)突然失效而導(dǎo)致事務(wù)中斷時,可重新裝入數(shù)據(jù)庫的副本,把數(shù)據(jù)庫恢復(fù)到上 一次備份時的狀態(tài)。然后系統(tǒng)自動正向掃描日志文件,將故障發(fā)生前所有提交的事務(wù)放到重做隊列,將未 提交的事務(wù)放到撤銷隊列執(zhí)行,這樣就可把數(shù)據(jù)庫恢復(fù)到故障前某一時刻的數(shù)據(jù)一致性狀態(tài)。(3) 基于鏡像數(shù)據(jù)庫的恢復(fù) 數(shù)據(jù)庫

34、鏡像就是在另一個磁盤上復(fù)制數(shù)據(jù)庫作為實時副本。 當主數(shù)據(jù)庫更新時, DBMS 自動把更新后的 數(shù)據(jù)復(fù)制到鏡像數(shù)據(jù),始終使鏡像數(shù)據(jù)和主數(shù)據(jù)保持一致性。當主庫出現(xiàn)故障時,可由鏡像磁盤繼續(xù)提供 使用,同時 DBMS 自動利用鏡像磁盤數(shù)據(jù)進行數(shù)據(jù)庫恢復(fù)。鏡像策略可以使數(shù)據(jù)庫的可靠性大為提高,但 由于數(shù)據(jù)鏡像通過復(fù)制數(shù)據(jù)實現(xiàn),頻繁的復(fù)制會降低系統(tǒng)運行效率,因此一般在對效率要求滿足的情況下 可以使用。為兼顧可靠性和可用性,可有選擇性地鏡像關(guān)鍵數(shù)據(jù)。數(shù)據(jù)庫的備份和恢復(fù)是一個完善的數(shù)據(jù)庫系統(tǒng)必不可少的一部分,目前這種技術(shù)已經(jīng)廣泛應(yīng)用于數(shù)據(jù) 庫產(chǎn)品中,如 Oracle 數(shù)據(jù)庫提供對聯(lián)機備份、脫機備份、邏輯備份、

35、完全數(shù)據(jù)恢復(fù)及不完全數(shù)據(jù)恢復(fù)的全 面支持。據(jù)預(yù)測,以 “數(shù)據(jù)”為核心的計算( Data Centric Computing )將逐漸取代以 “應(yīng)用”為核心的計算。在 一些大型的分布式數(shù)據(jù)庫應(yīng)用中,多備份恢復(fù)和基于數(shù)據(jù)中心的異地容災(zāi)備份恢復(fù)等技術(shù)正在得到越來越 多的應(yīng)用。聚合、推理與多實例 數(shù)據(jù)庫安全中,用戶根據(jù)低密級的數(shù)據(jù)和模式的完整性約束推導(dǎo)出高密級的數(shù)據(jù),造成未經(jīng)授權(quán)的信 息泄露,其主要有兩種方式:推理和聚合。聚合 ( Aggregation )聚合是指這種情形:如果用戶沒有訪問特定信息的權(quán)限,但是他有訪問這些信息的組成部分的權(quán)限。 這樣,她就可以將每個組成部分組合起來,得到受限訪問的信息

36、。用戶可以通過不同的途徑得到信息,通 過綜合就可以得到本沒有明確訪問權(quán)限的信息。注意:聚合( Aggregation )指的是組合不同來源的信息的行為。用戶沒有明確的權(quán)限可以訪問組合 起來得到的信息,而組合得到的信息比信息的各個組成部分擁有更高的機密性。下面是一個簡單的概念化例子。假設(shè)數(shù)據(jù)庫管理員不想讓 Users 組的用戶訪問一個特定的句子 “The chicken wor e funny red culottes.,他”將這個句子分成六個部分,限制用戶訪問。如圖:Emily 可以訪問 A、C、F 三個部分,由于她是個特別聰明的人,她可以根據(jù)這三個部分結(jié)合起來得出 這個句子的部分。為了防止聚

37、合,需要防止主體和任何主體的應(yīng)用程序和進程獲得整個數(shù)據(jù)集合的權(quán)限,包括數(shù)據(jù)集合 的各個獨立組成部分。客體可以進行分類并賦予較高的級別,存儲在容器中,防止低級別權(quán)限的主體訪問。 對主體的查詢,可以進行跟蹤,并實施基于上下文的分類。這將記錄主體對客體的訪問歷史,并在聚合攻 擊發(fā)生時限制訪問企圖。推理 ( Inference )推理( Inference )和聚合很相似。推理指的是主體通過他可以訪問的信息推理出受限訪問的信息。當 可以由安全級別較低的數(shù)據(jù)描述出較高級別的數(shù)據(jù)時,就會發(fā)生推理攻擊。注意:推理是得到不是顯性可用的信息的能力。 例如,如果一個職員不應(yīng)該知道軍隊在沙特阿拉伯的行動計劃,但是他

38、可以訪問到食品需求表格和帳 篷位置的文檔,那么他就可以根據(jù)食品和帳篷運送的目的地推算出軍隊正在向 Dubia 地區(qū)移動。在文檔安 全性分類中, 食品需求和帳篷位置文檔是機密文檔 ( Confidential ),而軍隊行動計劃是絕密文檔 ( Top of Secret )。由于不同的分類,這個職員可以根據(jù)他知道的信息推理出他不應(yīng)該知道的秘密。常見的推理通道有以下 4 種。 執(zhí)行多次查詢,利用查詢結(jié)果之間的邏輯聯(lián)系進行推理。用戶一般先向數(shù)據(jù)庫發(fā)出多個查詢請求,這些 查詢大多包含一些聚集類型的函數(shù)(如合計和平均值等)。然后利用返回的查詢結(jié)果,在綜合分析的基礎(chǔ) 上推斷出高級數(shù)據(jù)信息。 利用不同級別數(shù)據(jù)之間的函數(shù)依賴進行推理分析, 數(shù)據(jù)表的屬性之間常見的一種關(guān)系是 “函數(shù)依賴 ”和 “多 值依賴 ”。這些依賴關(guān)系有可能產(chǎn)生推理通道,如同一病房的病人患的是同一種病,以及由參加會議的人員 可以推得參與會議的公司等。 利用數(shù)據(jù)完整性約束進

溫馨提示

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

評論

0/150

提交評論