1、访问控制技术概述
(1)访问控制的基本模型
访问控制包括三个要素:主体、客体、控制策略。
访问控制包括认证、控制策略实现和审计三方面的内容。
(2)访问控制的实现技术
A、访问控制矩阵(ACM)
是通过矩阵形式表示访问控制规则和授权用户权限的方法
访问矩阵是以主体为行索引,以客体为列索引的矩阵,矩阵中的每一个元素表示一组访问方式,是若干访问方式的集合。
B、访问控制表(ACLs)
实际上是按列保存访问矩阵。访问控制表提供了针对客体的方便的查询方法。但是用它来查询一个主体对所有客体的所有访问权限是很困难的。
C、能力表
对应于访问控制表,这种实现技术实际上是按行保存访问矩阵。能力表实现的访问控制
系统可以很方便地查询某一个主体的所有访问权限,但查询对某一个客体具有访问权限的主体信息是很困难的。
D、授权关系表
是即不对应于行也不对应于列的实现技术,只对应访问矩阵中每一个非空元素的实现技术。
如果授权关系表按主体排序,查询时就可以得到能力表的效率;如果按客体排序,查询时就可得到访问控制表的效率。
(3)访问控制表介绍
A、ACL的作用
可以限制网络
流量、提高网络性能;
提供对通信流量的控制手段;
是提供
网络安全访问的基本手段;
可以在
路由器端口处决定哪种类型的通信流量被转发或被阻塞。
B、ACL的执行过程
一个端口执行哪条ACL,这需要按照列表中的条件语句执行顺序来判断。如果一个
数据包的报头跟表中某个条件判断语句相匹配,那么后面的语句就将被忽略,不再进行检查。
数据包只有在跟第一个判断条件不匹配时,它才被交给ACL中的下一条件判断语句进行比较。
如果匹配,则不管是第一条还是最后一条语句,数据都会立即发送到目的接口。
如果甩有的ACL判断语句都检测完毕,仍没有匹配的语句出口,则该数据包将视为被拒绝而被丢弃。
注意, ACL不能对本
路由器产生的数据包进行控制。
C、ACL的分类
分为标准ACL和扩展ACL。
主要区别:标准ACL只检查数据包的源地址;扩展ACL既检查数据包的源地址,也检查数据包的目的地址,同时还可以检查数据包的特定
协议类型、端口号等。
D、ACL的
配置
在全局配置模式下,使用下列命令创建ACL:
Router(config)# access-list
access-list-number {permit|deny} {test-conditions}
在接口配置模式下,使用access-group命令ACL
应用到某一接口上:
Router(config-if)# {protocol} access-group access-list-number {in|out}
E、标准ACL举例
注意P662到663页内容即可。
(4)访问控制的模型发展
2、传统访问控制技术
(1)自主型访问控制(DAC)
Discretionary Access Control
自主访问控制是一种最为普遍的访问控制手段,用户可以按自己的意愿对系统的参数做适当修改以决定哪些用户可以访问他们的文件,亦即一个用户可以有选择地与其
它用户共享他的文件。用户有自主的决定权。
自主访问控制一个安全的操作系统需要具备访问控制机制。它基于对主体及主体所属的主体组的识别,来限制对客体的访问,还要校验主体对客体的访问请求是否符合存取控制规定来决定对客体访问的执行与否。这里所谓的自主访问控制是指主体可以自主地(也可能是单位方式)将访问权,或访问权的某个子集授予其它主体。
将数字信号转换为模拟信号
(2)强制型访问控制(MAC)
Mandatory Access Control .
强制访问控制允许加载新的访问控制模块,并借此实施新的安全策略,其中一部分为一个很小的系统子集提供保护并加强特定的服务,其他的则对所有的主体和客体提供全面的标签式安全保护。定义中有关强制的部分源于如下事实,控制的实现由
管理员和系统作出,
而不像自主访问控制 (DAC, FreeBSD 中的标准文件以及 System V IPC 权限 ) 那样是按照用户意愿进行的。
强制访问控制是系统独立于用户行为强制执行访问控制,它也提供了客体(数据对象)在主体(
数据库用户)之间共享的控制,但强制访问控制机制是通过对主体和客体的安全级别进行比较来确定授予还是拒绝用户对资源的访问,从而防止对信息的非法和越权访问,保证信息的保密性。与自主访问控制不同的是,强制访问控制由安全管理员管理,由安全管理员根据一定的规则来设置,普通数据库用户不能改变他们的安全级别或对象的安全属性;自主访问控制尽管也作为系统安全策略的一部分,但主要由客体的拥有者管理
3、基于角色的访问控制技术(RBAC)
基于角色的访问控制( Role-Based Access Control )引入了 Role 的概念 , 目的是为了隔离 User( 即动作主体, Subject) 与 Privilege( 权限,表示对 Resource 的一个操作,即 Operation+Resource) 。
Role 作为一个用户 (User) 与权限 (Privilege) 的代理层,解耦了权限和用户的关系,所有的授权应该给予 Role 而不是直接给 User 或 Group 。 Privilege 是权限颗粒,由 Operation 和 Resource 组成,表示对 Resource 的一个 Operation 。例如,对于新闻的删除操作。 Role-Privilege 是 many-to-many 的关系,这就是权限的核心。
基于角色的访问控制方法( RBAC )的显著的两大特征是: 1. 由于角色 / 权限之间的变化比角色 / 用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。 2. 灵活地支持
企业的安全策略,并对企业的变化有很大的伸缩性。
RBAC 基本概念:
RBAC 认为权限授权实际上是 Who 、 What 、 How 的问题。在 RBAC 模型中, who 、 what 、 how 构成了访问权限三元组 , 也就是 “Who 对 What(Which) 进行 How 的操作 ” 。
Who :权限的拥用者或主体(如 Principal 、 User 、 Group 、 Role 、 Actor 等等)
What :权限针对的对象或资源( Resource 、 Class )。
How :具体的权限( Privilege, 正向授权与负向授权)。
Operator :操作。表明对 What 的 How 操作。也就是 Privilege+Resource
Role :角色,一定数量的权限的集合。权限分配的单位与载体 , 目的是隔离 User 与 Privilege 的逻辑关系 .
Group :用户组,权限分配的单位与载体。权限不考虑分配给特定的用户而给组。组可以包括组 ( 以实现权限的继承 ) ,也可以包含用户,组内用户继承组的权限。 User 与 Group 是多对多的关系。 Group 可以层次化,以满足不同层级权限控制的要求。
RBAC 的关注点在于 Role 和 User, Permission 的关系。称为 User assignment(UA) 和 Permission assignment(PA). 关系的左右两边都是 Many-to-Many 关系。就是 user 可以有多个 role , role 可以包括多个 user 。
凡是用过 RDBMS 都知道, n:m 的关系需要一个中间表来保存两个表的关系。这 UA 和 PA 就相当于中间表。事实上,整个 RBAC 都是基于关系模型。
Session 在 RBAC 中是比较隐晦的一个元素。标准上说:每个 Session 是一个映射,一个用户到多个 role 的映射。当一个用户激活他所有角色的一个子集的时候,建立一个 session 。每个 Session 和单个的 user 关联,并且每个 User 可以关联到一或多个 Session.
在 RBAC 系统中, User 实际上是在扮演角色 (Role) ,可以用 Actor 来取代 User ,这个想法来自于 Business Modeling With UML 一书 Actor-Role 模式。考虑到多人可以有相同权限, RBAC 引入了 Group 的概念。 Group 同样也看作是 Actor 。而 User 的概念就具象到一个人。
这里的 Group 和 GBAC ( Group-Based Access Control )中的 Group (组)不同。 GBAC 多用于操作系统中。其中的 Group 直接和权限相关联,实际上 RBAC 也借鉴了一些 GBAC 的概念。
Group 和 User 都和组织机构有关,但不是组织机构。二者在概念上是不同的。组织机构是物理存在的公司
结构的抽象模型,包括部门,人,职位等等,而权限模型是对抽象概念描述。组织结构一般用 Martin fowler 的 Party 或责任模式来建模。
Party 模式中的 Person 和 User 的关系,是每个 Person 可以对应到一个 User ,但可能不是所有的 User 都有对应的 Person 。 Party 中的部门 Department 或组织 Organization ,都可以对应到 Group 。反之 Group 未必对应一个实际的机构。例如,可以有副经理这个 Group ,这是多人有相同职责。
引入 Group 这个概念,除了用来
解决多人相同角色问题外,还用以解决组织机构的另一种授权问题:例如, A 部门的新闻我希望所有的 A 部门的人都能看。有了这样一个 A 部门对应的 Group ,就可直接授权给这个 Group 。
4、基于任务的访问控制模型(TBAC)
是从应用和企业层角度来解决安全问题,以面向任务的任务的角度来建立安全模型和实现安全机制,在任务处理的过程 提供动态实时的安全管理。
TBAC模型由工作流、授权结构体、受托人和许可集4部分组成。
5、基于对象的访问控制模型(OBAC)
控制策略和控制规则 是OBAC访问控制系统的核心所在。