理论教育 信息安全基础:ACL访问控制列表

信息安全基础:ACL访问控制列表

时间:2023-11-24 理论教育 版权反馈
【摘要】:此时,对系统中文件的访问,通常是由每个文件上附带ACL信息控制的。ACL由一系列访问控制项组成。还有,拒绝访问权限的优先级高于允许访问权限。表3-2传统Unix的文件权限除了使用传统的Unix文件保护方案,某些Unix系统也提供了ACL。也就是说,即使某用户被明确授予了写入或执行权限,如果ACL掩码被设置为读取,则该用户只能获得读取权限。

信息安全基础:ACL访问控制列表

某些社交场合只有被邀请的人才能参加。为了确保只有被邀请的嘉宾参加聚会,可能需要将一份被邀请人的名单提供给门卫。当你抵达时,门户会检查你的名字是否在名单里面,以此决定你是否能进入。这种场合也可能通过比对照片来核实身份,不过,这是一个使用访问控制表(Access Control Lists,ACL)的简单并且很好的例子。

信息系统也可以使用ACL来确定是否允许访问所请求的服务或资源。此时,对系统中文件的访问,通常是由每个文件上附带ACL信息控制的。同样,网络设备上不同类型的通信也可以通过ACL来控制。

1. 文件访问权限

Windows和Unix系统都使用文件访问权限来管理对文件的访问。实现方式虽然不同,但在两个系统上都工作得很好。只有在需要进行跨平台互操作的时候,才会出现维护恰当授权的问题。

Windows文件访问权限:Windows的NTFS文件系统为每个文件和文件夹都提供了一个ACL。ACL由一系列访问控制项(ACE)组成。每个ACE包含一个安全标识符(SID,一个以S开头的数字串)和赋予那个SID的访问权限。访问权限可以是允许访问或拒绝访问,而SID可能代表用户账户、计算机账户或者组。ACE可以由系统管理员、文件所有者或者具有“应用权限的权限”的用户来指派。

Windows系统登录过程的部分功能,是确定特定用户或计算机的特权和组成员身份。这会构造出一个列表,包含了用户的SID、用户隶属的组的SID,以及用户拥有的特权(用特殊身份的SID代表)。注意,每个SID都是唯一的。这个列表将作为登录用户的令牌(Token),附在这个用户启动的所有正在运行进程上。当用户访问系统资源的时候,系统将比较用户的令牌和所访问资源上的ACL,决定用户是否具有访问权限及何种访问权限。

Windows系统中的权限被分得很细。表3-1中列出的权限实际上代表权限集合,但是这些权限也可以单独指派。

表3-1 Windows文件权限

*这些权限不同于表中所示的权限分组。表中列出的每个权限都可以单独应用。

当进程试图访问某资源时,Windows的安全子系统就比较“该资源上的ACE列表”和“用户的令牌中的SID列表和特权”。一旦两个列表中存在相同的SID,并且所请求的访问权限也匹配,系统就授权该进程访问资源,除非访问权限是拒绝访问。如果匹配失败,将导致拒绝访问。另外,访问权限是累积计算的。也就是说,如果用户仅被授予了对资源的读取权限,而用户隶属的某个组被授予了写入权限,则该用户将拥有对该资源的读写权限。还有,拒绝访问权限的优先级高于允许访问权限。例如,用户被授予了允许读取权限,但是用户隶属的某个组被授予了拒绝读取权限,则用户无法读取资源。(www.daowen.com)

值得注意的是,Windows系统中的文件访问权限和其他基于对象的权限也可以通过共享文件夹的权限加以补充。也就是说,如果一个文件夹能够通过SMB协议直接从网络上访问,就可以在该文件夹上设置“共享权限”。这些权限将会和设置在该文件夹上的“NTFS权限”一起,控制对该文件夹资源的访问。如果这两套权限集合之间存在着冲突,则使用其中更具有限制性的权限。例如,如果“共享权限”把文件夹的读取和写入权限赋给组Accountants,而Alice隶属于这个组,但是这个文件夹上的“NTFS权限”却拒绝Alice访问,那么,Alice将被拒绝访问这个文件夹。

Unix文件访问权限:传统的Unix文件系统不使用ACL,而通过限制用户账户和组的访问来保护文件。比如说,如果你想授予读取某个文件的权限给文件所有者之外的某个人,你将无法办到。如果你想将读取权限授予给一个组而将写入权限授予给另一个组,你也不能办到。某些Unix系统(比如Solaris)通过提供ACL解决了缺乏细粒度访问控制的问题,不过,在我们了解此类系统之前,我们先看一下传统的文件保护系统。

在Unix系统中,除了文件名之外,关于文件的其他信息都包含在索引节点(inode)中。包括文件所有者的用户ID、文件所属的组,以及文件模式—— 读/写/执行权限集合。

Unix通过分配文件访问权限来控制对文件的访问。访问权限包括3个级别:所有者(Owner)、组(Group)和其他人。所有者的权限包括:决定谁可以访问该文件并读取它,谁可以写入它,谁可以执行它(如果是一个可执行文件的话)。这些权限缺少粒度。与文件一样,目录也有可赋予所有者、组和其他人的权限。表3-2给出了这些权限及说明。

表3-2 传统Unix的文件权限

除了使用传统的Unix文件保护方案,某些Unix系统也提供了ACL。可以在文件上定义ACE,并通过命令设置。这些命令包括有关ACE类型(用户或ACL掩码)、用户ID(UID),组ID(GID)和权限的信息。掩码类ACE为用户(不包括所有者)和组指定了可用的最高权限。也就是说,即使某用户被明确授予了写入或执行权限,如果ACL掩码被设置为读取,则该用户只能获得读取权限。

2. 网络设备的ACL

网络设备使用ACL来控制对网络的访问。具体来说,路由器和防火墙的ACL指明了来访的流量可以访问哪台计算机的哪个端口,或者该设备能够接受哪种类型的流量并路由到其他网络上。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈