授权控制与授权
访问控制与授权主要内容
主要内容:
- 概念原理
- 常用的实现方法
- 访问控制策略
本章重点和复习要点:
- 访问控制常见的实现方法
- 三种主要的访问控制策略;TCSEC中的C级操作系统要求至少具有何种访问控制策略?B级以上操作系统要求具有何种访问控制策略?
- 什么是DAC?它能从根本上防范特洛伊木马的攻击?
- 什么是MAC?它有阻止特洛伊木马的能力吗?
- MAC中实现数据机密性的是哪个安全模型?它必须采用哪种读写规则?实现数据完整性的是哪个安全模型?它必须采用哪种读写规则?
13.1 概念原理
授权(Authorization)和访问控制(Access Control)表示ISO五大服务中的访问控制服务。
访问控制建立在身份认证基础上,通过限制对关键资源的访问,防止非法用户的侵入或因为合法用户的不慎操作而造成的破坏。
访问控制目的:限制主体对客体的访问权限,从而使计算机系统在合法范围内使用。
13.2 常用的实现方法
13.2.1 访问控制矩阵
列表示客体(各种资源),行表示主体(用户),交叉点表示主体对客体的访问权限。
通常文件的Own权限表示可授予(Authorize)或撤消(Revoke)其他用户对该文件访问权限。
13.2.2 访问能力表
实际系统中虽然可能有很多主体与客体,但两者之间的权限关系可能并不多。
为了减轻系统开销与浪费,我们可以从主体(行)出发,表达矩阵某一行的信息,这就是访问能力表(Capabilities)。
只有当主体对某个客体拥有访问能力时,它才能访问这个客体。
但要从访问能力表获得对某一特定客体有特定权限的所有主体就比较困难。
在安全系统中,正是客体需要得到可靠保护,访问控制服务应该能够控制访问某一客体的主体集合,便出现客体为中心的实现方式 —— ACL。
13.2.3 访问控制表
从客体(列)出发,表达矩阵某一列的信息,就是 访问控制表(Access Control List)。
它可对某一特定资源指定任一用户的访问权限,还将有相同权限的用户分组授予访问权。
ACL 的优点:表述直观、易于理解,容易查出对某一特定资源拥有访问权限的所有用户。
将 ACL 应用到规模大的企业内部网时,有如下问题:
- 网络资源很多,ACL 需要设定大量的表项,而且修改起来比较困难,实现整个组织范围内一致的控制政策也比较困难。
- 单纯使用 ACL,不易实现 最小权限原则 及复杂的安全政策。
13.2.4 授权关系表
授权关系表(Authorization Relations)的每一行表示了主体和客体的一个授权关系。
- 对表按客体进行排序,可以得到访问控制表的优势;
- 对表按主体进行排序,可以得到访问能力表的优势。
- 适合采用关系数据库来实现。
13.3 访问控制策略
三种不同的访问控制策略:
- 自主访问控制(DAC)
- 强制访问控制(MAC)
- 基于角色的访问控制(RBAC) 。
前两种属于传统的访问控制策略,而 RBAC 是90年代后期出现的,有一定的优势。
每种策略并非绝对互斥,可以把几种策略综合从而获得更好更安全的系统保护 —— 多重的访问控制策略。
13.3.1 自主访问控制DAC
目前计算机系统中实现最多,如Windows、UNIX系统。
一个拥有一定访问权限的主体可以直接或间接地将权限传给其他主体——允许某个主体显式地指定其他主体对该主体所拥有的信息资源是否可以访问以及可执行的访问类型。
用户 A 可以将其对客体目标 O 的访问权限传递给用户 B,从而使不具备对 O 访问权限的 B 也可以访问 O。
主体访问者对访问的控制有一定的权利,但它使得信息在移动过程中其访问权限关系会被改变,这样做很容易产生安全漏洞,所以DAC的安全级别很低。
传统的DAC已很难满足访问控制服务的质量:不利于实现统一的全局访问控制;
由管理部门统一实施访问控制,不允许用户自主地处理。
13.3.2 强制访问控制MAC
系统强制主体服从访问控制政策。
MAC 主要用于多层次安全级别的军事系统中,它预先定义主体的可信任级别和客体的敏感程度,用户的访问必须遵守安全政策划分的安全级别的设定以及有关访问权限的设定。
典型应用中MAC的访问控制关系分为两种:
- 下读/上写:保证数据机密性
- 上读/下写:保证数据完整性
通过梯度安全标签实现信息的单向流通。
下读:低级别用户只能读比它信任级别更低的敏感信息;
上写:只允许将敏感信息写入更高敏感区域。
此时信息流只能从低级别流向高级别,保证数据的机密性(Bell-Lapadula模型) 。
Biba 模型是 Biba 等人于20世纪70年代提出的,它主要是针对信息完整性保护方面的。与 BLP 模型类似,Biba 模型用完整性等级取代了 BLP 模型中的敏感等级而访问控制的限制正好与 BLP 模型相反:高完整性文件的内容是由高完整性进程产生的(因为禁止向上写)。上面的两条规则限制了不可靠的信息在系统内的流动,保证了高完整性文件不会被低完整性文件或低完整性进程中的信息所损害,保证了信息的完整性,文件的完整性级别标识可以确保其内容的完整程度。
MAC能够阻止特洛伊木马:
-
特洛伊木马是隐藏在执行合法功能程序中的代码,它利用运行此程序的主体权限违反安全策略,通过伪装成有用的程序在进程中泄露信息。
-
阻止特洛伊木马的策略:基于非循环信息流,由于MAC是通过梯度安全标签实现信息的单向流通,从而它可以很好地阻止特洛伊木马的泄密。
-
缺点:实现工作量太大,管理不便,不够灵活,且过于偏重保密性。
在自主访问控制中,某一合法用户可任意运行一段程序来修改该用户拥有的文件的访问控制信息,而操怍系统无法区别这种修改是用户自己的非法操作,还是“特洛伊木马”的非法操作,也没有办法防止“特洛伊木马”将信息通过共享客体(文件、内存等)从一个进程传递给另一个进程。
强制访问控制则提供一个不可逾越的、更强的安全防护层,以防止其他用户偶然或故意滥用自主访问控制。强制访问控制不可避免地要对用户的客体施加一些严格的限制,这使得用户无意泄霹机密信息的可能性大大地减少了。
13.3.3 基于角色的访问控制
可以减少授权管理的复杂性,降低管理开销,是一种有效的实施企业访问安全策略的方式。
基本概念:
在很多商业部门中,访问控制是由各个用户在部门中所担任的角色来确定的,而不是基于信息的拥有者。
角色:一个或一群用户在组织内可执行的操作的集合。
RBAC根本特征:依据RBAC策略,系统定义各种角色,不同用户根据其职能和责任被赋予相应角色。
RBAC通过角色沟通主体与客体,真正决定访问权限的是用户的角色标识。
由于用户与客体无直接联系,所以他不能自主将权限授予别的用户。
RBAC系统主要关心 “谁可以对什么信息执行何种动作?” 。
角色控制比较灵活,根据配置可以使某些角色接近DAC,而某些角色更接近于MAC。
角色由系统管理员定义,角色成员的增减也只能由系统管理员来执行,而且授权是强加给用户的,用户不能自主地将权限传给他人。