引言
隨著社會信息化程度的提高,信息安全已經(jīng)逐漸成為一個不可忽視的問題?;ヂ?lián)網(wǎng)的不斷發(fā)展帶來了其應用模式的不斷改變,這樣的變化也給信息安全的保障帶來了不小的挑戰(zhàn)。訪問控制作為保障信息安全的第一道關(guān)卡自然會受到廣泛關(guān)注。目前,WEB服務普遍采用分布式網(wǎng)絡應用構(gòu)建技術(shù),它建立在開放的標準之上,同時很好地利用了已有的成熟的互聯(lián)網(wǎng)應用技術(shù),包括各種模型規(guī)范和編程語言,并結(jié)合面向服務的思想,以更好地實現(xiàn)異構(gòu)信息交流的目的。這就要求如今所采用的訪問控制方法不僅要達到保證信息安全的目的,還必須具有良好的可擴展性、可定制性和異質(zhì)信息的交互性。
1訪問控制概述
訪問控制技術(shù)是通過某種方式明確地準許或限制訪問能力及范圍的一種方法。通過訪問控制服務,可以限制對關(guān)鍵資源的訪問,防止非法用戶的侵入或者因合法用戶的不慎
收稿日期:2013-04-27操作所造成的破壞[%傳統(tǒng)的訪問控制方式包括自主訪問控制(DiscretionaryAccessControl,DAC)、強制訪問控制(MandatoryAccessControl,MAC)、基于角色的訪問控制(Role-basedAccessControl,RBAC)等。每種訪問控制方式都有廣泛應用,但應用的范圍有所區(qū)別[2]。
DAC最早出現(xiàn)在20世紀70年代的分時系統(tǒng)中,是一種多用戶環(huán)境下最常用的訪問控制技術(shù)。在目前流行的UNIX操作系統(tǒng)中,DAC被普遍采用,允許合法用戶以用戶或用戶組的身份訪問策略規(guī)定的客體,同時阻止非授權(quán)用戶訪問客體,某些用戶還可以自主地把自己所擁有的客體的訪問權(quán)限授予其他用戶。在傳統(tǒng)的系統(tǒng)中,訪問通?;贏CL,ACL與授權(quán)子系統(tǒng)結(jié)合為一體,在許可和拒絕對資源的訪問上扮演關(guān)鍵的作用。
MAC主要用在軍事領(lǐng)域中,它是在DAC的基礎(chǔ)上,增加了對網(wǎng)絡資源的安全屬性劃分,規(guī)定不同屬性下主體的訪問權(quán)限。MAC是一種多級訪問控制策略,系統(tǒng)事先給訪問主體和受控對象分配不同的安全級別屬性,在實施訪問控制時,系統(tǒng)先對訪問主體和受控對象的安全級別屬性進行比較,再決定訪問主體能否訪問該受控對象。
RBAC的概念由Ferraiolo和Kuhn于1992年提出叫RBAC的重點是分配一個所謂的角色給用戶或用戶組叫角色對應于業(yè)務系統(tǒng)中的崗位或者職位。由于角色是安全控制策略的核心,因此極大地簡化了安全管理,特別適用于大規(guī)模的企業(yè)應用。無論是系統(tǒng)級還是應用級的安全管理,都可以應用RBAC進行權(quán)限控制,如目前的Windows操作系統(tǒng)和SQLServer的用戶權(quán)限管理就體現(xiàn)了RBAC的思想。
從安全性的角度來看,較之DAC和MAC,RBAC更適合于商業(yè)應用。它綜合了MAC和DAC的特點,既可以被配置成MAC,也可以配置接近DAC。
2RBAC與XACML
RBAC模型
RBAC的核心思想是將訪問權(quán)限與角色相聯(lián)系[5],通過給用戶分配合適的角色,讓用戶與訪問權(quán)限相關(guān)聯(lián)。當主體發(fā)生變化時,只需修改主體與角色之間的關(guān)聯(lián),而不必修改角色與客體的關(guān)聯(lián)。用戶以什么樣的角色對資源進行訪問,決定了用戶擁有的權(quán)限以及可執(zhí)行何種操作。在RBAC中,角色成為訪問的主體。
RBAC規(guī)范遵循角色繼承原則、最小權(quán)限原則和責任分離原則[6]。
RBAC的優(yōu)點:一是支持權(quán)限管理。通過角色溝通用戶和資源,對用戶的訪問授權(quán)轉(zhuǎn)變?yōu)閷巧氖跈?quán),系統(tǒng)的管理工作是授權(quán)或取消用戶的角色。二是管理員操作方便。行政管理人員委派用戶到角色的工作,而技術(shù)人員配置權(quán)限到角色的工作。三是很好地描述角色層次關(guān)系,實現(xiàn)最小權(quán)限原則和職責分離原則,降低系統(tǒng)風險。
而RBAC存在的不足,則主要表現(xiàn)在兩個方面:一是對資源實施訪問時,如果無法通過用戶角色驗證,就再沒有其他辦法許可訪問;二是在基于項目分配的人力資源公司內(nèi),用戶可以擁有多個角色,同時角色經(jīng)常變動,因此角色的管理工作量也是很大的。
XACML訪問控制模型
XML是描述互聯(lián)網(wǎng)上結(jié)構(gòu)化信息與內(nèi)容的標準,具有簡單性、結(jié)構(gòu)性與通用性。這些特性使得基于XML的XACML有著廣泛的支持性。XACML是一種對訪問控制策略和訪問控制請求/響應產(chǎn)生過程加以描述的語言。XACML不僅提供了一系列邏輯算法對整個授權(quán)過程進行控制,而且提供了支持定義新功能、數(shù)據(jù)結(jié)構(gòu)、合成邏輯算法等的標準可擴展點,可以根據(jù)主體、資源、環(huán)境的屬性以及所采取的行為進行控制[7]。
XACML訪問控制模型由策略執(zhí)行點(PEP)、策略判決點(PDP)、策略管理點(PAP)、策略信息點(PIP)、主體(Subject)、資源(Resource)、環(huán)境(Environment)等組成。圖1所示是XACML訪問控制模型架構(gòu)中各主要單元及相互間的關(guān)系冏。
圖1XACML訪問控制模型框架
3基于RBAC的XACML改進模型
3.1問題描述
XACML的RBAC框架[9]規(guī)范了如何使用XACML來表示NIST-RBAC標準模型中的核心模型和層次模型。同時,該規(guī)范還提出一種叫做RoleEnablementAuthority的實體,將角色指派和角色激活的任務從XACMLPDP中分離出來,更好地體現(xiàn)了以角色為中心的訪問控制模式。然而,此次提出的基于XACML的RBAC框架沒有對這個實體進行更為明確的定位與規(guī)范,只是給出了幾種可能的實現(xiàn)方式,例如,該實體可通過RoleAssignment〈Policy〉或<PolicySet>來判斷主體是否指派了某個角色屬性。
因此,可以說OASIS提出的XACML的RBAC框架還存在著一些缺陷,因為它并不能完整地支持RBAC限制,也沒有給出使用RBAC策略的具體數(shù)據(jù)流程。然而,對于角色的限制是RBAC模型中非常重要的一方面,也是RBAC模型的主要動機之一,所以RoleEnablementAuthority需要在基于XACML的RBAC框架中擁有一個明確的定位。
本文以NIST-RBAC標準模型中的限制模型的原則為基礎(chǔ),結(jié)合OASIS提出的XACML的RBAC框架規(guī)范以及具體的XACML訪問控制模型,用XACML描述一種基于角色的訪問控制改進模型。
3.2支持RBAC限制的XACML改進模型
本文對OASIS的XACML的RBAC框架進行了改進,以便更好地支持NIST-RBAC限制模型中的靜態(tài)職權(quán)分離和動態(tài)職權(quán)分離限制。圖2所示是支持RBAC限制的XACML改進模型,其中,新增的模塊與數(shù)據(jù)流由虛線表示。
圖2中,管理員通過策略管理點定義所需要的安全策略;在一個具體的應用環(huán)境下,策略執(zhí)行點截獲用戶發(fā)送的訪問請求;策略執(zhí)行點將截獲的訪問請求發(fā)送給上下文處理器,以便將請求轉(zhuǎn)化為統(tǒng)一的XACML格式;上下文處理器將產(chǎn)生的XACML格式的訪問請求發(fā)送給策略決策點并請求其進行訪問控制決策;策略決策點向上下文處理器發(fā)送請求以獲取額外信息進行決策,其中包括對主體屬性、資源屬性、環(huán)境屬性、角色屬性的請求和對角色狀態(tài)的請求;上下文處理器接到策略決策點的請求后分別向策略信息點和角色管理點(新增模塊)發(fā)送相應請求;策略信息點和角色管理點(新增模塊)接到請求后會向不同的實體索取所需要的信息,并將得到的信息返回給上下文處理器;上下文處理器將收集到的必要信息發(fā)送給策略決策模塊;策略決策模塊根據(jù)策略信息、屬性信息、資源的上下文信息以及角色狀態(tài)信息進行訪問請求決策,并將決策結(jié)果返回給上下文處理器;上下文處理器將決策結(jié)果返回給策略執(zhí)行點,以執(zhí)行相應的決策結(jié)果,同時,執(zhí)行相應的職責信息和更新角色信息。
由此,XACML的RBAC框架規(guī)范中的RoleEnablementAuthority以一個新模塊的形式得以規(guī)范化和具體化,同時NIST-RBAC標準模型中限制模型所提出的針對角色的限制在此改進模型中得到了實現(xiàn)。
4改進模型的實現(xiàn)
4.1通過角色管理點實現(xiàn)靜態(tài)責任分離
靜態(tài)責任分離是責任分離的最簡單的一種形式,即如果定義兩個角色為靜態(tài)的角色互斥,那么任何一個用戶都不能同時被指派給這兩個角色。這可以被看成是一種管理策略,是對管理員的用戶角色指派操作的限制。本文以場景“‘Permit’‘a(chǎn)dministrator’‘A’to‘Set-Role-to-B’as‘employee’”來測試和分析各組件執(zhí)行訪問控制的效果。表1所列為相關(guān)測試用例和預期結(jié)果。
借助于XACML3.0安全策略管理規(guī)范,可以定義的訪問策略如下(簡化的XACML):
-<RuleRuleId="StaticSeparationofDuty"
Effect="Permit">
-<Target>
-<Subjects>A</Subjects>
-<Rolesattribute>admin</Rolesattribute>
-<Rolesstatus>open</Rolesstatus>
-<Resources>employee</Resources>
-<Actions>
-<Action>
-<ActionMatchMatchId="urn:oasis:names:tc:
xacml:1.0:function:string-equal">
<AttributeValueDataType="http://www.w3.org/2001/
XMLSchema#string">Set-Role-to-B</AttributeValue>
<ActionAttributeDesignatorDataType="http://www.
w3.org/2001/XMLSchema#string"AttributeId="urn:oasis:
names:tc:xacml:1.0:action:action-id"/>
</ActionMatch>
</Action>
</Actions>
</Target>
</Rule>
該管理策略描述了管理員A在B沒有被指派角色employee的情況下可以給用戶B指派角色vendor;而當B已經(jīng)被指派了vendor的互斥角色employee后,A再指派給B角色vendor時會遭到拒絕。
4.2通過角色管理點實現(xiàn)動態(tài)責任分離
動態(tài)責任分離允許同一角色被指派給不同的用戶,但它們不能同時被激活。這種訪問控制方式通過對模型內(nèi)角色管理點中的角色狀態(tài)的轉(zhuǎn)化來實現(xiàn)。
本文以場景'Permit''administrator''Cto'edit',documentl'”來測試和分析各組件執(zhí)行訪問控制的效果。表2所列為相關(guān)測試用例和預期結(jié)果。
借助于XACML3.0[10]安全策略管理規(guī)范,可以定義訪問策略如下(簡化的XACML):
-<RuleRuleId="DynamicSeparationofDuty"Effect="Permit">
-<Target>
-<Subjects>A</Subjects>
-<Rolesattribute>admin</Rolesattribute>
-<Rolesstatus>open</Rolesstatus>
-<Resources>Doc1</Resources>
-<Actions>
-<Action>
-<ActionMatchMatchId="urn:oasis:names:tc:
xacml:1.0:function:string-equal">
<AttributeValueDataType="http://www.w3.org/2001/
XMLSchema#string">edit</AttributeValue>
<ActionAttributeDesignatorDataType="http://www.
w3.org/2001/XMLSchema#string"AttributeId="urn:oasis:
names:tc:xacml:1.0:action:action-id"/>
</ActionMatch>
</Action>
</Actions>
</Target>
</Rule>
該管理策略描述了管理員A在角色驗證成功的情況下可以對Doc1進行編輯,同時將管理員的角色狀態(tài)設置為close,即其他具有管理員角色的用戶無法進行相同操作。因此,當另一管理員B在A編輯Doc1的同時,申請對Doc1進行編輯遭到了拒絕。
5結(jié)語
角色訪問控制模型對WEB信息安全的研究與應用有著重要的意義,而XAML的推廣使得訪問控制更加結(jié)構(gòu)化、統(tǒng)一化與細粒度化。二者的結(jié)合應用為保障WEB服務安全提供了一種更為有效與規(guī)范的方法。本文通過對RBAC模型的研究,對XACML訪問控制框架進行了改進,使得新模型更加適應動態(tài)的需求,為訪問安全提供了更進一步的保障。然而,日益復雜化的網(wǎng)絡環(huán)境也在不斷地為保障信息安全的手段提出更高的要求,因此對于RBAC模型與XACML的應用研究也仍將不斷地繼續(xù)下去。
20211023_6172e0a713cd0__支持RBAC限制的XACML改進模型