5.2 如何实现访问控制机制
5.2.1 访问控制的实现机制
建立访问控制模型和实现访问控制都是抽象和复杂的行为,实现访问的控制不仅要保证授权用户使用的权限与其所拥有的权限对应,制止非授权用户的非授权行为,还要保证敏感信息的交叉感染。通常用户访问信息资源(文件或是数据库),可能的行为有读、写和管理,为方便起见,我们用Read或是R表示读操作,Write或是W表示写操作,Own或是O表示管理操作。我们之所以将管理操作从读写中分离出来,是因为管理员也许会对控制规则本身或文件的属性等做修改,也就是修改我们在下面提到的访问控制表。
5.2.2 访问控制表
访问控制表(Access Control Lists, ACLs)是以文件为中心建立的访问权限表,简记为ACLs。图5-11清晰地表明了这种关系。目前,大多数PC、服务器和主机都使用ACLs作为访问控制的实现机制。访问控制表的优点在于实现简单,任何得到授权的主体都可以有一个访问表。例如,授权用户A1的访问控制规则存储在文件File1中,A1的访问规则可以由A1下面的权限表ACLsA1来确定,权限表限定了用户UserA1的访问权限。
图5-11 访问控制表工作流程示意图
5.2.3 访问控制矩阵
访问控制矩阵(Access Control Matrix, ACM)是通过矩阵形式表示访问控制规则和授权用户权限的方法。也就是说,对每个主体而言,都拥有对哪些客体的哪些访问权限,而对客体而言,又有哪些主体对它可以实施访问,将这种关联关系加以阐述,就形成了控制矩阵。其中,特权用户或特权用户组可以修改主体的访问控制权限。访问控制的示例如图5-12所示。访问控制矩阵的实现很容易被理解,但是查找和实现起来有一定的难度,而且,如果用户和文件系统管理的文件很多,那么控制矩阵将会成几何级数增长,这样对于增长的矩阵而言,会有大量的空余空间。
图5-12 访问控制矩阵示例
5.2.4 访问控制能力列表
能力是访问控制中的一个重要概念,它是指请求访问的发起者所拥有的一个有效标签(ticket),它授权标签表明的持有者可以按照何种访问方式访问特定的客体。访问控制能力列表(Access Control Capabilitis Lists, ACCLs)是以用户为中心建立的访问权限表。例如,访问控制权限表ACCLsF1表明了授权用户UserA对文件File1的访问权限,UserAF表明了UserA对文件系统的访问控制规则集。因此,ACCLs的实现与ACLs正好相反,如图5-13所示。定义能力的重要作用在于能力的特殊性,如果赋予哪个主体具有一种能力,事实上说明这个主体具有了一定对应的权限。能力的实现有两种方式,传递的和不可传递的。一些能力可以由主体传递给其他主体使用,另一些则不能。能力的传递牵扯到了授权的实现,我们在后面会具体阐述访问控制的授权管理。
图5-13 访问能力表和访问控制表对比
5.2.5 访问控制标签列表
安全标签是限制和附属在主体或客体上的一组安全属性信息。安全标签的含义比能力更为广泛和严格,因为它实际上还建立了一个严格的安全等级集合。访问控制标签列表(Access Control Security Labels Lists, ACSLLs)是限定一个用户对一个客体目标访问的安全属性集合。访问控制标签列表的实现示例如图5-14所示,左侧为用户对应的安全级别,右侧为文件系统对应的安全级别。假设请求访问的用户UserA的安全级别为S,那么UserA请求访问文件File2时,由于S<TS,访问会被拒绝;当UserA请求访问文件FileN时,因为S>C,所以允许访问。
图5-14 访问控制标签列表的实现
安全标签能对敏感信息加以区分,这样就可以对用户和客体资源强制执行安全策略,因此,强制访问控制经常会用到这种实现机制。
5.2.6 访问控制实现的具体类别
访问控制是网络安全防范和保护的重要手段,它的主要任务是维护网络系统安全、保证网络资源不被非法使用和非常访问。通常在技术实现上,包括以下几部分。
(1)接入访问控制。接入访问控制为网络访问提供了第一层访问控制,是网络访问的首要屏障,它控制哪些用户能够登录到服务器并获取网络资源,控制准许用户入网的时间和准许他们在哪台工作站入网。例如,ISP服务商实现的就是接入服务。用户的接入访问控制是对合法用户的验证,通常使用用户名和口令的认证方式。一般可分为三个步骤:用户名的识别与验证、用户口令的识别与验证、用户账号的默认限制检查。
(2)资源访问控制。资源访问控制是对客体整体资源信息的访问控制管理。其中包括文件系统的访问控制(文件目录访问控制和系统访问控制)、文件属性访问控制、信息内容访问控制。文件目录访问控制是指用户和用户组被赋予一定的权限,在权限的规则控制许可下,哪些用户和用户组可以访问哪些目录、子目录、文件和其他资源,哪些用户可以对其中的哪些文件、目录、子目录、设备等执行何种操作。系统访问控制是指一个网络系统管理员应当为用户指定适当的访问权限,这些访问权限控制着用户对服务器的访问;应设置口令锁定服务器控制台,以防止非法用户修改、删除重要信息或破坏数据;应设定服务器登录时间限制、非法访问者检测和关闭的时间间隔;应对网络实施监控,记录用户对网络资源的访问,对非法的网络访问,能够用图形或文字或声音等形式报警等。文件属性访问控制是指当用文件、目录和网络设备时,应给文件、目录等指定访问属性。属性安全控制可以将给定的属性与要访问的文件、目录和网络设备联系起来。
(3)网络端口和节点的访问控制。网络中的节点和端口往往加密传输数据,这些重要位置的管理必须防止黑客发动的攻击。对于管理和修改数据,应该要求访问者提供足以证明身份的验证器(如智能卡)。