《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 一種模糊級別的多級安全關(guān)系數(shù)據(jù)模型研究
一種模糊級別的多級安全關(guān)系數(shù)據(jù)模型研究
來源:微型機(jī)與應(yīng)用2010年第17期
王六平,魯建愷,張偉林
(湖南師范大學(xué),湖南 長沙410081)
摘要: 基于多實(shí)例的思想提出了一種新的模糊級別的多級安全模型,將多個(gè)僅密級不同的元組合并表示,并用安全模式來表示元組所適用的密級,只要主體的許可級別匹配此安全模式,便可存取此元組。這種模型解決了現(xiàn)有多級安全數(shù)據(jù)模型中存在的數(shù)據(jù)冗余度大及隱通道等問題。
Abstract:
Key words :

 摘  要: 基于多實(shí)例的思想提出了一種新的模糊級別的多級安全模型,將多個(gè)僅密級不同的元組合并表示,并用安全模式來表示元組所適用的密級,只要主體的許可級別匹配此安全模式,便可存取此元組。這種模型解決了現(xiàn)有多級安全數(shù)據(jù)模型中存在的數(shù)據(jù)冗余度大及隱通道等問題。
關(guān)鍵詞: 多級安全;多實(shí)例;數(shù)據(jù)模型;合并;安全模式

    現(xiàn)有的多級安全數(shù)據(jù)模型都遵循BLP模型[1]中提出的“向下讀,向上寫”的多級關(guān)系的強(qiáng)制訪問控制規(guī)則,從而確保信息的向上單向流動。然而,在大多數(shù)應(yīng)用中,主體(用戶或程序)和客體的敏感度很難嚴(yán)格地劃分等級,只存在一些模糊級別。許可級別高的用戶未必一定允許查看密級(表示該客體所包含信息的敏感度)低的信息,例如:一個(gè)許可級別較高的用戶不允許查看另一部門的較低密級的信息。
    另外,在一般的多級安全關(guān)系數(shù)據(jù)庫中,為了對低許可級的主體隱藏高密級的敏感信息,引入了多實(shí)例(Polyinstantiation)和偽元組(Cover Story)的概念,使得真實(shí)世界的單個(gè)實(shí)體在一個(gè)多級關(guān)系表中會產(chǎn)生多個(gè)元組,每個(gè)元組對應(yīng)著不同密級的實(shí)例,并為每個(gè)字段設(shè)置相應(yīng)的密級附加字段,以記錄各數(shù)據(jù)項(xiàng)的密級信息。當(dāng)不同實(shí)例間的數(shù)據(jù)差異很大時(shí),這樣的設(shè)計(jì)是合理的。然而,研究表明實(shí)際應(yīng)用時(shí),數(shù)據(jù)庫中敏感數(shù)據(jù)(即需要對低許可級主體隱藏的數(shù)據(jù))所占的比例通常僅僅只有約5%[2],這意味著多實(shí)例間的數(shù)據(jù)差異通常非常小,高密級的元組除個(gè)別字段外,絕大部分?jǐn)?shù)據(jù)(90%以上)與低密級元組相同[3],造成數(shù)據(jù)的大量冗余,而且數(shù)據(jù)定義與操縱規(guī)則相當(dāng)復(fù)雜。
    為了解決上述問題,本文提出了一種新的模糊級別的多級安全關(guān)系數(shù)據(jù)庫模型,采用類似于“同級讀,同級寫”的原則,既可以防止“高”許可級用戶查看或修改“低”密級的信息,造成信息泄漏;又可以防止“低”許可級主體修改“高”密級的數(shù)據(jù),形成隱通道,還可以通過多密級共享元組來減少數(shù)據(jù)冗余。
1 對基于多實(shí)例的多級關(guān)系的改進(jìn)
    當(dāng)不同的元組具有相同的主鍵,卻具有不同的密級時(shí),稱為多實(shí)例。在給定的格中,對每一個(gè)許可級都有一個(gè)關(guān)系實(shí)例,代表該許可級的用戶眼中的數(shù)據(jù)版本。例如,對關(guān)系模式R而言,實(shí)例RC就是許可級為C的用戶所看到的元組的集合。多實(shí)例是一個(gè)應(yīng)用多級安全的系統(tǒng)所固有的屬性[4-5]。
    在SeaView[6]和Jajodia、Sandhu[4-5,7]等人對多級安全數(shù)據(jù)模型的研究中,對每一個(gè)屬性定義其相應(yīng)的密級,并引入了多實(shí)例,但由于采用“向下讀,向上寫”的規(guī)則,因此,存在隱匿通道問題。參考文獻(xiàn)[8]中引入了主從表,通過在從表中讀寫偽元組來消除隱通道問題,但按照這些規(guī)則進(jìn)行讀寫操作后,大部分元組的各屬性的密級最終都會與元組的密級相同。因此,本模型直接將各屬性的密級屬性去掉,只留下元組的密級屬性;參考文獻(xiàn)[9]直接去掉了屬性的密級屬性,只留下元組的密級屬性TC,但要求為實(shí)體的每一種許可級定義一個(gè)實(shí)例。然而根據(jù)前面的分析,實(shí)際應(yīng)用中不同密級實(shí)例的大部分屬性值可能是相同的,甚至可能只是元組密級屬性TC值不同而已,造成大量的冗余數(shù)據(jù),而且,當(dāng)許可級較多時(shí),數(shù)據(jù)的冗余量將會成倍增長。因此,為了進(jìn)一步減少冗余,本模型再將所有屬性值均相同的多個(gè)不同密級的元組合并成一個(gè)元組,用一種類似于通配符的數(shù)據(jù),即安全模式(Security Pattern)來表示這些密級。強(qiáng)制訪問控制就是通過對比主體的許可級別和客體的安全模式是否匹配來確定主體是否能夠存取客體。
    安全模式定義及其運(yùn)算規(guī)則。

    因此,一個(gè)改進(jìn)后的多級關(guān)系可以定義為:
    定義2:設(shè)有R(A1,A2,…,An,SP),其中,Ai是定義在域Di上的數(shù)據(jù)屬性,SP表示元組的密級屬性,SP的值為安全模式,為所有有權(quán)訪問該元組的主體所支配。稱R為多級關(guān)系模式。
    可見本模型不僅形式簡單,而且由于它保持了標(biāo)準(zhǔn)關(guān)系數(shù)據(jù)庫的特點(diǎn),因此易于在目前常見的DBMS上實(shí)現(xiàn)。又由于本模型不同于其他學(xué)者提出的模式,不再用屬性TC來表示某一個(gè)密級別,而是一種稱為安全模式的數(shù)據(jù)來表示多個(gè)密級別,只有許可級別與此安全模式匹配的主體才可以訪問此元組,類似于“同級讀,同級寫”的訪問控制規(guī)則,顯然不可能泄漏敏感數(shù)據(jù),也不存在隱通道。
2 模型的完整性規(guī)則
    由于本模型擴(kuò)展了標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)模型,引入了元組密級屬性,為了保證數(shù)據(jù)庫中數(shù)據(jù)的完整性和一致性,本模型對標(biāo)準(zhǔn)關(guān)系模式的完整性規(guī)則進(jìn)行了增強(qiáng)。
2.1 實(shí)體完整性
    本模型中,在標(biāo)準(zhǔn)關(guān)系模式的基礎(chǔ)上增加了表示元組密級的屬性SP,標(biāo)準(zhǔn)關(guān)系模式的直覺意義上的主鍵,稱外觀主鍵AK(Apparent primary Key),真正的主鍵是外觀主鍵加元組密級屬性(即AK∪SP)。
    實(shí)體完整性:多級關(guān)系R的一個(gè)實(shí)例r滿足實(shí)體完整性,當(dāng)且僅當(dāng),對r的所有元組t,若Ai∈AK則t[Ai]≠null且t[SP]≠null。即假定AK是定義在關(guān)系模式R上的外觀主鍵,構(gòu)成AK的所有屬性均不能為空,元組的密級屬性SP也不能為空。
2.2 參照完整性
    參照完整性:R和S為多級關(guān)系,S參照了R,AKr為R的外觀主鍵,F(xiàn)Ks為S的外鍵,許可級別為c的主體所支配的R的實(shí)例rc和S的實(shí)例sc滿足參照完整性,對sc的所有元組ts,或者ts[FKs]=null,或者存在tr∈rc且tr[AKr]=ts[FKs]和tr[SP]&ts[SP]&c=c。
    任何元組只能參照其他關(guān)系(或自身)中存在的元組,且參照及被參照的元組必須受同一許可級別主體支配。
2.3 實(shí)例間完整性
    實(shí)例間完整性反映的是對給定格的所有密級,其對應(yīng)的各個(gè)實(shí)例之間的聯(lián)系和約束。
    由于本模型中討論的是模糊級別的格,采用的是類似于“同級讀,同級寫”的規(guī)則,故不保證一個(gè)實(shí)體在不同的許可級的關(guān)系實(shí)例中均可見。如果不可見,則表明本許可級別未被授權(quán)存取此實(shí)體。但如果實(shí)體的兩個(gè)實(shí)例所有屬性值均相同時(shí),可用同一個(gè)實(shí)例來表示,并在此實(shí)例的SP屬性中將這兩個(gè)密級合并表示。
 
    此規(guī)則要求對于任意許可級別c和任意實(shí)體,多級關(guān)系R中至多存在一個(gè)實(shí)例t受許可級別為c的用戶支配。
    在一個(gè)關(guān)系中可能有多個(gè)實(shí)例具有相同的AK值,但主體在任何密級最多只能接受1個(gè)AK值的實(shí)例。對某個(gè)特定許可級的關(guān)系,其所有元組的密級均受此許可級c支配,而且是其支配的元組的唯一代表,而密級屬性的存在對用戶是透明的,因此在用戶眼中,仍是AK→Ai(AiAK),保持了標(biāo)準(zhǔn)關(guān)系模型中的函數(shù)依賴特性。為了禁止一個(gè)實(shí)體在同一密級中的多實(shí)例存在,首先要求多級關(guān)系中的主鍵為AK∪SP,然后再通過讀寫規(guī)則加以控制。
3 讀寫規(guī)則
3.1 讀規(guī)則

    在本模型中,不是為每一密級創(chuàng)建1個(gè)元組,而可能是多密級別共享1個(gè)元組。每個(gè)密級別對應(yīng)的關(guān)系實(shí)例的元組為多級關(guān)系中可由此許可級主體支配的元組組成。因此本模型中讀規(guī)則為:用戶在其有效的讀范圍內(nèi),讀取元組安全模式SP值與主體許可級匹配的元組。如果某AK值對應(yīng)的所有元組中所有SP值都與主體許可級不匹配,表明此實(shí)體的所有信息均對此主體隱藏了。
    例1:假設(shè)某情報(bào)機(jī)構(gòu)使用MLS數(shù)據(jù)庫記錄職員的信息。假定系統(tǒng)中密級分為四級分別是a、b、c、d(分別用1000,0100,0010,0001表示)。系統(tǒng)中存在2個(gè)多級關(guān)系:職員關(guān)系Empl與部門關(guān)系Dept,外觀主鍵分別為EName和DName,元組如表1、表2所示(其中SP部分的字段對用戶是透明的,下同)。

    根據(jù)上面的讀規(guī)則,許可級別為的a,b,c,d的用戶看到兩表的關(guān)系實(shí)例如表3~表8所示。
   
   

    不同級別的用戶,Empl引用的DName都是Dept中存在的DName,而且是受同許可級的主體支配??梢?,不同用戶視圖都滿足參照完整性。同樣本例中多級安全數(shù)據(jù)庫滿足前述的其他各項(xiàng)完整性約束規(guī)則。
3.2 插入操作
    情形1:對單個(gè)多級關(guān)系的插入操作。
    (1)檢查多級關(guān)系的用戶視圖中是否存在與待插入的外觀主鍵值相同的元組,如果存在則插入失??;否則按步驟(2)進(jìn)行;
    (2)檢查多級關(guān)系中是否存在各數(shù)據(jù)項(xiàng)與待插入元組各數(shù)據(jù)項(xiàng)相同的元組,如果存在則將此元組的SP值sp用sp&c代替(c代表執(zhí)行插入操作的用戶的許可級),插入完成;否則繼續(xù)下面的步驟。
    (3)插入此元組,并將該元組的密級屬性置為用戶的許可級。
    例2:許可級為b的用戶執(zhí)行以下插入語句:insert into Dept values(‘機(jī)要’,‘1-101’),插入后的效果如表9所示。

    情形2:若是對有外鍵的多級關(guān)系進(jìn)行插入操作,還要滿足參照的完整性。亦即先檢查被參照關(guān)系的用戶視圖中是否存在相應(yīng)AK=fk(fk表示待插入元組的外鍵值),若存在,則直接按情形1完成插入操作;否則,插入失敗。
    例3:許可級為b的用戶執(zhí)行以下插入語句:insert into Empl values(‘王平’,‘機(jī)要’),由于在Dept的b用戶視圖中不存在AK=‘機(jī)要’的元組,故插入失敗。但d級用戶卻可以成功執(zhí)行此插入操作,成功操作后結(jié)果如表10、表11所示。

3.3 更新操作
    由于在本模型中,將多個(gè)不同的密級元組合并成1個(gè)元組,因此,1個(gè)元組可能代表多個(gè)密級的實(shí)例,一個(gè)許可級主體的更新操作不應(yīng)該影響其他許可級的視圖。
    (1)檢查待更新的元組的SP值是否為某單個(gè)密級(即二進(jìn)制數(shù)只有一位為1,下同),若是,則表明此次更新不會影響其他許可級的視圖,因此可按標(biāo)準(zhǔn)關(guān)系模型的更新操作進(jìn)行;否則,按以下步驟。
    (2)先將此元組的SP值sp更新為sp&~c(c表示執(zhí)行更新操作的主體的許可級,下同),再按“插入操作”插入新元組,新元組各項(xiàng)為待更新的元組的新值。
    例4:許可級為b的用戶欲執(zhí)行命令:update dept set addr=‘4-201’ where DName=‘管理’,根據(jù)表6可見,元組{管理,3-201,1100}代表了a、b密級的實(shí)例。為了不影響a的實(shí)例,先將此元組的SP從1100更新為1000,再執(zhí)行插入操作:insert into dept values(‘管理’,‘4-201’)。
3.4 刪除操作
    在本模型中,1個(gè)元組可能代表多個(gè)密級的元組,故刪除規(guī)則應(yīng)按下面的步驟進(jìn)行:
    (1)檢查待刪除元組的SP值是否為某單個(gè)密級,若是,則可按標(biāo)準(zhǔn)關(guān)系模型的刪除操作進(jìn)行。否則,按以下步驟。
    (2)先將此元組的SP值sp更新為sp&~c(c表示執(zhí)行刪除操作的主體的許可級)。
    本模型繼承了多實(shí)例的概念,并作了改進(jìn)。如果多個(gè)實(shí)例僅僅只有元組的密級屬性不同,則直接將這些實(shí)例用1個(gè)元組表示,其SP值為這些密級屬性的并集,由于實(shí)際應(yīng)用中敏感數(shù)據(jù)很少,故這種規(guī)則在應(yīng)用中是合理的,從而大大減少了數(shù)據(jù)的冗余。
    本文提出的多級關(guān)系數(shù)據(jù)模型中使用類似“同級讀,同級寫”的規(guī)則,任何許可級的用戶都無法看到其他密級的元組(除非與此許可級用戶共享該元組),同時(shí),也無法修改其他密級的元組(即使與此許可級用戶共享元組,修改也不會影響其他許可級的用戶視圖),既避免了隱通道,又防止了敏感數(shù)據(jù)的泄漏。
參考文獻(xiàn)
[1] BELL D E, LAPADULA L J P. Secure computer system: Unified exposition and multics interpretation[R]. Tech Rep MTR-2997, MITRE Corp, Bedford, MA, 1975.
[2] SANDHU R, CHEN F. The multilevel relational (MLR) data model[J]. Transactions on Information and System Security, 1998:1(1):93-132.
[3] 馮朝陽,岳麗華,翟小棟,等.一種緊湊的多級安全關(guān)系數(shù)據(jù)模型[J].計(jì)算機(jī)工程與應(yīng)用,2005(4):170-174.
[4] JAJODIA S, SANDHU R, SIBLEY E. Update semantics for multilevel relations[J]. In Proceedings of the 6th Annual Computer Security Applications Conference. 1990(10):103-112.
[5] JAJODIA S, SANDHU R. Polyinstantiation integrity in multilevel relations[C]. IEEE Symposium on Security and Privacy, 1990.
[6] DENNING D E, LUNT T F. The seaview security model[C]. IEEE Symposium on Security and Privacy, 1998.
[7] JAJODIA S, SANDHU R, LUNT T F. A new polyins-tantiation integrity constraint for multilevel relations[C]. IEEE Work-shop on Computer Security Foundations, 1990.
[8] 武立福,毛宇光.一種改進(jìn)的多級安全關(guān)系數(shù)據(jù)模型[J].計(jì)算機(jī)應(yīng)用,2003,23(7):103-108.
[9] 馮玉才,張勇.多實(shí)例的多級安全關(guān)系數(shù)據(jù)庫數(shù)據(jù)模型研究[J].小型微型計(jì)算機(jī)系統(tǒng),2003,24(3):452-455.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。