




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1.1數(shù)據(jù)庫安全機(jī)制正是由這些安全機(jī)制來實現(xiàn)安全模型,進(jìn)而數(shù)據(jù)庫安全機(jī)制是用于實現(xiàn)數(shù)據(jù)庫的各種安全策略的功能集合, 實現(xiàn)保護(hù)數(shù)據(jù)庫系統(tǒng)安全的目標(biāo)。數(shù)據(jù)庫系統(tǒng)的安全機(jī)制如圖所示:1.1.1用戶標(biāo)識與鑒別用戶標(biāo)識是指用戶向系統(tǒng)出示自己的身份證明,最簡單的方法是輸入用戶志進(jìn)入系統(tǒng)的每個用戶的身份,因此必須保證標(biāo)識的惟一性。鑒別是指系統(tǒng)檢查驗證用戶的身份證明,用戶身份的合法性。標(biāo)識和鑒別功能保證了只有合法的用戶才能存取系統(tǒng)中的資源。由于數(shù)據(jù)庫用戶的安全等級是不同的,因此分配給他們的權(quán)限也是不一樣的,戶認(rèn)證機(jī)制。身份的標(biāo)識和鑒別是DBMS對訪問者授權(quán)的前提,并且通過審計機(jī)制使責(zé)任的能力。功能完善的標(biāo)識與
2、鑒別機(jī)制也是訪問控制機(jī)制有效實施的基礎(chǔ), 網(wǎng)絡(luò)環(huán)境中,識別與鑒別用戶是構(gòu)筑DBMS安全防線的第1個重要環(huán)節(jié)。近年來一些實體認(rèn)證的新技術(shù)在數(shù)據(jù)庫系統(tǒng)集成中得到應(yīng)用。目前,證、智能卡認(rèn)證和個人特征識別等。通行字也稱為 口令”或 密碼”它是一種根據(jù)已知事物驗證身份的方法,ID和密碼。標(biāo)識機(jī)制用于惟一標(biāo)用于檢驗數(shù)據(jù)庫系統(tǒng)必須建立嚴(yán)格的用DBMS保留追究用戶行為特別是在一個開放的多用戶系統(tǒng)的常用的方法有通行字認(rèn)證、數(shù)字證書認(rèn)也是一種最廣泛研究和使用的身份驗證法。在數(shù)據(jù)庫系統(tǒng)中往往對通行字采取一些控制措施,常見的有最小長度限制、次數(shù)限定、選擇字符、有效 期、雙通行字和封鎖用戶系統(tǒng)等。一般還需考慮通行字的分
3、配和管理,以及在計算機(jī)中的安全存儲。通行字多以 加密形式存儲,攻擊者要得到通行字,必須知道加密算法和密鑰。算法可能是公開的,但密鑰應(yīng)該是秘密的。也 有的系統(tǒng)存儲通行字的單向 Hash值,攻擊者即使得到密文也難以推出通行字的明文。數(shù)字證書是認(rèn)證中心頒發(fā)并進(jìn)行數(shù)字簽名的數(shù)字憑證,它實現(xiàn)實體身份的鑒別與認(rèn)證、信息完整性驗證、機(jī)密性和不可否認(rèn)性等安全服務(wù)。數(shù)字證書可用來證明實體所宣稱的身份與其持有的公鑰的匹配關(guān)系,使得實體的身份與證書中的公鑰相互綁定。智能卡(有源卡、IC卡或Smart卡)作為個人所有物,可以用來驗證個人身份,典型智能卡主要由微處理 器、存儲器、輸入輸出接口、安全邏輯及運算處理器等組成
4、。在智能卡中引入了認(rèn)證的概念,認(rèn)證是智能卡和應(yīng) 用終端之間通過相應(yīng)的認(rèn)證過程來相互確認(rèn)合法性。在卡和接口設(shè)備之間只有相互認(rèn)證之后才能進(jìn)行數(shù)據(jù)的讀寫操作,目的在于防止偽造應(yīng)用終端及相應(yīng)的智能卡。根據(jù)被授權(quán)用戶的個人特征來進(jìn)行確證是一種可信度更高的驗證方法,指紋、語音聲紋(voice- print )、DNA、視網(wǎng)膜、虹膜、臉型和手型等。目前已得到應(yīng)用的個人生理特征包括1.1.2 訪問控制1.1.2.1 概述訪問控制的目的是確保用戶對數(shù)據(jù)庫只能進(jìn)行經(jīng)過授權(quán)的有關(guān)操作。 源稱為 “客體 ”,把以用戶名義進(jìn)行資源訪問的進(jìn)程、事務(wù)等實體稱為 傳統(tǒng)的存取控制機(jī)制有兩種,即在存取控制機(jī)制中, 一般把被訪問的
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)系表的特定行和特 定列。用戶可通過應(yīng)用程序或數(shù)據(jù)庫查詢,將數(shù)據(jù)從數(shù)據(jù)庫復(fù)制到
6、用戶環(huán)境。 編寫更新值。刪除和銷毀特定數(shù)據(jù)庫對象。 移動數(shù)據(jù)對象,但沒有讀取內(nèi)容的權(quán)限。 使用執(zhí)行需要的權(quán)限,運行程序或過程。數(shù)據(jù)的所有訪問模式和類型如下: 插入或建立。在文件中添加數(shù)據(jù),不銷毀任何數(shù)據(jù)。 讀取。更新。 刪除。移動。 執(zhí)行。 確認(rèn)存在性。確認(rè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ù)庫對象:
7、數(shù)據(jù)項或數(shù)據(jù)元素,一般是基本表或視圖 用戶:可以用一些授權(quán)標(biāo)識符識別的單個用戶或用戶組 授權(quán)通常都是在這兩種級別上進(jìn)行。1. 授權(quán)DBMS 提供了功能強大的授權(quán)機(jī)制,它可以給用戶授予各種不同對象(表、視圖、存儲過程等)的不同使用 權(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 過程來幫忙,也 幾乎需要時時去維護(hù)。 一個相對特別簡單有效的解決方案就是定義數(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)建一個角色,并且把需要的許可分配給角色,而不是分配給個人用戶,然后再把角色分配給特定用戶。 當(dāng)有新的雇員到來時,把角色添加給用戶就提供了所有必要的權(quán)限。授權(quán)管理機(jī)制如圖4-3所示。用
9、戶 用戶用戶1.124強制控制(MAC )強制訪問控制模型基于與每個數(shù)據(jù)項和每個用戶關(guān)聯(lián)的安全性標(biāo)識(Security Label)。安全性標(biāo)識被分為若干級別:絕密 (Top Secret)、機(jī)密 (Secret)、秘密(Confidential)、一般(Public)。數(shù)據(jù)的標(biāo)識稱為密級(SecurityClassification),用戶的標(biāo)識稱為許可級別證(Security Clearanee)。在計算機(jī)系統(tǒng)中, 每個運行的程序繼承用戶的許可證級別,也可以說,用戶的許可證級別不僅僅應(yīng)用于作為人的用戶,而且應(yīng)用于該用戶運行的所有程序。當(dāng)某一用戶以某一密級進(jìn)入系統(tǒng)時,在確定該用戶能否訪問系統(tǒng)
10、上的數(shù)據(jù)時應(yīng)遵守如下規(guī)則:當(dāng)且僅當(dāng)用戶許可證級別大于等于數(shù)據(jù)的密級時,該用戶才能對該數(shù)據(jù)進(jìn)行讀操作。當(dāng)且僅當(dāng)用戶的許可證級別小于或等于數(shù)據(jù)的密級時,該用戶才能對該數(shù)據(jù)進(jìn)行寫操作。第二條規(guī)則表明用戶可以為其寫入的數(shù)據(jù)對象賦予高于自己許可證級別的密級,這樣的數(shù)據(jù)被寫入后用戶自己就不能再讀該數(shù)據(jù)對象了。這兩種規(guī)則的共同點在于它們禁止了擁有高級許可證級別的主體更新低密級的數(shù)據(jù)對象,從而防止了敏感數(shù)據(jù)的泄露。1.125基于角色的存取控制(RBAC )RBAC在主體和權(quán)限之間增加了一個中間橋梁一一角色。權(quán)限被授予角色,而管理員通過指定用戶為特定角 色來為用戶授權(quán)。 從而大大簡化了授權(quán)管理,具有強大的可操作
11、性和可管理性。角色可以根據(jù)組織中的不同工作創(chuàng)建,然后根據(jù)用戶的責(zé)任和資格分配角色,用戶可以輕松地進(jìn)行角色轉(zhuǎn)換。而隨著新應(yīng)用和新系統(tǒng)的增加,角 色可以分配更多的權(quán)限,也可以根據(jù)需要撤銷相應(yīng)的權(quán)限。(perms)(包括對象sessions),如圖 1-1 所RBAC核心模型包含了 5個基本的靜態(tài)集合,即用戶集(users)、角色集(roles)、特權(quán)集 集(objects)和操作集(operators),以及一個運行過程中動態(tài)維護(hù)的集合,即會話集( 示。包含系統(tǒng)需要保護(hù)的RBAC模型的核心,用戶集包括系統(tǒng)中可以執(zhí)行操作的用戶,是主動的實體;對象集是系統(tǒng)中被動的實體,信息;操作集是定義在對象上的一組
12、操作,對象上的一組操作構(gòu)成了一個特權(quán);角色則是 通過用戶分配(UA )和特權(quán)分配(PA)使用戶與特權(quán)關(guān)聯(lián)起來。RBAC屬于策略中立型的存取控制模型,既可以實現(xiàn)自主存取控制策略,又可以實現(xiàn)強制存取控制策略。它可以有效緩解傳統(tǒng)安全管理處理瓶頸問題,被認(rèn)為是一種普遍適用的訪問控制模型,尤其適用于大型組織的有效的訪問控制機(jī)制。1.1.2.6 視圖機(jī)制幾乎所有的 DBMS 都提供視圖機(jī)制。視圖不同于基本表,它們不存儲實際數(shù)據(jù),數(shù)據(jù)庫表存儲數(shù)據(jù),視圖 好象數(shù)據(jù)庫表的窗口,是虛擬表。當(dāng)用戶通過視圖訪問數(shù)據(jù)時,是從基本表獲得數(shù)據(jù),但只是由視圖中定義的列 構(gòu)成。視圖提供了一種靈活而簡單的方法,以個人化方式授予訪
13、問權(quán)限,是強大的安全工具。在授予用戶對特定 視圖的訪問權(quán)限時,該權(quán)限只用于在該視圖中定義的數(shù)據(jù)項,而未用于完整基本表本身。因此,在使用視圖的時 候不用擔(dān)心用戶會無意地刪除數(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ù)庫文件內(nèi)容。另一方面,數(shù)據(jù)庫管理員( DBA )可以任意訪問所有數(shù)據(jù),往往超出了其職責(zé)范圍,同 樣造成安全隱患。 因此, 數(shù)據(jù)庫的保密問題不僅包括在傳輸過程中采用加密保護(hù)和控制非
14、法訪問, 還包括對存儲 的敏感數(shù)據(jù)進(jìn)行加密保護(hù),使得即使數(shù)據(jù)不幸泄露或者丟失,也難以造成泄密。同時,數(shù)據(jù)庫加密可以由用戶用 自己的密鑰加密自己的敏感信息, 而不需要了解數(shù)據(jù)內(nèi)容的數(shù)據(jù)庫管理員無法進(jìn)行正常解密, 從而可以實現(xiàn)個性 化的用戶隱私保護(hù)。對數(shù)據(jù)庫加密必然會帶來數(shù)據(jù)存儲與索引、 密鑰分配和管理等一系列問題, 同時加密也會顯著地降低數(shù)據(jù)庫 的訪問與運行效率。保密性與可用性之間不可避免地存在沖突,需要妥善解決二者之間的矛盾。 數(shù)據(jù)庫中存儲密文數(shù)據(jù)后, 如何進(jìn)行高效查詢成為一個重要的問題。 查詢語句一般不可以直接運用到密文數(shù)據(jù)庫 的查詢過程中, 一般的方法是首先解密加密數(shù)據(jù), 然后查詢解密數(shù)據(jù)
15、。 但由于要對整個數(shù)據(jù)庫或數(shù)據(jù)表進(jìn)行解密 操作,因此開銷巨大。在實際操作中需要通過有效的查詢策略來直接執(zhí)行密文查詢或較小粒度的快速解密。一般來說,一個好的數(shù)據(jù)庫加密系統(tǒng)應(yīng)該滿足以下幾個方面的要求。 足夠的加密強度,保證長時間且大量數(shù)據(jù)不被破譯。加密后的數(shù)據(jù)庫存儲量沒有明顯的增加。 加解密速度足夠快,影響數(shù)據(jù)操作響應(yīng)時間盡量短。 加解密對數(shù)據(jù)庫的合法用戶操作(如數(shù)據(jù)的增、刪、改等)是透明的。 靈活的密鑰管理機(jī)制,加解密密鑰存儲安全,使用方便可靠。1.1.3.2 數(shù)據(jù)庫加密的實現(xiàn)機(jī)制通過對比各種體系結(jié)構(gòu)的數(shù)據(jù)庫加密的實現(xiàn)機(jī)制主要研究執(zhí)行加密部件在數(shù)據(jù)庫系統(tǒng)中所處的層次和位置, 運行效率、可擴(kuò)展性和
16、安全性,以求得最佳的系統(tǒng)結(jié)構(gòu)。 按照加密部件與數(shù)據(jù)庫系統(tǒng)的不同關(guān)系,數(shù)據(jù)庫加密機(jī)制可以從大的方面分為庫內(nèi)加密和庫外加密。(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)加密方式的主要缺點如下。DBMS 的訪問控制機(jī)制。 對系統(tǒng)性能影響比較大, BMS 除了完成正常的功能外,還要進(jìn)行加解密運算,從而加重了數(shù)據(jù)庫服務(wù)器的 負(fù)載。 密鑰管理風(fēng)險大,加密密鑰與庫數(shù)據(jù)保存在服
17、務(wù)器中,其安全性依賴于 加密功能依賴于數(shù)據(jù)庫廠商的支持, DBMS 一般只提供有限的加密算法與強度可供選擇,自主性受限。(2)庫外加密在庫外加密方式中,加解密過程發(fā)生在 DBMS 之外, DBMS 管理的是密文。加解密過程大多在客戶端 實現(xiàn),也有的由專門的加密服務(wù)器或硬件完成。與庫內(nèi)加密方式相比,庫外加密的明顯優(yōu)點如下。DBMS 的運行負(fù)擔(dān)。 由于加解密過程在客戶端或?qū)iT的加密服務(wù)器實現(xiàn),所以減少了數(shù)據(jù)庫服務(wù)器與 可以將加密密鑰與所加密的數(shù)據(jù)分開保存,提高了安全性。 由客戶端與服務(wù)器的配合,可以實現(xiàn)端到端的網(wǎng)上密文傳輸。 庫外加密的主要缺點是加密后的數(shù)據(jù)庫功能受到一些限制, 例如加密后的數(shù)據(jù)無
18、法正常索引。 同時數(shù)據(jù)加密后也 會破壞原有的關(guān)系數(shù)據(jù)的完整性與一致性,這些都會給數(shù)據(jù)庫應(yīng)用帶來影響。在目前新興的外包數(shù)據(jù)庫服務(wù)模式中, 數(shù)據(jù)庫服務(wù)器由非可信的第三方提供, 僅用來運行標(biāo)準(zhǔn)的 DBMS ,要求加 密解密都在客戶端完成。1.1.3.3 數(shù)據(jù)庫加密的粒度一般來說,數(shù)據(jù)庫加密的粒度可以有 4 種,即表、屬性、記錄和數(shù)據(jù)元素。不同加密粒度的特點不同,總的 來說,加密粒度越小,則靈活性越好且安全性越高,但實現(xiàn)技術(shù)也更為復(fù)雜,對系統(tǒng)的運行效率影響也越大。(1)表加密表級加密的對象是整個表, 這種加密方法類似于操作系統(tǒng)中文件加密的方法。 即每個表與不同的表密鑰運算, 形成密文后存儲。 這種方式
19、最為簡單, 但因為對表中任何記錄或數(shù)據(jù)項的訪問都需要將其所在表的所有數(shù)據(jù)快速 解密,因而執(zhí)行效率很低,浪費了大量的系統(tǒng)資源。在目前的實際應(yīng)用中,這種方法基本已被放棄。(2)屬性加密屬性加密又稱為 “域加密 ”或 “字段加密 ”,即以表中的列為單位進(jìn)行加密。一般而言,屬性的個數(shù)少于記錄的 條數(shù),需要的密鑰數(shù)相對較少。如果只有少數(shù)屬性需要加密,屬性加密是可選的方法。(3)記錄加密當(dāng)數(shù)據(jù)庫中需要加密的記錄數(shù)比較少時, 采用這種方法是比記錄加密是把表中的一條記錄作為加密的單位,較好的。( 4)數(shù)據(jù)元素加密數(shù)據(jù)元素加密是以記錄中每個字段的值為單位進(jìn)行加密, 數(shù)據(jù)元素是數(shù)據(jù)庫中最小的加密粒度。 采用這種加
20、 密粒度,系統(tǒng)的安全性與靈活性最高,同時實現(xiàn)技術(shù)也最為復(fù)雜。不同的數(shù)據(jù)項使用不同的密鑰,相同的明文形 成不同的密文,抗攻擊能力得到提高。不利的方面是,該方法需要引入大量的密鑰。一般要周密設(shè)計自動生成密 鑰的算法,密鑰管理的復(fù)雜度大大增加,同時系統(tǒng)效率也受到影響。在目前條件下, 為了得到較高的安全性和靈活性, 采用最多的加密粒度是數(shù)據(jù)元素。 為了使數(shù)據(jù)庫中的數(shù)據(jù) 能夠充分而靈活地共享,加密后還應(yīng)當(dāng)允許用戶以不同的粒度進(jìn)行訪問。1.1.3.4 加密算法加密算法是數(shù)據(jù)加密的核心, 一個好的加密算法產(chǎn)生的密文應(yīng)該頻率平衡, 隨機(jī)無重碼, 周期很長而又不可 能產(chǎn)生重復(fù)現(xiàn)象。竊密者很難通過對密文頻率,或者
21、重碼等特征的分析獲得成功。同時,算法必須適應(yīng)數(shù)據(jù)庫系 統(tǒng)的特性,加解密,尤其是解密響應(yīng)迅速。常用的加密算法包括對稱密鑰算法和非對稱密鑰算法。對稱密鑰算法的特點是解密密鑰和加密密鑰相同, 或解密密鑰由加密密鑰推出。 這種算法一般又可分為兩類, 即序列算法和分組算法。 序列算法一次只對明文中的單個位或字節(jié)運算; 分組算法是對明文分組后以組為單位進(jìn)行運算,常用有 DES 等。非對稱密鑰算法也稱為 “公開密鑰算法 ”,其特點是解密密鑰不同于加密密鑰, 并且從解密密鑰推出加密密鑰 在計算上是不可行的。其中加密密鑰公開,解密密鑰則是由用戶秘密保管的私有密鑰。常用的公開密鑰算法有RSA 等。目前還沒有公認(rèn)的
22、專門針對數(shù)據(jù)庫加密的加密算法, 因此一般根據(jù)數(shù)據(jù)庫特點選擇現(xiàn)有的加密算法來進(jìn)行數(shù) 據(jù)庫加密。 一方面,對稱密鑰算法的運算速度比非對稱密鑰算法快很多, 二者相差大約 23個數(shù)量級; 另一方面, 在公開密鑰算法中, 每個用戶有自己的密鑰對。 而作為數(shù)據(jù)庫加密的密鑰如果因人而異, 將產(chǎn)生異常龐大的數(shù)據(jù) 存儲量。因此,在數(shù)據(jù)庫加密中一般采取對稱密鑰的分組加密算法。1.1.3.5 密鑰管理對數(shù)據(jù)庫進(jìn)行加密, 一般對不同的加密單元采用不同的密鑰。 以加密粒度為數(shù)據(jù)元素為例, 如果不同的數(shù)據(jù) 元素采用同一個密鑰, 由于同一屬性中數(shù)據(jù)項的取值在一定范圍之內(nèi), 且往往呈現(xiàn)一定的概率分布, 因此攻擊者 可以不用求
23、原文,而直接通過統(tǒng)計方法即可得到有關(guān)的原文信息,這就是所謂的統(tǒng)計攻擊。大量的密鑰自然會帶來密鑰管理的問題。 根據(jù)加密粒度的不同, 系統(tǒng)所產(chǎn)生的密鑰數(shù)量也不同。 越是細(xì)小的 加密粒度, 所產(chǎn)生的密鑰數(shù)量越多, 密鑰管理也就越復(fù)雜。 良好的密鑰管理機(jī)制既可以保證數(shù)據(jù)庫信息的安全性, 又可以進(jìn)行快速的密鑰交換,以便進(jìn)行數(shù)據(jù)解密。對數(shù)據(jù)庫密鑰的管理一般有集中密鑰管理和多級密鑰管理兩種體制,集中密鑰管理方法是設(shè)立密鑰管理中 心。在建立數(shù)據(jù)庫時,密鑰管理中心負(fù)責(zé)產(chǎn)生密鑰并對數(shù)據(jù)加密,形成一張密鑰表。當(dāng)用戶訪問數(shù)據(jù)庫時,密鑰 管理機(jī)構(gòu)核對用戶識別符和用戶密鑰。 通過審核后, 由密鑰管理機(jī)構(gòu)找到或計算出相應(yīng)的
24、數(shù)據(jù)密鑰。 這種密鑰管 理方式方便用戶使用和管理,但由于這些密鑰一般由數(shù)據(jù)庫管理人員控制,因而權(quán)限過于集中。目前研究和應(yīng)用比較多的是多級密鑰管理體制, 以加密粒度為數(shù)據(jù)元素的三級密鑰管理體制為例, 整個系統(tǒng) 的密鑰由一個主密鑰、 每個表上的表密鑰, 以及各個數(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)的可用性帶來一些影響
25、。( 1)系統(tǒng)運行效率受到影響 數(shù)據(jù)庫加密技術(shù)帶來的主要問題之一是影響效率。加密索引字段和關(guān)系運算的比較字段等。(2)難以實現(xiàn)對數(shù)據(jù)完整性約束的定義 數(shù)據(jù)庫一般都定義了關(guān)系數(shù)據(jù)之間的完整性約束,如主外鍵約束及值域的定義等。數(shù)據(jù)一旦加密, 將難以實現(xiàn)這些約束。(3)對數(shù)據(jù)的 SQL 語言及 SQL 函數(shù)受到制約為了減少這種影響, 一般對加密的范圍做一些約束,如不DBMSDBMS 擴(kuò)展的 SQL 內(nèi)部函數(shù)一般也SQL 語言中的 Group by 、 Order by 及 Having 子句分別完成分組和排序等操作,如果這些子句的操作對象是 加密數(shù)據(jù),那么解密后的明文數(shù)據(jù)將失去原語句的分組和排序作用
26、。另外, 不能直接作用于密文數(shù)據(jù)。但密文的隨機(jī)性同時也暴露了消息的重要 加密技術(shù)往往需要和其他非加密安全機(jī)制相(4)密文數(shù)據(jù)容易成為攻擊目標(biāo)加密技術(shù)把有意義的明文轉(zhuǎn)換為看上去沒有實際意義的密文信息, 性, 容易引起攻擊者的注意和破壞, 從而造成了一種新的不安全性。 結(jié)合,以提高數(shù)據(jù)庫系統(tǒng)的整體安全性。數(shù)據(jù)庫加密作為一種對敏感數(shù)據(jù)進(jìn)行安全保護(hù)的有效手段, 將得到越來越多的重視。 總體來說, 目前數(shù)據(jù)庫 加密技術(shù)還面臨許多挑戰(zhàn),其中解決保密性與可用性之間的矛盾是關(guān)鍵。1.1.4 審計“審計”功能是 DBMS 達(dá)到 C2 以上安全級別必不可少的一項指標(biāo)。 因為任何系統(tǒng)的安全措施都是不完美的, 蓄意盜
27、竊、破壞數(shù)據(jù)的人總是想方設(shè)法打破控制。審計通常用于下列情況: 審查可疑的活動。例如:當(dāng)出現(xiàn)數(shù)據(jù)被非授權(quán)用戶所刪除、用戶越權(quán)操作或權(quán)限管理不正確時,安全管 理員可以設(shè)置對該數(shù)據(jù)庫的所有連接進(jìn)行審計,和對數(shù)據(jù)庫中所有表的操作進(jìn)行審計。監(jiān)視和收集關(guān)于指定數(shù)據(jù)庫活動的數(shù)據(jù)。例如: 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)事 實。審計能幫助
28、 DBA 完成的操作類型包括:為管理程序準(zhǔn)備數(shù)據(jù)庫使用報表 (每天 /周連接多少用戶,每月發(fā)出多少查詢,上周添加或刪除了多少雇 員記錄 )。如果懷疑有黑客活動,記錄企圖闖入數(shù)據(jù)庫的失敗嘗試。 確定最繁忙的表,它可能需要額外的調(diào)整。調(diào)查對關(guān)鍵表的可疑更改。 從用戶負(fù)載方面的預(yù)期增長,規(guī)劃資源消耗。Audit Log )中。審計日志一般包括下列審計功能把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志( 內(nèi)容:操作類型(如修改、查詢等) 。 操作終端標(biāo)識與操作人員標(biāo)識。操作日期和時間。 操作的數(shù)據(jù)對象(如表、視圖、記錄、屬性等) 。 數(shù)據(jù)修改前后的值。SQLDBA 可以利用審計跟蹤的功能,重現(xiàn)導(dǎo)致數(shù)
29、據(jù)庫現(xiàn)狀的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容 等。審計通常比較費時間和空間,所以 DBMS 往往都將其作為可選特征,允許 DBA 根據(jù)應(yīng)用對安全性的要求, 靈活地打開或關(guān)閉審計功能。審計功能一般主要用于安全性要求較高的部門。 審計一般可以分為用戶級審計和系統(tǒng)級審計。 用戶級審計是任何用戶可設(shè)置的審計, 主要是針對自己創(chuàng)建的數(shù)據(jù) 庫或視圖進(jìn)行審計,記錄所有用戶對這些表或視圖的一切成功和(或)不成功的訪問要求以及各種類型的操作。系統(tǒng)級審計只能由 DBA設(shè)置,用以監(jiān)測成功或失敗的登錄要求、監(jiān)測Grant和Revoke操作以及其他數(shù)據(jù)庫級權(quán)限下的操作。1.1.5 備份與恢復(fù)一個數(shù)據(jù)庫系統(tǒng)總是
30、避免不了故障的發(fā)生。安全的數(shù)據(jù)庫系統(tǒng)必須能在系統(tǒng)發(fā)生故障后利用已有的數(shù)據(jù)備 份,恢復(fù)數(shù)據(jù)庫到原來的狀態(tài),并保持?jǐn)?shù)據(jù)的完整性和一致性。數(shù)據(jù)庫系統(tǒng)所采用的備份與恢復(fù)技術(shù),對系統(tǒng)的 安全性與可靠性起著重要作用,也對系統(tǒng)的運行效率有著重大影響。3 種。1.1.5.1 數(shù)據(jù)庫備份常用的數(shù)據(jù)庫備份的方法有如下又稱為 “脫機(jī)備份 ”。這種方法在保持(1)冷備份冷備份是在沒有終端用戶訪問數(shù)據(jù)庫的情況下關(guān)閉數(shù)據(jù)庫并將其備份,數(shù)據(jù)完整性方面顯然最有保障, 但是對于那些必須保持每天 24小時、每周 7天全天候運行的數(shù)據(jù)庫服務(wù)器來說, 較長時間地關(guān)閉數(shù)據(jù)庫進(jìn)行備份是不現(xiàn)實的。(2)熱備份熱備份是指當(dāng)數(shù)據(jù)庫正在運行時進(jìn)
31、行的備份,又稱為 “聯(lián)機(jī)備份 ”。因為數(shù)據(jù)備份需要一段時間,而且備份大 容量的數(shù)據(jù)庫還需要較長的時間, 那么在此期間發(fā)生的數(shù)據(jù)更新就有可能使備份的數(shù)據(jù)不能保持完整性, 這個問 題的解決依賴于數(shù)據(jù)庫日志文件。在備份時,日志文件將需要進(jìn)行數(shù)據(jù)更新的指令 “堆起來 ”,并不進(jìn)行真正的物 理更新,因此數(shù)據(jù)庫能被完整地備份。備份結(jié)束后,系統(tǒng)再按照被日志文件 “堆起來 ”的指令對數(shù)據(jù)庫進(jìn)行真正的 物理更新??梢姡粋浞莸臄?shù)據(jù)保持了備份開始時刻前的數(shù)據(jù)一致性狀態(tài)。熱備份操作存在如下不利因素。 如果系統(tǒng)在進(jìn)行備份時崩潰,則堆在日志文件中的所有事務(wù)都會被丟失,即造成數(shù)據(jù)的丟失。 在進(jìn)行熱備份的過程中,如果日志文
32、件占用系統(tǒng)資源過大,如將系統(tǒng)存儲空間占用完,會造成系統(tǒng)不能接受 業(yè)務(wù)請求的局面,對系統(tǒng)運行產(chǎn)生影響。 熱備份本身要占用相當(dāng)一部分系統(tǒng)資源,使系統(tǒng)運行效率下降。該文件的格式一般與原數(shù)據(jù)庫的文件 因此邏輯備份文件只能用來對數(shù)據(jù)庫進(jìn)行邏輯恢復(fù), 即數(shù)據(jù)導(dǎo) 邏輯備份一般用于增量備份, 即備份那些在上次備份以后改(3)邏輯備份邏輯備份是指使用軟件技術(shù)從數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù)并寫入一個輸出文件, 格式不同, 而是原數(shù)據(jù)庫中數(shù)據(jù)內(nèi)容的一個映像。 入,而不能按數(shù)據(jù)庫原來的存儲特征進(jìn)行物理恢復(fù)。 變的數(shù)據(jù)。1.1.5.2 數(shù)據(jù)庫恢復(fù)在系統(tǒng)發(fā)生故障后,把數(shù)據(jù)庫恢復(fù)到原來的某種一致性狀態(tài)的技術(shù)稱為 “恢復(fù) ”,其基本原理
33、是利用 “冗余”進(jìn) 行數(shù)據(jù)庫恢復(fù)。問題的關(guān)鍵是如何建立 “冗余”并利用 “冗余”實施數(shù)據(jù)庫恢復(fù),即恢復(fù)策略。數(shù)據(jù)庫恢復(fù)技術(shù)一般有 3 種策略,即基于備份的恢復(fù)、基于運行時日志的恢復(fù)和基于鏡像數(shù)據(jù)庫的恢復(fù)。 (1)基于備份的恢復(fù)而從最近備基于備份的恢復(fù)是指周期性地備份數(shù)據(jù)庫。 當(dāng)數(shù)據(jù)庫失效時, 可取最近一次的數(shù)據(jù)庫備份來恢復(fù)數(shù)據(jù)庫, 即 把備份的數(shù)據(jù)拷貝到原數(shù)據(jù)庫所在的位置上。 用這種方法, 數(shù)據(jù)庫只能恢復(fù)到最近一次備份的狀態(tài), 份到故障發(fā)生期間的所有數(shù)據(jù)庫更新將會丟失。備份的周期越長,丟失的更新數(shù)據(jù)越多。(2)基于運行時日志的恢復(fù)以確保記錄運行時日志文件是用來記錄對數(shù)據(jù)庫每一次更新的文件。 對
34、日志的操作優(yōu)先于對數(shù)據(jù)庫的操作, 數(shù)據(jù)庫的更改。 當(dāng)系統(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ù)庫鏡像就是在另一個磁盤上復(fù)制數(shù)據(jù)庫作為實時副本。 當(dāng)主數(shù)據(jù)庫更新時, DBMS 自動把更新后的數(shù)據(jù) 復(fù)制到鏡像數(shù)據(jù),始終使鏡像數(shù)據(jù)和主數(shù)據(jù)保持一致性。當(dāng)主庫出現(xiàn)故障時,可由鏡像磁盤繼續(xù)提供使用,同時DBMS 自動利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫恢復(fù)。 鏡像策略可以使
35、數(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)機(jī)備份、脫機(jī)備份、邏輯備份、完全數(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ù)正在得到
36、越來越多的應(yīng)用。1.1.6 聚合、推理與多實例造成未經(jīng)授權(quán)的信息泄露,數(shù)據(jù)庫安全中, 用戶根據(jù)低密級的數(shù)據(jù)和模式的完整性約束推導(dǎo)出高密級的數(shù)據(jù), 其主要有兩種方式:推理和聚合。1.1.6.1 聚合( Aggregation)聚合是指這種情形:如果用戶沒有訪問特定信息的權(quán)限,但是他有訪問這些信息的組成部分的權(quán)限。這樣, 她就可以將每個組成部分組合起來, 得到受限訪問的信息。 用戶可以通過不同的途徑得到信息, 通過綜合就可以 得到本沒有明確訪問權(quán)限的信息。注意:聚合(Aggregation )指的是組合不同來源的信息的行為。用戶沒有明確的權(quán)限可以訪問組合起來得到的信息,而組合得到的信息比信息的各個
37、組成部分擁有更高的機(jī)密性。The下面是一個簡單的概念化例子。假設(shè)數(shù)據(jù)庫管理員不想讓Users 組的用戶訪問一個特定的句子chicken wore funny red culottes.,他將”這個句子分成六個部分,限制用戶訪問。如圖:Emily 可以訪問 A、C、F 三個部分,由于她是個特別聰明的人,她可以根據(jù)這三個部分結(jié)合起來得出這個 句子的部分。為了防止聚合, 需要防止主體和任何主體的應(yīng)用程序和進(jìn)程獲得整個數(shù)據(jù)集合的權(quán)限, 包括數(shù)據(jù)集合的各個 獨立組成部分。客體可以進(jìn)行分類并賦予較高的級別,存儲在容器中,防止低級別權(quán)限的主體訪問。對主體的查 詢,可以進(jìn)行跟蹤,并實施基于上下文的分類。這將記
38、錄主體對客體的訪問歷史,并在聚合攻擊發(fā)生時限制訪問 企圖。1.1.6.2 推理( Inference )推理( Inference )和聚合很相似。推理指的是主體通過他可以訪問的信息推理出受限訪問的信息。當(dāng)可以 由安全級別較低的數(shù)據(jù)描述出較高級別的數(shù)據(jù)時,就會發(fā)生推理攻擊。但是他可以訪問到食品需求表格和帳篷位置Dubia 地區(qū)移動。 在文檔安全性分類中,Top of Secret )。由于注意:推理是得到不是顯性可用的信息的能力。 例如,如果一個職員不應(yīng)該知道軍隊在沙特阿拉伯的行動計劃,的文檔, 那么他就可以根據(jù)食品和帳篷運送的目的地推算出軍隊正在向 食品需求和帳篷位置文檔是機(jī)密文檔( Con
39、fidential ),而軍隊行動計劃是絕密文檔( 不同的分類,這個職員可以根據(jù)他知道的信息推理出他不應(yīng)該知道的秘密。常見的推理通道有以下 4 種。 執(zhí)行多次查詢,利用查詢結(jié)果之間的邏輯聯(lián)系進(jìn)行推理。用戶一般先向數(shù)據(jù)庫發(fā)出多個查詢請求,這些查詢 大多包含一些聚集類型的函數(shù)(如合計和平均值等) 。然后利用返回的查詢結(jié)果,在綜合分析的基礎(chǔ)上推斷出高 級數(shù)據(jù)信息。 利用不同級別數(shù)據(jù)之間的函數(shù)依賴進(jìn)行推理分析, 數(shù)據(jù)表的屬性之間常見的一種關(guān)系是 “函數(shù)依賴 ”和 “多值依 賴”。這些依賴關(guān)系有可能產(chǎn)生推理通道,如同一病房的病人患的是同一種病,以及由參加會議的人員可以推得 參與會議的公司等。 利用數(shù)據(jù)完整性約束進(jìn)行
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)浴加盟合同范例
- 合肥鋼管出租合同范例
- 代建開發(fā)合同范本
- 識字研究課題申報書
- 天津小學(xué)課題申報書格式
- 住房公積金優(yōu)化調(diào)整讓民生更加溫暖
- 農(nóng)業(yè)機(jī)具代理合同范本
- 合同范本正版
- 上海樓梯合同范本
- 人力公司墊資合同范本
- 護(hù)理團(tuán)體標(biāo)準(zhǔn)解讀-成人氧氣吸入療法護(hù)理
- 水利工程冬季施工方案及注意事項
- 幼兒園大班《識字卡》課件
- 2024-2030全球與中國寵物醫(yī)院市場現(xiàn)狀及未來發(fā)展趨勢
- 2024屆陜西省西安地區(qū)高考模擬英語試題試卷含解析
- 《研學(xué)旅行課程設(shè)計》課件-2認(rèn)識研學(xué)旅行的參與方
- 安全警示教育的會議記錄內(nèi)容
- 2024年中鐵十一局集團(tuán)限公司招聘公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 2024年廣東深圳市龍崗坂田街道招考綜合網(wǎng)格員招聘筆試沖刺題(帶答案解析)
- 人力資源外包投標(biāo)方案
- 利那洛肽治療便秘病例
評論
0/150
提交評論