基于属性的访问控制(ABAC)定义与思考 ——ABAC的基本概念
本文件為聯(lián)邦機(jī)構(gòu)提供了基于屬性的訪問控制(ABAC)的定義。ABAC是一種邏輯訪問控制方法,在這種方法中,對執(zhí)行操作的授權(quán)是通過評估與主體、客體、申請操作相關(guān)聯(lián)的屬性來確定的,在某些情況下,還會根據(jù)描述許可操作的策略的環(huán)境條件來確定。本文檔還提供了使用ABAC改進(jìn)組織內(nèi)部和組織之間的信息共享的注意事項,同時保持對該信息的控制。
關(guān)鍵詞:訪問控制;訪問控制機(jī)制;訪問控制模型;訪問控制策略;基于屬性的訪問控制(ABAC);授權(quán);權(quán)限。
?第一部分 ABAC的基本概念?
?理解ABAC?
全面理解ABAC需要理解邏輯訪問控制的基本原理。邏輯訪問控制的目的是保護(hù)客體(無論是數(shù)據(jù)、服務(wù)、應(yīng)用程序、網(wǎng)絡(luò)設(shè)備還是其他類型的IT資源)不受未授權(quán)操作的影響,這些操作可能包括發(fā)現(xiàn)、讀取、創(chuàng)建、編輯、刪除和執(zhí)行客體。受保護(hù)客體歸個人或組織所有,并具有某種內(nèi)在價值,激勵這些所有者保護(hù)它們。作為客體的所有者,他們有責(zé)任建立一個策略,來描述可以對客體執(zhí)行哪些操作、由誰執(zhí)行,以及主體在什么上下文中可以執(zhí)行這些操作。如果主體滿足客體屬主所建立的訪問控制策略,則該主體被授權(quán)可以對客體執(zhí)行所需的操作,即該主體被授予對該客體的訪問權(quán)限。如果主體不滿足策略,則拒絕對該客體的訪問。
計算機(jī)安全架構(gòu)師和管理員在邏輯上部署訪問控制機(jī)制(ACM),通過控制來自主體的訪問請求來保護(hù)客體。ACM可以使用很多方法來執(zhí)行應(yīng)用于客體的訪問控制策略。ACM可以定義為:
訪問控制機(jī)制(ACM):能夠接收來自主體的訪問請求,并決定和強(qiáng)制執(zhí)行訪問控制決策的邏輯組件。
ACM如何工作可以通過各種邏輯訪問控制模型來描述。這些訪問控制模型提供了一個框架和一組邊界條件,客體、主體、操作和規(guī)則可以在這些邊界條件上組合起來生成和執(zhí)行訪問控制決策。每個模型都有其自身的優(yōu)點和局限性,但重要的是要注意這些模型的發(fā)展演變過程,以充分理解ABAC模型的靈活性和適用性。
MAC/DAC
伴隨著自主訪問控制(DAC)和強(qiáng)制訪問控制(MAC)概念的出現(xiàn),邏輯訪問控制在20世紀(jì)60年代和70年代早期應(yīng)用于國防部(DoD)的某些項目中。在國防部可信計算機(jī)系統(tǒng)評估標(biāo)準(zhǔn)(TCSEC)或“橙皮書”[TCSEC]中有這些術(shù)語的詳細(xì)定義,在[NIST800-53]中也可以找到相關(guān)定義。
IBAC/ACL
隨著計算機(jī)網(wǎng)絡(luò)的發(fā)展,限制對特定受保護(hù)客體的訪問的需求刺激了基于身份的訪問控制(IBAC)的發(fā)展。IBAC使用訪問控制列表(ACL)等機(jī)制來提取那些允許訪問客體的身份標(biāo)識。如果主體提供的身份憑證與ACL中保存的身份憑證匹配,則會授予該主體訪問該客體的權(quán)限。主體執(zhí)行讀、寫、編輯、刪除等操作所需的每個權(quán)限都由客體屬主單獨管理。每個客體都有自己的ACL和分配給每個主體的權(quán)限集。在IBAC模型中,授權(quán)決策是在任何特定的訪問請求之前做出的,這就決定了主體也要被添加到ACL中。對于要放置在ACL中的每個主體,客體屬主必須根據(jù)客體的管理策略,來評估主體的身份、客體和上下文屬性,最后決定是否將該主體添加到ACL。這個決定是靜態(tài)的,而且客體屬主需要一個通知機(jī)制,以便在需要時能夠重新進(jìn)入評估流程,并從ACL中移除某個主體,來應(yīng)對主體、客體或上下文變化所帶來的影響。隨著時間的推移,如果無法刪除或撤消訪問權(quán)限,則會導(dǎo)致用戶權(quán)限累積。
RBAC
基于角色的訪問控制模型(RBAC)[FK92,ANSI359,SCFY96]采用了可分配給主體、具有特定權(quán)限集的預(yù)定義角色。例如,被分配“經(jīng)理”和“分析員”角色的主體將能夠訪問不同的客體集。在這個模型中,訪問權(quán)限是由為每個個體分配角色的人預(yù)先隱式定義的,但最終由客體屬主在確定角色權(quán)限時明確。在處理主體的訪問請求時,訪問控制機(jī)制需要在執(zhí)行訪問控制決策前,評估分配給主體的角色,以及該角色對客體所擁有的操作權(quán)限。請注意,角色可以被視為主體的一個屬性,訪問控制機(jī)制基于對“主體角色”這一屬性的計算,生成對客體的策略決策。隨著RBAC規(guī)范的流行,它減少了對ACL的需求,并使企業(yè)訪問控制能力的集中管理成為可能。
ABAC
從實施訪問控制時所使用的屬性來看,ACL和RBAC可以看做是ABAC的特例。ACL使用“身份標(biāo)識”的屬性。RBAC使用“角色”屬性。它們之間的關(guān)鍵區(qū)別在于ABAC的策略概念,ABAC的策略可以表示為針對多種不同屬性的復(fù)雜的布爾運(yùn)算。雖然可以使用ACL或RBAC來實現(xiàn)ABAC的策略目標(biāo),但是由于ABAC訪問控制的需求與ACL和RBAC模型之間的抽象層次不同,這種實現(xiàn)方式執(zhí)行起來非常困難,而且代價非常大。ACL或RBAC模型的另一個問題是,如果AC需求發(fā)生了變化,可能很難確定所有需要更新的數(shù)據(jù)在ACL或RBAC實現(xiàn)中的位置。
與ABAC的訪問控制框架一致的一個例子是可擴(kuò)展訪問控制標(biāo)記語言(XACML)[XACML]。XACML模型使用規(guī)則、策略、基于規(guī)則和策略的組合算法、屬性(主體、資源或客體、操作和環(huán)境條件)、職責(zé)和建議等元素。它的參考體系結(jié)構(gòu)包括策略決策點(PDP)、策略執(zhí)行點(PEP)、策略管理點(PAP)和策略信息點(PIP)等功能來控制訪問。另一個例子是下一代訪問控制標(biāo)準(zhǔn)NGAC[ANSI499]。
一般來說,在主體發(fā)出請求之前,ABAC避免將權(quán)限(“操作-客體”對)直接分配給主體/角色/組。相反,當(dāng)主體請求訪問時,ABAC引擎根據(jù)請求者的指派屬性、客體的指派屬性、環(huán)境條件以及根據(jù)這些屬性和條件指定的一組策略,來做出訪問控制決策。根據(jù)這種設(shè)計,策略在創(chuàng)建和管理時無需直接引用過多的用戶和客體,用戶和客體也不會直接引用策略。
01
ABAC的優(yōu)點
在許多AC系統(tǒng)中,邏輯訪問控制解決方案主要基于主體的身份。例如,在IBAC或RBAC中,對客體的訪問權(quán)被單獨授予本地標(biāo)識的主體,或者被授予該主體所屬的本地定義的角色。這種AC實現(xiàn)方式通常管理起來很麻煩。在非ABAC的多組織訪問方法示例(如圖1所示)中,組織A的主體(已通過身份認(rèn)證)在對組織B的客體發(fā)起訪問時,需要預(yù)先在組織B為其創(chuàng)建身份標(biāo)識(如賬號),并將該身份添加至組織B的訪問控制列表。
圖1 傳統(tǒng)(非ABAC)多組織訪問方法
此外,如身份和角色這樣的主體信息,在表達(dá)現(xiàn)實世界的AC需求時往往不夠充分。RBAC根據(jù)主體與角色的關(guān)聯(lián)做出策略決策,但它不太容易支持多因素決策(例如,基于物理位置的決策,以及醫(yī)療保險可移植性和責(zé)任法案(HIPAA)專業(yè)培訓(xùn)記錄;最近關(guān)于HIPAA數(shù)據(jù)保護(hù)的培訓(xùn)可能是查看醫(yī)療記錄的先決條件)。RBAC通常基于相對固定的組織位置來進(jìn)行角色分配,在某些需要動態(tài)訪問控制決策的環(huán)境中,RBAC架構(gòu)就會暴露其不足,因為需要創(chuàng)建大量的臨時角色,并限制其成員資格,通常會導(dǎo)致所謂的“角色爆炸”。
為了在AC決策時,避免要求主體預(yù)先獲悉客體信息,或者客體屬主預(yù)先獲悉主體信息,我們需要一種特殊的方法。通過組織間統(tǒng)一的主、客體屬性定義,ABAC避免了將訪問權(quán)限直接顯式地授予某個主體。此外,對于需要耗費大量時間來管理ACL/角色/用戶組的大型企業(yè)來說,ABAC模型更具靈活性。通過調(diào)整主、客體屬性定義的一致性,在不影響安全等級的同時,身份認(rèn)證(主要與主體屬性有關(guān))和授權(quán)功能(與主、客體屬性都有關(guān)系)可以在相同或獨立的基礎(chǔ)設(shè)施中實現(xiàn)。
02
ABAC的定義
ABAC的描述方式多種多樣。例如,早期一篇關(guān)于web服務(wù)的論文認(rèn)為ABAC“基于請求者擁有的屬性授予其對服務(wù)的訪問能力”[WWJ04],地理信息系統(tǒng)中的安全性討論將ABAC描述為一種“用與用戶相關(guān)聯(lián)的屬性值確定用戶權(quán)限”的方法[CGLO09]。
還有一篇論文將ABAC總結(jié)為一個“基于主體、客體和環(huán)境屬性,并支持強(qiáng)制和自主訪問控制需求”的模型[YT05]。所有這些定義的共同點是,ABAC通過將主體屬性、客體屬性和環(huán)境條件結(jié)合起來,按照它們與訪問控制規(guī)則的匹配情況來確定訪問(即對系統(tǒng)客體的操作)。以下是ABAC高級別的定義:
基于屬性的訪問控制(ABAC):一種訪問控制方法,根據(jù)主體的指派屬性、客體的指派屬性、環(huán)境條件和與這些屬性和條件相關(guān)的一組策略,允許或拒絕主體對客體所請求的操作。
屬性是主體、客體或環(huán)境條件的特征。屬性信息以“名稱-值”對的形式定義。
主體是人或NPE(如對客體發(fā)起訪問請求的設(shè)備)。主體可以被指派一個或多個屬性。在本文檔中,假設(shè)主體和用戶是通過義的。
生成由ABAC系統(tǒng)管理其訪問的系統(tǒng)資源,例如包含或接收信息的設(shè)備、文件、記錄、表、進(jìn)程、程序、網(wǎng)絡(luò)或域。它可以是資源或被請求訪問的實體,也可以是任何可被主體操作的對象,包括數(shù)據(jù)、應(yīng)用程序、服務(wù)、設(shè)備和網(wǎng)絡(luò)。
操作是應(yīng)主體對客體的請求而需要被執(zhí)行的功能。操作包括讀、寫、編輯、刪除、復(fù)制、執(zhí)行和修改。
策略是規(guī)則或關(guān)系的表達(dá),它使我們能夠,根據(jù)給定的主體、客體和可能的環(huán)境條件的屬性值來確定是否允許主體所請求的訪問。
環(huán)境條件:訪問請求所處的環(huán)境/態(tài)勢上下文。環(huán)境條件是可檢測的環(huán)境特征,獨立于主體或客體,可以包括當(dāng)前時間、星期幾、用戶位置或當(dāng)前威脅級別。
高級ABAC定義如圖2所示,其中ABAC ACM接收主體的訪問請求,然后根據(jù)特定策略檢查主體和客體的屬性。然后,ACM確定主體可以對客體執(zhí)行哪些操作。
圖2 ABAC的基本場景
1)主體請求訪問客體
2)訪問控制機(jī)制評估a)規(guī)則,b)主體屬性,c)客體屬性,以及d)環(huán)境條件,來計算策略決策
3)如果被授權(quán),主體可以訪問客體
03
ABAC基本概念
在最基本的組成形式中,ABAC主要包括對主體屬性、客體屬性、環(huán)境條件以及訪問控制規(guī)則或策略(定義了基于主、客體的屬性組合的一些允許操作)的評估計算。所有的ABAC解決方案都包含這些用于評估屬性的基本組件,并強(qiáng)制執(zhí)行通過這些屬性所生成的策略決策(參見下面的圖3)。
圖3 ABAC的核心機(jī)制
即使在一個小型的獨立系統(tǒng)中,ABAC也依賴于主體和客體的屬性分配,以及訪問規(guī)則的設(shè)計。系統(tǒng)中的每個客體都必須指派特定的屬性,用來描述該客體。某些屬性可能屬于某個完整的客體實例,例如“所有者”屬性。但有些屬性可能只能屬于客體的某一部分。例如,某個文檔客體的屬主為組織A,但文檔中部分內(nèi)容的知識產(chǎn)權(quán)是組織B的,該文檔同時又是組織C所運(yùn)行的程序的一部分。另一個示例,考慮文件管理系統(tǒng)中位于某個目錄中的某個文檔。此文檔具有標(biāo)題、作者、創(chuàng)建日期和上次編輯日期等,所有的客體屬性都由文檔的創(chuàng)建者、作者或編輯者確定,還可以為其指派其他客體屬性,如歸屬組織、知識產(chǎn)權(quán)種類、出口管制分類或安全級別。每次創(chuàng)建或修改新文檔時,都必須抽取這些客體屬性。這些客體屬性通常嵌入在文檔中,但也可以由專門的應(yīng)用程序?qū)⑵涮崛〉揭粡垎为毜臄?shù)據(jù)表中,引用合并或管理。
使用系統(tǒng)的每個主體都必須指派特定的屬性。以用戶訪問文件管理系統(tǒng)為例。管理員在系統(tǒng)中將用戶映射為主體,并將該用戶的特征轉(zhuǎn)化為主體屬性。此主體可能有一個名字、角色和組織隸屬關(guān)系。其他主體屬性可能包括美國公民身份、國籍和安全許可等。這些主體屬性由組織內(nèi)負(fù)責(zé)維護(hù)文件管理系統(tǒng)主體標(biāo)識信息的機(jī)構(gòu)分配和管理。在添加新用戶,刪除老用戶,或者主體(即用戶)特征發(fā)生變化時,這些主體屬性可能就需要更新。
對于系統(tǒng)中的每個客體來說,必須至少存在一條策略,用于描述該客體的訪問規(guī)則,其中包含所允許的主體、操作和環(huán)境條件。此策略通常從描述組織業(yè)務(wù)流程和運(yùn)營規(guī)范的文檔或程序性規(guī)章制度派生。例如,醫(yī)院制度規(guī)定只有經(jīng)授權(quán)的醫(yī)務(wù)人員才能訪問患者的病歷。在實際系統(tǒng)中,如果客體是“類型”屬性為“患者病歷”的文檔,訪問控制機(jī)制就會篩選出“病歷訪問規(guī)則”并計算策略決策,從而拒絕那些“人員類型”屬性為“非醫(yī)務(wù)支持人員”的主體的讀取請求。注意,這只是實現(xiàn)屬性和規(guī)則之間關(guān)聯(lián)的方法之一。
實現(xiàn)主、客體屬性綁定的規(guī)則間接地指定了特權(quán)(即哪些主體可以對哪些客體執(zhí)行哪些操作)。允許的操作規(guī)則可以通過多種計算機(jī)語言表示,例如:
?◆ 用屬性和條件的布爾組合來表示特定操作的授權(quán)條件
?◆ 能夠把主、客體屬性和許可操作關(guān)聯(lián)在一起的某種關(guān)系運(yùn)算
一旦建立了客體屬性、主體屬性和策略,就可以使用ABAC保護(hù)客體。訪問控制機(jī)制通過限制手段(只有允許的主體能夠?qū)腕w執(zhí)行允許的操作)來介入對客體的訪問。ACM將策略、主體屬性和客體屬性組合在一起,然后根據(jù)策略中定義的算法計算和執(zhí)行策略決策。ACM必須能夠管理策略的決策和執(zhí)行流程,包括確定要檢索的策略、要以何種順序檢索何種屬性以及從哪里檢索屬性,然后,ACM執(zhí)行必要的計算以便生成策略決策。
ABAC模型中可實現(xiàn)的策略僅受限于計算機(jī)語言的策略表示能力和可用屬性的豐富性。這種靈活性使得不必單獨指定每個主體和每個客體之間的關(guān)系,就可以實現(xiàn)最大范圍內(nèi)的主體對最大范圍內(nèi)的客體的訪問控制。例如,一個主體被分配了一組基于工作崗位的主體屬性(例如,南希·史密斯是心臟科的護(hù)士),客體在創(chuàng)建時被分配了客體屬性(例如,包含心臟病患者病歷的文件夾)。主管機(jī)構(gòu)制定相應(yīng)的規(guī)則來管理允許的操作(例如,心臟科的所有護(hù)士都可以查看心臟病患者的醫(yī)療記錄)。這種靈活性使得在主體、客體和屬性的整個生命周期中,屬性和它們的值都可以非常方便地修改。
為受規(guī)則集(指定了哪些操作是允許的)控制的主體和客體提供屬性的這種做法,使得無限多的主體能夠請求對客體執(zhí)行操作——完全不需要客體屬主或規(guī)則生成器事先知道主體的任何信息。當(dāng)新的主體加入組織時,也不需要修改規(guī)則和客體。只要主體被分配了訪問客體所必需的屬性(例如,心臟科的所有護(hù)士都被分配了這些屬性),不需要對現(xiàn)有規(guī)則或客體屬性做任何修改。這種特性通常被稱為適應(yīng)外部(非預(yù)期)用戶,是使用ABAC的主要好處之一。
與其他一些方案相反,在ABAC的定義中,操作沒有“屬性”。如定義所述“屬性是以‘名稱-值’對形式所提供的信息”。例如,“read = all”(或“all = read”)都是不合適的。操作可以有許多類型或類別,它們不是“屬性”,而是一組固定的值。可以將操作本身設(shè)置為“屬性名”,例如“operation = read ”,但這將是操作的唯一屬性,而且是多余的。
為實現(xiàn)追責(zé)能力,需要跟蹤特定主體(與特定用戶有關(guān))對客體的訪問。如果訪問決策是基于屬性的,但是特定的訪問請求和決策不能追溯到主體或用戶ID,則可能會失去追責(zé)能力。
04
企業(yè)ABAC概念
雖然ABAC推動了信息共享,但在企業(yè)中部署實現(xiàn)ABAC時,其關(guān)鍵組件會變得更加復(fù)雜。隨著企業(yè)規(guī)模的擴(kuò)大,部署架構(gòu)中需要復(fù)雜的、甚至是獨立建設(shè)的管理設(shè)施,以確保企業(yè)范圍的一致的信息共享、策略和屬性的使用、受控的數(shù)據(jù)分發(fā),以及訪問控制機(jī)制的實施。
企業(yè):一組需要相互協(xié)作和聯(lián)合的實體,實體之間要求支持信息共享和管控。
圖4展示了部署企業(yè)ABAC所需的主要組件。有些企業(yè)已具備實施ABAC的基礎(chǔ)。例如,大多數(shù)企業(yè)都有某種形式的身份和憑證管理系統(tǒng),用來管理主體屬性(如名稱、唯一ID、角色、許可等)。同樣,許多企業(yè)可能有一些組織策略或準(zhǔn)則來建立訪問規(guī)則,對訪問企業(yè)客體的主體進(jìn)行授權(quán)。但是,這些規(guī)則通常不是以機(jī)器可執(zhí)行的格式編寫的,無法在不同的應(yīng)用程序中使用。ABAC策略必須以機(jī)器可執(zhí)行的格式實現(xiàn),存儲在策略庫中,并發(fā)布給ACM使用。這些數(shù)字策略包括計算訪問控制決策所需的主體和客體屬性。企業(yè)主體屬性必須通過主體屬性管理組件創(chuàng)建、存儲,并在企業(yè)各組織之間共享。同樣,企業(yè)客體屬性必須通過客體屬性管理組件建立并綁定到客體。最后,剩下的任務(wù)就是部署ABAC訪問控制機(jī)制。本節(jié)的其余部分將詳細(xì)介紹企業(yè)級ABAC的主要組件。
圖4 企業(yè)ABAC的場景示例
4.1
早期的訪問控制模型
自然語言策略(NLP)是策略的高級表達(dá)形式,它定義了如何管理信息訪問,以及在什么情況下誰可以訪問什么信息。NLP用人類可以理解的語言來表述策略,但是在ACM中可很難直接使用。NLP含混不清的語義,使它很難通過形式化的方法,推導(dǎo)出可操作的元素,最終導(dǎo)致企業(yè)策略無法編碼為計算機(jī)可以理解的形式。然而,NLP可能是程序?qū)S玫?#xff08;注:指由/為專門的應(yīng)用編寫),考慮應(yīng)用系統(tǒng)的情況,NLP適用于定義跨多個應(yīng)用的主體行為的策略。例如,NLP可能適用于針對組織單位內(nèi)部或跨組織單位的客體的策略,或者基于知其所需、能力、授權(quán)、義務(wù)或利益沖突因素等情況下的策略。這些策略可能需要跨越多個計算平臺和應(yīng)用程序。NLP在本文件中定義如下:
自然語言策略(NLP):用于描述企業(yè)客體的管理和訪問方式的語句。NLP是可以轉(zhuǎn)換為機(jī)器可執(zhí)行的訪問控制策略的自然語言表述。
給出與企業(yè)內(nèi)每個組織都相關(guān)的NLP,下一步是將這些NLP轉(zhuǎn)換成一組可以在企業(yè)內(nèi)部ACM中部署執(zhí)行的通用規(guī)則。為了實現(xiàn)這一步,必須先確定策略中需要的主體/客體屬性的組合和允許的操作。通常,這些值在不同組織中可能是不同的,因此需要組織間達(dá)成某種形式的共識,或者將其映射到每個組織的現(xiàn)有屬性中,以實現(xiàn)企業(yè)內(nèi)不同組織間的互操作性。最后,達(dá)成一致的主、客體屬性列表、許可操作和來自現(xiàn)有組織特定屬性的所有映射被翻譯成機(jī)器可執(zhí)行的格式。
NLP實現(xiàn)必須包含數(shù)字策略(DP)算法或機(jī)制。為了提高性能和簡化規(guī)范,NLP可能需要分解并轉(zhuǎn)換為不同的DP,以適應(yīng)企業(yè)基礎(chǔ)設(shè)施中已有的功能組件。DP在本文件中定義為:
數(shù)字策略(DP):直接編譯成機(jī)器可執(zhí)行代碼或信號的訪問控制規(guī)則。主體/客體屬性、操作和環(huán)境條件是DP的基本元素,DP規(guī)則的編譯結(jié)果由訪問控制機(jī)制執(zhí)行。
多個DP可能需要元策略(Metapolicy)或指導(dǎo)DP使用和管理的策略,來處理DP的分級授權(quán)、沖突消除以及存儲和更新。MP用于管理DP。根據(jù)復(fù)雜性等級,基于NLP所指定的策略優(yōu)先級和組合策略的結(jié)構(gòu),可能需要層次化的MP。MP在本文件中定義為:
元策略(MP):與策略相關(guān)的策略,或用于管理策略的策略,例如優(yōu)先級的分配和DP的沖突消除方法或其他MP。
一旦開發(fā)定義了DP和MP,接下來需要對它們進(jìn)行管理、存儲、驗證、更新、按優(yōu)先級排序、消除沖突、共享、引退和部署執(zhí)行。上述每一個操作都需要通過一組功能來實現(xiàn),這些功能通常分布部署在整個企業(yè)中,統(tǒng)稱為數(shù)字策略管理(DPM)。組織中可能有多個策略主管部門和層級化的管理架構(gòu),他們在企業(yè)策略上可能存在差異,DP和MP的管理規(guī)則可能需要由總部機(jī)構(gòu)決定。
正確的DP定義和開發(fā)對于識別出訪問控制決策所需的主、客體屬性至關(guān)重要。請記住,DP語句由主體和客體屬性對,以及滿足一組允許操作所需的環(huán)境條件組成。一旦確定了滿足企業(yè)客體集的整個允許操作集所需的主體和客體屬性集,該屬性集就包含了滿足ABAC決策定義、分配、共享和評估所需的整個屬性集。因此,在實現(xiàn)企業(yè)ABAC功能時,對NLP和DP的定義必須通過屬性來實現(xiàn)。有關(guān)DP管理的其他問題,請參見本文件第3節(jié)。
4.2
企業(yè)ABAC中的屬性管理
接下來,考慮在審查NLP和DP時定義的屬性列表。如果沒有足夠的客體和主體屬性集,ABAC就無法工作。屬性需要被命名、定義、確定賦值范圍、分配一個模式,并與主體和客體建立關(guān)聯(lián)。主體屬性需要由主管部門建立、發(fā)布、存儲和管理。客體屬性必須被指派給客體。跨組織共享的屬性還需要定位、檢索、公布、驗證、更新、修改和撤消。
主體屬性由屬性主管機(jī)構(gòu)提供,這些機(jī)構(gòu)通常通過屬性管理點來管理屬性,而且通常有多個主管部門,分別負(fù)責(zé)對不同屬性的管理。例如,安全部門可能主管“許可”屬性,而人力資源部門可能主管“姓名”屬性。為支持主體跨組織訪問客體而共享的主體屬性必須在組織之間是一致可比的,或映射到等價策略進(jìn)行部署執(zhí)行。例如,組織A中具有“Job Lead”角色的某個成員希望訪問組織B中的信息,但組織B使用“Task Lead”表示等效的角色。這個方式還適用于企業(yè)屬性模式與特定應(yīng)用模式之間的映射,特別是在定義企業(yè)模式之前已經(jīng)構(gòu)建的,或使用自有內(nèi)置模式的商用現(xiàn)貨(COTS)產(chǎn)品。組織必須規(guī)范主體屬性名稱和值,或者為所有組織維護(hù)等價術(shù)語的映射,這應(yīng)該由總部機(jī)構(gòu)來負(fù)責(zé)管理。
在創(chuàng)建或修改客體時,需要建立、維護(hù)客體屬性,并將其指派給客體。雖然可能不需要在整個企業(yè)中使用一套通用的客體屬性,但應(yīng)該一致地使用客體屬性,來滿足企業(yè)策略的要求,并且應(yīng)該為其他人公布可用的屬性集,以便他們可以標(biāo)記、標(biāo)注或以其他方式將這些屬性應(yīng)用于他們自己的客體。有時,還需要確保客體屬性沒有出于滿足訪問請求的目的,而被篡改或更改。客體可以通過密碼技術(shù)綁定到其客體屬性,以識別客體或其相應(yīng)屬性是否被篡改。必須部署某種機(jī)制以確保所有客體被創(chuàng)建并指派適當(dāng)?shù)目腕w屬性集,以滿足ACM中實施的策略,部署必要的企業(yè)級的客體屬性管理器應(yīng)該可以滿足這些需求。
在管理屬性的過程中,出現(xiàn)了“元屬性”(即屬性的特征)的概念。元屬性作為擴(kuò)展屬性信息應(yīng)用于主體、客體和環(huán)境條件,用于實施更細(xì)化的策略,這些策略包含與屬性相關(guān)的信息(用于管理企業(yè)屬性管理所需的數(shù)據(jù))。元屬性在本文檔中定義為:
元屬性:在ACM中實現(xiàn)MP和DP處理時所必需的與屬性相關(guān)的信息。
有關(guān)屬性管理的其他問題,請參見本文檔的第3節(jié)。
4.3
企業(yè)ABAC中訪問控制機(jī)制的部署實施
最后,考慮ACM在整個企業(yè)中的分布和管理。根據(jù)用戶的需求、企業(yè)的規(guī)模、資源的分布以及需要訪問或共享的客體的敏感性,ACM的分布對于ABAC實現(xiàn)的成功至關(guān)重要。ACM的功能組件可以物理上和邏輯上分散部署在企業(yè)中,而不是像ABAC的系統(tǒng)級視圖描述的那種集中式。
ACM中有幾個重要的功能“點”,用于檢索和管理策略的服務(wù)節(jié)點,其中包含了用于處理策略上下文或工作流、以及檢索和評估屬性的一些邏輯組件。圖5給出了這些功能點:策略執(zhí)行點(PEP)、策略決策點(PDP)、策略信息點(PIP)和策略管理點(PAP)。這些組件處于同一環(huán)境中,相互配合以實現(xiàn)訪問控制決策和策略執(zhí)行。
圖5 ACM功能點示例
PDP對DP和MP進(jìn)行評估以產(chǎn)生訪問控制決策。PDP和PEP在本文件中定義如下:
策略決策點(PDP):通過評估適用的DP和MP來計算訪問決策。PDP的主要功能之一是根據(jù)MP調(diào)節(jié)或消除DP間的沖突。
PEP執(zhí)行PDP做出的策略決策:
策略執(zhí)行點(PEP):以執(zhí)行策略決策的方式響應(yīng)主體對受保護(hù)客體的訪問請求;訪問控制決策由PDP生成。
PDP和PEP功能可以是分布式的或集中式的,并且可以在物理和邏輯上彼此分離。例如,企業(yè)可以建立一個集中控制的企業(yè)決策服務(wù),該服務(wù)評估屬性和策略,生成策略決策并傳遞給PEP。這種方式方便對主體屬性和策略進(jìn)行集中管理和控制。或者,企業(yè)內(nèi)的本地組織可以利用集中的DP存儲庫,實現(xiàn)獨立的PDP。ACM組件的設(shè)計和部署需要一個管理單元來協(xié)調(diào)ABAC的各組件功能。
要計算策略決策,PDP必須具有有關(guān)屬性的信息,這些信息由PIP提供。本文件中的PIP定義為:
策略信息點(PIP):作為屬性或策略評估所需數(shù)據(jù)的檢索源,提供PDP做出決策所需的信息。
在執(zhí)行這些策略決策之前,必須對它們進(jìn)行徹底的測試和評估,以確保它們滿足預(yù)期的需要,這些功能由PAP執(zhí)行。PAP可定義為:
策略管理點(PAP):提供一個用戶接口,用于創(chuàng)建、管理、測試和調(diào)試DP和MP,并將這些策略存儲在適當(dāng)?shù)牟呗詭熘小?/p>
最后,作為ACM中的可選組件,上下文處理器負(fù)責(zé)管理策略和屬性的檢索順序。對實時性要求比較高的場合,或“決策結(jié)果要求立即終止訪問”的那些策略來說,該部件非常重要。例如,需要在訪問請求之前提前檢索屬性,或者緩存屬性以避免在訪問請求時檢索所帶來的時間延遲。上下文處理器還需要與PIP協(xié)調(diào),向請求上下文添加屬性值,并將規(guī)范形式(例如XACML)的授權(quán)決策轉(zhuǎn)換為本機(jī)支持的格式。上下文處理器可以定義為:上下文處理器:按工作流邏輯定義的順序,檢索并執(zhí)行策略和屬性。
總結(jié)
以上是生活随笔為你收集整理的基于属性的访问控制(ABAC)定义与思考 ——ABAC的基本概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加速度计参数讲解
- 下一篇: pytorch MSELoss参数详解