李 雙,袁 丁
(1.北京工商大學 理學院,北京100048;2.中國航天科工集團第二研究院,北京100854)
強制訪問控制通常采用Bell-LaPadula模型,盡管自20世紀70年代提出以來,發揮了很大的作用是一個極好的模型,但它也有局限性,其一,它以犧牲其它方面為代價,而專注于保密性,而且保密建立在軍隊的安全分類模型的基礎上;其二,它忽略了管理分類的方式。該模型假設某人,近乎神奇的對每項數據進行分類,而且這種分類永遠不變;其三,有時用戶需要使用他們未被授權看到的數據,由于基于Bell-LaPadula模型的強制訪問控制,用戶不可能看到。如,低密級主體向高密級主體書寫報告,根據讀低,寫高的原則,此低密級的主體創建的報告的等級安全標記值大于等于報告的創建者的等級安全標記,那么在Bell&LaPadula模型下,此報告對安全標記大的主體(領導)是可見的,領導可以進行批示,由于讀低寫高,在領導作批示(寫)后,此報告的安全標記又升高了,那么報告的提出者(一般職員)對此報告不再擁有可見權(讀),使得領導的批示變得毫無意義。
文獻 [1-2]提出了一種動態的多級安全政策,采取主體的安全標記是動態變化的,而客體的安全標記是固定的,且隨著信息的流入(讀)流出(寫)記錄主體的標記的歷史值。這種動態多級安全政策雖然解決了Bell-LaPadula模型中存在的一些問題,但由于仍采用非等級分類級別K,很大程度上限制了等級分類級別不同的信息間的單向或雙向流動,此性質限制了文獻 [1-2]中提出的動態安全政策在非軍事系統中的應用。另外一點,無論在側重信息機密性的系統中還是側重完整性的系統中,只要允許 “寫”操作(即信息的流出)就會對完整性造成威脅。本文提出一種基于角色的多級安全政策(RBMLS),將Bell-LaPadula模型中的非等級分類級別K替換為局部角色LR,并引入來源分類O,既可以實現等級分類級別不同的主客體信息之間的互動,又可實現原有數據和外來數據的有效分離,極大程度保證了數據的完整性。
多級安全政策自從在學術界提出以來一直指多級保密性,隨著信息安全研究的發展,現已擴展到多級安全保密性、完整性和應用性。在多級安全政策的實施上,典型情形是按照美國可信計算機安全評價標準(TCSEC)的某一標準的要求(Bell &Lapadula)[3]去實現固定的安全需求。
約定2 S是主體集合,O是客體集合,A是訪問方式集合,C是等級分類集合,K是非等級分類集合。
定義1 當前訪問集合B:=P(S×O×A),敏感標記集合設L1=(C1,K1)∈L,L2=(C2,K2)∈L則(L1≥L2):=(C1≥C2∧K1K2)。 敏 感 標 記 函 數 集 合為主體敏感標記函數,fO為客體敏感標記函數,fC為主體當前敏感標記函數。
約定3 b(S,x,y,…,z)表示客體集合
約定4 r為只讀方式,a為只寫方式,w為讀寫方式,e為可執行方式。
公理1(ss-特性)
公理2(*-特性)
Bell-LaPadula模型在側重機密性的系統中可以簡述為:讀低寫高。“讀低”是指用戶只能讀比他信任級別更低的消息;“寫高”是指用戶的信息只能寫入比他信任級別更高的區域。在側重完整性的系統中可以簡述為:讀高寫低。“讀高”是指用戶只能讀比他信任級別更高的信息;“寫低”是指用戶的信息只能寫入比他信任級別更低的區域。采用Bell-LaPadula模型,在側重機密性的系統中,信息只能從低信任級別流向高信任級別,保證了數據的機密性;在側重完整性的系統中,信息只能從高信任級別流向低信任級別,保證了數據的完整性。
基于角色的訪問控制是由美國國家標準與技術研究局(NIST)的Ferraiolo等人在20世紀90年代提出來的[4-5]。2001年8月,RBAC的技術提出者和NIST提出了一個建議標準,建立了NIST RBAC2001技術的參考模型,定義了各種模型構件,并給出了一套系統與管理功能規范。
NIST RBAC 2001模型依據4個組成部分來定義:核心RBAC,層次RBAC,靜態職責分離SSD,動態職責分離DSD這4部分。核心RBAC定義了完成RBAC所需元素和關系的最小集合。這包括用戶-角色授權,角色-權限授權。核心RBAC是RBAC系統中的必要組成部分,其他各部分是彼此獨立的,可分離使用[6]。
鑒于基于角色的訪問控制中引入角色,我們在多級安全政策中也引入角色[7],將Bell-LaPadula模型與RBAC結合起來。把Bell-LaPadula模型中的非等級分類級別K替換為局部角色LR,同時引入來源分類O,建立新的安全政策——基于角色的多級安全政策(RBMLS)。
新政策的優勢在于在一個組織當中,通常局部角色大致相同,這樣既可以減少分組的麻煩又可以實現等級分類級別不同的主客體信息之間的互動,注意此處的角色僅為局部角色。所謂局部角色是指,局部范圍內根據用戶的職能權限授予用戶的角色。可以簡單地理解為用戶在局部范圍內的職位。局部角色為RBAC模型中角色的組成部分。如,銷售部和財務部的局部角色均可設置為經理、主管和一般職員。但這些局部角色對應到RBAC模型中的角色分別為銷售部經理、銷售部主管、銷售部一般職員;財務部經理、財務部主管、財務部一般職員。同時由于引入來源分類,實現了原有數據和外來數據的有效分離,極大程度保證了數據的完整性。
RBMLS同樣包括主體(角色)、客體、訪問集合等概念。這里不作敘述。
在側重機密性系統中,引入兩個標記函數(fl,fh),分別表示一個進程在一次會話中的最小標記值和最大標記值。初始標記設置為fl=LOW(系統的最小標記值),fh=HIGH(系統的最大標記值),fS,3=fC,3=i(將主體標記的第三個分量fS,3設置為i)這樣設置的目的是使得主體對原有信息及低密級流入信息的全部可見性。T(o,s)=true表示允許信息從o流入s,T(o,s)=false表示禁止信息從o流入s。
(1)信息從客體o流入主體時s(s“讀”o),判定條件及主體標記變化規則(2.1):
(2)在信息從主體s流向客體o時(s“寫”o),判定條件及主體標記變化規則(2.2):
if(fO,3=i)/*確保寫入信息的標記的第三分量固定,與原本信息分離。*/
(3)當信息在主客體s和o之間雙向流動時(“讀寫”o),判定條件及變化規則(2.3):
if(fO,3=i)/*確保寫入信息的標記的第三分量固定,與原本信息分離。*/
對等級分類級別不同的主客體來說,如果主體對客體有 “寫”的需求時,此時將主體的fC設置為fC=(C,LR,i),也就是說主體只能在標記第三分量為i的區域中寫。例如:銷售部的機密性級別設為1,局部角色分類設為LRmax≥LR1≥LR2≥LR3≥LRmin,財務部的機密性級別設為2,局部角色分類也設為LRmax≥LR1≥LR2≥LR3≥LRmin。我們假設局部角色分類LR1,LR2,LR3,分別代表局部角色經理、主管、一般職員。在銷售部向財務部遞交報告的情況下(對應信息從低向高流的情況),此時系統自動將fC,fl設置為fC:=(C,K,i),fl:=(C,K,i)即將標記的第三分量設為i。也就是下級部門的人員可以向上級部門任何職位高于或等于自己的領導進行匯報。(信息從低向高流),但寫入的東西放在特定的位置,也就是只能對特定的位置輸入信息流。一個更明顯的例子就是在一目錄下建立一個incoming文件夾,所有外來文件只能放在incoming中,這樣可以保證此目錄下其他文件或文件夾的完整性。由于財務部門數據完整性的重要性,這樣實現了流入信息和原有信息的分離。由此例可以看出RBMLS中由局部角色代特非等級分類的好處在于:銷售部和財務部的非等級分類一般來講沒有包含關系(財務部的組與銷售部的組通常沒有包含關系),但由局部角色來看具有層次關系,因此可以實現這兩個部門之間信息的單向或雙向流動性。至于來源分類的作用在此例中也是很明顯的。
在讀低的原則下,低密級信息中同樣存在需要對高密級主體保密的信息。如,銷售部肯定存在不應被財務部所見的信息。我們將此類信息的標記設為(C,LRmax,o)。此做法可使即使等級分類級別高于C主體對此部分信息仍然不可見。
在側重機密性的系統中,存在一類稱為公共信息的部分,此部分對所有主體應該是可見的。但所有主體均沒有修改的權利。那么這一類消息處理為( C,LRmin,o)類。
對等級分類級別相同的主客體的訪問權限,此時將局部角色分類集合均設為一個默認的值,然后根據角色的組織職能進行授權。對角色新創建的客體,其標記等于該角色的標記。但注意標記的第三分量為o,與其他非同級等級分類級別流入的信息相區別。
我們看一下在客戶關系管理系統中,上述安全政策的實施情況。由銷售部內部成員(角色)創建的客體的等級分類級別均相同,只是非等級分類級別反映角色的職位,來源級別均為o。此時當銷售部經理打一份報給財務部審批的資金申請file,則Lfile=(1,LR1,o)。這分報告只對財務部經理可見,當財務部經理的標記滿足規則(2.3)時,則有對此報告的讀寫權,且寫完后不改變客體file的標記值,這樣,銷售部經理對此報告始終享有可見權,可以閱讀財務經理的批示意見。再一點,雖然銷售部人員享有對財務部數據的可寫權,由于在標記中引進來源分類這一分量,下級對上級寫入的信息放在 “特定的位置”(特殊標記值i),使得原有信息(特殊標記值o)和低密級流入信息(特殊標記值i)的分離,不會造成對財務部數據的惡意篡改。
在側重完整性系統中,有類似側重機密性系統中的定義。fS,3=fc,3=o(將主體標記的第三個分量fS,3設置為o)這樣設置的目的是使得主體對原有信息及高密級流入信息的全部可見性。T(o,s)=true表示允許信息從o流入s,T(o,s)=false表示禁止信息從o流入s。
(4)信息從客體o流入主體s時(s“讀”o),判定條件及主體標記變化規則(2.4):
(5)在信息從主體s流向客體o時(s“寫”o),判定條件及主體標記變化規則(2.5):
if(fO,3=o)/*確保寫入信息的標記的第三分量固定,與原本信息分離。*/
(6)當信息在主客體s和o之間雙向流動時(“讀寫”o),判定條件 及變化規則(2.6):
if(fO,3=o)/*確保寫入信息的標記的第三分量固定,與原本信息分離。*/
在側重完整性的系統中,進行 “寫”操作時,設置主體的標記為(C,LR,o),此時由相同等級分類級別創建的客體的標記值為(C,LR,i)。將需要保密的信息的標記設為(C,LRmin,i),對全局可見信息標記設為(C,LRmax,i)。
為使RBAC適用于更廣的范圍,不能允許在進行角色-權限配置時完全地采取一種自主的原則,需要有強制的安全政策來保證訪問控制的全局統一性。在RBAC實現中如果僅采取RBMLS安全政策會出現等級分類級別相同的不同部門的數據的全部可見性,產生此問題的原因在于通常情況下局部角色的一致性。如銷售部和人事部的機密性級別和完整性級別均相同,又由于局部角色均為經理、主管和一般職員。那么根據RBMLS的原則,這兩個部門的數據就沒有可分性,這顯然是不合理的。因此需要將RBAC與RBMLS和身份(ID)結合起來實現既有強制訪問政策約束又有自主訪問政策靈活性的安全政策,這種處理方式特別適用于網絡環境[8]。
準則1:在RBAC中由于將權限劃分為公共權限和私有權限,用戶通過角色獲取的僅是該角色的公共權限,用戶只有通過角色和身份信息才可以獲取客戶的公共權限及用戶的私有權限[9]。
準則2:在RBMLS中用戶要獲取某一權限需要提供用戶的局部角色和用戶的標記值。由于在RBMLS中引入了角色的概念,用戶的標記值完全可以通過用戶的角色屬性來獲取。
因此用戶先通過擁有角色和身份獲取相關權限,再根據安全標記通過RBMLS獲取相關權限(注:對等級分類級別相同的主客體,此時將局部角色分類集合均設為一個默認的值,這樣處理的實質作用是屏蔽RBMLS,然后根據角色的組織職能進行授權,這就使得訪問控制政策具有較強的靈活性),這兩個相關權限的交集為用戶的最終權限,參見圖1。
圖1 RBMLS政策中用戶權限
在網絡環境中主要的兩種獲取用戶屬性的方式,它們分別是用戶—拉(user_pull)方式和服務器-拉(server_pull)方式[10]。由于服務器-拉(server_pull)方式適合于用戶終端可移動的網絡訪問,這里我們采取這種方式。在服務器-拉(server_pull)方式下,每一 Web Server從Role Server處獲取相關屬性信息(角色信息等)。當 Web Server對Role Server提供的屬性信息的完整性進行驗證后,如果無誤則Web Server依此屬性信息,根據多級安全政策獲取權限,實施訪問控制策略[11-12]。
組成元素:客戶機(client),網絡服務器(Web Server),角色服務器(Role Server),身份認證服務器(Authentication Server)。
基本原理:Web Server根據Role Server提供的用戶所對應的角色,角色權限配置以及多級安全政策授予用戶相應的訪問許可。需要保證用戶的角色等屬性信息的機密性、完整性、不可偽造性。
算法:
(1)用戶與Authentication Server交互,獲取身份證書;
(2)用戶與Web Server建立會話,提供Authentication Server頒發的證書;
(3)Web Server從Role Server處下載相關信息并保存;
(4)Web Server依據RBAC和RBMLS給與用戶權限,當主體S客體O有訪問權限p的請求時:
具體流程參見圖2。
圖2 RBMLS在RBAC實現
3.3.1 機密性、完整性
通過加密算法保證機密性,通過可信第三方證書和數字簽名保證通訊過程的完整性。
3.3.2 不可偽造性
設置身份認證服務器(Authentication Server)頒發身份證書,既實現身份的不可偽造性,又可以減少身份識別的次數。用戶與 Web Server,Web Server與 Web Server會話的第一步是認證,保證通信雙方的不可偽造性。
3.3.3 同步性
Web Server從Role Server處下載相關信息并保存。盡管在Web Server處保存屬性信息可達到屬性信息的可重用性,但為做到 Web Server處的屬性信息與Role Server處的同步性,在Role Server處需要保存Web Server處的屬性信息版本和自己本地的屬性信息的最新版本。那么在每次用戶登錄 Web Server時,Web Server通知 Role Server,Role Server只將屬性的更改信息傳給 Web Server,這樣可以減少與 Web Server的通信量。而且可以使得 Web Server處的屬性信息實時變化,提供一個實時的動態的多級安全政策,從而進行動態訪問控制。
3.3.4 高效性
在Web Server保存的角色屬性信息使用 Web Server的自簽名。這樣處理的好處是支持與Role Server每次交互只傳輸消息的更改部分,實現較少通信量。否則,用Role Server的簽名信息來保證消息的完整性,那么每次Role Server均需要重新對全部消息進行簽名并且需要將這個簽名與消息的更改部分進行綁定,再進行整體簽名,這樣增加了Role Server和 Web Server的通信量,降低了效率。
RBMLS雖然用局部角色替代非等級分類,實現了等級分類級別不同,局部角色具有層次關系的主客體的數據互動性。且在側重機密性的系統中保證了數據一定程度的完整性;在側重完整性的系統中保證了數據一定程度的機密性。但RBMLS中對在既注重機密性又注重完整性的系統中如何實現沒有作討論。因此RBMLS還是一個開放的課題,值得繼續深入研究。
[1]SHI Wenchang,SUN Yufang.History sensitivity of the multilevel security policies[J].Journal of Software,2003,14(1):91-96(in Chinese).[石文昌,孫玉芳.多級安全性政策的歷史敏感性 [J].軟件學報,2003,14(1):91-96.]
[2]LIANG Hongliang,SUN Yufang,ZHAO Gongqing,et al.Design and implementation of a security label common framework[J].Journal of Software,2003,14(3):547-552(in Chinese).[梁洪亮,孫玉芳,趙慶松,等.一個安全標記公共框架的設計與實現 [J].軟件學報,2003,14(3):547-552.]
[3]Elliott Bell D,La Padula L J.Secure computer system:unified exposition and multics interpretation [R].USA:Electronic Systems Division,1976.
[4]Ferraiolo D F,Kuhn D R.Role-based access control[C].Baltimore:Proceedings of 15th National Computer Security Conference,1992.
[5]Jansen W A.A revised model for role-based access control[R].USA:Gaithersburg,MD:U.S.Department of Commerce Technology Administration National Institute of Standards and Technology,1998.
[6]Ferraiolo D F,Sandhu R,Gavrila S,et al.Proposed NIST standard for role-based access control[J].ACM Transactions on Information and System Security,2001,4(3):224-274.
[7]LOU J,Myong Kang.Infrastructure for multi-level secure service-oriented architecture(MLS-SOA)[C].San Jose,CA:Military Communications Conference,2010.
[8]Al-Nedhami I M,Sinha P K.A privacy framework for composite web services [C].Bangalore,India:The Second International Workshop on Service Oriented and Optimization,2008.
[9]GAO Dongqun.Role-hierarchy-based task delegation model in workflow [J].Computer Engineering and Design,2011,3(26):1926-1929(in Chinese).[高東群.工作流系統中基于角色層次的任務轉授權模型 [J].計算機工程與設計,2011,3(26):1926-1929.]
[10]Rattikorn Hewett,Phongphun Kijsanayothin.Privacy and recovery in composite web service transactions[J].International Journal for Infonomics(IJI),2010,3(2):240-248.
[11]Sathiaseelan J G R,Albert Rabara S,Ronald Martin J.MLSF:A framework for multi-level secure composite web services [J].Advances in Information Sciences and Service Sciences,2010,2(4):71-78.
[12]Hewett R,Kijsanayothin P.On securing privacy in composite web service transactions [C].London:The 5th International Conference for Internet Technology and Secured Transactions ,2009.