欢迎来到天天文库
浏览记录
ID:21882920
大小:231.50 KB
页数:98页
时间:2018-10-21
《课件15:第6-4~5节自主与强制访问控制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、6.4自主访问控制与强制访问控制主体与客体主体:通常指用户,或代表用户意图运行进程或设备。主体是访问操作的主动发起者,它是系统中信息流的启动者,可以使信息流在实体之间流动。客体:通常是指信息的载体或从其他主体或客体接收信息的实体。主体有时也会成为访问或受控的对象,如一个主体可以向另一个主体授权,一个进程可能控制几个子进程等情况,这时受控的主体或子进程也是一种客体。客体不受它们所依存的系统的限制,可以包括记录、数据块、存储页、存储段、文件、目录、目录树、库表、邮箱、消息、程序等,还可以包括比特位、字节、字、字段、变量、处
2、理器、通信信道、时钟、网络结点等。对客体的管理与控制策略管理的方式不同就形成不同的访问控制方式。一种方式是由客体的属主对自己的客体进行管理,由属主自己决定是否将自己客体的访问权或部分访问权授予其他主体,这种控制方式是自主的,我们把它称为自主访问控制(DiscretionaryAccessControl——DAC)。在自主访问控制下,一个用户可以自主选择哪些用户可以共享他的文件。另一种方式是强制访问控制(MandatoryAccessControl——MAC),在强制访问控制下,用户(或其他主体)与文件(或其他客体)都被标记
3、了固定的安全属性(如安全级、访问权限等),在每次访问发生时,系统检测安全属性以便确定一个用户是否有权访问该文件。如果系统认定具有某一安全属性的用户无权访问某个文件,那么任何人(包括文件主在内)都无法使该用户能够访问该文件,除非对总体安全策略进行修改。这些安全属性是系统管理员根据系统总体安全策略与需求分配的,用户或他的程序是不能修改这些安全属性的,即使文件是属于用户自己的也不行。对于通用型商业操作系统,DAC是一种最普遍采用的访问控制手段。需要由自主访问控制方式保护的客体数量取决于系统想要的环境。几乎所有系统的DAC机制中都
4、包括对文件、目录、通信信道以及设备的访问控制。如果通用操作系统希望为用户提供较完备的和友好的DAC接口,那么在系统中还应该包括对邮箱、消息、I/O设备等客体提供自主访问控制保护。6.4.1DAC的实现机制访问控制矩阵是实现DAC策略的基本数据结构,矩阵的每一行代表一个主体,每一列代表一个客体,行列交叉处的矩阵元素中存放着该主体访问该客体的权限。矩阵通常是巨大的稀疏矩阵,必须采用某种适当形式存放在系统中,完整地存储整个矩阵将浪费系统许多存储空间。一般的解决方法是按矩阵的行或列存储访问控制信息的。O1O2O3O4O5S1S2S
5、3S4S1rworwxrrcS2rwcS3rrwrwcS4rwrrwxrwxo访问控制矩阵示意一、基于行的访问控制机制这种机制是把每个主体对所在行上的有关客体(即非空矩阵元素所对应的那些客体)的访问控制信息以表的形式附加给该主体,根据表中的内容不同又分为不同的具体实现机制。1、权限表机制权限表中存放着主体可访问的每个客体的权限(如读、写、执行等),主体只能按赋予的权限访问客体。程序中可以包含权限,权限也可以存储在数据文件中。为了防止权利信息被非法修改,可以采用硬件、软件和加密措施。由于允许主体把自己的权利转授给其他进程,或
6、从其他进程收回访问权,权限表机制是动态实现的,所以,对一个程序而言,最好能够把该程序所需访问的客体限制在较小的范围内。由于权限表体现的是访问矩阵中单行的信息,所以对某个特定客体而言,一般情况下很难确定所有能够访问它的所有主体,因此,利用访问权限表不能实现完备的自主访问控制。因此实际利用权限表实现自主访问控制的系统并不多。2、前缀表(profiles)机制前缀表中存放着主体可访问的每个客体的名字和访问权。当主体要访问某个客体时,系统将检查该主体的前缀中是否具有它所请求的访问权。前缀表机制的实现存在以下困难需要解决:前缀表机制
7、的实现存在以下困难需要解决:主体的前缀表可能很大,增加了系统管理的困难。2、只能由系统管理员进行修改。这种管理方法有些超出了DAC原则。3、撤消与删除困难。要系统回答“谁对某一客体具有访问权”这样的问题比较困难。但这个问题在安全系统中却是很重要的。3、口令(password)机制每个客体相应地有一个口令。当主体请求访问一个客体时,必须向系统提供该客体的口令。请注意,这里讲的口令与用户登录进入系统时回答的口令不是一回事。为了安全性起见,一个客体至少要有两个口令,一个用于控制读,一个用于控制写。利用口令机制对客体实施的访问控制
8、是比较麻烦的和脆弱的口令机制的缺陷1、系统不知谁访问了客体。对客体访问的口令是手工分发的,不需要系统参与2、安全性脆弱。需要把该客体的口令写在程序中,这样很容易造成口令的泄露。3、使用不方便。每个用户需要记忆许多需要访问的客体的口令,很不友好。4、管理麻烦。撤消某用户对某客体的访问权,只能改变该客体的口
此文档下载收益归作者所有