|
充分理解ABAC需要理解逻辑访问控制的基本原理。逻辑访问控制的目的是保护对象(无论是数据、服务、可执行应用程序、网络设备还是其他类型的信息技术)免受未经授权的操作。这些操作可能包括发现、读取、创建、编辑、删除和执行对象。这些对象由个人或组织拥有,并具有激励所有者保护它们的内在价值。作为对象的所有者,他们有权制定一项政策,说明可以对这些对象执行哪些操作,由谁执行,以及这些对象可以在什么情况下执行这些操作。如果主体满足由对象所有者建立的访问控制策略,则主体被授权对该对象执行所需的操作,该对象被更好地称为被授予对该对象的访问。如果主体不满足策略,则拒绝访问对象。
计算机安全架构师和管理员以逻辑一致的方式部署访问控制机制(ACM),以通过调解来自主体的请求来保护其对象。这些ACM可以使用多种方法来实施适用于这些对象的访问控制策略。ACM可定义为:
Access Control Mechanism (ACM): The logical component that serves to receive the access request from the subject, to decide, and to enforce the access decision.
可以根据各种逻辑访问控制模型来描述这些ACM的功能。这些访问控制模型提供了一个框架和一组边界条件,在此基础上,对象、主体、操作和规则可以被组合以生成和实施访问控制决策。每个模型都有自己的优势和局限性,但必须注意这些模型的演变,以充分了解ABAC模型的灵活性和适用性。
MAC/DAC
20世纪60年代和70年代,随着自由访问控制(DAC)和强制访问控制(MAC)概念的出现,逻辑访问控制的早期应用被应用于国防部(DoD)应用中。这些术语在国防部可信计算机系统评估标准(TCSEC)或“橙色手册”[TCSEC]中有进一步定义。DAC和MAC的定义也可在[NIT800-53]中找到。
IBAC/ACL
随着网络的增长,限制对特定受保护对象的访问的需求促使基于身份的访问控制(IBAC)功能的增长。IBAC使用诸如访问控制列表(ACL)之类的机制来捕获允许访问对象的人的身份。如果使用者提供的凭证与ACL中保存的凭证相匹配,则该使用者可以访问该对象。主体执行操作(读取、写入、编辑、删除等)的个人权限由对象所有者单独管理。每个对象都需要自己的ACL和分配给每个主体的特权集。在IBAC模型中,授权决策是在任何特定访问请求之前做出的,并导致将主体添加到ACL中。对于要放置在ACL上的每个主体,对象所有者必须根据管理对象的策略评估标识、对象和上下文属性,并决定是否将主体添加到ACL中。此决定是静态的,所有者需要一个通知过程来重新评估并可能从ACL中删除主体,以表示主体、对象或上下文更改。随着时间的推移,未能删除或撤消访问权限会导致用户累积特权。
RBAC
基于角色的访问控制模型(RBAC)采用预定义的角色,这些角色携带与它们相关联的一组特定权限,并向其分配主体。例如,被分配为经理角色的主体与被分配为分析师角色的主体将有权访问不同的一组对象。在该模型中,访问权限由分配角色给每个人的人隐式地预先确定,并且在确定与每个角色相关联的权限时由对象所有者明确地预先确定。在访问请求时,访问控制机制评估分配给请求访问的主体的角色,以及该角色在呈现和执行访问决定之前被授权对对象执行的一组操作。注意,角色可以被视为由访问控制机制评估的主体属性,并围绕该主体属性生成对象访问策略。随着RBAC规范的普及,它使企业访问控制功能的集中管理成为可能,并减少了对ACL的需求。
ABAC
就所使用的属性而言,ACL和RBAC在某些方面是ABAC的特例。ACL对“identity”属性起作用。RBAC使用“角色”属性。与ABAC的关键区别在于策略的概念,它表达了一个复杂的布尔规则集,可以评估许多不同的属性。虽然使用ACL或RBAC可以实现ABAC目标,但由于AC需求和ACL或RBA模型之间需要抽象级别,因此证明AC需求符合性是困难且成本高昂的。ACL或RBAC模型的另一个问题是,如果AC需求发生变化,可能很难确定需要更新ACL或RBAC实现的所有位置。
与ABAC一致的访问控制框架的一个示例是可扩展访问控制标记语言(XACML)[XACML]。XACML模型使用规则、策略、规则和策略组合算法、属性(主体、(资源)对象、动作和环境条件)、义务和建议等元素。其参考架构包括诸如策略决策点(PDP)、策略执行点(PEP)、策略管理点(PAP)和策略信息点(PIP)之类的功能,以控制访问。另一个例子是下一代访问控制标准[ANSI499]。
通常,ABAC避免了在发出请求之前将功能(操作/对象对)直接分配给主体请求者或其角色或组的需要。相反,当主体请求访问时,ABAC引擎可以根据请求者的分配属性、对象的分配属性和环境条件,以及根据这些属性和条件指定的一组策略,做出访问控制决策。在这种安排下,可以创建和管理策略,而不直接引用潜在的大量用户和对象,并且可以在不引用策略的情况下配置用户和对象。
ABAC的优势
在许多AC系统中,逻辑访问控制解决方案主要基于请求对对象(例如,文件)执行操作(例如,读取)的主体的身份。示例包括IBAC或RBAC,其中对对象的访问权限已分别授予本地标识的主体,或对象的访问权已授予该主体所属的本地定义角色。这种AC方法通常很难管理。在这个非ABAC多组织访问方法示例中(如下图1所示),对主体原始组织之外的对象的身份验证访问需要在目标组织中预先提供主体的身份,并预先填充在访问列表中。

此外,主体限定符(如身份和角色)通常不足以表达真实的交流需求。RBAC根据受试者与角色的关联做出决定。RBAC不容易支持多因素决策(例如,取决于物理位置的决策,以及专门培训,如健康保险便携性和责任法案(HIPAA)记录访问;最近的HIPAA数据保护培训可能是查看病历的先决条件。)RBAC角色分配往往基于更静态的组织位置,在需要动态访问控制决策的某些RBAC架构中存在挑战。试图实现这些类型的访问控制决策需要创建许多临时角色,并且成员有限,这导致了通常所称的“角色爆炸”。
需要一种方法来做出AC决策,而不需要对象事先知道对象或对象所有者知道对象。通过依赖组织之间一致定义的主体和对象属性的概念,ABAC避免了在请求对对象执行操作之前直接向单个主体分配明确授权的需要。此外,该模型在大型企业中实现了灵活性,在该企业中,访问控制列表或角色和组的管理将耗时且复杂。利用跨越主体和对象的一致定义属性,可以在相同或独立的基础架构中执行和管理身份验证和授权活动,同时保持适当的安全级别。
ABAC的工作定义
ABAC的描述多种多样。例如,一篇关于web服务的早期论文指出,ABAC“基于请求者拥有的属性授予对服务的访问权”,而地理信息系统中的安全性讨论将ABAC描述为一种方法,其中“与用户相关的属性值决定了用户与特权的关联”。
还有一篇论文将ABAC总结为“基于主体、对象和环境属性,支持强制和自主访问控制需求”的模型。在这些和其他定义中,有一个合理的共识,即ABAC通过将主体属性、对象属性和环境条件的当前值与访问控制规则中指定的要求相匹配来确定访问(即对系统对象的操作)。以下是ABAC的高级定义:
Attribute Based Access Control (ABAC): An access control method where subject requests to perform operations on objects are granted or denied based on assigned attributes of the subject, assigned attributes of the object, environment conditions, and a set of policies that are specified in terms of those attributes and conditions.
属性是主体、对象或环境条件的特征。属性包含name-value对提供的信息。
主体是用户或NPE,例如发出访问请求以对对象执行操作的设备。主体被分配了一个或多个属性。在本文档中,假设主体和用户是同义词。
对象是由ABAC系统管理访问权限的系统资源,例如设备、文件、记录、表、进程、程序、网络或包含或接收信息的域。它可以是资源或请求的实体,也可以是主体可以在其上执行操作的任何东西,包括数据、应用、服务、设备和网络。
操作是主体对对象的请求执行函数。操作包括读取、写入、编辑、删除、复制、执行和修改。
策略是规则或关系的表示,在给定主体、对象和可能的环境条件的属性值的情况下,可以确定是否应允许请求的访问。
环境条件:发生访问请求的操作或情景环境。环境条件是可检测的环境特征。环境特征独立于主体或对象,可能包括当前时间、星期几、用户位置或当前威胁级别。
顶层的ABAC定义如下图所示,其中ABAC ACM接收主体的访问请求,然后根据特定策略检查主体和对象的属性。然后ACM确定对象可以对对象执行什么操作。

ABAC基本概念
在最基本的形式中,ABAC依赖于对主体属性、对象属性、环境条件以及定义主体-对象属性组合允许操作的形式关系或访问控制规则或策略的评估。所有ABAC解决方案都包含这些基本的核心功能,用于评估属性,并在这些属性之间实施规则或关系。

即使在一个小型的孤立系统中,ABAC也依赖于向主体和对象分配属性,以及开发包含访问规则的策略。必须为系统中的每个对象分配特定的对象属性,以表征该对象。某些属性与对象的整个实例有关,例如所有者。其他属性只能应用于对象的部分。例如,文档对象可以由组织a拥有,具有来自组织B的知识产权部分,并且是组织C运行的程序的一部分。此文档具有标题、作者、创建日期和上次编辑日期,所有对象属性都由文档的创建者、作者或编辑确定。可以分配其他对象属性,例如拥有组织、知识产权特征、出口管制分类或安全分类。每次创建或修改新文档时,必须捕获这些对象属性。这些对象属性通常嵌入在文档本身中,但它们可以在单独的表中捕获、通过引用合并或由单独的应用程序管理。
必须为使用系统的每个主体分配特定属性。考虑用户访问文件管理系统的示例。管理员将用户建立为系统内的主体,并将关于该用户的特征捕获为主体属性。此主体可能有名称、角色和组织从属关系。其他主体属性可能包括身份、国籍和安全许可。这些主体属性由组织内维护文件管理系统主体标识信息的机构分配和管理。随着新用户的到来,老用户的离开,以及主体的特征发生变化,这些主体属性可能需要更新。
系统中的每个对象必须至少有一个策略,该策略定义对象的允许主体、操作和环境条件的访问规则。该策略通常源自描述组织内业务流程和允许行动的文件化或程序化规则。例如,在医院环境中,规则可能规定只有经授权的医务人员才能访问患者的病历。在某些系统中,如果对象是记录类型属性为“患者病历”的文档,则将选择并处理“病历规则”,以使试图执行“读取”操作的人员类型属性值为“非医疗支持人员”的受试者将被拒绝访问,并且该操作将被禁止。注意,这只是实现属性和规则之间连接的一种方法。
绑定主体和对象属性的规则间接指定特权(即,哪些主题可以对哪些对象执行哪些操作)。允许的操作规则可以通过多种形式的计算语言表达,例如:
- 满足特定操作授权的属性和条件的布尔组合
- 一组关联主体和对象属性以及允许操作的关系
一旦建立了对象属性、主体属性和策略,就可以使用ABAC保护对象。访问控制机制通过限制允许的主体对允许的操作的访问来调解对对象的访问。ACM组装策略、主体属性和对象属性,然后根据策略中提供的逻辑执行决策。ACM必须能够管理制定和执行决策所需的流程,包括确定要检索的策略、按什么顺序检索哪些属性以及在哪里检索属性。然后,ACM必须执行必要的计算以做出决定。
可以在ABAC模型中实现的策略仅限于计算语言和可用属性。这种灵活性使最大范围的主题能够访问最大范围的对象,而不必指定每个主体和每个对象之间的单独关系。例如,受试者在受雇时被分配了一组受试者属性(例如,Nancy Smith是心脏科的执业护士)。对象在创建时被指定其对象属性(例如,包含心脏病患者病历的文件夹)。指定机构创建规则来管理一组允许的操作(例如,心脏科的所有执业护士都可以查看心脏病患者的病历)。为了增加灵活性,属性及其值可以在主体、对象和属性的整个生命周期中进行修改。
为受规则集管理的主体和对象提供属性,该规则集指定可以进行哪些操作,从而允许无限数量的主体在对象所有者或规则制定者事先不知道特定主题的情况下对对象执行操作。随着新主体加入组织,规则和对象不需要修改。只要为受试者分配了访问所需对象所需的属性,就不需要修改现有规则或对象属性。这种好处通常被称为适应外部用户,是使用ABAC的主要好处之一。
企业ABAC概念
虽然ABAC是信息共享的推动者,但当在整个企业中部署时,实现ABAC所需的组件变得更加复杂。在企业一级,日益扩大的规模需要复杂的、有时是独立建立的管理能力,以确保政策和属性的一致共享和使用,以及在整个企业中控制分配和使用访问控制机制。以下是本文档中企业的定义。
企业:需要和管理信息共享的实体之间的协作或联盟。
下图显示了启用企业ABAC所需的主要组件的示例。一些企业拥有可用于实施ABAC的现有功能。例如,大多数企业都有某种形式的身份和凭证管理来管理主体属性的总体,如名称、唯一标识符、角色、权限等。类似地,许多企业可能有一些组织政策或指南来建立授权主体访问企业对象的规则。然而,这些规则通常不是以可在所有应用程序中一致集成的机器可执行格式编写的。ABAC策略必须以机器可执行的格式提供,并存储在存储库中并发布以供ACM使用。这些数字策略包括呈现访问控制决策所需的主体和对象属性。企业主体属性必须通过主体属性管理功能在企业内的组织中创建、存储和共享。同样,企业对象属性必须通过对象属性管理功能建立并绑定到对象。此时,必须部署启用ABAC的访问控制机制。本节的其余部分将详细介绍企业ABAC的每个主要组件。

企业ABAC策略
自然语言策略(NLP)是一种高级要求,它规定了如何管理信息访问,以及在什么情况下谁可以访问什么信息。NLP以人类可理解的术语表示,可能无法在ACM中直接实现。NLP可能是不明确的,因此很难从形式上可操作的元素中导出,因此企业策略可能很难以机器可执行的形式进行编码。虽然NLP可以是特定于应用程序的,因此应用程序系统会将其考虑在内,但NLP同样可能涉及跨多个应用程序的主体动作。例如,NLP可能与组织单位内部或跨组织单位的对象使用有关,也可能基于需要知道的信息、能力、权限、义务或利益冲突因素。这样的策略可以跨越多个计算平台和应用。NLP在本文件中定义如下:
Natural Language Policy (NLP): Statements governing management and access of enterprise objects. NLPs are human expressions that can be translated to machine-enforceable access control policies.
鉴于企业中每个组织都存在相关的NLP,下一步是将这些NLP转化为一组通用规则,这些规则可以在整个企业的ACM中平等一致地执行。为了实现这一点,有必要确定所有必需的主体/对象属性组合和允许的操作。通常,这些价值因组织而异,可能需要某种形式的共识或映射到每个组织的现有属性,以适应企业互操作性。主体和对象属性的商定列表然后将允许的操作和来自现有组织特定属性的所有映射转换为机器可执行的格式。
NLP必须编入数字政策(DP)算法或机制。为了提高性能效率和简化规范,NLP可能需要分解并转换为适合企业运营单元基础设施的不同DP。DP在本文件中定义为:
Digital Policy (DP): Access control rules that compile directly into machine executable codes or signals. Subject/object attributes, operations, and environment conditions are the fundamental elements of DP, the building blocks of DP rules, which are enforced by an access control mechanism.
多个DP可能需要元策略(MP),或规定使用和管理DP以处理DP分级权限、DP消除冲突以及DP存储和更新的策略。MP用于管理DP。根据复杂程度,根据NLP规定的优先级和组合策略的结构,可能需要分级MP。MP在本文件中定义为:
Metapolicy (MP): A policy about policies, or policy for managing policies, such as assignment of priorities and resolution of conflicts between DPs or other MPs.
一旦开发了DP和MP,就需要对其进行管理、存储、验证、更新、优先化、消除冲突、共享、退出和强制执行。这些操作中的每一项都需要一组通常分布在整个企业中的功能,统称为数字策略管理(DPM)。组织中可能有多个策略权限和层次结构,它们对企业策略有所不同。如何管理DP和MP可能取决于中央认证。
正确的DP定义和开发对于确定提供访问控制决策所需的主体和对象属性至关重要。请记住,DP语句由主体和对象属性对以及满足一组允许操作所需的环境条件组成。一旦确定了满足给定企业对象集的整个允许操作集所需的全部主体和对象属性集,该属性集就包含了企业ABAC访问决策所需的定义、分配、共享和评估的全部属性集。因此,在实现企业ABAC功能时,必须通过属性支持来识别NLP和DP。DP管理的其他注意事项见本文件第3节。
企业ABAC中的属性管理
接下来,考虑在检查NLP和DP时开发的属性列表。如果没有足够的对象和主体属性集,ABAC就无法工作。属性需要命名、定义、给定一组允许的值、分配模式并与主体和对象关联。主体属性需要在授权下建立、发布、存储和管理。必须为对象指定对象属性。应查找、检索、发布、验证、更新、修改和撤销跨组织共享的属性。
主体属性由属性权威机构提供。通常,有多个权限,每个权限都具有不同的属性。例如,Security可能是Clearance属性的权限,而Human Resources可能是Name属性的权限。需要共享以允许一个组织的主体访问另一个组织中的对象的主体属性必须是一致的、可比较的或映射的,以允许执行等效的策略。例如,组织a中具有职务领导角色的成员希望访问组织B中的信息,但组织B使用术语“任务领导”表示等效角色。这个问题也适用于企业属性模式和特定于应用程序的模式之间的映射,特别是在定义企业模式之前构建的模式和/或自带内置模式的商用现货(COTS)产品。组织必须规范主体属性名称和值,或维护所有组织的等效术语映射。这应该由中央授权管理。
创建或修改对象时,需要建立、维护对象属性并将其指定给对象。虽然可能不需要在整个企业中使用一组通用的对象属性,但应该一致地使用对象属性来满足企业策略要求,并且应该为那些希望标记、标记或以其他方式将对象属性应用于其对象的人发布可用的对象属性集。有时,可能需要确保对象属性不被篡改或更改以满足访问请求。对象可以以密码方式绑定到其对象属性,以识别对象或其相应的属性是否已被不当修改。必须部署机制,以确保为创建的所有对象分配适当的对象属性集,以满足ACM所采用的策略。可能需要有一个企业对象属性管理器来协调这些需求。
在管理属性的过程中,出现了“元属性”的概念,即属性的特征。元属性作为扩展属性信息应用于主体、对象和环境条件,有助于实施包含属性信息的更详细策略,并管理企业属性管理所需的数据量。元属性在本文档中定义为:
Metaattributes: Information about attributes necessary to implement MP and DP processing within an ACM.
企业ABAC中的访问控制机制分布
最后,考虑ACM在整个企业的分布和管理。根据用户的需求、企业的规模、资源的分布以及需要访问或共享的对象的敏感性,ACM的分布对于ABAC实现的成功至关重要。ACM的功能组件可以在物理上和逻辑上分离并分布在企业内部,而不是像ABAC的系统级视图中描述的那样集中。
ACM中有几个功能“点”,它们是策略检索和管理的服务节点,以及一些逻辑组件,用于处理策略和属性检索和评估的上下文或工作流。下图显示了主要功能点:策略执行点(PEP)、策略决策点(PDP)、策略信息点(PIP)和策略管理点(PAP)。当这些组件在一个环境中时,它们必须一起工作以提供访问控制决策和策略实施。

PDP对DP和MP执行评估,以产生访问控制决策。PDP和PEP在本文件中定义如下:
Policy Decision Point (PDP): Computes access decisions by evaluating the applicable DPs and MPs. One of the main functions of the PDP is to mediate or deconflict DPs according to MPs.
PEP执行PDP做出的决定:
Policy Enforcement Point (PEP): Enforces policy decisions in response to a request from a subject requesting access to a protected object; the access control decisions are made by the PDP.
PDP和PEP功能可以是分布式或集中式的,并且可以在物理和逻辑上彼此分离。例如,企业可以建立一个中央控制的企业决策服务,该服务评估属性和策略,并提供决策,然后传递给PEP。这允许集中管理和控制主体属性和策略。或者,企业内的本地组织可以利用集中DP存储实现单独的PDP。ACM组件的设计和分发需要一个管理功能,以确保ABAC功能的协调。
为了计算访问决策,PDP必须具有有关属性的信息。该信息由PIP提供。PIP在本文件中定义为:
Policy Information Point (PIP): Serves as the retrieval source of attributes, or the data required for policy evaluation to provide the information needed by the PDP to make the decisions.
在执行这些政策之前,必须对其进行彻底测试和评估,以确保其满足预期需求。此操作由PAP执行。PAP可定义为:
Policy Administration Point (PAP): Provides a user interface for creating, managing, testing, and debugging DPs and MPs, and storing these policies in the appropriate repository.
最后,作为ACM中可选的附加组件,上下文处理程序管理策略和属性检索的顺序。当必须做出时间关键或断开连接的访问控制决策时,这一点非常重要。例如,属性可以在访问请求之前被检索,或者被缓存以避免在访问请求时检索中固有的延迟。上下文处理程序还与PIP协调,向请求上下文添加属性值,并将规范形式(例如XACML)的授权决策转换为本地响应格式。上下文处理程序可以定义为:
Context Handler: Executes the workflow logic that defines the order in which policy and attributes are retrieved and enforced.
总结
ABAC功能将实现前所未有的灵活性和安全性,同时促进不同组织之间的信息共享。ABAC非常适合大型企业。ABAC系统可以实现现有的基于角色的访问控制策略,并且可以支持基于单个请求者的许多不同特征从基于角色的迁移到更细粒度的访问控制政策。然而,ABAC系统比简单的访问控制系统更复杂,因此实施和维护成本更高。 |
|