图:零信任体系架构图V1.4
今天咱们就谈谈“访问控制组件”的演化过程,很明显,访问控制组件是随着访问控制策略的变化而演化的。
如果我们把视野再拉回到《NIST SP800-207 零信任架构》,可能对美国国家标准化委员会(NIST)零信任架构里的两个核心组件印象深刻:策略执行点(PEP,Policy Enforcement Point)和策略决策点(PDP, Policy Decision Point)。
这两个P,其实是沿袭了“可扩展的访问控制标记语言(XACMLL,Extensible Access Control Markup Language)”里的定义。
XACML中的4P
2006年,NIST在对访问控制系统研究过程中特别是RBAC的研究中,引用了“可扩展的访问控制标记语言(XACML)”。该语言是由“结构化信息标准推进组织(OASIS,The Organization for the Advancement of Structured Information Standards)”定义的。
图:XACML架构
这里面除了策略执行点(PEP)和策略决策点(PDP)外,还定义了“策略访问点(PAP,Policy Access Point)”和“策略信息点(PIP,Policy Information Point)”。
策略执行点(PEP)基于用户的属性、请求的资源、指定的动作构造请求,通过策略信息点(PIP)获取其他环境信息。
策略决策点(PDP)接收构造的请求,通过策略接入点(PAP)将其适用的策略和系统状态进行比较,然后将允许访问或拒绝访问的结果返回给策略执行点(PEP)。
策略决策点(PDP)和策略执行点(PEP)即可以集成在一个应用里,也可以分散在网络中。
企业级ABAC访问控制机制中的4P
2014年,NIST在对ABAC的专题研究中,将企业级ABAC的访问框架与XACML架构的基本逻辑保持了一致,只是把“策略访问点(PAP,Policy Access Point)”换成了“策略管理点(PAP,Policy Administration Point)”。
图:企业级ABAC的访问控制机制(ACM)示例
NIST零信任架构里的2P与4P
2019年,NIST定义了零信任架构。
图:NIST零信任架构的核心组件
其中,把前面提到的“策略信息点(PIP)”变成了“策略引擎(PE,Policy Engine)”;把前面提到的“策略管理点(PAP)”变成了“策略管理器(PA,Policy Administrator)”。
然后把“策略引擎(PE)”和“策略管理器(PA)”装进了“策略决策点(PDP)”组件里。
CSA的通用零信任抽象架构
2024年,云安全联盟(CSA)把零信任进一步抽象成了下面的架构:
图:通用零信任抽象架构
其中,零信任安全控制中心就是SDP里的Controller、谷歌 BeyondCorp里的“访问控制引擎(ACE,Access Control Engine)”和NIST 的“策略决策点(PDP)”的抽象。
其中,零信任安全代理就是SDP里的连接接受主机(AH,Accepting Host)、谷歌 BeyondCorp里的“访问代理(Access Proxy)”和NIST的“策略执行点(PEP)”的抽象。
图:通用零信任抽象架构与其它零信任架构的关系
所以你会发现,零信任模式其实就是基于两大平面的信任管理与基于ABAC的访问控制,这就是零信任的内核与灵魂。