數據庫系統安全機制


數據庫系統安全機制

1.1.4 數據庫系統安全機制

        數據庫安全機制是用於實現數據庫的各種安全策略的功能集合,正是由這些安全機制來實現安全模型,進而實現保護數據庫系統安全的目標。近年來,對用戶的認證與鑒別、存取控制、數據庫加密及推理控制等安全機制的研究取得了不少新的進展。

1.1.4.1 用戶標識與鑒別

        用戶標識是指用戶向系統出示自己的身份證明,最簡單的方法是輸入用戶ID和密碼。

        標識機制用於惟一標志進入系統的每個用戶的身份,因此必須保證標識的惟一性。鑒別是指系統檢查驗證用戶的身份證明,用於檢驗用戶身份的合法性。標識和鑒別功能保證了只有合法的用戶才能存取系統中的資源。 由於數據庫用戶的安全等級是不同的,因此分配給他們的權限也是不一樣的,數據庫系統必須建立嚴格的用戶認證機制。身份的標識和鑒別是DBMS對訪問者授權的前提,並且通過審計機制使DBMS保留追究用戶行為責任的能力。

        功能完善的標識與鑒別機制也是訪問控制機制有效實施的基礎,特別是在一個開放的多用戶系統的網絡環境中,識別與鑒別用戶是構築DBMS安全防線的第1個重要環節。近年來標識與鑒別技術發展迅速,一些實體認證的新技術在數據庫系統集成中得到應用。

        目前,常用的方法有通行字認證、數字證書認證、智能卡認證和個人特征識別等。

   通行字也稱為“口令”或“密碼”,它是一種根據已知事物驗證身份的方法,也是一種最廣泛研究和使用的身份驗證法。在數據庫系統中往往對通行字采取一些控制措施,常見的有最小長度限制、次數限定、選擇字符、有效期、雙通行字和封鎖用戶系統等。一般還需考慮通行字的分配和管理,以及在計算機中的安全存儲。通行字多以加密形式存儲,攻擊者要得到通行字,必須知道加密算法和密鑰。算法可能是公開的,但密鑰應該是秘密的。也有的系統存儲通行字的單向Hash值,攻擊者即使得到密文也難以推出通行字的明文。

  數字證書是認證中心頒發並進行數字簽名的數字憑證,它實現實體身份的鑒別與認證、信息完整性驗證、機密性和不可否認性等安全服務。數字證書可用來證明實體所宣稱的身份與其持有的公鑰的匹配關系,使得實體的身份與證書中的公鑰相互綁定。

   智能卡(有源卡、IC卡或Smart卡)作為個人所有物,可以用來驗證個人身份,典型智能卡主要由微處理器、存儲器、輸入輸出接口、安全邏輯及運算處理器等組成。在智能卡中引入了認證的概念,認證是智能卡和應用終端之間通過相應的認證過程來相互確認合法性。在卡和接口設備之間只有相互認證之后才能進行數據的讀寫操作,目的在於防止偽造應用終端及相應的智能卡。

  根據被授權用戶的個人特征來進行確證是一種可信度更高的驗證方法,個人特征識別應用了生物統計學(Biometrics)的研究成果,即利用個人具有惟一性的生理特征來實現。個人特征都具有因人而異和隨身攜帶的特點,不會丟失並且難以偽造,非常適合於個人身份認證。目前已得到應用的個人生理特征包括指紋、語音聲紋(voice- print)、DNA、視網膜、虹膜、臉型和手型等。一些學者已開始研究基於用戶個人行為方式的身份識別技術,如用戶寫簽名和敲擊鍵盤的方式等。 個人特征一般需要應用多媒體數據存儲技術來建立檔案,相應地需要基於多媒體數據的壓縮、存儲和檢索等技術作為支撐。目前已有不少基於個人特征識別的身份認證系統成功地投入應用。如美國聯邦調查局(FBI)成功地將小波理論應用於壓縮和識別指紋圖樣,從而可以將一個10 MB的指紋圖樣壓縮成500 KB,從而大大減少了數百萬指紋檔案的存儲空間和檢索時間。

1.1.4.2 存取控制

       訪問控制的目的是確保用戶對數據庫只能進行經過授權的有關操作。

       在存取控制機制中,一般把被訪問的資源稱為“客體”,把以用戶名義進行資源訪問的進程、事務等實體稱為“主體”。 傳統的存取控制機制有兩種,即DAC(Discretionary Access Control,自主存取控制)和MAC(Mandatory Access Control,強制存取控制)。

  在DAC機制中,用戶對不同的數據對象有不同的存取權限,而且還可以將其擁有的存取權限轉授給其他用戶。DAC訪問控制完全基於訪問者和對象的身份;MAC機制對於不同類型的信息采取不同層次的安全策略,對不同類型的數據來進行訪問授權。在MAC機制中,存取權限不可以轉授,所有用戶必須遵守由數據庫管理員建立的安全規則,其中最基本的規則為“向下讀取,向上寫入”。顯然,與DAC 相比,MAC機制比較嚴格。

  近年來,RBAC(Role-based Access Control,基於角色的存取控制)得到了廣泛的關注。RBAC在主體和權限之間增加了一個中間橋梁——角色。權限被授予角色,而管理員通過指定用戶為特定角色來為用戶授權。從而大大簡化了授權管理,具有強大的可操作性和可管理性。角色可以根據組織中的不同工作創建,然后根據用戶的責任和資格分配角色,用戶可以輕松地進行角色轉換。而隨着新應用和新系統的增加,角色可以分配更多的權限,也可以根據需要撤銷相應的權限。 RBAC核心模型包含了5個基本的靜態集合,即用戶集(users)、角色集(roles)、特權集 (perms)(包括對象集(objects)和操作集(operators)),以及一個運行過程中動態維護的集合,即會話集(sessions),如圖1-1所示。

  圖1-1 RBAC核心模型 用戶集包括系統中可以執行操作的用戶,是主動的實體;對象集是系統中被動的實體,包含系統需要保護的信息;操作集是定義在對象上的一組操作,對象上的一組操作構成了一個特權;角色則是RBAC模型的核心,通過用戶分配(UA)和特權分配(PA)使用戶與特權關聯起來。 RBAC屬於策略中立型的存取控制模型,既可以實現自主存取控制策略,又可以實現強制存取控制策略。它可以有效緩解傳統安全管理處理瓶頸問題,被認為是一種普遍適用的訪問控制模型,尤其適用於大型組織的有效的訪問控制機制。 2002年,Park. J和Sundhu. R首次提出了UCON(Usage Control,使用控制)的概念。

  UCON對傳統的存取控制進行了擴展,定義了授權(Authorization)、職責(Obligation)和條件(Condition)3個決定性因素,同時提出了存取控制的連續性(Continuity)和易變性(Mutability)兩個重要屬性。UCON集合了傳統的訪問控制、可信管理,以及數字權力管理,從而用系統方式提供了一個保護數字資源的統一標准的框架,為下一代存取控制機制提供了新思路。

1.1.4.3 數據庫加密

       由於數據庫在操作系統中以文件形式管理,所以入侵者可以直接利用操作系統的漏洞竊取數據庫文件,或者篡改數據庫文件內容。另一方面,數據庫管理員(DBA)可以任意訪問所有數據,往往超出了其職責范圍,同樣造成安全隱患。因此,數據庫的保密問題不僅包括在傳輸過程中采用加密保護和控制非法訪問,還包括對存儲的敏感數據進行加密保護,使得即使數據不幸泄露或者丟失,也難以造成泄密。同時,數據庫加密可以由用戶用自己的密鑰加密自己的敏感信息,而不需要了解數據內容的數據庫管理員無法進行正常解密,從而可以實現個性化的用戶隱私保護。 對數據庫加密必然會帶來數據存儲與索引、密鑰分配和管理等一系列問題,同時加密也會顯著地降低數據庫的訪問與運行效率。

       保密性與可用性之間不可避免地存在沖突,需要妥善解決二者之間的矛盾。 數據庫中存儲密文數據后,如何進行高效查詢成為一個重要的問題。查詢語句一般不可以直接運用到密文數據庫的查詢過程中,一般的方法是首先解密加密數據,然后查詢解密數據。但由於要對整個數據庫或數據表進行解密操作,因此開銷巨大。在實際操作中需要通過有效的查詢策略來直接執行密文查詢或較小粒度的快速解密。 一般來說,一個好的數據庫加密系統應該滿足以下幾個方面的要求:

  ① 足夠的加密強度,保證長時間且大量數據不被破譯。

  ② 加密后的數據庫存儲量沒有明顯的增加。

  ③ 加解密速度足夠快,影響數據操作響應時間盡量短。

  ④ 加解密對數據庫的合法用戶操作(如數據的增、刪、改等)是透明的。

  ⑤ 靈活的密鑰管理機制,加解密密鑰存儲安全,使用方便可靠。

  (1)數據庫加密的實現機制

  數據庫加密的實現機制主要研究執行加密部件在數據庫系統中所處的層次和位置,通過對比各種體系結構的運行效率、可擴展性和安全性,以求得最佳的系統結構。 按照加密部件與數據庫系統的不同關系,數據庫加密機制可以從大的方面分為庫內加密和庫外加密:

  1)庫內加密

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

  2)庫外加密

  在庫外加密方式中,加/解密過程發生在DBMS之外,DBMS管理的是密文。加/解密過程大多在客戶端實現,也有的由專門的加密服務器或硬件完成。 與庫內加密方式相比,庫外加密的明顯優點如下。

  — 由於加/解密過程在客戶端或專門的加密服務器實現,所以減少了數據庫服務器與DBMS的運行負擔。

  — 可以將加密密鑰與所加密的數據分開保存,提高了安全性。

  — 由客戶端與服務器的配合,可以實現端到端的網上密文傳輸。

  庫外加密的主要缺點是加密后的數據庫功能受到一些限制,例如加密后的數據無法正常索引。同時數據加密后也會破壞原有的關系數據的完整性與一致性,這些都會給數據庫應用帶來影響。 在目前新興的外包數據庫服務模式中,數據庫服務器由非可信的第三方提供,僅用來運行標准的DBMS,要求加密解密都在客戶端完成。因此,庫外加密方式受到越來越多研究者的關注。

  (2)數據庫加密的粒度

  一般來說,數據庫加密的粒度可以有4種,即表、屬性、記錄和數據元素。不同加密粒度的特點不同,總的來說,加密粒度越小,則靈活性越好且安全性越高,但實現技術也更為復雜,對系統的運行效率影響也越大。

  1)表加密

  表級加密的對象是整個表,這種加密方法類似於操作系統中文件加密的方法。即每個表與不同的表密鑰運算,形成密文后存儲。這種方式最為簡單,但因為對表中任何記錄或數據項的訪問都需要將其所在表的所有數據快速解密,因而執行效率很低,浪費了大量的系統資源。在目前的實際應用中,這種方法基本已被放棄。

  2)屬性加密

  屬性加密又稱為“域加密”或“字段加密”,即以表中的列為單位進行加密。一般而言,屬性的個數少於記錄的條數,需要的密鑰數相對較少。如果只有少數屬性需要加密,屬性加密是可選的方法。

  3)記錄加密

  記錄加密是把表中的一條記錄作為加密的單位,當數據庫中需要加密的記錄數比較少時,采用這種方法是比較好的。

  4)數據元素加密

  數據元素加密是以記錄中每個字段的值為單位進行加密,數據元素是數據庫中最小的加密粒度。采用這種加密粒度,系統的安全性與靈活性最高,同時實現技術也最為復雜。不同的數據項使用不同的密鑰,相同的明文形成不同的密文,抗攻擊能力得到提高。

  不利的方面是,該方法需要引入大量的密鑰。一般要周密設計自動生成密鑰的算法,密鑰管理的復雜度大大增加,同時系統效率也受到影響。 在目前條件下,為了得到較高的安全性和靈活性,采用最多的加密粒度是數據元素。為了使數據庫中的數據能夠充分而靈活地共享,加密后還應當允許用戶以不同的粒度進行訪問。

  (3)加密算法

   加密算法是數據加密的核心,一個好的加密算法產生的密文應該頻率平衡,隨機無重碼,周期很長而又不可能產生重復現象。竊密者很難通過對密文頻率,或者重碼等特征的分析獲得成功。同時,算法必須適應數據庫系統的特性,加/解密,尤其是解密響應迅速。

  常用的加密算法包括對稱密鑰算法和非對稱密鑰算法。

  對稱密鑰算法的特點是解密密鑰和加密密鑰相同,或解密密鑰由加密密鑰推出。這種算法一般又可分為兩類,即序列算法和分組算法。序列算法一次只對明文中的單個位或字節運算;分組算法是對明文分組后以組為單位進行運算,常用有DES等。

   非對稱密鑰算法也稱為“公開密鑰算法”,其特點是解密密鑰不同於加密密鑰,並且從解密密鑰推出加密密鑰在計算上是不可行的。其中加密密鑰公開,解密密鑰則是由用戶秘密保管的私有密鑰。常用的公開密鑰算法有RSA等。

  目前還沒有公認的專門針對數據庫加密的加密算法,因此一般根據數據庫特點選擇現有的加密算法來進行數據庫加密。一方面,對稱密鑰算法的運算速度比非對稱密鑰算法快很多,二者相差大約2~3個數量級;另一方面,在公開密鑰算法中,每個用戶有自己的密鑰對。而作為數據庫加密的密鑰如果因人而異,將產生異常龐大的數據存儲量。因此,在數據庫加密中一般采取對稱密鑰的分組加密算法。

  (4)密鑰管理

  對數據庫進行加密,一般對不同的加密單元采用不同的密鑰。以加密粒度為數據元素為例,如果不同的數據元素采用同一個密鑰,由於同一屬性中數據項的取值在一定范圍之內,且往往呈現一定的概率分布,因此攻擊者可以不用求原文,而直接通過統計方法即可得到有關的原文信息,這就是所謂的統計攻擊。

  大量的密鑰自然會帶來密鑰管理的問題。根據加密粒度的不同,系統所產生的密鑰數量也不同。越是細小的加密粒度,所產生的密鑰數量越多,密鑰管理也就越復雜。良好的密鑰管理機制既可以保證數據庫信息的安全性,又可以進行快速的密鑰交換,以便進行數據解密。

   對數據庫密鑰的管理一般有集中密鑰管理和多級密鑰管理兩種體制,集中密鑰管理方法是設立密鑰管理中心。在建立數據庫時,密鑰管理中心負責產生密鑰並對數據加密,形成一張密鑰表。當用戶訪問數據庫時,密鑰管理機構核對用戶識別符和用戶密鑰。通過審核后,由密鑰管理機構找到或計算出相應的數據密鑰。這種密鑰管理方式方便用戶使用和管理,但由於這些密鑰一般由數據庫管理人員控制,因而權限過於集中。

  目前研究和應用比較多的是多級密鑰管理體制,以加密粒度為數據元素的三級密鑰管理體制為例,整個系統的密鑰由一個主密鑰、每個表上的表密鑰,以及各個數據元素密鑰組成。表密鑰被主密鑰加密后以密文形式保存在數據字典中,數據元素密鑰由主密鑰及數據元素所在行、列通過某種函數自動生成,一般不需要保存。在多級密鑰體制中,主密鑰是加密子系統的關鍵,系統的安全性在很大程度上依賴於主密鑰的安全性。

  (5)數據庫加密的局限性

  數據庫加密技術在保證安全性的同時,也給數據庫系統的可用性帶來一些影響。

  1)系統運行效率受到影響 數據庫加密技術帶來的主要問題之一是影響效率。為了減少這種影響,一般對加密的范圍做一些約束,如不加密索引字段和關系運算的比較字段等。

  2)難以實現對數據完整性約束的定義 數據庫一般都定義了關系數據之間的完整性約束,如主/外鍵約束及值域的定義等。數據一旦加密,DBMS將難以實現這些約束。

  3)對數據的SQL語言及SQL函數受到制約 SQL語言中的Group by、Order by及Having子句分別完成分組和排序等操作,如果這些子句的操作對象是加密數據,那么解密后的明文數據將失去原語句的分組和排序作用。另外,DBMS擴展的SQL內部函數一般也不能直接作用於密文數據。

  4)密文數據容易成為攻擊目標 加密技術把有意義的明文轉換為看上去沒有實際意義的密文信息,但密文的隨機性同時也暴露了消息的重要性,容易引起攻擊者的注意和破壞,從而造成了一種新的不安全性。加密技術往往需要和其他非加密安全機制相結合,以提高數據庫系統的整體安全性。 數據庫加密作為一種對敏感數據進行安全保護的有效手段,將得到越來越多的重視。總體來說,目前數據庫加密技術還面臨許多挑戰,其中解決保密性與可用性之間的矛盾是關鍵。

1.1.4.4 數據庫審計

  數據庫審計是指監視和記錄用戶對數據庫所施加的各種操作的機制。

  按照美國國防部TCSEC/TDI標准中關於安全策略的要求,審計功能是數據庫系統達到C2以上安全級別必不可少的一項指標。 審計功能自動記錄用戶對數據庫的所有操作,並且存入審計日志。事后可以利用這些信息重現導致數據庫現有狀況的一系列事件,提供分析攻擊者線索的依據。

  數據庫管理系統的審計主要分為語句審計、特權審計、模式對象審計和資源審計,語句審計是指監視一個或者多個特定用戶或者所有用戶提交的SQL語句;特權審計是指監視一個或者多個特定用戶或者所有用戶使用的系統特權;模式對象審計是指監視一個模式中在一個或者多個對象上發生的行為;資源審計是指監視分配給每個用戶的系統資源。

  審計機制應該至少記錄用戶標識和認證、客體訪問、授權用戶進行並會影響系統安全的操作,以及其他安全相關事件。對於每個記錄的事件,審計記錄中需要包括事件時間、用戶、時間類型、事件數據和事件的成功/失敗情況。對於標識和認證事件,必須記錄事件源的終端ID和源地址等;對於訪問和刪除對象的事件,則需要記錄對象的名稱。

  審計的策略庫一般由兩個方面因素構成,即數據庫本身可選的審計規則和管理員設計的觸發策略機制。當這些審計規則或策略機制一旦被觸發,則將引起相關的表操作。這些表可能是數據庫自定義的,也可能是管理員另外定義的,最終這些審計的操作都將被記錄在特定的表中以備查證。

  一般地,將審計跟蹤和數據庫日志記錄結合起來,會達到更好的安全審計效果。 對於審計粒度與審計對象的選擇,需要考慮系統運行效率與存儲空間消耗的問題。為了達到審計目的,一般必須審計到對數據庫記錄與字段一級的訪問。但這種小粒度的審計需要消耗大量的存儲空間,同時使系統的響應速度降低,給系統運行效率帶來影響。

 1.1.4.5 備份與恢復

  一個數據庫系統總是避免不了故障的發生。安全的數據庫系統必須能在系統發生故障后利用已有的數據備份,恢復數據庫到原來的狀態,並保持數據的完整性和一致性。數據庫系統所采用的備份與恢復技術,對系統的安全性與可靠性起着重要作用,也對系統的運行效率有着重大影響。

  (1)數據庫備份

  常用的數據庫備份的方法有如下3種。

  1)冷備份

  冷備份是在沒有終端用戶訪問數據庫的情況下關閉數據庫並將其備份,又稱為“脫機備份”。這種方法在保持數據完整性方面顯然最有保障,但是對於那些必須保持每天24小時、每周7天全天候運行的數據庫服務器來說,較長時間地關閉數據庫進行備份是不現實的。

  2)熱備份

  熱備份是指當數據庫正在運行時進行的備份,又稱為“聯機備份”。因為數據備份需要一段時間,而且備份大容量的數據庫還需要較長的時間,那么在此期間發生的數據更新就有可能使備份的數據不能保持完整性,這個問題的解決依賴於數據庫日志文件。

  在備份時,日志文件將需要進行數據更新的指令“堆起來”,並不進行真正的物理更新,因此數據庫能被完整地備份。備份結束后,系統再按照被日志文件“堆起來”的指令對數據庫進行真正的物理更新。可見,被備份的數據保持了備份開始時刻前的數據一致性狀態。

  熱備份操作存在如下不利因素。

  ①  如果系統在進行備份時崩潰,則堆在日志文件中的所有事務都會被丟失,即造成數據的丟失。

  ②  在進行熱備份的過程中,如果日志文件占用系統資源過大,如將系統存儲空間占用完,會造成系統不能接受業務請求的局面,對系統運行產生影響。   ③  熱備份本身要占用相當一部分系統資源,使系統運行效率下降。

  3)邏輯備份

  邏輯備份是指使用軟件技術從數據庫中導出數據並寫入一個輸出文件,該文件的格式一般與原數據庫的文件格式不同,而是原數據庫中數據內容的一個映像。因此邏輯備份文件只能用來對數據庫進行邏輯恢復,即數據導入,而不能按數據庫原來的存儲特征進行物理恢復。邏輯備份一般用於增量備份,即備份那些在上次備份以后改變的數據。

(2)數據庫恢復

  在系統發生故障后,把數據庫恢復到原來的某種一致性狀態的技術稱為“恢復”,其基本原理是利用“冗余”進行數據庫恢復。問題的關鍵是如何建立“冗余”並利用“冗余”實施數據庫恢復,即恢復策略。 數據庫恢復技術一般有3種策略,即基於備份的恢復、基於運行時日志的恢復和基於鏡像數據庫的恢復。   1)基於備份的恢復

  基於備份的恢復是指周期性地備份數據庫。當數據庫失效時,可取最近一次的數據庫備份來恢復數據庫,即把備份的數據拷貝到原數據庫所在的位置上。用這種方法,數據庫只能恢復到最近一次備份的狀態,而從最近備份到故障發生期間的所有數據庫更新將會丟失。備份的周期越長,丟失的更新數據越多。

  2)基於運行時日志的恢復

  運行時日志文件是用來記錄對數據庫每一次更新的文件。對日志的操作優先於對數據庫的操作,以確保記錄數據庫的更改。當系統突然失效而導致事務中斷時,可重新裝入數據庫的副本,把數據庫恢復到上一次備份時的狀態。然后系統自動正向掃描日志文件,將故障發生前所有提交的事務放到重做隊列,將未提交的事務放到撤銷隊列執行,這樣就可把數據庫恢復到故障前某一時刻的數據一致性狀態。

  3)基於鏡像數據庫的恢復

  數據庫鏡像就是在另一個磁盤上復制數據庫作為實時副本。

  當主數據庫更新時,DBMS自動把更新后的數據復制到鏡像數據,始終使鏡像數據和主數據保持一致性。當主庫出現故障時,可由鏡像磁盤繼續提供使用,同時DBMS自動利用鏡像磁盤數據進行數據庫恢復。

  鏡像策略可以使數據庫的可靠性大為提高,但由於數據鏡像通過復制數據實現,頻繁的復制會降低系統運行效率,因此一般在對效率要求滿足的情況下可以使用。為兼顧可靠性和可用性,可有選擇性地鏡像關鍵數據。

  數據庫的備份和恢復是一個完善的數據庫系統必不可少的一部分,目前這種技術已經廣泛應用於數據庫產品中,如Oracle數據庫提供對聯機備份、脫機備份、邏輯備份、完全數據恢復及不完全數據恢復的全面支持。

  據預測,以“數據”為核心的計算(Data Centric Computing)將逐漸取代以“應用”為核心的計算。在一些大型的分布式數據庫應用中,多備份恢復和基於數據中心的異地容災備份恢復等技術正在得到越來越多的應用。

1.1.4.6 推理控制與隱私保護

  數據庫安全中的推理是指用戶根據低密級的數據和模式的完整性約束推導出高密級的數據,造成未經授權的信息泄露,這種推理的路徑稱為“推理通道”(Inference Channel)。近年來隨着外包數據庫模式及數據挖掘技術的發展,對數據庫推理控制(Inference Control)和隱私保護(Privacy Protection)的要求也越來越高。

  (1)推理通道

  常見的推理通道有以下4種。

   ① 執行多次查詢,利用查詢結果之間的邏輯聯系進行推理。用戶一般先向數據庫發出多個查詢請求,這些查詢大多包含一些聚集類型的函數(如合計和平均值等)。然后利用返回的查詢結果,在綜合分析的基礎上推斷出高級數據信息。

   ② 利用不同級別數據之間的函數依賴進行推理分析,數據表的屬性之間常見的一種關系是“函數依賴”和“多值依賴”。這些依賴關系有可能產生推理通道,如同一病房的病人患的是同一種病,以及由參加會議的人員可以推得參與會議的公司等。

  ③ 利用數據完整性約束進行推理,例如關系數據庫的實體完整性要求每一個元組必須有一個惟一的鍵。當一個低安全級的用戶想在一個關系中插入一個元組,並且這個關系中已經存在一個具有相同鍵值的高安全級元組,那么為了維護實體的完整性,DBMS會采取相應的限制措施。低級用戶由此可以推出高級數據的存在,這就產生了一條推理通道。

  ④ 利用分級約束進行推理。一條分級約束是一條規則,它描述了對數據進行分級的標准。如果這些分級標准被用戶獲知的話,用戶有可能從這些約束自身推導出敏感數據。

  (2)  推理控制

  迄今為止,推理通道問題仍處於理論探索階段,沒有一個一勞永逸的解決方法,這是由推理通道問題本身的多樣性與不確定性所決定的。

  目前常用的推理控制方法可以分為兩類,第1類是在數據庫設計時找出推理通道,主要包括利用語義數據模型的方法和形式化的方法。這類方法都是分析數據庫的模式,然后修改數據庫設計或者提高一些數據項的安全級別來消除推理通道;第2類方法是在數據庫運行時找出推理通道,主要包括多實例方法和查詢修改方法。

   IBM Almaden研究中心的Kristen LeFevre等基於推理控制方法實現了一個隱私保護數據庫原型系統,該模型應用於Hippocratic數據庫取得了較好的隱私保護效果,是目前所知的最為典型和最為成功的隱私保護數據庫系統。系統建立了信息泄露的表語義與查詢語義模型,通過修改SQL語言查詢條件的方法來進行查詢預處理,實現了數據元素粒度的推理控制,其體系結構如圖1-2所示。

   圖1-2 基於推理控制的隱私保護數據庫體系結構 這個模型主要通過對SQL查詢語句的擴展,用Case和Join語句替換查詢來實現推理控制。經過對隱私策略規則的定義和執行,用戶可以自己決定涉及自身隱私數據的訪問策略。而數據庫可以控制未經授權用戶對敏感數據的訪問,這樣有效地實現了隱私保護。

  以上探討了數據庫的多種安全機制,有必要說明的是這些安全技術不是相互獨立的,而是彼此依賴並相互支持的。存取控制的正確性依賴於安全的用戶標識和鑒別機制,用戶標識和鑒別機制也是入侵檢測和審計的基礎。存取控制是數據庫安全最基本,也是最核心的措施,數據庫加密在帶來更高安全性的同時必然帶來運行效率和可用性的降低。折中的結果是部分敏感信息加密,為此需要推理控制和隱私保護手段的有效配合。

  所謂未雨綢繆,有備無患,備份是幾乎所有數據庫必需的日常維護工作,是數據庫恢復的前提;恢復則是數據庫安全的最后一道屏障,亡羊補牢,為時未晚。

轉載自:https://blog.csdn.net/pengjihong960/article/details/2207369


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM