美文网首页
简述 ACM、ABAC 与 NGAC

简述 ACM、ABAC 与 NGAC

作者: david9 | 来源:发表于2023-05-04 13:58 被阅读0次

    权限管理相关概念

    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 通过逻辑访问控制来保护对象免受未经授权的操作。(下述)各种访问控制模型都提供了一个框架和一组边界条件,对象、主体、操作和规则可以被组合以生成和实施访问控制决策。

    DAC

    Discretionary Access Control

    自主访问控制,允许系统用户(资源所有者)授予或禁止其他用户对置于其控制之下的资源的访问。

    MAC

    Mandatory Access Control

    强制访问控制,由系统管理员来定义访问规则,通过给主体与资源赋以安全标记来实现。限制了资源所有者授予或禁止对资源的访问能力。

    IBAC

    Identity-Based Access Control

    基于身份的访问控制,使用类似访问控制列表(ACL)的机制来确定允许访问对象的主体身份。如果使用者提供的凭证与ACL中保存的凭证相匹配,则该使用者可以访问该对象。

    由于权限由对象所有者管理,每个对象都需要有自己的ACL和分配给每个主体的授权集合。授权决策是静态的,随着时间的推移会出现「权限冗余」。

    RBAC

    Role-Based Access Control

    基于角色的访问控制,根据用户在组织中的角色授予或禁止对资源的访问。每个角色都被分配了一系列的权限和限制,权限的更新即为角色的更新。

    由于决策是静态的,难管理和扩展,随着时间的推移会出现「角色爆炸」和「权限冗余」。

    ABAC

    Attribute-BasedAccessControl

    基于属性的访问控制,根据分配的主体属性、环境条件以及用这些属性和条件指定的一组策略,授权或禁止操作。

    在 ABAC 概念中 IBAC 使用「identity」属性 ,RBAC 使用「role」属性,更关键的是 ABAC 有一个复杂的规则集。

    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.

    ABAC 依赖于对主体属性、对象属性、环境条件以及定义主体-对象属性组合允许操作的形式关系或访问控制规则或策略的评估。XACML(eXtensible Access Control Markup Language)和 NGAC(Next Generation Access Control)是 ABAC 的两个落地规范。

    模型

    • Subject 操作的发起者,可能是一个用户,或一个系统;

    • Object 操作的接受者,即访问的目标资源(实体);

    • Operation Subject 发起对 Object 的操作;

    • Attribute 一组来自 Subject,Object 和 Operation 相关的数据,也包含环境上下文数据;

    • Policy 基于属性动态生成访问控制结果的预定义的一组规则。

    架构

    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.

    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.

    可分为四个功能层:实施、决策、管理和访问控制数据,各功能组件协同工作以实现受策略保护的访问和数据服务。

    • PEP(Policy Enforcement Point)

      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(Policy Decision Point)

      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.

      策略决策点,通过策略和属性信息决定有无权限进行操作。

    • PIP(Policy Information Point )

      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(Policy Administration Point)

      Provides a user interface for creating, managing, testing, and debugging DPs and MPs, and storing these policies in the appropriate repository.

      策略管理点,创建、管理策略,保证策略经过测试和评估满足预期需求。


      image.png
    1. PAP 产生需要的策略,策略的描述与存储方式依赖规范的具体实现。

    2. PEP 拦截 Subject 对 Object 的访问请求,并将请求内容提交 PDP 获取执行决策。

    3. PDP 根据配置的策略(PAP)及属性及环境条件(PIP)生成访问决策。

    4. PEP 根据 PDP 生成的访问决策执行对 Object 的访问或拒绝,返回结果给 Subject。

    策略

    ABAC 策略的定义有两种方式:

    • 逻辑表达式

      • 通过由属性和逻辑运算符(AND、OR、=、>、< 等)组成的逻辑表达式来判断授权情况;

      • XACML 使用此方式。

      如下述表达式:

      can_access(u,a,o)→ Role(u)="x" AND Cond(u) = Cond(o) AND (a=read OR a=write) 
      

      即当满足 u 的角色为 x 且 u 和 o 在条件 Cond 下一致 且 a 为 read 或 write,则允许 u 对 o 执行操作 a。

    • 枚举关系配置

      • 通过枚举所有相关的关系配置或关系组合来指定策略;

      • NGAC 使用此方式。

      如下述关系组合

      (uai,arsi,oai)
      

    表示用户属性 uai 中的用户拥有对对象属性 oai 中的对象在访问权限集 arsi 中的访问权限。

    NGAC介绍

    2003年,NIST启动了一个称为策略机(Policy Machine)的项目,以寻求一个标准化的 ABAC 机制,允许在 ABAC 策略的表达和执行中通过更改一组固定的数据元素和关系,来实现灵活的授权过程。

    可以用一个有向无环图(DAG)来表示需要保护的系统,包括资源与组织结构,且图表达的结构符合组织语义。在图模型之上可以叠加策略。资源模型和用户模型之间,定义了权限。NGAC 提供了一种方式来表示资源及角色,以及如何用权限把这两个维度联系在一起。


    image.png

    模型

    • Policy Elements

      • User(u)即 ABAC 模型中的 Subject,系统中验证过的有唯一标识的个人。

      • Object(o)系统中有唯一标识且被一个或多个策略管理的资源(实体)。

      • Operation(op) 对 表示资源的 object 或表示策略的 Elements 和 Relationships 的操作。

      • Access Right(ar)访问权限,分管理权限和非管理权限

      • Policy Class(pc)区分不同类别的策略,包含 Elements 和 Relationships。

      • User Attribute(ua)用户属性,用以组织和区分不同类别的 user。

      • Object Attribute(oa)对象属性,用以区分不同类别的 object。o 是 oa 的子集

    • Relationships
      NGAC 不通过规则来表达策略,而是通过配置 4 种类型的关系(Relation)来表达:

      • Assignment(assign)指派,定义成员关系。
        指派可以使用的实体包括用户、用户属性、对象属性(包括所有对象)和策略类。
        使用元组 (x, y) 来指代将元素 x 指派给元素 y ,如 (u, ua)、(o, oa)、(ua/oa, ua/oa)、(ua/oa, pc)。

      • Association (assoc)关联,定义 Policy Elements 间的访问权限。
        执行操作时所持有的访问权限是通过关联获得的。

        关联是一个三元组,用 ua---ars---at 表示:ua 是用户属性,ars 是访问权限集,at 是用户属性或对象属性。其含义是,ua 中包含的用户可以对 at 引用的策略元素执行 ars 中的访问权限。at 引用的策略元素集依赖于(并且对其有意义)ars 中的访问权限。
        

        权力的派生(Derived Privileges)

        对于权力 (u, ar, e),对于每个包含 e 的策略类 pc,当且仅当满足下述条件是权利有效:

      • 用户 u 包含在关联的用户属性 ua 中;

      • 策略元素 e 包含在上述关联的属性 at 中;

      • 上述关联的属性 at 包含在策略类 pc 中;

      • 访问权限 ar 是上述关联的访问权限集中的成员;

      • Prohibition 禁止用于指定 Association 例外。有三种类型的禁止关系:

        • 用户否决(User-deny)使用 u_deny(u, ars, pe) 表示

        • 用户属性否决(User Attribute-deny)使用 ua_deny(u, ars, pe) 表示

        • 进程否决(Process-deny)使用 p_deny(u, ars, pe) 表示

          u 是用户,ua 是用户属性,p 是进程,ars 是访问权限集,pe 是策略元素。上述关系表示的含义分别是用户u、ua 中的用户和进程 p 不能对 pe 中的策略元素执行 ars 中的访问权限。

          用户否决和用户属性否决可以由管理员直接创建,也可以作为职责的结果动态创建。进程否决关系只能通过职责创建。它们的主要用途是执行限制条件(例如,进程读取保密数据,则阻止该进程写入任何非保密元素)。

      • Obligation 职责,用于动态改变访问状态。

        以 (ep, r)的形式表示「当 ep 发生时,执行 r」,其中 ep 是事件模式(即Event Pattern),r 是一系列管理操作(称为响应,即Response)。
        
        事件模式规定了一些条件,如果这些条件与对一个对象成功执行某操作(事件)的上下文相匹配,则立即执行相关的管理操作。上下文会涉及到用户、操作、对象属性等等。
        

    下述为指派与关联的一个示例:


    image.png

    合并 pc:


    image.png

    架构

    • RAP(Resource Access Point)
      资源访问点,负责资源的读写。
    • EPP(Event Processing Point)
      事件处理点,负责职责(Obligation)的事件模式处理。
      image.png
    1. PEP 捕获应用请求,为确定是否允许当前要执行的访问操作,PEP 将请求提交给 PDP。
    2. PDP 通过 PAP 基于存储在 PIP 中的数据元素和关系的当前配置(即策略)来计算决策。
      1. 计算决策为允许还是拒绝;
      2. 如果请求是管理操作且允许,PDP 向 PAP 发出命令,PAP 对存储在 PIP 中的数据或关系执行操作;
      3. 如果请求是非管理且允许的读写操作,需要返回目标对象的物理位置;
      4. 将管理操作结果状态或者访问决策返回给 PEP。
    3. PEP 根据是否是管理操作进行后续处理
      1. 管理操作且状态为成功,向 EPP 提交访问上下文;
      2. 非管理且授权的读写操作,向 RAP 发出对象内容操作命令,操作成功则向 EPP 提交访问上下文。
    4. EPP 收到访问上下文后,如果该上下文与某个职责的事件模式匹配,那么 EPP 将自动执行该职责的管理操作,从而可能更改访问状态。

    相关文章

      网友评论

          本文标题:简述 ACM、ABAC 与 NGAC

          本文链接:https://www.haomeiwen.com/subject/qzuxsdtx.html