存取控制串列

科技工作者之家 2020-11-17

存取控制串列,又称****访问控制表**(Access Control List,ACL)**,是使用以访问控制矩阵为基础的访问控制表,每一个(文件系统内的)对象对应一个串列主体。访问控制表描述用户或系统进程对每个对象的访问控制权限。

访问控制表的主要缺点是不可以有效迅速地枚举一个对象的访问权限。因此,要确定一个对象的所有访问权限需要搜索整个访问控制表来找出相对应的访问权限。

实现许多种系统都实现了ACL,或者具有历史性的实现。

文件系统ACL文件系统ACL是一种数据结构(通常是表),其中包含指定特定系统对象(如程序,进程或文件)的单个用户或组权限的条目。这些条目在Microsoft Windows NT,OpenVMS,类Unix和Mac OS X操作系统中称为访问控制条目(ACE)。每个可访问对象都包含其ACL的标识符。特权或权限确定特定的访问权限,例如用户是否可以读取,写入或执行对象。在一些实现中,ACE可以控制用户或用户组是否可以改变对象上的ACL。

大部分的Unix和类Unix操作系统(例如Linux中,BSD或Solaris)支持POSIX.1e的ACL,基于所于1997年他们中的许多撤回,例如AIX,FreeBSD的早期POSIX草案从版本10.4(“Tiger”)开始的Mac OS X,或带有ZFS文件系统的Solaris,支持NFSv4 ACL,它们是NFSv4标准的一部分。有NFSv4 ACL的用于Linux的两个实验实现:用于Ext3文件系统和最近Richacls NFSv4 ACL的支持,其带来了对文件系统的Ext4 NFSv4 ACL的支持。

PRIMOS至少早在1984年就有ACL。

在20世纪90年代,ACL和RBAC模型被广泛测试并用于管理文件权限。1

网络ACL在某些类型的专有计算机硬件(特别是路由器和交换机)上,访问控制列表提供应用于主机或其他第3层上可用的端口号或IP地址的规则,每个规则都包含主机列表和/或允许使用该服务的网络。虽然还可以根据网络域名配置访问控制列表,但这是一个值得怀疑的想法,因为各个TCP,UDP和ICMP标头不包含域名。因此,强制执行访问控制列表的设备必须单独将名称解析为数字地址。这为攻击者提供了额外的攻击面,该攻击者试图破坏访问控制列表正在保护的系统的安全性。单个服务器和路由器都可以具有网络ACL。通常可以将访问控制列表配置为控制入站和出站流量,在此上下文中,它们与防火墙类似。与防火墙一样,ACL可能受到安全法规和PCI DSS等标准的制约。

SQL实现ACL算法已移植到SQL和关系数据库系统。许多“现代”(2000年代和2010年代)基于SQL的系统(如企业资源规划和内容管理系统)在其管理模块中使用了ACL模型。

与RBAC比较ACL模型的主要替代方案是基于角色的访问控制(RBAC)模型。 可以将“最小RBAC模型”RBACm与ACL机制ACLg进行比较,其中只允许组作为ACL中的条目。 Barkley(1997)表明RBACm和ACLg是等价的。

在现代SQL实现中,ACL还管理组层次结构中的组和继承。 因此,“现代ACL”可以表达RBAC所表达的所有内容,并且在根据管理员查看组织的方式表达访问控制策略的能力方面具有显着的强大功能(与“旧ACL”相比)。

对于数据交换和“高级别比较”,ACL数据可以转换为XACML。

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。