访问控制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

访问控制:原理及实践

访问控制限制用户可直接进行的操作,以及代表用户的执行程序可进行的操作。通过这种方式访问控制可以阻止违反安全的活动。

Ravi S. Sandhu and Pierangela Samarati

摘要:访问控制的目的是为了限制一个合法的计算机系统用户可执行的活动和操作。访问控制限制用户可直接进行的操作,以及代表用户的执行程序可进行的操作。通过这种方式访问控制可以阻止违反安全的活动。这篇文章解释了访问控制及其与其它安全服务的关系,如身份认证、审计和管理等。然后讨论了访问矩阵模型并描述了在实际系统中实现这种访问矩阵的不同方法,最后讨论了在现行系统中普遍存在的访问控制策略以及对访问控制管理的简单思考。

访问控制和其它安全服务

在计算机系统中访问控制依靠并与其它安全服务共存。访问控制涉及限制合法用户的活动。用户或代表用户的执行程序通过请求监听器对系统中的主体执行访问控制,而监听器促进每一次访问。为了决定用户要进行的操作是否通过,请求监听器要向认证数据库发出请求。认证数据库是通过安全管理员管理和维护的。管理员在安全策略和组织的基础上设置这些认证。用户也可以修改认证数据库中的一些部分。例如,设置个人文件的访问权限、查询监听器和记录系统相关活动的日志。

图1是安全服务及其关系的逻辑图表。它不应该用字面的意思去解释。例如,后面将提到,对象经常是被请求监听器保护着存储在认证数据库中的,而不是被物理上分开的。图表对区别身份认证,访问控制,审计和管理服务的区分较为理想化,可能不如图表显示的明显。他们之间的区分被认为是必要的,但不是在每个系统中都表现得明显。

对认证和访问控制清楚区分开很重要。认证服务的责任是正确地建立用户的身份。访问控制则是假设用户的身份认证被成功核实后通过请求监听器执行访问控制。当一个合法用户通过身份认证并正确地接管了请求监听器时访问控制的作用就停止了。

读者肯定对通过提供一个认证密码登录计算机系统很熟悉。在一个网络环境中,身份认证因为许多原因而变得困难。为了冒充合法用户,只要攻击者能找到网络通道就能重放认证协议。同样,网络中的计算机需要互相认证。在此文中,我们假先设认证已成功通过,然后关注后面即将发生的。

要了解单靠访问控制也不是一个保证计算机系统安全的根本方案,这一点很重要的。审计必须贯穿于整个过程。审计控制涉及对系统中所有请求和活动的后续分析。审计要求对所有用户的登录请求和活动作后续的分析。审计控制作为阻隔入侵和分析查找可能存在的入侵行为是很有用的。最后,审计对于确定被审计者没有滥用特权也是很重要的。换句话说就是保持用户的行为是可审计的。注意,有效的审计要求有合适的身份认证。

在访问控制系统中用策略和机制来区分它们的不同。策略是决定访问的控制方式和的访问决定的产生的高层指导。机制则是执行策略的可配置的底层软硬件程序。安全研究员已经试图将访问控制机制大大地发展为独立于策略,以便可以被他们使用。为了重复使用可适合各种安全目标的机制,这是很可取的。同样的机制经常可以被用于支持安全性、完整性和可用性目标。从另一方面过来看,策略选择如此丰富以至系统执行者可以自主选择。

总之,不存在策略好坏的说法。确切的说,一改是策略提供的保护可能有多有少。不管如何,不是所有的系统都有同样的保护要求。一个系统的策略并不一定适合另外一个系统。例如,非常严格的访问控制策略在某些系统中至关重要,在一个需要灵活环境的系统中也许

就不合适了。访问控制策略的选择要看被保护的环境的特殊特性。

访问矩阵

为了进行访问控制,信息安全从业人员已发展出一大批抽象概念。也许最基本的实现就是所有被计算机系统控制的资源都能被数据存储对象(比如文件)所表示。于是对这些对象进行保护是必要的要求,这也相应地保护了计算机系统控制的其他资源。(当然,为了防止绕过计算机系统的访问控制,这些资源也应该物理上保护起来。)

系统中的活动是有所谓的主体发起的。主体典型地可理解为用户或代表用户的执行程序。用户可在不同的场合作为不同的主体登录进入系统。例如,同时做两个工程的用户可从一个工程切换到另外一个工程。这个时候我们有两个个符合用户的主体,它们依靠用户的工程。

一个经常被忽视的问题是,主体本身经常可以是对象。为了完成任务一个主体可以产生派生主体。子主体在各种网络计算机上也可执行。在适当的时候父主体也可以暂停或终止它的子主体。一个操作的发起者可以作为另外一个操作的目标时,主体就可以成为对象。(在网络用语中,主体有时也称作发起者,对象也称作目标。)

主对象区别是基于访问控制的。主体对对象发起动作或操作。这些动作通过建立在系统上的用户认证被通过或拒绝。用户认证表达为访问权限和访问模式。访问权限的方式依靠考虑中的对象。比如文件最典型的访问权限就是读、写、执行和属于。前三个是顾名思义的。属于关系涉及的是谁可以改变文件的访问权限。一个对象,比方说银行账户,有查询、存款、借款的访问权限。这些操作可通过应用程序执行,而操作系统可对文件进行典型的操作。

访问矩阵是一个概念上的模型,它描述每个对象过程对各个对象的权限。这个矩阵中每个对象为一行,每一个对象为一列。矩阵中每个节点描述了行中的主体到列中的对象的被授权访问。访问控制的任务是为了确保只有那些被访问矩阵授权的操作得到执行。这是通过请求监听器达到的,它对监听所有主体到对象的访问操作有监听作用。访问矩阵模型明确地把审计和身份认证的问题区分开来了,这是值得注意的。

访问矩阵的例子如图2所示。R和W分别代表读(read)和写(write)的权限。其它权限同理如上所述。这里主体是John,Alice和Bob。有四个文件和两个账户。这个矩阵描述了例如John是文件3的拥有者,并且能读和写这个文件。但是John没有文件2和文件4的访问权限。隶属关系的准确意义根据系统不同各有区别。通常一个文件的拥有者可以授权其他用户访问这个文件。同样也可以撤销访问。因为John拥有文件1,如图2 所示他可以赋予Alice R权限和Bob R和W权限。John 以后还可以随意撤销一个或多个这样的权限。

账户访问权限的例子阐述了访问是如何被应用程序的抽象操作所控制的。查询操作与读操作类似,它们检索信息但是不改变它。存款和取款操作则涉及到读出过去的账户余额,合理调整它的状态并最终写回。执行这些操作的程序要求对这个账户数据进行读写控制。然而,用户是不允许直接对这个账户对象进行读和写。他们只能通过执行存款和取款操作的应用程序间接地操控账户对象。

同样要注意没有拥有账户这一权限。例如银行账户对象没有真正有一个主人,能决定其他对象对这个账户是否有访问权。明显在银行建立账户的用户不能决定谁可以使用这个账户。在组织中只有银行里不同部门能基于工作职责访问账户。

执行方法

在一个大的系统中,访问矩阵也是巨大的,而大部分的节点都可能是空的。所以访问矩阵很少作为矩阵执行。我们讨论关于在实际系统中执行访问矩阵的一些普遍方法。

访问控制列表

执行访问矩阵的通常方法是通过访问控制列表(ACLs)。每一个对象都与一张标示出系统中每一个主体的ACL相互关联,主体在对象上访问是被授权的。这种方法相当于将矩阵

相关文档
最新文档