信息安全概论访问控制

信息安全概论访问控制
信息安全概论访问控制

信息安全概论

-访问控制

什么是访问控制Access Control

主体(subject):访问的发起者

发起者是试图访问某个目标的用户或者是用户行为的代理。必须控制它对客体的访问。

主体通常为进程,程序或用户。

客体(Object):

接收其他实体访问的被动实体。

可供访问的各种软硬件资源。

控制策略

主体对客体的访问规则集,这个规则集直接定义了主体可以的作用行为和客体对主体的约束条件。

是主体对客体的操作行为集和约束条件集。

体现为一种授权行为。

记录谁可以访问谁。

访问控制策略

任何访问控制策略最终可被模型化为访问矩阵形式。

每一行:用户

每一列:目标

矩阵元素:相应的用户对目标的访问许可。

访问控制关系图

多级信息安全系统

将敏感信息与通常资源分开隔离的系统。

通常存在两种

有层次安全级别。目标按敏感性划分为不同密级:绝密top secret、秘密secret、机密confidential、限制restricted、无密级unclassified。

无层次安全级别。

访问控制过程

首先对合法用户进行验证。(认证)

然后对选用控制策略。(控制策略的具体实现)

最后对非法用户或越权操作进行审计。(审计)

认证

包括主体对客体的识别认证与客体对主体的检验认证。

身份认证。

控制策略具体实现

规则集设定方法。

允许授权用户、限制非法用户。

保护敏感信息。

禁止越权访问。

审计

操作日志。

记录用户对系统的关键操作。

威慑。

访问控制

在安全操作系统领域中,访问控制一般都涉及

自主访问控制(Discretionary Access Control,DAC)

强制访问控制(Mandatory Access Control,MAC)两种形式

安全模型

安全模型就是对安全策略所表达的安全需求的简单、抽象和无歧义的描述,它为安全策略和它的实现机制之间的关联提供了一种框架。

安全模型描述了对某个安全策略需要用哪种机制来满足;而模型的实现则描述了如

何把特定的机制应用于系统中,从而实现某一特定安全策略所需的安全保护。

安全模型的特点

能否成功地获得高安全级别的系统,取决于对安全控制机制的设计和实施投入多少精力。但是如果对系统的安全需求了解的不清楚,即使运用最好的软件技术,投入最大的精力,也很难达到安全要求的目的。安全模型的目的就在于明确地表达这些需求,为设计开发安全系统提供方针。

安全模型有以下4个特点:

它是精确的、无歧义的;

它是简易和抽象的,所以容易理解;

它是一般性的:只涉及安全性质,而不过度地牵扯系统的功能或其实现;

它是安全策略的明显表现。

安全模型一般分为两种:

非形式化安全模型仅模拟系统的安全功能;

形式化安全模型则使用数学模型,精确地描述安全性及其在系统中使用的情况。访问控制准则

在安全操作系统领域中,访问控制一般都涉及

自主访问控制(Discretionary Access Control,DAC)

强制访问控制(Mandatory Access Control,MAC)两种形式

自主访问控制

自主访问控制是最常用的一类访问控制机制,用来决定一个用户是否有权访问一些特定客体的一种访问约束机制。在自主访问控制机制下,文件的拥有者可以按照自己的意愿精确指定系统中的其他用户对其文件的访问权。

亦即使用自主访问控制机制,一个用户可以自主地说明他所拥有的资源允许系统中哪些用户以何种权限进行共享。从这种意义上讲,是“自主”的。另外自主也指对其他具有授予某种访问权力的用户能够自主地(可能是间接的)将访问权或访问权

的某个子集授予另外的用户。

强制访问控制MAC

在强制访问控制机制下,系统中的每个进程、每个文件、每个IPC 客体( 消息队列、信号量集合和共享存贮区)都被赋予了相应的安全属性,这些安全属性是不能改变的,它由管理部门(如安全管理员)或由操作系统自动地按照严格的规则来设置,不像访问控制表那样由用户或他们的程序直接或间接地修改。

当一进程访问一个客体(如文件)时,调用强制访问控制机制,根据进程的安全属性和访问方式,比较进程的安全属性和客体的安全属性,从而确定是否允许进程对客体的访问。代表用户的进程不能改变自身的或任何客体的安全属性,包括不能改变属于用户的客体的安全属性,而且进程也不能通过授予其他用户客体存取权限简单地实现客体共享。如果系统判定拥有某一安全属性的主体不能访问某个客体,那么任何人(包括客体的拥有者)也不能使它访问该客体。从这种意义上讲,是“强制”的。

强制访问控制和自主访问控制

强制访问控制和自主访问控制是两种不同类型的访问控制机制,它们常结合起来使用。仅当主体能够同时通过自主访问控制和强制访问控制检查时,它才能访问一个客体。

用户使用自主访问控制防止其他用户非法入侵自己的文件,强制访问控制则作为更强有力的安全保护方式,使用户不能通过意外事件和有意识的误操作逃避安全控制。因此强制访问控制用于将系统中的信息分密级和类进行管理,适用于政府部门、军事和金融等领域。

访问控制模型

从访问控制的角度出发,描述安全系统,建立安全模型的方法。

一般包括主体、客体、以及为识别和验证这些实体的子系统和控制实体间的访问的监视器。

访问控制模型

自主访问控制模型。(DAC)

强制访问控制模型。(MAC)

基于角色的访问控制模型。(RBAC)

基于任务的访问控制模型。(TBAC)

基于对象的访问控制模型。(OBAC)

信息流模型。

自主访问控制(DAC)

根据自主访问控制策略建立的一种模型。

允许合法用户以用户或用户组的身份访问策略规定的客体。

阻止非授权用户访问客体。

某些客体还可以自主的把自己所拥有的客体访问权授予其它用户。

任意访问控制。

自主访问控制(DAC)

访问控制表(ACL)是DAC中通常采用的一种安全机制。ACL是带有访问权限的矩阵, 这些访问权是授予主体访问某一客体的。安全管理员通过维护ACL控制用户访问企业数据。对每一个受保护的资源,ACL对应一个个人用户列表或由个人用户构成的组列表,表中规定了相应的访问模式。

DAC的主要特征体现在主体可以自主地把自己所拥有客体的访问权限授予其它主体或者从其它主体收回所授予的权限,访问通常基于访问控制表(ACL)。访问控制的粒度是单个用户。

DAC的缺点

在移动过程中其访问权限关系会被改变。如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。

当用户数量多、管理数据量大时,由于访问控制的粒度是单个用户,ACL会很庞大。当组织内的人员发生能变化(升迁、换岗、招聘、离职)、工作职能发生变化(新增业务)时,ACL的修改变得异常困难。

采用ACL机制管理授权处于一个较低级的层次,管理复杂、代价高以至易于出错。

基于行的自主访问控制

是在每个主体上都附加一个该主体可访问的客体的明细表。

权限字(能力):主体对客体具有特定的不可伪造的标志。为防止权限字的不断扩散,可在传递权限字副本时移去其中的转移权限。

基于列的访问控制

指按客体附加一份可访问它的主体的明细表。

保护位方式:UNIX采用;只有客体拥有者能改变客体保护位(root除外)。一个用户在某个时刻只能属于一个活动的用户组。

存取控制表(ACL)

自主访问控制的访问许可

等级型

拥有型

自由型

等级型

将对客体存取控制表的修改能力划分成等级,控制关系构成一个树型结构。

系统管理员的等级为等级树的根,根一级具有修改所有客体存取控制表的能力,并且具有向任意一个主体分配这种修改权的能力。

在树中的最低级的主体不再具有访问许可,也就是说他们对相应的客体的存取控制表不再具有修改权。

有访问许可的主体(即有能力修改客体的存取控制表),可以对自己授与任何访问模式的访问权。

拥有型

对每个客体设立一个拥有者(通常是该客体的生成者)。

只有拥有者才是对客体有修改权的唯一主体。拥有者对其拥有的客体具有全部控制权。

拥有者无权将其对客体的控制权分配给其它主体。

客体拥有者在任何时候都可以改变其所属客体的存取控制表,并可以对其它主体授予或者撤消其对客体的任何一种访问模式。

一个客体的生成者可以对任何一个主体分配对它拥有的客体的访问控制权,即对客体的存取控制表有修改权,并且还可使其对它主体也具有分配这种权力的能力。在这种系统中,不存在“拥有者”概念。

自主访问控制访问模式的应用

Unix,Windows NT,Linux的文件系统广泛应用,对文件设置的访问模式有以下几种:

读拷贝(read-copy)

写删除(write-delete)

执行(execute)

Null(无效)这种模式表示,主体对客体不具有任何访问权。在存取控制表中用这种模式可以排斥某个特定的主体。

强制访问控制(MAC)

系统对所有主体及其所控制的客体(例如:进程、文件、段、设备)实施强制访问控制。

为这些主体及客体指定敏感标记,这些标记是等级分类和非等级类别的组合,它们是实施强制访问控制的依据。

系统根据主体和客体的敏感标记来决定访问模式。如:绝密级,秘密级,机密级,无密级。

MAC通过梯度安全标签实现单向信息流通模式。

特点

强制性

当一进程访问一个客体(如文件)时,调用强制访问控制机制,根据进程的安全属性和访问方式,比较进程的安全属性和客体的安全属性,从而确定是否允许进程对客体的访问。代表用户的进程不能改变自身的或任何客体的安全属性,包括不能改变属于用户的客体的安全属性,而且进程也不能通过授予其他用户客体存取权限简单地实现客体共享。如果系统判定拥有某一安全属性的主体不能访问某个客体,那么任何人(包括客体的拥有者)也不能使它访问该客体。从这种意义上讲,是“强制”

限制性

在强制访问控制机制下,系统中的每个进程、每个文件、每个IPC 客体( 消息队列、信号量集合和共享存贮区)都被赋予了相应的安全属性,这些安全属性是不能改变的,它由管理部门(如安全管理员)或由操作系统自动地按照严格的规则来设置,不像访问控制表那样由用户或他们的程序直接或间接地修改。

主体对客体的访问方式

下读:用户级别大于文件级别的读操作;

上写:用户级别低于文件级别的写操作;

下写:用户级别大于文件级别的写操作;

上读:用户级别低于文件级别的读操作;

强制访问控制模型

Lattice模型。

Bell-LaPadula模型(BPL Model)。

Biba模型。

Lattice模型

每个资源与用户都服从于一个安全级别。

主体级别高于客体级别才可以访问。

适用于需要对信息资源进行明显分类的系统。

BPL模型

信息保密安全模型。

维护系统的保密性,有效防止信息泄露。

控制原则:

无上读。

无下写。

BPL模型缺点

忽略了完整性。

存在越权篡改。

分布式操作。

关键服务进程。

Biba模型

信息完整性模型。

维护系统信息的完整性,有效防止信息篡改。

控制原则:

无上写。

无下读。

Biba模型缺点

保密性差。

基于角色访问控制(RBAC)

兼有基于身份和基于规则的策略特征。可看作基于组的策略的变形,一个角色对应一个组。例:银行业务系统中用户多种角色

优点:

对于非专业的管理人员,容易制定安全策略;

容易被映射到一个访问矩阵或基于组的策略。

基于角色访问控制(RBAC)

角色(Role)

是指一个可以完成一定事务的命名组,不同的角色通过不同的事务来执行各自的功能。

用户的集合与许可的集合。

角色与组的区别在于:用户属于的组是相对固定的,而用户能被指派到那些角色则受时间、地点、事件等诸多因素影响。

事务(Transaction)

是指一个完成一定功能的过程,可以是一个程序或程序的一部分。

RBAC的基本思想

授权给用户的访问权限,通常由用户在一个组织中担当的角色来确定。

ACL直接将主体和目标相联系,而RBAC在中间加入了角色,通过角色沟通主体与目标。

分层的优点是当主体发生变化时,只需修改主体与角色之间的关联而不必修改角色与客体的关联。

RBAC的基本思想

RBAC中许可被授权给角色,角色被授权给用户,用户不直接与许可关联。RBAC对访问权限的授权由管理员统一管理,而且授权规定是强加给用户的,这是一种非自主型集中式访问控制方式。

用户是一个静态的概念,会话则是一个动态的概念。一次会话是用户的一个活跃进程,它代表用户与系统交互。用户与会话是一对多关系,一个用户可同时打开多个会话。一个会话构成一个用户到多个角色的映射,即会话激活了用户授权角色集的某个子集,这个子集称为活跃角色集。活跃角色集决定了本次会话的许可集。

RBAC的优点

RBAC能够描述复杂的安全策略

容易实现最小特权(least privilege)原则

满足职责分离(separation of duties)原则

岗位上的用户数通过角色基数约束

通过角色定义、分配和设置适应安全策略

系统管理员定义系统中的各种角色,每种角色可以完成一定的职能。

不同的用户根据其职能和责任被赋予相应的角色,一旦某个用户成为某角色的成员,则此用户可以完成该角色所具有的职能。

根据组织的安全策略特定的岗位定义为特定的角色、特定的角色授权给特定的用户。系统管理员也可以根据需要设置角色的可用性以适应某一阶段企业的安全策略。

通过角色分层映射组织结构

基于角色访问控制(RBAC)

容易实现最小特权(least privilege)原则

最小特权原则是指用户所拥有的权力不能超过他执行工作时所需的权限。

这一原则的应用可限制事故、错误、未授权使用带来的损害。

在RBAC中,系统管理员可以根据组织内的规章制度、职员的分工等设计拥有不同权限的角色,只有角色需要执行的操作才授权给角色。

当一个主体要访问某资源时,如果该操作不在主体当前活跃角色的授权操作之内,该访问将被拒绝。

最小特权原则在保持完整性方面起着重要的作用。

满足职责分离(separation of duties)原则

这是保障安全的一个基本原则,是指有些许可不能同时被同一用户获得,以避免安全上的漏洞。

例如收款员、出纳员、审计员应由不同的用户担任。

在RBAC中,职责分离可以有静态和动态两种实现方式。

静态职责分离只有当一个角色与用户所属的其他角色彼此不互斥时,这个角色才能授权给该用户。

动态职责分离只有当一个角色与一主体的任何一个当前活跃角色都不互斥时该角色才能成为该主体的另一个活跃角色。

角色的职责分离也称为角色互斥,是角色限制的一种。

岗位上的用户数通过角色基数约束

企业中有一些角色只能由一定人数的用户占用,在创建新的角色时,通过指定角色的基数来限定该角色可以拥有的最大授权用户数。如总经理角色只能由一位用户担任。

RBAC数据库设计

维护RBAC数据库是系统管理员的基本职责,这里分析RBAC数据库的基本表和相关操作。

RBAC数据库包括静态数据和动态数据。

基于任务的访问控制(TBAC)

问题

DAC、MAC、RBAC都是静态模型,未考虑系统执行的上下文环境。

没有时限性,主体可以无限制的执行所拥有的权限。

无法实现对工作流的访问控制。

例如:战略导弹的发射控制。

基于任务的访问控制

TBAC是从应用和企业层角度来解决安全问题,以面向任务的观点,从任务(活动)的角度来建立安全模型和安全机制,在任务处理过程中提供动态和实时的安全管理。在TBAC中,对象的访问权限控制并不是静止的,而是随时间执行的上下文环境发生变化。

基于任务的访问控制

工作流环境中,数据的处理与上一次的处理相关联。

TBAC不仅对不同工作流实行访问控制,而且对同一工作流进行控制。

TBAC是基于实例的访问控制模型。

TBAC的组成

任务

授权结构体

授权步

受托人集

任务

工作流程中的一个逻辑单元,是一个不可区分的动作,与多个用户相关。

可以有子任务。

授权结构体

由一个或多个授权步组成的结构体,他们在逻辑上是联系在一起。

连接件,连接每个授权步。

授权步

表示一个原始授权步,是指在一个工作流中对处理对象的一次处理过程。

访问控制最小单元

受托人集

被授予执行授权步的访问集合。

基于任务的访问控制(TBAC)

TBAC从工作流中的任务角度建模,可以依据任务和任务状态的不同,对权限进行动态管理。

适合于分布式计算和多点控制访问的信息处理控制以及在工作流、分布式处理和事务管理系统中的决策制定。

支持最小特权原则与最小泄露原则。

相对复杂。

基于对象的访问控制(OBAC)

问题

数据量大、用户多,权限管理复杂。

当用户与权限增减的时候,修改复杂。

访问控制需求不可预知。

windows文件管理。

基于对象的访问控制(OBAC)

将访问控制列表与受控对象或受控对象的属性关联。

允许对策略与规则进行重用、继承和派生操作。

派生对象可以继承父对象的访问控制设置。

信息流模型

着眼于对客体之间的信息传输过程的控制,通过对信息流向的分析可以发现系统中存在的隐蔽通道,并设法予以堵塞。

防火墙。

不实用。

访问控制的安全策略

在系统开发时,需要明确系统中那些资源那些人员可以访问。

根据实际系统,安全策略是可实现的。

安全策略的原则

最小特权原则

最小泄漏原则

多级安全策略

基于身份的安全策略

基于个人的安全策略

基于组的安全策略

基于规则的安全策略

资源具有安全策略。

进程具有安全标记。

系统比较访问者与资源的安全级别。

访问控制的实现

访问控制表。

访问控制矩阵。

访问控制能力表。

访问控制安全标签列表。

访问控制安全标签列表。

访问控制的具体类别

技术上具体实现策略

接入访问控制

资源访问控制

网络端口和节点的访问控制

安全级别与访问控制

D级:最低级别防护。

C1级:选择性安全保护。

C2级:在C1基础上增加受控安全保护、帐户管理、审计、资源隔离。B1:标识安全保护。

B2:结构保护。强制安全防护,要求所有对象都具有安全标签。

B3:安全域保护。通过硬件来加强安全。

A级:验证设计级。对安全系统的设计开发进行安全管理。

相关主题
相关文档
最新文档