多級安全(Multilevel security,簡稱MLS ),是指計算機網絡系統可以處理多個不同密級的信息并保證它們的保密性安全的一種解決方案。多級安全系統,滿足BLP保密性模型,即用戶根據其安全許可(Security Clearance)和知悉范圍(Need to Know,簡稱N2K),滿足“不上讀”和“不下寫”兩個安全屬性。滿足BLP模型的系統被證明其保密性是安全的,即基本安全定理。顧名思義,多級安全系統滿足BLP模型,低密級用戶不能上讀高密級信息,高密級用戶不能向低密級系統或網絡上寫高密級信息。這兩種情形都造成了高密級信息向低密級用戶的泄漏,是被禁止的情形。
另外,在一般的多級安全關系數據庫中,為了對低許可級的主體隱藏高密級的敏感信息,引入了多實例(Polyinstantiation)和偽元組(Cover Story)的概念,使得真實世界的單個實體在一個多級關系表中會產生多個元組,每個元組對應著不同密級的實例,并為每個字段設置相應的密級附加字段,以記錄各數據項的密級信息。當不同實例間的數據差異很大時,這樣的設計是合理的。然而,研究表明實際應用時,數據庫中敏感數據(即需要對低許可級主體隱藏的數據)所占的比例通常僅僅只有約5%,這意味著多實例間的數據差異通常非常小,高密級的元組除個別字段外,絕大部分數據(90%以上)與低密級元組相同[3],造成數據的大量冗余,而且數據定義與操縱規則相當復雜。
為了解決上述問題,本文提出了一種新的模糊級別的多級安全關系數據庫模型,采用類似于“同級讀,同級寫”的原則,既可以防止“高”許可級用戶查看或修改“低”密級的信息,造成信息泄漏;又可以防止“低”許可級主體修改“高”密級的數據,形成隱通道,還可以通過多密級共享元組來減少數據冗余。
1 對基于多實例的多級關系的改進
當不同的元組具有相同的主鍵,卻具有不同的密級時,稱為多實例。在給定的格中,對每一個許可級都有一個關系實例,代表該許可級的用戶眼中的數據版本。例如,對關系模式R而言,實例RC就是許可級為C的用戶所看到的元組的集合。多實例是一個應用多級安全的系統所固有的屬性[4-5]。
在SeaView[6]和Jajodia、Sandhu[4-5,7]等人對多級安全數據模型的研究中,對每一個屬性定義其相應的密級,并引入了多實例,但由于采用“向下讀,向上寫”的規則,因此,存在隱匿通道問題。然而根據前面的分析,實際應用中不同密級實例的大部分屬性值可能是相同的,甚至可能只是元組密級屬性TC值不同而已,造成大量的冗余數據,而且,當許可級較多時,數據的冗余量將會成倍增長。因此,為了進一步減少冗余,本模型再將所有屬性值均相同的多個不同密級的元組合并成一個元組,用一種類似于通配符的數據,即安全模式(Security Pattern)來表示這些密級。強制訪問控制就是通過對比主體的許可級別和客體的安全模式是否匹配來確定主體是否能夠存取客體。
安全模式定義及其運算規則。
因此,一個改進后的多級關系可以定義為:
定義2:設有R(A1,A2,…,An,SP),其中,Ai是定義在域Di上的數據屬性,SP表示元組的密級屬性,SP的值為安全模式,為所有有權訪問該元組的主體所支配。稱R為多級關系模式。
可見本模型不僅形式簡單,而且由于它保持了標準關系數據庫的特點,因此易于在目前常見的DBMS上實現。又由于本模型不同于其他學者提出的模式,不再用屬性TC來表示某一個密級別,而是一種稱為安全模式的數據來表示多個密級別,只有許可級別與此安全模式匹配的主體才可以訪問此元組,類似于“同級讀,同級寫”的訪問控制規則,顯然不可能泄漏敏感數據,也不存在隱通道。
2 模型的完整性規則
由于本模型擴展了標準的關系數據模型,引入了元組密級屬性,為了保證數據庫中數據的完整性和一致性,本模型對標準關系模式的完整性規則進行了增強。
2.1 實體完整性
本模型中,在標準關系模式的基礎上增加了表示元組密級的屬性SP,標準關系模式的直覺意義上的主鍵,稱外觀主鍵AK(Apparent primary Key),真正的主鍵是外觀主鍵加元組密級屬性(即AK∪SP)。
實體完整性:多級關系R的一個實例r滿足實體完整性,當且僅當,對r的所有元組t,若Ai∈AK則t[Ai]≠null且t[SP]≠null。即假定AK是定義在關系模式R上的外觀主鍵,構成AK的所有屬性均不能為空,元組的密級屬性SP也不能為空。
2.2 參照完整性
參照完整性:R和S為多級關系,S參照了R,AKr為R的外觀主鍵,FKs為S的外鍵,許可級別為c的主體所支配的R的實例rc和S的實例sc滿足參照完整性,對sc的所有元組ts,或者ts[FKs]=null,或者存在tr∈rc且tr[AKr]=ts[FKs]和tr[SP]&ts[SP]&c=c。
任何元組只能參照其他關系(或自身)中存在的元組,且參照及被參照的元組必須受同一許可級別主體支配。
2.3 實例間完整性
實例間完整性反映的是對給定格的所有密級,其對應的各個實例之間的聯系和約束。
由于本模型中討論的是模糊級別的格,采用的是類似于“同級讀,同級寫”的規則,故不保證一個實體在不同的許可級的關系實例中均可見。如果不可見,則表明本許可級別未被授權存取此實體。但如果實體的兩個實例所有屬性值均相同時,可用同一個實例來表示,并在此實例的SP屬性中將這兩個密級合并表示。
此規則要求對于任意許可級別c和任意實體,多級關系R中至多存在一個實例t受許可級別為c的用戶支配。
3 讀寫規則
3.1 讀規則
在本模型中,不是為每一密級創建1個元組,而可能是多密級別共享1個元組。每個密級別對應的關系實例的元組為多級關系中可由此許可級主體支配的元組組成。因此本模型中讀規則為:用戶在其有效的讀范圍內,讀取元組安全模式SP值與主體許可級匹配的元組。如果某AK值對應的所有元組中所有SP值都與主體許可級不匹配,表明此實體的所有信息均對此主體隱藏了。
例1:假設某情報機構使用MLS數據庫記錄職員的信息。假定系統中密級分為四級分別是a、b、c、d(分別用1000,0100,0010,0001表示)。系統中存在2個多級關系:職員關系Empl與部門關系Dept,外觀主鍵分別為EName和DName,元組如表1、表2所示(其中SP部分的字段對用戶是透明的,下同)。
根據上面的讀規則,許可級別為的a,b,c,d的用戶看到兩表的關系實例如表3~表8所示。
不同級別的用戶,Empl引用的DName都是Dept中存在的DName,而且是受同許可級的主體支配。可見,不同用戶視圖都滿足參照完整性。同樣本例中多級安全數據庫滿足前述的其他各項完整性約束規則。
3.2 插入操作
情形1:對單個多級關系的插入操作。
(1)檢查多級關系的用戶視圖中是否存在與待插入的外觀主鍵值相同的元組,如果存在則插入失敗;否則按步驟(2)進行;
(2)檢查多級關系中是否存在各數據項與待插入元組各數據項相同的元組,如果存在則將此元組的SP值sp用sp&c代替(c代表執行插入操作的用戶的許可級),插入完成;否則繼續下面的步驟。
(3)插入此元組,并將該元組的密級屬性置為用戶的許可級。
例2:許可級為b的用戶執行以下插入語句:insert into Dept values(‘機要’,‘1-101’),插入后的效果如表9所示。
情形2:若是對有外鍵的多級關系進行插入操作,還要滿足參照的完整性。亦即先檢查被參照關系的用戶視圖中是否存在相應AK=fk(fk表示待插入元組的外鍵值),若存在,則直接按情形1完成插入操作;否則,插入失敗。
3.3 更新操作
由于在本模型中,將多個不同的密級元組合并成1個元組,因此,1個元組可能代表多個密級的實例,一個許可級主體的更新操作不應該影響其他許可級的視圖。
(1)檢查待更新的元組的SP值是否為某單個密級(即二進制數只有一位為1,下同),若是,則表明此次更新不會影響其他許可級的視圖,因此可按標準關系模型的更新操作進行;否則,按以下步驟。
(2)先將此元組的SP值sp更新為sp&~c(c表示執行更新操作的主體的許可級,下同),再按“插入操作”插入新元組,新元組各項為待更新的元組的新值。
例4:許可級為b的用戶欲執行命令:update dept set addr=‘4-201’ where DName=‘管理’,根據表6可見,元組{管理,3-201,1100}代表了a、b密級的實例。為了不影響a的實例,先將此元組的SP從1100更新為1000,再執行插入操作:insert into dept values(‘管理’,‘4-201’)。
3.4 刪除操作
在本模型中,1個元組可能代表多個密級的元組,故刪除規則應按下面的步驟進行:
(1)檢查待刪除元組的SP值是否為某單個密級,若是,則可按標準關系模型的刪除操作進行。否則,按以下步驟。
(2)先將此元組的SP值sp更新為sp&~c(c表示執行刪除操作的主體的許可級)。
本模型繼承了多實例的概念,并作了改進。如果多個實例僅僅只有元組的密級屬性不同,則直接將這些實例用1個元組表示,其SP值為這些密級屬性的并集,由于實際應用中敏感數據很少,故這種規則在應用中是合理的,從而大大減少了數據的冗余。
本文提出的多級關系數據模型中使用類似“同級讀,同級寫”的規則,任何許可級的用戶都無法看到其他密級的元組(除非與此許可級用戶共享該元組),同時,也無法修改其他密級的元組(即使與此許可級用戶共享元組,修改也不會影響其他許可級的用戶視圖),既避免了隱通道,又防止了敏感數據的泄漏。
-
數據
+關注
關注
8文章
7245瀏覽量
91058 -
計算機
+關注
關注
19文章
7633瀏覽量
90235 -
網絡系統
+關注
關注
0文章
85瀏覽量
25704
發布評論請先 登錄
GPU可用的不同級別的數值精度介紹
基于面向對象數據模型的信息管理系統
基于MDA的面向對象時空數據模型研究
什么是層次數據模型、數據流量分析
什么是ActiveDirectory數據模型、數字數據網絡
概率XML數據模型的綜述

基于可信計算的多級安全策略TCBMLSP分析

評論