摘 要: 用一個改進(jìn)的高優(yōu)先級二段鎖(2PLHP)算法實現(xiàn)實時數(shù)據(jù)庫并發(fā)控制的安全性限制。
關(guān)鍵詞: 并發(fā)控制 實時數(shù)據(jù)庫 2PLHP算法
實時數(shù)據(jù)庫系統(tǒng)的定時限制可以用事務(wù)在給定時間內(nèi)完成的截止時間來表示。延誤截止時間可能導(dǎo)致系統(tǒng)失效,甚至造成損失。除了定時限制,一些實時數(shù)據(jù)庫系統(tǒng)還要求有安全限制。當(dāng)多用戶共享數(shù)據(jù)庫而其中的一些用戶有訪問限制時,就要用到安全限制。但是,一般的安全數(shù)據(jù)庫模型不能滿足時間限制的需求。開發(fā)者的工作是要在實時數(shù)據(jù)庫系統(tǒng)中實現(xiàn)安全限制,并且當(dāng)延誤截止時間時不破壞實時性能。安全實時系統(tǒng)要同時滿足定時限制和安全限制,但它們可能發(fā)生沖突,滿足其中一個限制就要犧牲另一個限制。是保持時間限制還是安全限制由系統(tǒng)決定。如果系統(tǒng)要求安全限制和時間限制折中,則要在不違反定時限制的條件下盡可能實現(xiàn)安全限制。
本文分析了實現(xiàn)合適的并發(fā)控制算法的實時數(shù)據(jù)庫安全控制的一些因素,提出了一個安全折衷的新方法——動態(tài)隱藏通道控制要素(dynamic covert channel control factor)法,并提供了實現(xiàn)基于這種因素的二段鎖算法。
1 安全模型
強制安全性可嚴(yán)格限制經(jīng)認(rèn)證的數(shù)據(jù)庫用戶對數(shù)據(jù)項的訪問,它提供高級的安全保障,被廣泛用于軍事應(yīng)用系統(tǒng)中。強制訪問控制被典型地用在多級安全(MLS)數(shù)據(jù)庫中,所有的MLS模型都基于數(shù)據(jù)對象和用戶分級。數(shù)據(jù)對象有安全級別,用戶也有明確的級別。如果用戶的訪問級別包括對象的安全級別,則該用戶能夠訪問該對象。BLP模型定義了已廣泛用于多級安全系統(tǒng)中的二個安全性質(zhì)。(1)當(dāng)主體的級別等于或高于對象的敏感性級別時,允許讀;(2)如果主體的級別等于或低于對象的敏感性級別時,允許寫。BLP模型的二個特性阻止數(shù)據(jù)對象從高級別直接流向低級別。但是,當(dāng)數(shù)據(jù)對象作為事務(wù)并發(fā)執(zhí)行的結(jié)果時,因為隱藏通道(covert channel)的存在而導(dǎo)致對象從高級別非直接地流向低級別。例如,當(dāng)有高安全級別事務(wù)時,低安全級別事務(wù)的結(jié)果將延時。這樣低安全級別的用戶能夠決定高級別的事務(wù),甚至可能會在延時中接受信息。
強調(diào)安全性就可能因為導(dǎo)致延誤截止時間而損失實時的完整性。如一個數(shù)據(jù)沖突中,有較早截止時間的高安全級別事務(wù)和較遲截止時間的低安全級別事務(wù),如果低安全級別事務(wù)獲得數(shù)據(jù)并阻塞高安全事務(wù),則安全性得到保障,但會違反實時限制。高安全事務(wù)有較早的截止時間,可是因為低級別事務(wù)的阻塞可能錯過截止時間;相反,如果要保持定時限制,就違反了隱藏通道的安全性。
2 安全控制因素
在安全的實時系統(tǒng)中,安全性可以作為強調(diào)安全的標(biāo)準(zhǔn)或者作為犧牲安全性來得到更多的延誤截止時間和定時性妥協(xié)的標(biāo)準(zhǔn)。如果系統(tǒng)允許犧牲安全性得到定時性,則需要一些手段來衡量這種嚴(yán)重性。本文提出用動態(tài)隱藏通道控制因素作為衡量手段。下面介紹隱藏通道的特性。
2.1 隱藏通道特性
隱藏通道是指非有意泄露信息的通道,主要有三種類型:存儲器隱藏通道、時鐘隱藏通道和脈沖隱藏通道。隱藏通道是某一專門操作所特有的屬性,并非一般算法或協(xié)議。當(dāng)系統(tǒng)允許安全性和定時性進(jìn)行交換時,必須提供衡量違反安全嚴(yán)重性的方法。當(dāng)安全性沖突解決時,事務(wù)是有安全級別的。事務(wù)安全級別的不同作為衡量違反安全嚴(yán)重性的標(biāo)準(zhǔn)。相互臨近的安全級別要比分開的安全級別靠近。這樣,安全級別區(qū)別越大,隱藏通道就越嚴(yán)格。換句話說,鄰近的安全級別之間的隱藏通道沒有分開的級別嚴(yán)格。例如,假設(shè)有一安全級別按順序為:非保密級<保密級<秘密級。在非保密級和保密級之間的隱藏通道沒有非保密級和秘密級之間嚴(yán)格。
安全實時數(shù)據(jù)庫系統(tǒng)并發(fā)控制算法中,在使用事務(wù)的截止時間的同時使用了事務(wù)安全級別來解決數(shù)據(jù)沖突。可以相信安全級別的不同是決定是否因為可能犧牲定時性而關(guān)閉隱藏通道的觀點。
隱藏通道特性指在數(shù)據(jù)沖突中,如果二個事務(wù)的安全級別差別越大,則它們之間的隱藏通道就越嚴(yán)格。
隱藏通道特性顯示后果與安全級別或訪問級別之間的差別相關(guān)。也就是說,訪問級別的差別越大,保持安全性和關(guān)閉隱藏通道就越重要。如果二個沖突事務(wù)是在二個極端的安全級別,打開隱藏通道的后果是最嚴(yán)重的;如果安全級別是相鄰的,則后果是最輕的;如果在同一安全級別,則不會有隱藏通道,也就不會有任何后果。
2.2 動態(tài)隱藏通道
有可能二個以上的事務(wù)涉及一個隱藏通道。如假設(shè)有三個事務(wù)在三個不同的安全級別,T1在秘密級層,T2在保密級,T3在非保密級。假設(shè)系統(tǒng)只允許連續(xù)的級別(即級別差為1),猜想在T1和T3之間有隱藏通道,則這個隱藏通道是禁止的,因為級別的差值大于1,而T1和T2、T2和T3之間是可以有隱藏通道的。如果允許T1和T2、T2和T3之間有隱藏通道,就不可避免地打開了T1和T3之間的隱藏通道。為了避免出現(xiàn)這種情況,就要限制T2、T3之間的通道,即使這二個事務(wù)是連續(xù)的級別。所以需要追蹤一個事務(wù)涉及的隱藏通道的記錄,就需要一個屬性來記錄一個事務(wù)涉及的隱藏通道,記為隱藏通道記錄(T)。最初,每個事務(wù)都是0記錄,只要涉及到隱藏通道,分級級別的差值就會加到先前的記錄上,如下表示:
對所有事務(wù)T,隱藏通道記錄(T)=0 //初始化
對所有事務(wù)TL
If TL涉及到事務(wù)TH的隱藏通道 Then
隱藏通道記錄(TL)=隱藏通道記錄(TL)+隱藏通道記錄(TH)
+訪問級別(TH)-訪問級別(TL)
在TL和TH二個事務(wù)之間有一隱藏通道,TL在低級別,TH在高級別。只有TL的記錄會發(fā)生改變,因為TL是不直接收到信息的。隱藏通道記錄僅包含先前允許的隱藏通道信息,而不包含當(dāng)前的隱藏通道信息。
現(xiàn)在用隱藏通道記錄來定義動態(tài)隱藏通道因素(DCCF)。如果存在T1、T2,且級別(T1)>級別(T2)之間有隱藏通道,則DCCF定義如下:

二個事務(wù)之間的隱藏通道只能發(fā)生一次。如果T1、T2再次發(fā)生沖突,則隱藏通道是不被允許的,這樣就能阻止二個事務(wù)重復(fù)打開一個隱藏通道。在自主訪問控制中,用違反安全性記錄來防止再次違反也是很普遍的。例如當(dāng)一個用戶輸入密碼的錯誤次數(shù)太多時,則這個訪問賬號將被鎖住,只有用特殊的方法才能激活這個賬號。
2.3 系統(tǒng)安全容許
根據(jù)系統(tǒng)要求,違反安全可能容許或者不容許。這里將系統(tǒng)安全容許(SST)作為一個系統(tǒng)許可最大違反安全性的指標(biāo)。SST=0意味系統(tǒng)不允許隱藏通道,SST=1意味系統(tǒng)允許所有可能存在的隱藏通道。換句話說,SST是表示系統(tǒng)安全違反的最高限制值。如果一系統(tǒng)僅允許在二個連續(xù)的訪問級別存在一個隱藏通道,則在此條件下,所有隱藏通道差值大于1是不允許的,定義如下:

SST值越小,安全性就越重要。在下面的章節(jié)中將用SST表示安全的重要性。在安全沖突中,如果DCCF>SST,則沖突是在安全的條件下解決的,相反,沖突是在實時限制的優(yōu)先級基礎(chǔ)上解決的。
3 安全并發(fā)控制算法
本文以上面提到的安全因素為基礎(chǔ),提出了安全2PLHP(Secure two-phase locking high priority)算法。2PLHP算法是2PL算法的改進(jìn),它的機制是使所有解決數(shù)據(jù)沖突的方法傾向于高優(yōu)先級事務(wù)。當(dāng)一個事務(wù)以沖突方式申請被另一事務(wù)持有的鎖時,優(yōu)先級較低的持有者重啟,優(yōu)先級較高的申請者被授予鎖;如果申請者的優(yōu)先級低,它等待優(yōu)先級較高的鎖持有者釋放鎖。另外,只有當(dāng)新的讀鎖申請者的優(yōu)先級高于所有等待寫鎖操作時,它才可以加入一組讀鎖持有者。給定T1、T2事務(wù),T1是申請鎖事務(wù),T2是占有鎖事務(wù),則:
If 截止時間(T1)<截止時間(T2) Then
Abort T2
Else
阻塞 T1
2PLHP算法不能識別安全性,因此,要在申請鎖事務(wù)和占有鎖事務(wù)中加入安全限制。對于實時數(shù)據(jù)庫系統(tǒng)有可能出現(xiàn)五種沖突。下面介紹每種沖突的安全2PLHP算法描述。這里,仍假設(shè)T1是申請鎖事務(wù),T2是占有鎖事務(wù)。
(1)沖突1
If 截止時間(T1)>截止時間(T2)and 訪問級別(T1)>訪問級別(T2)阻塞 T1 //優(yōu)先級和安全都被保持
這種情況下的申請事務(wù)在低優(yōu)先級和高安全級別,申請事務(wù)將被退出或阻塞。這樣不會有隱藏通道,也不會違反優(yōu)先級。
(2)沖突2
If 截止時間(T1)>截止時間(T2)and 訪問級別(T1)<訪問級別(T2)
If DCCF>SST then
Abort T2 //保持安全性
Else
阻塞 T1 //保持優(yōu)先級
此情況中的申請事務(wù)在低的安全級別,如果它被阻塞或退出,則一個隱藏通道將介入。但是如果申請事務(wù)將繼續(xù)而持有鎖的事務(wù)退出的話,將違反優(yōu)先級。這時需要計算T2退出的DCCF值,如果DCCF大于SST,則持有鎖事務(wù)將退出,否則申請鎖事務(wù)將被阻塞。
(3)沖突3
If 截止時間(T1)<截止時間(T2)and 訪問級別(T1)>訪問級別(T2)
If DCCF>SST then
Abort T1 //保持安全性
Else
Abort T2 //保持優(yōu)先級
此情況下的申請事務(wù)有高優(yōu)先級和高訪問級別,如果持有鎖事務(wù)退出,將打開一個隱藏通道。這時需要計算T2退出的DCCF值,如果DCCF大于SST,則T2允許繼續(xù)和T1退出,否則賦予T1鎖,T2退出。
(4)沖突4
If 截止時間(T1)<截止時間(T2)and 訪問級別(T1)<訪問級別(T2)
If DCCF>SST then
Abort T2 //保持安全性和優(yōu)先級
此情況下,申請事務(wù)在低安全級別和高優(yōu)先級,能夠通過退出T2來解決沖突。優(yōu)先級將保持,也不會介入隱藏通道。
(5)沖突5
Else If 訪問級別(T1)=訪問級別(T2)
If 截止時間(T1)<截止時間(T2) then
退出 T2
Else
阻塞 T1
在這種情況下,二個事務(wù)有相同的安全級別,因此沒有隱藏通道。沖突根據(jù)2PLHP算法解決。
安全2PLHP使用的SST值的選擇很重要,它提供了在系統(tǒng)中保持優(yōu)先級和安全性的方法。SST值越小,保持安全性越重要,在安全性的條件下解決沖突花費的時間越多。當(dāng)事務(wù)沖突在低安全級別時,為系統(tǒng)選擇合適的SST值,就能夠保留100%的隱藏通道。要保證沖突2和沖突3的DCCF值,并使DCCF大于SST,則任何情況下SST大于DCCF都將違反安全性。
盡管2PL算法會發(fā)生死鎖,但2PLHP算法和安全2PLHP算法可以避免死鎖,只是在安全沖突中會延誤事務(wù)的截止時間。
4 性能評價
圖1顯示二種算法在SST=0時延誤截止時間的比例。二種算法的明顯區(qū)別是在比例為15到25之間,這時候安全2PLHP算法的延誤截止時間比例要高于2PLHP算法。在以后二種算法相差不大。

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

結(jié)果顯示,雖然強調(diào)安全2PLHP算法的安全性,但不要過多地犧牲實時限制。這是因為需要強調(diào)安全性的數(shù)據(jù)沖突并沒有違反基于截止時間的優(yōu)先級。增加安全性意味低安全級別的事務(wù)有更多的沖突需要解決。如果低安全級別的事務(wù)有更晚的截止時間,則強調(diào)安全性意味失去優(yōu)先級。但如果有更早的截止時間,則優(yōu)先級將可保持。因此獲得完全的安全性并不意味失去所有的實時限制。
5 小 結(jié)
本文介紹了安全實時數(shù)據(jù)庫的特性,提出了新的并發(fā)控制算法——安全2PLHP算法。安全2PLHP算法可以用在需要保證定時而控制安全級別的系統(tǒng)中,也可以用在安全性可以和實時限制折中的系統(tǒng)中,即犧牲安全性而更多地保證實時性的系統(tǒng)中。結(jié)果顯示安全2PLHP算法比2PLHP算法更能保證安全性和定時限制。在安全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 李國威,劉云生.實時數(shù)據(jù)庫并發(fā)控制.小型微型計算機系
統(tǒng),2001;(12)
4 許倩霞.多級安全面向?qū)ο髷?shù)據(jù)庫的并發(fā)控制模型.微型機
與應(yīng)用,1998;(9)
