第0章 安全模型开发方法
1.(1)机密性:设X是实体的集合,并设I是某种信息,如果X中成员不能获取信息I,那么I关于X具有机密性。(2)完整性:设X是实体的集合,并设I是某些信息或某种资源,如果X中所有成员都信任I,那么I关于X具有完整性。(3)可用性:设X是实体的集合,并设I是一种资源,如果X中所有成员都可以访问I,那么I关于X具有可用性。
2. 安全机制是实施安全策略的某些部分的实体(entity)或规程(procedure)。
例如:某大学不允许作弊,作弊的定义包括抄袭他人的作业(经许可或未经许可)假设有一门计算机科学课程要求学生在系里的计算机上完成作业。学生A发现学生B没有对她的作业文件进行读保护,于是抄袭了该作业。
问题:
B没有保护其文件,他是否违背了安全策略?
A拥有复制权,他的行为是否不违背安全策略?
3.安全模型的重要性
安全策略通常是隐含定义而不是明确定义的。这常常会带来混乱,尤其是当安全策略必须由多种机制定义时。例如:某些机制禁止某特定行为,而其他机制允许这些行为,就会混乱。
安全模型是安全策略的清晰表述, 具有特点:(1)是精确的、无歧义的(2)是简单和抽象的,易于理解(3)只涉及安全性质,不限制系统的功能及其实现
4.安全模型基本需求:完备性(completeness) 要求所有的安全策略必须包括在模型的断言中,而且也要求所有包含在模型中的断言必须是从安全策略中导出的。正确性(correctness) 要求模型 的安全性定义是一个从安全策略导出的相关安全断言的精确描述。一致性(consistency) 要求各条安全策略是内在一致的,也就是说,安全策略模型中的各条安全策略的形式化表示之间没有数学矛盾。简明性(clarity) 指模型是简单的而且没有额外的细节,但必须包括足够多的细节使得它不是含糊的。
5.安全模型开发方法:
(1)状态机定义:状态机模型将一个系统描述为一个抽象的数学状态机器。在这样的模型里,状态变量表示机器的状态,转换函数或者操作规则用以描述状态变量的变化过程。
状态转换函数是可进入操作系统的系统调用的抽象,它们精确地描述了状态可以怎样变化和不可以怎样变化。
(2)状态机模型在系统安全模型设计中得到了较为广泛的应用。理由是:
安全模型并未涉及到系统的所有状态变量和函数,它仅仅只涉及到数目有限的几个安全相关的状态变量,这使得在用状态机来模拟一个系统的安全状态变化时,不至于出现软件开发中面临的状态爆炸问题.
(3)开发一个状态机安全模型包含确定模型的要素(变量、函数/操作规则等等)和安全初始状态。具体步骤如下:
(1)定义安全相关的状态变量。
(2)定义安全状态的条件。这个定义是一个不变式,它表达了在状态转换期间状态变量的数值所必须始终保持的关系。
(3)定义状态转换函数。这些函数描述了状态变量可能发生的变化,也称为操作规则,因为它们的意图是限制系统可能产生的变化的类型。
(4)检验函数是否维持了安全状态。要求:如果系统在运行之前处于安全状态,那么系统在运行之后仍将保持在安全状态。
(5)定义初始状态。选择每个状态变量的值。
(6)依据安全状态的定义,证明初始状态安全。
6. 如何证明状态机是一个安全模型:用严格的数学推导来证明系统从一个安全状态出发,并且无论调用哪个函数系统都将保持在安全状态。即:
证明初始状态是安全的。
证明所有的函数都是安全状态。
第一章:BLP机密性安全模型
第二章:BIBA完整性安全模型(略)
1. 完整性的三个操作原则:
职责隔离Separation of Duty: 一个极其重要的功能必须由几个不同的人员一起完成 several different people must be involved to complete a criticalfunction. (如: twosignatures on a cheque)
功能隔离Separation of Function: 单独某一个人不能承担某一极其重要的过程中互补的任务 a single person cannot complete complementary roles within acritical process. (如出纳、会计)
审计Auditing: 可恢复性和可追踪性要求维护审计记录。recoverability and accountability require maintaining an audittrail.
2. 1977年,Biba等人提出了第一个完整性安全模型-Biba模型,它基本是BLP模型的对偶,不同的只是它对系统中的每个主体和客体均分配一个完整性级别(integritylevel)。
客体的完整性级别:用于描述对一个客体中所包含信息的信任度“trustworthiness” 。比如:过路人的报告和专家组的报告。记为:f(o)
主体的完整性级别:用于衡量主体产生/处理信息能力上的信心“confidence”。比如:经鉴定软件产品和网上自由下载的软件。记为:f(s)
3. 三个策略:低水印、严格、环
基本思想是:对一个客体的不可靠信息流破坏或毁坏了该客体的完整性。这个不可靠的信息可能来自一个更低完整性级别的主体或者一个更低完整性级别的客体。
三种访问模式:observe(类似read),modify(类似write), invoke(类似execute)
(1) 基于主体的低水印、
A.1 如果主体 s 读了(observes)客体 o , 那么: f*(s) = min (f(s), f(o)),其中i’ (s) 是主体读之后新的完整性级别。(一个主体读了比他安全级低的客体,那么他的安全级就要降到和客体一样)
A.2 主体 s 可以写(can modify)客体 o,仅当f(o) ≤ f (s) (主体安全级高于客体安全级)
A.3 主体 s1 可以执行(can invoke)主体 s2,仅当f (s2) ≤ f (s1)(S1级别高)
定理:如果从客体o1到客体on之间存在信息传输路径,那么策略要求f(on+1) ≤ f(o1), 对于所有n > 1.
(2) 基于客体的低水印策略(降客体级别)
主体在对某些持有较低或不相容的完整级别的客体执行“observe”操作后,会降低自身的完整级别。(低级主体写了高级客体,那么客体完整性就要下降了)
后果: 有可能减少主体可存取的客体集,使某些原来对主体说来是可以存取的客体在执行“observe”操作后变成不可存取的。比如:在“observe”操作后执行的某些“modify” 。
基于客体的策略:一个主体能够对具有任何完整级别的客体持有“modify”权。当主体执行了对客体的“modify”操作后,客体的完整级别被置为执行存取前主体和客体的完整级别的最大下界。
(3) 基于审计的低水印:一个主体能够“modify”具有任何完整级别的客体。如果一个主体“modify”一个具有更高或不可比的完整级别的客体,这一违反安全的操作将被记录在审计追踪记录中。或“invoke”操作会由于相应的客体变成不可存取的而不能执行
(4) 环策略:
①不考虑完整性级别,任何主体可以读任何客体。
②主体 s 可以写客体 o 仅当 f(o) ≤ f(s).
③主体 s1 可以执行主体 s2 仅当 f(s2) ≤ f(s1).
The ringpolicy prevents only direct modifications. (只阻止直接修改)It includes no record of a subject’sor an object’s experience. (不包括主体或客体任何经验记录)Thus itincludes less substantial assurances of what it defines as integrity,(对完整性保证度不高) but the flexibility of the system is significantly increased.(但提高了系统灵活性)
环策略的问题:然而,由于“observe”存取是非受限的,仍可能发生不恰当的“modify”操作。如:一个具有高完整级别的主体能够“observe”一个具有较低完整级别的客体,然后“modify”具有自己安全级别的客体,这样信息就从低完整级别流向高或不可比完整级别。为了避免这种情况,主体在使用来自低完整级别客体的数据时要十分小心。
(5) 严格策略:前两个规则类似BLP模型的简单安全规则和*-规则,只是完整级别间的关系是相反的。Biba模型中没有考虑“append”方式,主体的完整级别也是惟一的,使其*-规则得到简化。严格完整策略防止信息从低完整性级别客体向更高或不可比完整性级别客体传递,保证信息流仅是“observe”和“modify” 的结果。
4. Biba模型的不足(1)完整标签的确定很困难。完整性的分级和分类一直没有相应的标准予以支持 。(2)在有效保护数据一致性方面不完备。完整性目的是保护数据免受非授权用户的恶意修改,同时内部完整性威胁应该通过程序验证来保证,但本模型中并没有包括这个要求。(3)不同性质的范畴在同时满足机密性和完整性目标方面难以配合使用。
5. Biba模型的优势在于:(1)具有简单性。由于Biba的严格完整性策略是BLP机密性策略的对偶,所以它的实现是直观的和易于理解的。(2)Biba和BLP模型相结合的可能性基于Biba模型和BLP模型的相似性,Biba模型可以比较容易的与BLP模型的相结合用以形成集机密性和完整性于一体的综合性安全模型。比如:Lipner声称已在格模型中实现了机密格和完整格的结合。
第三章:经典Chinese Wall混合安全模型
1.中国墙模型的主要设计目标: 为了保护相互竞争的客户,咨询公司需要在她的代理间建立密不可透的墙,这个墙就称为中国墙。
2.利益冲突类概念:中国墙安全策略的本质是将全体数据划分成利益冲突类“,根据强制性约束,主体至多访问每个”利益冲突类“中的一个数据集。
3.安全规则:
(1)读规则:一、查看历史访问,若历史访问了某家公司的数据集,现在仍然可以访问;二、可以访问非利益冲突类,例如访问了A石油公司,还可以访问A银行,但是不能访问B石油公司。三、可以访问公开的信息
(2)写规则:现在要写的和之前读的都在同一个类中。
第四章:RBAC中立安全模型(基于角色的访问控制)
1.RBAC的优点
1)便于实现组织级的授权管理;
2)支持继承关系;
3)便于实现最小特权原则;
4)可实现职责隔离原则;
5)支持客体抽象;除了操作系统中提供的读、写以及执行权限之外,RBAC中可以根据实际应用的需要定义抽象的访问权限,如账号的借款和贷款。
6)策略中立,通过不同配置能够实现特殊策略。
2.RBAC主要设计思想:
(1)基本概念及原理:
角色是一些工作职能的集合,或者说是一些特权的集合。RBAC的基本原理是:一个主体要想访问一个客体,必须具备如下条件:
(1)主体被授权扮演某个角色
(2)该角色被授权可以执行某个操作
(3)该操作被授权可以访问相应的客体
RBAC可以说是一种表达策略的策略(policy neutral),它可以经由适当的配置而表达不同的安全策略。
(2)模型的基本性质:
①如果一个主体被授权访问某个角色,且该角色包含另一角色,那么该主体也被授权访问这个被包含的角色。
②一个用户可以被授权成为某角色的成员,仅当该角色的特权与该用户已扮演角色的特权是互不干涉的。
③在任何时候,角色的成员数不能超过角色的限定成员数。(总经理只有一个,副经理最多不能超过三个)
④主体永远不能扮演一个没有被授权的主动角色。
⑤只有当主体在扮演主动角色时,它才能执行操作。
⑥主体能扮演新的主动角色的前提是该角色的特权与主体当前正在扮演的主动角色的特权互不冲突。
⑦主体能执行一个操作的前提是主体当前正在扮演的主动角色已被授权访问该操作。
⑧如果要完成某个特殊的业务职能需用多个操作,那么不允许出现这样的授权:某单个用户的授权角色集能执行所有这些操作。
⑨主体能访问客体的前提是主体的当前主动角色集的某些角色允许执行某操作,且该操作被授权用于访问主体想访问的客体。
第五章:DTE中立安全模型
DTE基于安全标签(domain,type)来限制进程进行访问。根据最小特权原则,通过恰当地配置来划分系统。策略中立,可以表达多种安全目标。
1. DTE将系统视为一个主动实体(主体)的集合和一个被动实体(客体)的集合。
(1)每个主体有一个属性─域,每个客体有一个属性─型,这样所有的主体被划分到若干个域中,所有的客体被划分到若干个类型中。
(2)DTE再建立 “域定义表”(Domain Definition Table),描述各个域对不同型客体的访问权限。
(3)建立 “域交互表”(DomainInteraction Table),描述各个域之间的许可访问模式(如创建、发信号、切换)。