《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技术 > 设计应用 > 用改进的2PLHP算法实现RTDS的定时和安全限制
用改进的2PLHP算法实现RTDS的定时和安全限制
赵 勇1, 夏志雄1, 王以鹏2
摘要: 用一个改进的高优先级二段锁(2PLHP)算法实现实时数据库并发控制的安全性限制。
Abstract:
Key words :

  摘  要: 用一個(gè)改進(jìn)的高優(yōu)先級(jí)二段鎖(2PLHP)算法實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)庫(kù)并發(fā)控制的安全性限制。

  關(guān)鍵詞: 并發(fā)控制  實(shí)時(shí)數(shù)據(jù)庫(kù)  2PLHP算法

 

  實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的定時(shí)限制可以用事務(wù)在給定時(shí)間內(nèi)完成的截止時(shí)間來(lái)表示。延誤截止時(shí)間可能導(dǎo)致系統(tǒng)失效,甚至造成損失。除了定時(shí)限制,一些實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)還要求有安全限制。當(dāng)多用戶共享數(shù)據(jù)庫(kù)而其中的一些用戶有訪問(wèn)限制時(shí),就要用到安全限制。但是,一般的安全數(shù)據(jù)庫(kù)模型不能滿足時(shí)間限制的需求。開發(fā)者的工作是要在實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)安全限制,并且當(dāng)延誤截止時(shí)間時(shí)不破壞實(shí)時(shí)性能。安全實(shí)時(shí)系統(tǒng)要同時(shí)滿足定時(shí)限制和安全限制,但它們可能發(fā)生沖突,滿足其中一個(gè)限制就要犧牲另一個(gè)限制。是保持時(shí)間限制還是安全限制由系統(tǒng)決定。如果系統(tǒng)要求安全限制和時(shí)間限制折中,則要在不違反定時(shí)限制的條件下盡可能實(shí)現(xiàn)安全限制。

  本文分析了實(shí)現(xiàn)合適的并發(fā)控制算法的實(shí)時(shí)數(shù)據(jù)庫(kù)安全控制的一些因素,提出了一個(gè)安全折衷的新方法——動(dòng)態(tài)隱藏通道控制要素(dynamic covert channel control factor)法,并提供了實(shí)現(xiàn)基于這種因素的二段鎖算法。

1 安全模型

  強(qiáng)制安全性可嚴(yán)格限制經(jīng)認(rèn)證的數(shù)據(jù)庫(kù)用戶對(duì)數(shù)據(jù)項(xiàng)的訪問(wèn),它提供高級(jí)的安全保障,被廣泛用于軍事應(yīng)用系統(tǒng)中。強(qiáng)制訪問(wèn)控制被典型地用在多級(jí)安全(MLS)數(shù)據(jù)庫(kù)中,所有的MLS模型都基于數(shù)據(jù)對(duì)象和用戶分級(jí)。數(shù)據(jù)對(duì)象有安全級(jí)別,用戶也有明確的級(jí)別。如果用戶的訪問(wèn)級(jí)別包括對(duì)象的安全級(jí)別,則該用戶能夠訪問(wèn)該對(duì)象。BLP模型定義了已廣泛用于多級(jí)安全系統(tǒng)中的二個(gè)安全性質(zhì)。(1)當(dāng)主體的級(jí)別等于或高于對(duì)象的敏感性級(jí)別時(shí),允許讀;(2)如果主體的級(jí)別等于或低于對(duì)象的敏感性級(jí)別時(shí),允許寫。BLP模型的二個(gè)特性阻止數(shù)據(jù)對(duì)象從高級(jí)別直接流向低級(jí)別。但是,當(dāng)數(shù)據(jù)對(duì)象作為事務(wù)并發(fā)執(zhí)行的結(jié)果時(shí),因?yàn)殡[藏通道(covert channel)的存在而導(dǎo)致對(duì)象從高級(jí)別非直接地流向低級(jí)別。例如,當(dāng)有高安全級(jí)別事務(wù)時(shí),低安全級(jí)別事務(wù)的結(jié)果將延時(shí)。這樣低安全級(jí)別的用戶能夠決定高級(jí)別的事務(wù),甚至可能會(huì)在延時(shí)中接受信息。

  強(qiáng)調(diào)安全性就可能因?yàn)閷?dǎo)致延誤截止時(shí)間而損失實(shí)時(shí)的完整性。如一個(gè)數(shù)據(jù)沖突中,有較早截止時(shí)間的高安全級(jí)別事務(wù)和較遲截止時(shí)間的低安全級(jí)別事務(wù),如果低安全級(jí)別事務(wù)獲得數(shù)據(jù)并阻塞高安全事務(wù),則安全性得到保障,但會(huì)違反實(shí)時(shí)限制。高安全事務(wù)有較早的截止時(shí)間,可是因?yàn)榈图?jí)別事務(wù)的阻塞可能錯(cuò)過(guò)截止時(shí)間;相反,如果要保持定時(shí)限制,就違反了隱藏通道的安全性。

2 安全控制因素

  在安全的實(shí)時(shí)系統(tǒng)中,安全性可以作為強(qiáng)調(diào)安全的標(biāo)準(zhǔn)或者作為犧牲安全性來(lái)得到更多的延誤截止時(shí)間和定時(shí)性妥協(xié)的標(biāo)準(zhǔn)。如果系統(tǒng)允許犧牲安全性得到定時(shí)性,則需要一些手段來(lái)衡量這種嚴(yán)重性。本文提出用動(dòng)態(tài)隱藏通道控制因素作為衡量手段。下面介紹隱藏通道的特性。

2.1 隱藏通道特性

  隱藏通道是指非有意泄露信息的通道,主要有三種類型:存儲(chǔ)器隱藏通道、時(shí)鐘隱藏通道和脈沖隱藏通道。隱藏通道是某一專門操作所特有的屬性,并非一般算法或協(xié)議。當(dāng)系統(tǒng)允許安全性和定時(shí)性進(jìn)行交換時(shí),必須提供衡量違反安全嚴(yán)重性的方法。當(dāng)安全性沖突解決時(shí),事務(wù)是有安全級(jí)別的。事務(wù)安全級(jí)別的不同作為衡量違反安全嚴(yán)重性的標(biāo)準(zhǔn)。相互臨近的安全級(jí)別要比分開的安全級(jí)別靠近。這樣,安全級(jí)別區(qū)別越大,隱藏通道就越嚴(yán)格。換句話說(shuō),鄰近的安全級(jí)別之間的隱藏通道沒(méi)有分開的級(jí)別嚴(yán)格。例如,假設(shè)有一安全級(jí)別按順序?yàn)?非保密級(jí)<保密級(jí)<秘密級(jí)。在非保密級(jí)和保密級(jí)之間的隱藏通道沒(méi)有非保密級(jí)和秘密級(jí)之間嚴(yán)格。

  安全實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)并發(fā)控制算法中,在使用事務(wù)的截止時(shí)間的同時(shí)使用了事務(wù)安全級(jí)別來(lái)解決數(shù)據(jù)沖突??梢韵嘈虐踩?jí)別的不同是決定是否因?yàn)榭赡軤奚〞r(shí)性而關(guān)閉隱藏通道的觀點(diǎn)。

  隱藏通道特性指在數(shù)據(jù)沖突中,如果二個(gè)事務(wù)的安全級(jí)別差別越大,則它們之間的隱藏通道就越嚴(yán)格。

  隱藏通道特性顯示后果與安全級(jí)別或訪問(wèn)級(jí)別之間的差別相關(guān)。也就是說(shuō),訪問(wèn)級(jí)別的差別越大,保持安全性和關(guān)閉隱藏通道就越重要。如果二個(gè)沖突事務(wù)是在二個(gè)極端的安全級(jí)別,打開隱藏通道的后果是最嚴(yán)重的;如果安全級(jí)別是相鄰的,則后果是最輕的;如果在同一安全級(jí)別,則不會(huì)有隱藏通道,也就不會(huì)有任何后果。

2.2 動(dòng)態(tài)隱藏通道

  有可能二個(gè)以上的事務(wù)涉及一個(gè)隱藏通道。如假設(shè)有三個(gè)事務(wù)在三個(gè)不同的安全級(jí)別,T1在秘密級(jí)層,T2在保密級(jí),T3在非保密級(jí)。假設(shè)系統(tǒng)只允許連續(xù)的級(jí)別(即級(jí)別差為1),猜想在T1和T3之間有隱藏通道,則這個(gè)隱藏通道是禁止的,因?yàn)榧?jí)別的差值大于1,而T1和T2、T2和T3之間是可以有隱藏通道的。如果允許T1和T2、T2和T3之間有隱藏通道,就不可避免地打開了T1和T3之間的隱藏通道。為了避免出現(xiàn)這種情況,就要限制T2、T3之間的通道,即使這二個(gè)事務(wù)是連續(xù)的級(jí)別。所以需要追蹤一個(gè)事務(wù)涉及的隱藏通道的記錄,就需要一個(gè)屬性來(lái)記錄一個(gè)事務(wù)涉及的隱藏通道,記為隱藏通道記錄(T)。最初,每個(gè)事務(wù)都是0記錄,只要涉及到隱藏通道,分級(jí)級(jí)別的差值就會(huì)加到先前的記錄上,如下表示:

    對(duì)所有事務(wù)T,隱藏通道記錄(T)=0    //初始化

    對(duì)所有事務(wù)TL

   If TL涉及到事務(wù)TH的隱藏通道 Then

  隱藏通道記錄(TL)=隱藏通道記錄(TL)+隱藏通道記錄(TH)

                      +訪問(wèn)級(jí)別(TH)-訪問(wèn)級(jí)別(TL)

  在TL和TH二個(gè)事務(wù)之間有一隱藏通道,TL在低級(jí)別,TH在高級(jí)別。只有TL的記錄會(huì)發(fā)生改變,因?yàn)門L是不直接收到信息的。隱藏通道記錄僅包含先前允許的隱藏通道信息,而不包含當(dāng)前的隱藏通道信息。

  現(xiàn)在用隱藏通道記錄來(lái)定義動(dòng)態(tài)隱藏通道因素(DCCF)。如果存在T1、T2,且級(jí)別(T1)>級(jí)別(T2)之間有隱藏通道,則DCCF定義如下:

  

  二個(gè)事務(wù)之間的隱藏通道只能發(fā)生一次。如果T1、T2再次發(fā)生沖突,則隱藏通道是不被允許的,這樣就能阻止二個(gè)事務(wù)重復(fù)打開一個(gè)隱藏通道。在自主訪問(wèn)控制中,用違反安全性記錄來(lái)防止再次違反也是很普遍的。例如當(dāng)一個(gè)用戶輸入密碼的錯(cuò)誤次數(shù)太多時(shí),則這個(gè)訪問(wèn)賬號(hào)將被鎖住,只有用特殊的方法才能激活這個(gè)賬號(hào)。

2.3 系統(tǒng)安全容許

  根據(jù)系統(tǒng)要求,違反安全可能容許或者不容許。這里將系統(tǒng)安全容許(SST)作為一個(gè)系統(tǒng)許可最大違反安全性的指標(biāo)。SST=0意味系統(tǒng)不允許隱藏通道,SST=1意味系統(tǒng)允許所有可能存在的隱藏通道。換句話說(shuō),SST是表示系統(tǒng)安全違反的最高限制值。如果一系統(tǒng)僅允許在二個(gè)連續(xù)的訪問(wèn)級(jí)別存在一個(gè)隱藏通道,則在此條件下,所有隱藏通道差值大于1是不允許的,定義如下:

  

  SST值越小,安全性就越重要。在下面的章節(jié)中將用SST表示安全的重要性。在安全沖突中,如果DCCF>SST,則沖突是在安全的條件下解決的,相反,沖突是在實(shí)時(shí)限制的優(yōu)先級(jí)基礎(chǔ)上解決的。

3 安全并發(fā)控制算法

  本文以上面提到的安全因素為基礎(chǔ),提出了安全2PLHP(Secure two-phase locking high priority)算法。2PLHP算法是2PL算法的改進(jìn),它的機(jī)制是使所有解決數(shù)據(jù)沖突的方法傾向于高優(yōu)先級(jí)事務(wù)。當(dāng)一個(gè)事務(wù)以沖突方式申請(qǐng)被另一事務(wù)持有的鎖時(shí),優(yōu)先級(jí)較低的持有者重啟,優(yōu)先級(jí)較高的申請(qǐng)者被授予鎖;如果申請(qǐng)者的優(yōu)先級(jí)低,它等待優(yōu)先級(jí)較高的鎖持有者釋放鎖。另外,只有當(dāng)新的讀鎖申請(qǐng)者的優(yōu)先級(jí)高于所有等待寫鎖操作時(shí),它才可以加入一組讀鎖持有者。給定T1、T2事務(wù),T1是申請(qǐng)鎖事務(wù),T2是占有鎖事務(wù),則:

  If 截止時(shí)間(T1)<截止時(shí)間(T2) Then

  Abort T2

  Else

  阻塞 T1

  2PLHP算法不能識(shí)別安全性,因此,要在申請(qǐng)鎖事務(wù)和占有鎖事務(wù)中加入安全限制。對(duì)于實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)有可能出現(xiàn)五種沖突。下面介紹每種沖突的安全2PLHP算法描述。這里,仍假設(shè)T1是申請(qǐng)鎖事務(wù),T2是占有鎖事務(wù)。

  (1)沖突1

    If 截止時(shí)間(T1)>截止時(shí)間(T2)and 訪問(wèn)級(jí)別(T1)>訪問(wèn)級(jí)別(T2)阻塞 T1   //優(yōu)先級(jí)和安全都被保持

  這種情況下的申請(qǐng)事務(wù)在低優(yōu)先級(jí)和高安全級(jí)別,申請(qǐng)事務(wù)將被退出或阻塞。這樣不會(huì)有隱藏通道,也不會(huì)違反優(yōu)先級(jí)。

  (2)沖突2

    If 截止時(shí)間(T1)>截止時(shí)間(T2)and 訪問(wèn)級(jí)別(T1)<訪問(wèn)級(jí)別(T2)

  If DCCF>SST then

    Abort T2     //保持安全性

    Else

    阻塞 T1      //保持優(yōu)先級(jí)

  此情況中的申請(qǐng)事務(wù)在低的安全級(jí)別,如果它被阻塞或退出,則一個(gè)隱藏通道將介入。但是如果申請(qǐng)事務(wù)將繼續(xù)而持有鎖的事務(wù)退出的話,將違反優(yōu)先級(jí)。這時(shí)需要計(jì)算T2退出的DCCF值,如果DCCF大于SST,則持有鎖事務(wù)將退出,否則申請(qǐng)鎖事務(wù)將被阻塞。

  (3)沖突3

    If 截止時(shí)間(T1)<截止時(shí)間(T2)and 訪問(wèn)級(jí)別(T1)>訪問(wèn)級(jí)別(T2)

    If DCCF>SST then

    Abort T1    //保持安全性

    Else

    Abort T2    //保持優(yōu)先級(jí)

  此情況下的申請(qǐng)事務(wù)有高優(yōu)先級(jí)和高訪問(wèn)級(jí)別,如果持有鎖事務(wù)退出,將打開一個(gè)隱藏通道。這時(shí)需要計(jì)算T2退出的DCCF值,如果DCCF大于SST,則T2允許繼續(xù)和T1退出,否則賦予T1鎖,T2退出。

  (4)沖突4

    If 截止時(shí)間(T1)<截止時(shí)間(T2)and 訪問(wèn)級(jí)別(T1)<訪問(wèn)級(jí)別(T2)

    If DCCF>SST then

    Abort T2     //保持安全性和優(yōu)先級(jí)

  此情況下,申請(qǐng)事務(wù)在低安全級(jí)別和高優(yōu)先級(jí),能夠通過(guò)退出T2來(lái)解決沖突。優(yōu)先級(jí)將保持,也不會(huì)介入隱藏通道。

  (5)沖突5

    Else If 訪問(wèn)級(jí)別(T1)=訪問(wèn)級(jí)別(T2)

    If 截止時(shí)間(T1)<截止時(shí)間(T2) then

    退出 T2

    Else

    阻塞 T1

    在這種情況下,二個(gè)事務(wù)有相同的安全級(jí)別,因此沒(méi)有隱藏通道。沖突根據(jù)2PLHP算法解決。

  安全2PLHP使用的SST值的選擇很重要,它提供了在系統(tǒng)中保持優(yōu)先級(jí)和安全性的方法。SST值越小,保持安全性越重要,在安全性的條件下解決沖突花費(fèi)的時(shí)間越多。當(dāng)事務(wù)沖突在低安全級(jí)別時(shí),為系統(tǒng)選擇合適的SST值,就能夠保留100%的隱藏通道。要保證沖突2和沖突3的DCCF值,并使DCCF大于SST,則任何情況下SST大于DCCF都將違反安全性。

  盡管2PL算法會(huì)發(fā)生死鎖,但2PLHP算法和安全2PLHP算法可以避免死鎖,只是在安全沖突中會(huì)延誤事務(wù)的截止時(shí)間。

4 性能評(píng)價(jià)

  圖1顯示二種算法在SST=0時(shí)延誤截止時(shí)間的比例。二種算法的明顯區(qū)別是在比例為15到25之間,這時(shí)候安全2PLHP算法的延誤截止時(shí)間比例要高于2PLHP算法。在以后二種算法相差不大。

 

  安全2PLHP算法可以識(shí)別隱藏通道,因此,用這種方法安全因素是提高的,如圖2所示。在2PLHP算法中安全因素是不穩(wěn)定的,在0.5之間徘徊。而安全2PLHP算法顯示安全因素等于1,意味所有隱藏通道都是自由的。

 

  結(jié)果顯示,雖然強(qiáng)調(diào)安全2PLHP算法的安全性,但不要過(guò)多地犧牲實(shí)時(shí)限制。這是因?yàn)樾枰獜?qiáng)調(diào)安全性的數(shù)據(jù)沖突并沒(méi)有違反基于截止時(shí)間的優(yōu)先級(jí)。增加安全性意味低安全級(jí)別的事務(wù)有更多的沖突需要解決。如果低安全級(jí)別的事務(wù)有更晚的截止時(shí)間,則強(qiáng)調(diào)安全性意味失去優(yōu)先級(jí)。但如果有更早的截止時(shí)間,則優(yōu)先級(jí)將可保持。因此獲得完全的安全性并不意味失去所有的實(shí)時(shí)限制。

5 小 結(jié)

  本文介紹了安全實(shí)時(shí)數(shù)據(jù)庫(kù)的特性,提出了新的并發(fā)控制算法——安全2PLHP算法。安全2PLHP算法可以用在需要保證定時(shí)而控制安全級(jí)別的系統(tǒng)中,也可以用在安全性可以和實(shí)時(shí)限制折中的系統(tǒng)中,即犧牲安全性而更多地保證實(shí)時(shí)性的系統(tǒng)中。結(jié)果顯示安全2PLHP算法比2PLHP算法更能保證安全性和定時(shí)限制。在安全2PLHP算法中可以選擇安全容忍值、合適的容忍值,可以有100%的隱藏通道。

 

參考文獻(xiàn)

1 Ahmed Q N,Vrbsky S V.Issues in security for realtime databases.In:Proceedings of the ACMSE Confer-

ence,1998

2 David R,Son S H,Mukkamala R.Supporting security requirements in multilevel real-time databases.IEEE

Transactions on Knowledge and Data Engineering, 2000;12(6)

3  李國(guó)威,劉云生.實(shí)時(shí)數(shù)據(jù)庫(kù)并發(fā)控制.小型微型計(jì)算機(jī)系

   統(tǒng),2001;(12)

4  許倩霞.多級(jí)安全面向?qū)ο髷?shù)據(jù)庫(kù)的并發(fā)控制模型.微型機(jī)

   與應(yīng)用,1998;(9)

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

相關(guān)內(nèi)容