宋法根,劉振海,梅江林
SONG Fa-gen,LIU Zhen-hai,MEI Jiang-lin
(鹽城工學(xué)院 繼續(xù)教育學(xué)院,鹽城 224000)
安全的模型是安全策略的形式化表達(dá),是建立安全系統(tǒng)的理論基礎(chǔ),也是對(duì)系統(tǒng)進(jìn)行安全評(píng)估的重要參考,故而人們對(duì)安全模型的研究一直沒有停止過。經(jīng)過多年的研究人們提出了很多經(jīng)典的模型,包括BLP模型、Biba模型、CW模型、中國墻模型、基于角色的訪問控制模型和基于任務(wù)的訪問控制模型等,但總體上這些模型可以大致劃分為兩類,第一類就是訪問控制模型,主要通過控制主體對(duì)客體的訪問來達(dá)到保護(hù)客體和客體上信息的安全;第二類是信息流模型,其主要控制信息流的方向,使其信息避免流向不安全的其他對(duì)象,從而保證信息的安全可控。BLP模型就是一種比較經(jīng)典的信息流模型,本文首先對(duì)BLP模型進(jìn)行了簡單介紹,接著對(duì)BLP模型進(jìn)行了分析,發(fā)現(xiàn)其還存在一定的缺點(diǎn)和局限,最后本文給出了一種解決BLP模型存在問題的方案,并對(duì)本方案進(jìn)行了詳細(xì)的探討。
BLP模型是由MITRE公司的Bell和LaPadula在文獻(xiàn)[1,2]中提出的,他是實(shí)現(xiàn)多級(jí)安全機(jī)密性策略的經(jīng)典模型。BLP模型通過“下讀上寫”的原則保證信息只能從低密級(jí)主體流向高密級(jí)主體,從而保證機(jī)密信息不會(huì)被泄露。
BLP模型是一個(gè)狀態(tài)機(jī)模型,表1為其基本元素[3]。
表1 BLP模型中的符號(hào)
BLP模型中,定義了兩個(gè)安全屬性,簡單安全屬性和星號(hào)安全屬性。
1)簡單安全屬性:allow (s,o,r)為真,當(dāng)且僅當(dāng)s支配o。(其中r表示讀操作)。
2)星號(hào)安全屬性:allow (s,o,w)為真,當(dāng)且僅當(dāng)o支配s。(其中w表示寫操作)。
安全屬性又叫RD,即主體只能讀取比自己安全等級(jí)低的客體信息;星號(hào)安全屬性又叫WU,即主體只能向比自己安全等級(jí)高的客體進(jìn)行寫操作。兩條規(guī)則一起保證系統(tǒng)的讀和寫操作不會(huì)引起信息從高安全級(jí)向低安全級(jí)的流動(dòng)。通過限制信息的流動(dòng)方向,在理論上很好的保證了信息的私密性,但是在實(shí)際的應(yīng)用中,要求高安全等級(jí)的主體不向低安全等級(jí)的主體傳達(dá)任何信息,這種要求是過于苛刻的,或者說完全按照這兩條規(guī)則設(shè)計(jì)的系統(tǒng)是不能夠很好的實(shí)現(xiàn)需求的,例如,在BLP模型比較適合的軍事領(lǐng)域,上級(jí)部門總要給下級(jí)部門傳達(dá)指令,而這種信息的傳達(dá),顯然是違背BLP模型的WU原則;在計(jì)算機(jī)進(jìn)程之間通信時(shí),低安全級(jí)別的進(jìn)程向高安全級(jí)別的進(jìn)程傳遞信息,而高安全級(jí)別的進(jìn)程甚至不能向低安全級(jí)別的進(jìn)程傳遞確認(rèn)信息,這顯然是不合理的。也就是說BLP模型理論上可以很好的保證敏感信息不被泄露,但是他對(duì)于主客體的要求過于苛刻,應(yīng)用中很難完全實(shí)現(xiàn)。因此在實(shí)現(xiàn)BLP模型的系統(tǒng)中都或多或少的存在違反BLP原則的操作,如實(shí)現(xiàn)BLP的操作系統(tǒng)Multics,ASOS和SXOMP均定義了可以繞過*-安全屬性規(guī)則檢查的可信主體,這樣更好的實(shí)現(xiàn)了系統(tǒng)的功能,大大增加了系統(tǒng)的靈活性,但是卻為系統(tǒng)的安全埋下了一定隱患。另一方面BLP模型中對(duì)于滿足BLP規(guī)則的主體限制過少,如果某個(gè)客體被特洛伊木馬感染,那么敏感信息就會(huì)不斷的被泄露。
在以后的研究中,人們提出了很多種改進(jìn)的BLP模型,文獻(xiàn)[4,5]分別提出了兩種不同的改進(jìn)的BLP模型、ABLP模型和SLCF模型,他們從不同的方面對(duì)BLP模型進(jìn)行了改進(jìn),增加了系統(tǒng)的靈活性,但卻在文獻(xiàn)[6]中被證明為不安全的。以往對(duì)BLP模型的改進(jìn)主要有兩類,第一類就是通過動(dòng)態(tài)的調(diào)整主體的敏感級(jí)使其滿足BLP模型的準(zhǔn)則;第二類主要是通過限制讀和寫的安全級(jí)范圍來限制可信主體的權(quán)限。第一類可能產(chǎn)生隱通道的問題,第二類主要是通過限制可信主體的權(quán)限來保證即使某些主體違反BLP安全模型的安全規(guī)則進(jìn)行了惡意的操作,對(duì)系統(tǒng)造成的危害也不會(huì)太大。無論哪種改進(jìn)的BLP模型均未能在保證模型安全的前提下解決高安全級(jí)別主體向低安全級(jí)主體發(fā)送信息進(jìn)行通信的問題。本文在最大限度的保證模型安全性的前提下,對(duì)BLP模型進(jìn)行改進(jìn),使得BLP模型更具有靈活性和實(shí)用性。
BLP模型的下讀上寫的原則最大限度的保證信息的安全性,但也極大的限制了模型的實(shí)用性和靈活性,因而在實(shí)際實(shí)現(xiàn)了BLP模型的系統(tǒng)中,為了實(shí)現(xiàn)系統(tǒng)的功能或增加系統(tǒng)的靈活性,一般都存在違反BLP模型規(guī)則的操作,這種不受BLP模型控制的操作極大的破壞了系統(tǒng)的安全性。本文正是在一定程度上允許“下寫”的存在,把那些違反BLP模型安全規(guī)則的操作都納入BLP模型的控制范圍內(nèi),從而增加了系統(tǒng)的實(shí)用性,安全性,靈活性。
1)滿足經(jīng)典BLP模型規(guī)則的操作仍是允許的。
2)主體自身不能進(jìn)行“下寫”的操作。
3)主體若要執(zhí)行“下寫”的操作,必須得到比自己安全級(jí)高的多個(gè)主體的允許。
4)主體執(zhí)行一次被允許的對(duì)某個(gè)客體的“下寫”操作,主體下寫的權(quán)限被取消。
對(duì)于經(jīng)典的BLP模型的安全性前人已經(jīng)給出了形勢(shì)化的證明。這里重點(diǎn)討論對(duì)BLP模型改進(jìn)的部分。
這里把上級(jí)主體的一次“下寫”的操作稱為一個(gè)事務(wù)。低安全級(jí)的主體需要得到高安全級(jí)的主體的信息時(shí),首先向?qū)?yīng)的高安全級(jí)主體發(fā)出請(qǐng)求,高安全級(jí)別的主體收到請(qǐng)求后自身不能決定是否進(jìn)行下寫的操作,必須向多個(gè)更高安全級(jí)主體發(fā)出授權(quán)請(qǐng)求,若一定數(shù)量的更高安全級(jí)的主體拒絕授權(quán),則不能對(duì)低安全級(jí)的主體進(jìn)行下寫的操作,本次事務(wù)終止;若有相當(dāng)數(shù)量的主體同意授權(quán),則高安全級(jí)的主體可以對(duì)低安全級(jí)的主體進(jìn)行“下寫”操作,操作完成后高安全級(jí)主體的下寫權(quán)限被收回,本次事件終止,如圖1所示。
在BLP模型中將主體定義為主動(dòng)的實(shí)體,如進(jìn)程,將客體定義為被動(dòng)的實(shí)體[7]。在本模型中各個(gè)實(shí)體既有主動(dòng)的行為也有被動(dòng)的行為,故而這里把所有實(shí)體看成主體。
BLP模型中經(jīng)典的部分,在以往的文獻(xiàn)中已有詳細(xì)的描述,我們這里不再贅述,這里重點(diǎn)討論本文中改進(jìn)的部分。在經(jīng)典的BLP模型中請(qǐng)求集被定義為其中,S+表示集合,A+表示集合,這里把請(qǐng)求集定義為 以區(qū)別于以往的請(qǐng)求集R,這里Re,其中RT稱為請(qǐng)求種類集。RT={r0,r1,r2},其中r0表示正常請(qǐng)求,r1表示強(qiáng)制求,r2稱為二次請(qǐng)求。對(duì)于正常請(qǐng)求,將按照經(jīng)典的BLP模型中的原則判斷并做出對(duì)應(yīng)的應(yīng)答。對(duì)于強(qiáng)制請(qǐng)求,如符合經(jīng)典的BLP模型中的準(zhǔn)則,自然將被允許,反之(如向低安全級(jí)主體進(jìn)行“下寫”操作),將觸發(fā)一個(gè)事務(wù),在這個(gè)事務(wù)中被請(qǐng)求主體將向更高安全級(jí)的主體發(fā)出二次請(qǐng)求,多個(gè)更高安全級(jí)的主體將對(duì)該二次請(qǐng)求進(jìn)行判定,決定是否對(duì)發(fā)出二次請(qǐng)求的主體進(jìn)行授權(quán),以進(jìn)行特殊的操作,如“下寫”。
圖1 模型中的下寫操作
由強(qiáng)制請(qǐng)求觸發(fā)的事務(wù),也可以稱作一次表演。一個(gè)事務(wù)我們記為e,可以看成一個(gè)四元組(r1,r2,li,le),r1表示觸發(fā)二次請(qǐng)求的強(qiáng)制請(qǐng)求,r2表示二次請(qǐng)求,li表示事務(wù)的生命期,le表示事務(wù)的安全級(jí)水平。當(dāng)事務(wù)被觸發(fā)后li被初始化,當(dāng)主體發(fā)出二次請(qǐng)求后,li進(jìn)入等待期,等待二次請(qǐng)求的結(jié)果,若二次請(qǐng)求的結(jié)果為拒絕,則拒絕r1,li進(jìn)入鎖定定期,事務(wù)終止;若二次請(qǐng)求結(jié)果為允許,則進(jìn)行r1請(qǐng)求的操作后li進(jìn)入鎖定期,事務(wù)終止。le表示事務(wù)的安全水平,管理員可以對(duì)具體的事務(wù)配置適當(dāng)?shù)陌踩?,這里定義三種安全水平,對(duì)于安全級(jí)別比較高的事務(wù),我們要求二次請(qǐng)求的所有對(duì)象都給出肯定的應(yīng)答,才準(zhǔn)許r1的請(qǐng)求;對(duì)于中等安全級(jí)別的事務(wù),我們要求要有足夠多的二次請(qǐng)求的對(duì)象給出肯定的應(yīng)答,才準(zhǔn)許r1的請(qǐng)求;而對(duì)于安全級(jí)別相對(duì)較低的事務(wù),只要有更高安全級(jí)的主體給出肯定的應(yīng)答即可允許r1的請(qǐng)求。對(duì)于第一種和最后一種安全水平的事務(wù),相對(duì)來說比較簡單,也比較容易實(shí)現(xiàn),我們重點(diǎn)討論,中間一種情況,即要求有一定數(shù)量的更高安全級(jí)的主體給出肯定的應(yīng)答,主體才可允許r1的請(qǐng)求。這里我們可以使用密碼學(xué)中基于門限的秘密分享方案來實(shí)現(xiàn)系統(tǒng)的功能。(k,n)門限秘密分享是把一個(gè)或多個(gè)秘密分拆成若干個(gè)子秘密,分配給n個(gè)參與者,使得n個(gè)參與者中任何k個(gè)參與者合作都可恢復(fù)秘密,但對(duì)于任何少于k個(gè)的參與者得都無法獲得該秘密[8]。對(duì)于中等安全的事務(wù),把所有二次請(qǐng)求的對(duì)象的個(gè)數(shù)定義為n,把需要得到準(zhǔn)許的數(shù)目定義為k,則當(dāng)收到準(zhǔn)許的數(shù)目達(dá)不到k個(gè)時(shí),則可以恢復(fù)原來的秘密,允許r1的請(qǐng)求;反之則拒絕請(qǐng)求。
對(duì)于BLP模型中常規(guī)的部分,以往的文獻(xiàn)已有詳盡的論述,這里不再重復(fù)。我們重點(diǎn)討論本文中改進(jìn)的部分。本文通過在一定程度上允許“下寫”存在,從而在盡可能不降低系統(tǒng)的安全性的情況下,增加了系統(tǒng)的靈活性。本文對(duì)BLP模型的改進(jìn)基于一個(gè)前提條件,即整個(gè)系統(tǒng)中大部分的主體是安全可信的,若系統(tǒng)中幾乎所有的主體都是敵對(duì)的,則系統(tǒng)已經(jīng)沒有存在的必要性了,故而這個(gè)前提也是合理的。本文在一定程度上允許下寫的操作,而對(duì)類似的操作更加慎重。
第一,被請(qǐng)求“下寫”操作的主體不能決定自己是否進(jìn)行此操作,從而避免了一個(gè)主體被入侵就會(huì)引起信息泄露的可能。
第二,對(duì)于二次請(qǐng)求,多個(gè)更高安全級(jí)的主體通過基于門限的秘密分享方案中秘密恢復(fù)的方法來決定是否允許對(duì)應(yīng)的請(qǐng)求,故而即使有部分高安全級(jí)的主體已成為惡意主體時(shí)也不會(huì)造成敏感信息的泄露。
第三,對(duì)于“下寫”的操作,采取基于事務(wù)的方法。強(qiáng)制請(qǐng)求觸發(fā)事務(wù),更高安全級(jí)的主體根據(jù)請(qǐng)求的具體上下文環(huán)境及對(duì)應(yīng)的安全策略,決定是否允許本次請(qǐng)求,本次請(qǐng)求被拒絕或準(zhǔn)許并執(zhí)行后事務(wù)終止,事務(wù)終止后,主體將不能進(jìn)行“下寫”操作。這里不是通過動(dòng)態(tài)調(diào)整主體的安全級(jí)來實(shí)現(xiàn)系統(tǒng)的需求,從而避免了隱通道的問題。
本模型支持兩個(gè)著名的安全控制準(zhǔn)則:
1)最小特權(quán)原則,事務(wù)被激起后,系統(tǒng)將會(huì)根據(jù)具體情況對(duì)相應(yīng)主體臨時(shí)授予一定權(quán)限,當(dāng)事務(wù)結(jié)束后權(quán)限被收回。
2)職責(zé)分離原則,主體自身不能決定自己是否能夠進(jìn)行“下寫”的操作,必須向更高安全級(jí)的主體發(fā)出二次請(qǐng)求,才能決定。
BLP模型是比較經(jīng)典的安全模型,它的“下讀上寫”的準(zhǔn)則能夠很好的保證敏感信息不被泄露,但是,也大大限制了系統(tǒng)的靈活性。本文受基于任務(wù)的訪問控制模型的啟發(fā),在一定程度上允許慎重的“下寫”,從而增加了系統(tǒng)的靈活性??梢灶A(yù)見,增加了靈活性的BLP模型將會(huì)得到更廣泛的應(yīng)用。
[1] D. E. BEL,and L. J.LaPadula. Secure Computer Systems:Mathematical Foundations. MITRE Technical Report 2647,voume I. Nationgal Technical Information Service,1973.
[2] L.J.LaPadula,and D. E. Bell. Secure Computer Systems:A Mathematical Model. MITRE Techniacl Report 2547,volume II. National Information Service,1973.
[3] Len Lapadula,secure computer system: a mathematical model[R]. MITRE Technical Report,Vol II,1996,titled secure Computer Systems:Mathematical Foundations,by Leonard J.LaPadula and D. Elliott Bell,dated 31 May 1073.
[4] Shi WC.Research on and enforcement of methods ofmethods of secure operating systems development[Ph.D.Thesis]. Beijing: Institute of Software,the Chinese Academy of Sciences,2001.
[5] Liang HL,Sun YF,Zhao QS,Zhang XF,Sun B,Design and implementation of a security label common framework..Journal of Software,2003,14(3): 547-552.
[6] 何建波,卿斯?jié)h,王超. 對(duì)兩個(gè)改進(jìn)的BLP模型的分析[J].軟件學(xué)報(bào),18(6): 1501-1509,2007.6 .
[7] 谷千軍,王越. BLP模型的安全性分析與研究[J]. 計(jì)算機(jī)工程,32(22): 157-158,2006. 11.
[8] 何明星,范平志,袁丁. 一個(gè)可驗(yàn)證的門限多秘密分享方案[J]. 電子學(xué)報(bào),30(4): 540-543,2002. 6.