1、第3章 访问控制策略,3.1 访问控制 3.2 访问控制策略 3.3 安全核与引用监控器 3.4 访问矩阵模型 习题,访问控制的基本任务:防止非法用户进入系统及合法用户对系统资源的非法使用,保证对客体的所有直接访问都是被认可的。 访问控制需采取两种措施:识别和确认访问系统的用户;决定该用户对某一资源可进行何种类型的访问;,3.1 访问控制,访问控制的有效性建立在两个前提上:第一是:用户鉴别与确认(每个用户仅能行使自己的访问权,二不能获得别认的访问权);第二是说明每一个用户或程序的访问权信息是受保护的(是通过访问控制来获得的);计算机系统是个庞然大物,要对这样的复杂系统的某些问题进行研究,最有效
2、的方法是建立数学模型,即通过模型研究系统的形态。,3.2 访问控制策略,安全策略(也称保护策略)是关于信息系统安全性的最高层次的指导原则, 是根据用户的需求、 设备情况、 单位章程和法律约束等要求选定的。 对于计算机系统及其网络系统,如果它们所管理的信息仅能用它们的安全所授权的方法来操作,那么它们是安全的。 主要有两种安全策略:访问策略和信息流策略。前者说明系统认可的访问,即主体对客体能够有访问权;后者说明系统认可的信息流,即主体安全类和客体安全类间允许的关系。,3.2.1 关于安全性管理方式的策略(1) 采用集中控制还是分散控制。 集中控制是由一个单一的授权者控制系统的所有安全性侧面。 (2
3、) 采用所有权的概念还是管理者的概念。 所有权的概念就是允许所有者对自己的文件进行每一种访问,他还拥有对自己文件访问权的授予及撤销权。 管理者的概念是指可以给其他主体授予或撤销对他所管理的客体的访问权,而他自己不一定拥有所有访问权。,3.2.2 访问控制的规范策略比较重要的访问控制策略包括以下一些: (1) 最小权限策略。 指信息限于给那些完成任务所必需者,也称为“知其所需”策略 (2) 最大共享策略。 该策略的意图是使存储的信息获得最大的应用,这并不意味着每个人可以访问所有的信息,而是在一些约束之内的最大共享(3) 访问的开放与封闭。 在封闭系统中,仅当有明确的授权时才允许访问;在开放系统中
4、,除非明确禁止,否则访问都时允许的。,(4) 离散访问控制它时根据请求的主、客体名称作出可否访问的决策的一种控制,又称为名称相关访问控制。由于不需要依存数据库中的数据内容就能够作出决策,也称为内容无关访问控制。 在离散访问控制中,可访问的客体单位的大小称为访问粒度,决定访问粒度的大小是一项重要决策。粒度较粗易于实现,粒度较细应用灵活。(5) 自主访问控制DAC(Discretionary Access Conrtol)。 客体的属主可以自主决定哪个用户能够访问它的客体。“客体的属主控制对该客体访问权的转授”是DAC的最主要特征。,(6) 强制访问控制MAC(Mandatory Access C
5、ontrol)。主客体都有固定的安全属性(安全性标记),可否访问的决策是根据请求访问的主、客体的安全性标记作出的。主、客体的安全性标记是根据安全信息流策略对主客体统一标定的。又称为非离散访问控制。 (7) 内容相关与其他访问控制。它包括内容相关、上下文相关、时间相关和历史相关等方式。 内容相关控制是指访问是否被允许要与“被访问客体的当前数据有关”。 上下文相关控制的允许访问条件是数学集合的函数。 时间相关访问控制的允许访问条件是系统时钟的函数。 历史相关访问控制的允许访问条件是系统先前状态的函数。,总结:在计算机及其网络中,对不同的数据可以实行不 同的策略,并不要求实行统一的策略。,3.3 安
6、全核与引用监控器,引用监控器:主体对客体的每次存取以及授权的改变都必须通过引用监控器。安全核:实现引用监控器的软件与硬件。 安全核技术的理论基础:在一个大的OS内,只有很小一部分软件负责系统安全,通过对OS的重构,将与安全有关的软件隔离在OS的一个可信核内,而OS的大部分软件无需负责系统安全。 安全核必须是适于保护的,并且要保证越过安全核的检查控制是不可能的;安全核必须尽可能小,以便对它的正确性进行检验。,引用监控器的关键作用:是对主体到客体的每一次访问都要实施控制,并对每一次访问活动进行审计记录,就好比用户与目标之间带护卫的大门。 当用户需要访问目标的时候,首先向监控器提出访问某个目标的请求
7、,监控器根据用户请求,核查访问者的权限,以便确定是否允许这次访问。计算机系统安全内核的主要组成部分就是引用监控器。 引用监控器的逻辑结构如图3 - 1所示。,图 3 - 1 访问监控器,引用监控器及其对应的安全核必须满足以下三个原则: (1) 完备性原则。指主体在没有对安全内核的引用监控器提出请求并获准时,不能访问客体。也就是说,所有的信息访问都必须经过安全内核。 (2) 隔离性原则。 内核和引用监控器都要有防篡改能力。实现时必须将映射引用监控器的安全核与外部系统严密地隔离起来,以防止进程对安全核进行非法修改。(3)可验证性原则。 指引用监控器本身的正确性能得到证明或验证。,引用监控器模型的优
8、点是易于实现, 但它有以下不足: (1) 引用监控器主要还是作为单级安全模型来使用的, 受监视的目标要么允许被访问, 要么不允许被访问。只有简单的安全性,不能适应更复杂的安全要求。 (2) 系统中所有对受监控目标的访问要求都由监控器检查核实, 监控程序将被频繁调用,这将使监控器可能成为整个系统的瓶颈, 影响系统效率。 (3) 监控器只能控制直接访问, 不能控制间接访问。,3.4 访问矩阵模型,基于访问矩阵的模型,可以很好地用来实现DAC安全策略。 3.4.1 模型描述 访问矩阵模型的结构是基于状态和状态转换的概念定义的。这里的状态是用访问矩阵表示的, 状态转换是用命令描述的。 通过对计算机系统
9、访问控制的抽象, 在对应的访问矩阵模型中定义了三类要素:,(1) 系统中的客体集合O。主体行为的对象或直接承担者,如文件、程序、存储区,每一客体可由它们的名字唯一地标识和识别。 (2) 系统中的主体集S。 主体是访问操作的主动发起者,如用户、进程、执行域,每一主体也可由它们的名字唯一地标识和识别。由于主体与主体之间存在控制与被控制关系,我们假定主体也是一种类型的客体,即,s O. (3) 系统中主体对客体的访问权限集合R。 O,S,R的关系以二维矩阵A表示,主体用行表示,客体用列表示,主客体的交叉点表示访问权限,访问权限取自于一个访问权限的有限集A。 AS,O表示主体S对客体O的访问权,例如:
10、,表3.1 访问矩阵示例,访问权:访问权说明在不同客体上可以执行访问操作的种类。通用的访问权有:r(读)、w(写)、e(执行) Append(附加):允许主体把数据追加到某个客体的末尾,但不允许覆盖客体中已有的数据。 Own(拥有):具有own权的主体可以对其他主体授予或撤消对该客体的访问权利。 在访问矩阵模型中,系统中状态的改变取决于访问矩阵M的改变。一个独立的状态机构成一个系统,因此访问矩阵也称为系统的“保护状态”。,数据库系统中访问矩阵模型描述: 在数据系统中,主体是用户,客体是文件、关系、记录或记录中的字段。As,o是某一访问规则,访问规则是访问权概念的推广,规则可能说明内容无关条件或
11、内容相关条件。 内容无关条件:略 内容相关条件:略 相关的概念还包括:时间相关、上下文相关、历史相关(略),数据库的访问规则通常以四元组(s,o,r,p)的形式给出,r表示访问权,p是谓词表达的相关条件(限定条件)。 例如,设employee为一关系,其属性(职工编号,职工姓名,住址,电话,薪水),如果工资单管理员只能读月工资不大于1000员的雇员属性,则访问规则可写成:(s,o,r,p)=(工资单管理员 ,employee,read, 薪水1000)p可由数据谓词Pd和系统谓词Ps(访问时间限定于8t11)组成。 由于数据库的访问规则远比操作系统中的访问权复杂,检查规则的存在性和合法性需要时
12、间,因此,访问控制不仅需要访问规则,还必须有一个生效过程。,生效过程: 生效过程的大致情况如图3-2所示。 1)用户提出访问请求(s,o,r,p);2)根据访问过程检查是否有(s,o,r)类型的规则。 若有, 检索计算谓词p的保护数据, 用保护数据判断谓词p的真假。 若P为真, 则处理该请求; 若p为假, 则拒绝该请求若不存在(s,o,r)类型的规则, 则拒绝该请求。,图3-2 访问生效过程,访问规则的内容还可以根据需要扩充为七元组: (a,s,o,r,p,f,(c1,ap1),,(cn,apn)) 其中: a表示可以授权的人;f是复制标记。主体s把自己的权利转授给另一个 主体s:f=* :可
13、以转授f=(空):不允许转授(c1,ap1),,(cn,apn)是引用生效规则时可能执行的辅助过程,Ci表示执行过程api的条件。,强调指出:模型虽是以矩阵形式给出,但访问权、访问规则的存储通常不采用矩阵形式,这是因为访问矩阵十分稀疏,存储十分浪费空间。因此,实现访问矩阵模型时需要采用一些有效的方法。,3.5.2 状态转换保护系统的状态变化体现为访问控制模型的变化。 系统状态的转换是依靠一套本原命令来实现的, 这些命令是用一系列改变访问控制矩阵内容的本原操作来定义的。 在访问矩阵模型中定义了6种本原操作, 如表3- 2 所示。,表3-2 本原命令的执行条件与结果,【例3-3】 以下是一些利用命
14、令实现访问权限管理的例子。 (1) 任何进程都可以创建一个文件, 自动地给所创建的文件赋予所有权和对文件的r-访问权、 w-访问权。 这可以用以下命令表达:,command create file (p, f)create object f enter own into Ap, fenter r into Ap, fenter w into Ap, fend,(2) 对文件f有所有权的进程p, 可以把对f的任何权利(除所有权外)转授给其他进程。 例如, 进程p可以用以下命令向进程q授予r-访问权: command confer read (p, q, f)if own in A p, fthen enter r into A q, fend,