访问控制模型综述

摘要:逻辑访问控制是信息安全保护数字资源不受非法访问的关键技术,本文对信息系统中典型的访问控制模型进行了简述,并分别围绕各种模型的访问控制粒度、策略化程度和应用实施过程中面临的问题进行了分析。

关键词:访问控制,访问控制列表,基于角色的访问控制,基于属性的访问控制,基于策略的访问控制,风险自适应访问控制

 访问控制模型综述 

在按需连接、始终在线、数据驱动的信息化世界中,尤其是在整个国家经济从基于制造业的模式向基于知识的模式转变的背景下,许多组织正确地将其信息系统视为最重要的资产。

企业组织经常使用这些IT系统来存储和处理大量敏感数据,如果这些数据因未经授权的访问而被泄露,可能会对组织造成潜在的损害。更严重的是,IT系统现在与国家关键基础设施组件集成,甚至控制这些组件,例如负责发电厂、化工生产设施和运输系统安全运行的硬件组件。对这些类型系统的受控访问至关重要,因为不当或恶意操作可能导致生命损失或大规模环境和基础设施破坏。

组织使用访问控制机制来降低未经授权访问其数据、资源和系统的风险。

不同的访问控制机制在实现不同的访问控制模型时,可以采取多种形式,使用不同的技术和底层基础设施组件,并涉及不同程度的复杂性。在某些情况下,更复杂的模型扩展并增强了早期的模型,而在其他情况下,它们代表了对访问控制方式的重新思考。在许多情况下,较新、更复杂的模型不是因为早期模型提供的安全性不足,而是因为需要新模型来解决组织结构、技术、需求、技术能力和机构关系的变化所带来的问题。

本文主要讨论当前和未来的访问控制模型,包括访问控制列表、基于角色的访问控制、基于属性的访问控制、基于策略的访问控制和风险自适应访问控制以及支持这些模型所需的基础设施。

01

访问控制列表

访问控制列表(ACL)是最古老、最基本的访问控制形式。20世纪70年代,随着多用户系统(如UNIX)的出现,ACL开始应用于对用户间的共享文件和数据进行访问限制。

后来,随着针对个人用户的多用户操作系统的快速发展,ACL的思想也被引入其中。尽管近年来用于保护系统资源的访问控制机制变得更加复杂,但许多现代操作系统,包括UNIX、类UNIX和Windows,某种程度上都仍在使用ACL。

图片

图1 访问控制列表的示例

ACL的概念非常简单,系统中的每个需要被访问控制机制保护的资源对象(称为客体)都维持一个独立的关联映射表,其中记录了可以对该客体进行访问的实体(称为主体)的信息,以及主体可以采用的访问方式。

例如,图1为一个包含文件1、文件2和文件3的访问控制关系的ACL,对于每个文件来说,表中包含了能够对该文件进行访问的用户名信息,以及该用户的许可访问方式(例如,Alice可以对文件1进行read和write)。每当用户试图对文件执行任何这些操作时,操作系统都会检查该文件的ACL,并确定是否允许该请求对应的操作被施加于该文件。

ACL的实施相对简单,也不需要依赖太多底层技术基础设施,不仅应用于所有现代操作系统中,也广泛应用于其他的上下文环境中。

例如,网络应用或关系数据库DBMS。DBMS可以为每个用户创建不同的数据视图,然后利用ACL限制不同用户对不同数据子集(视图)的访问。在实现形式上,ACL可以采用大多数编程语言内建的Map型数据结构。在ACL数据量巨大、内存扩展不足的情况下,也可以使用数据库来存储ACL数据。

ACL模型的局限性在于每次访问资源时都必须检查客体(文件、进程或其他资源)的ACL,这可能是一种低效的访问控制实施方法。ACL不仅控制用户对系统资源的访问,还控制应用程序和系统的访问。因此,在典型的计算会话环境中,用户尝试打开的应用程序、尝试访问的文件、应用程序运行过程所依赖的其他资源都需要执行ACL的检查。

另外,ACL在企业环境中的管理维护也很困难。因为不同用户需要对不同资源具有不同级别的访问权限,有选择地添加、删除和更改单个文件甚至文件组上的ACL可能非常耗时且容易出错。

02

基于角色的访问控制

基于角色的访问控制(RBAC)是一种比ACL范式更新的访问控制模型。与ACL不同,对资源的访问控制是基于请求者与资源属主(控制资源的组织或用户)之间的关系来确定的,换句话说,请求者所担任的组织角色将决定其访问是被授予还是被拒绝。

RBAC解决了ACL模型的一些不足,同时也提供了一些新的有趣的机会。例如,ACL模型将每个用户视为一个不同的实体,每个用户对每个资源具有不同的权限集。这意味着ACL以资源为中心,需要分别为每个资源(或资源组)设置ACL,当涉及大量资源组或用户时,这将是一个困难繁琐的过程,其根本原因在于ACL模型的企业级可伸缩性有限。

既然RBAC根据角色确定访问权限,并且多个人可以具有相同的角色(如软件工程师),RBAC允许以特定角色将用户分组。这意味着可以一次性为软件工程部门的所有成员设置对特定资源(如软件源代码树)的一组访问权限。

RBAC还允许用户成为多个组的成员。会计师可以是“员工”组的成员,从而获得所有员工都需要访问的资源,也可以同时是“会计”组的成员,该组提供对公司财务数据表格的访问。RBAC还支持层次化的权限分级和权限继承,以提供更细粒度的访问控制能力。图2给出了乔治梅森大学RBAC96模型的基本组成。

图片

图2 RBAC的组成结构

与ACL在操作系统中的应用相似,大多数现代桌面操作系统中也都存在RBAC的应用实现,包括对组和角色的基本支持。

在应用程序级别,特别是在企业环境中,RBAC通常作为企业中间件的一个组件实现。RBAC组件将用户的角色视为其身份的一部分,并协调其对各种服务和资源的访问。这种通过单个中间件产品实现对多个系统和资源进行访问控制的实现方式,为RBAC模型的可伸缩性和多功能性提供了新的机会。

大多数基于RBAC的中间件实现都需要额外的基础设施组件。例如,除了关系数据库DBMS之外,还可能需要目录服务,如微软的活动目录。

尽管RBAC有许多优点(特别是与ACL模型相比),但它也有自己的缺点。其中最重要的是,根据角色将人员划分为不同的类别,这使得为每个人定义细粒度的访问控制变得更加困难。通常需要创建更具体的角色版本,或设计其他机制,以排除属于特定角色的特定个人。在这种情况下,需要能够区分组中的单个成员,并基于一组细粒度属性有选择地允许或拒绝访问。基于属性的访问控制模型就是为了满足这一需求而设计的。

03

基于属性的访问控制

基于属性的访问控制(ABAC)是一种访问控制模型(如图3),其访问控制决策基于一组与请求者、环境和/或资源本身相关的特征或属性。

每个属性都是一个独立离散的字段,策略决策点通过检查与访问请求相关的各种属性值,以确定是否允许或拒绝访问。这些属性不一定相互关联,事实上,用于决策的属性可能来自不同的、不相关的来源。如员工被雇用的日期、工作的项目、办公地点,或者上述的一些组合。另外,员工在组织中的角色可以作为一个属性,用于(并且经常用于)访问控制决策。

图片

图3 ABAC的基本思想

在典型的ABAC实现中,访问请求者必须直接或间接地提供一组属性,用于确定访问授权。一旦请求者提供了这些属性,ABAC就会根据允许的属性进行检查,并根据访问规则做出授权决策。

ABAC模型的一个关键优势是,被访问的系统或资源不需要事先知道请求者的任何信息。只要请求者提供的属性能够满足获取访问入口的安全策略,他就将被授予访问权限。当组织希望为满足一些特定属性的非预期用户提供对某些资源的访问能力时,ABAC显然非常有用。

在大型企业中,这种无需预定义许可用户名单,就能确定用户权限的访问控制能力至关重要,因为可以为员工随时加入或离开组织提供技术支撑。

与RBAC和ACL不同,ABAC模型很少直接应用于现代操作系统中,这种访问控制通常在应用程序级别实现,通过中间件来协调用户或应用程序与请求访问的资源之间的访问。

对于相对简单的ABAC实现,一般不需要大型数据库或其他基础设施,只需要实现ABAC的应用程序逻辑就足够了。然而,在更复杂的环境中,特别是当用于决策的某些属性包括组织或个人信息时,ABAC实现对数据库的需求变得至关重要。例如,如果用户在组织中的角色被用作决定访问权限的属性之一,那么数据库和目录服务基础设施就变得必不可少。

ABAC模型的缺点是,在具有许多资源、用户和应用程序的大型复杂环境中,组织单元之间可能存在不同的属性和访问控制机制。为了满足企业管理要求,通常需要在整个企业中协调访问控制。基于策略的访问控制(PBAC)使组织能够在整个组织中拥有更统一的访问控制模型。

04

基于策略的访问控制

大多数组织都有各种策略和管理结构,以保障成功地利用IT资源执行组织的任务,降低风险,并确保可追责性和合规性。尽管银行、政府机构和关键基础设施在国家政策的推动下,施行更严格的安全控制,但大多数企业和组织的内部安全状况传统上并不在法律和监管范围内。

随着多个行业的监管和立法制度的建立,许多组织发现,为了保持法规遵从性,他们需要在整个企业中实施更严格的安全策略和统一的控制。他们需要制定和实施策略,规定谁可以在什么情况下获得什么资源。他们还需要建立机制,以便能够轻松地审核访问权限,对用户的行为进行追溯跟踪。

基于策略的访问控制(PBAC)是一种新兴模型,旨在帮助企业解决基于抽象策略和管理要求在实施具体的访问控制时所出现的问题。

一般来说,可以认为PBAC是ABAC在企业级的协调规范化版本,以支持特定的管理目标。PBAC将资源、外部环境和请求者的属性与发出访问请求的特定情境状态相结合,并使用规则集(即图3中的策略)指定在这些情境及属性条件下,组织策略是否允许授权访问。

在纯粹的ABAC模型中,访问特定资源所需的属性是在本地级别确定的,并且在不同的组织单位之间可能有很大的差异。例如,一个组织单位可能要求通过具有用户名、组织角色和密码的凭据来授权对敏感文档库的访问;另一个单元可能要求访问者除了需要提供上述凭据,还要提供由可信证书颁发机构颁发的数字证书。

如果文档从后一个存储库迁移到前一个存储库,它们将失去数字证书提供的保护,进而更容易遭到破坏。在PBAC模型下,组织可以通过一个策略来管理对所有满足特定敏感等级要求的资源的访问,无论该敏感资源在何时存放在何处,所有访问该资源的尝试都将受到该策略的控制。

虽然PBAC是ABAC的进化演变,但它是一个更加复杂的模型。由于必须在整个企业中维护这些属性,因此有必要设计和部署企业级系统以适应PBAC,包括数据库、目录服务以及其他中间件和管理应用程序。

与其他访问控制模型不同,PBAC不仅需要复杂的应用级逻辑来根据属性确定访问授权,还需要一种机制来明确地定义策略规则。

策略的定义要保证明确无歧义,否则与该策略相关联的资源可能会受到非预期、未经授权的访问。可扩展访问控制标记语言(XACML)是基于XML、以机器可理解的形式定义访问控制策略的一种方法。但遗憾的是,策略创建可能很复杂,而使用XACML并不一定会降低访问控制策略的创建、定义和实施难度。

PBAC还需要确保整个企业使用相同的属性进行访问授权,并且所有属性都来自权威来源。简单来说,权威属性源(AAS)是一个经组织授权的属性数据源,它覆盖所有其他属性源。理想情况下,策略应该能够指定哪些属性源对特定策略具有权威性,并且应该存在某种机制来验证请求者提供的属性是否来自AAS。

虽然理论上很简单,但在实践中很难建立一个AAS。特别是,在不同的企业需要协同工作,并且必须在它们之间实施访问控制的情况下尤其如此。一个组织可能认为某个特定属性库是足够权威的,但其合作伙伴则可能认为该属性库不够完善。因此,与策略的创建类似,建立一个所有合作伙伴都能同意的AAS也不是一项容易的任务。

05

风险自适应访问控制

组织在发展过程中需要随时对各种外部变化做出反应,包括法律要求、经济形势、市场挑战、各种风险因素,甚至领导风格。这些反应的动态性意味着指导它们的策略也必须具有适应性,包括组织的安全策略和访问控制需求。另外,组织面临的安全威胁也是动态的,必须不断评估IT基础架构和相关数据的风险。即使是更先进的访问控制模型,如ABAC和PBAC,也不能充分满足动态性和风险水平变化的需要。风险自适应访问控制(RAdAC)模型旨在为企业提供实时、自适应、风险感知的访问控制。

RAdAC代表了访问控制管理方式的根本转变。除了“操作需求”的概念外,它还通过在策略决策过程中引入环境相关的条件和风险级别(如图4),扩展了其他早期的访问控制模型。RAdAC超越了传统上对静态属性和策略的依赖,结合用户(或机器)的可信度、企业IT基础设施信息和环境风险因素,并综合使用这些信息创建一个可量化的总体风险度量。RAdAC还将情境因素作为策略决策的输入,其中包括来自其他信息源(如CERT或安全供应商)的当前企业威胁级别信息。

图片

图4 RAdAC的授权决策过程

RAdAC将收集到的所有上述信息,与访问控制策略进行比较检查,其访问控制策略包含了在各种情境、各种风险级别下如何处理访问请求的指令。

例如,在常规操作条件下,根据正常操作策略,用户可以使用用户名和密码登录IT系统,但在高级操作条件下,RAdAC可以执行另一个更严格的策略,要求通过数字证书进行二次认证。在RAdAC中,访问控制策略能够定义一组特定情境,以便在必须满足用户的访问操作需求时,可以使常规的强访问控制适当放宽控制。这意味着,如果安全策略允许覆盖机制,在必要的时候RAdAC允许操作需求覆盖(指在“安全风险不可接受但操作需求为必要”的情境下,将授予主体访问权限)安全风险。

RAdAC还采用基于概率的启发式方法来确定在这种情境下是否应授予访问权,启发式包括访问控制决策的历史记录和机器学习,也就是说,RAdAC系统可以将之前的授权决策作为一个输入,来确定是否为未来的访问请求授予权限。

为了使RAdAC能够基于风险度量自治地做出合理的访问决策,需要为风险度量提供足够的输入,因而实施RAdAC所需的基础设施规模非常庞大且复杂,主要包括:密钥管理服务、态势感知服务、用户信息、元数据和资源属性、访问控制策略、企业IT系统信息和访问决策数据存储库等。

在许多环境中,将这些组件实现为松散耦合的服务可能是更合理的方案。基于SOA架构的RAdAC实现有助于减少供应商锁定,并鼓励形成模块化的体系结构,反过来又使企业能够根据需要添加和删除模块,或者能够从具有类似功能的不同模块中进行选择。基于SOA的实现途径还有助于促进基于标准的信息交换,这对于企业间访问控制决策的成功至关重要。

尽管RAdAC提供了强大的能力和吸引力,但实施该模型将是令人望而生畏的。在成功实施之前存在许多障碍,其中包括一些技术性的难题。

首先,整合RAdAC涉及的诸多系统将是一个挑战,因为它们是多样的,并且它们之间的数据交换尚未标准化。

其次,RAdAC和PBAC一样,依靠数字策略来帮助决定是否授权访问。这需要交换策略的标准化方法,以及定义这些数字策略的方法,以便RAdAC系统能够正确解释这些策略。与PBAC模型一样,XACML是解决这个问题的潜在方案,但它需要达到足够的成熟度才能包含在RAdAC解决方案中。

第三,需要向系统提供可靠的用户信息,以及与IT基础架构各个部分相关的状态、能力和安全态势信息。可信平台模块(TPM)是可以证明系统信任度的硬件组件,可以作为一个潜在的信息源,行为分析也能用于用户的信任度评估,但在TPM和自动行为分析技术足够完善可靠之前,还不能将它们实施并集成到RAdAC方案之中。

第四,为了使RAdAC获得适应不断变化的环境条件的能力,需要提供一种明确的机制来描述访问控制决策所需的各种环境条件。同样,标准化的数据交换格式将决定环境数据在RAdAC实现中的健壮性、适应性和有用性。RAdAC面临的第五个挑战是计算策略决策所依赖的启发式方法。机器学习、遗传算法和启发式算法已经发展了很长时间,但它们在被纳入RAdAC之前还存在待验证的问题。

最后,RAdAC还面临来自政策和法律层面的各种非技术性挑战。在某些环境中部署RAdAC是否合法?鉴于访问控制的决策是自动化的,如果发生安全问题,谁负责?如果发生违规行为,系统所有者、RAdAC实施者和管理员和RAdAC系统设计者是否负有最终责任?这些问题必须在RAdAC能够被广泛部署之前解决,当然也必须在组织允许RAdAC控制对其敏感信息的访问之前解决。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值