1、第5章 可信操作系统的设计 1感谢你的观看2019年6月13本章要点r 什么使得一个操作系统“安全”或者“值得信赖” r 如何设计可信系统,及在这些设计原则中,有哪些设计准则可以应用于其他程序开发任务中r 我们如何促进对可信操作系统的正确性的保障2感谢你的观看2019年6月13 如果一个操作系统能够稳定而有效地提供内存保护、文件保护、一般对象的访问控制、用户鉴别 4种服务,那么我们就说它是可信的可信的(trusted)。 本章将从设计者的角度来观察一个可信操作系统的设计以及提供安全服务的组件功能。3感谢你的观看2019年6月13 本章将讨论可信系统的4个主要方面: 策略策略:操作系统的安全需求
2、是一个被良好定义的、一致且可实现的规则集,而且这些规则能被非常清楚并且无二义性地表达出来。为了保证需求是清楚、一致和有效的,操作系统通常会遵循一个预先规定好的安全策略一个规则集,它展示了将要保护什么,以及为什么要保护。 模型模型:设计者通常先为需要保护的环境构建一个模型,这个模型实际上体现了系统将要实施的策略。设计者将模型和系统需求进行比较,以保证整个系统功能不会因为安全需求的引入而失效或降低。 4感谢你的观看2019年6月13 设计设计:在确定了一个安全模型之后,设计者开始选择实现模型的方法。因此,设计包含两方面的内容:什么是可信操作系统(可信操作系统要实现的功能),以及怎样去构造(即实现)
3、它。 信任信任:我们对一个系统的信任基于两个方面:特征(操作系统包含了实施安全策略所必需的全部功能)和保障(操作系统的实现方式使我们确信它能够正确有效实施安全策略)。 # 一些安全系统最初就是针对安全需求而设计的,另一些安全系统则是将安全特性加入到现有的操作系统中。两种方法建立可信操作系统都是可行的。 5感谢你的观看2019年6月135.1 什么是可信系统 如果代码被严格地开发和分析,使我们有理由相信代码只只做其被要求做的,那么我们就说这个软件是可信软件可信软件(trusted software)。一般来说,可信代码能够作为其他不可信代码的运行基础。也就是说,不可信系统的质量部分地依赖可信代码
4、;可信代码是构建整个系统安全的基础。特殊的,当我们确信操作系统能够对运行在它上的组件或系统的访问进行正确控制,就可以认为它是可信的。6感谢你的观看2019年6月135.1 什么是可信系统 (续) 要相信一个软件,必须对其进行严格测试分析,找到某些关键特性: 功能的正确性功能的正确性:程序按预期正确执行。 保持完整性保持完整性:即使出现错误也能维持与其交互的数据正确。 有限的特权有限的特权:允许访问安全数据,但这种访问是最小化的。 适合的可信级别适合的可信级别:根据使用的数据和环境,对程序进行检查并给出适当的信任评级。7感谢你的观看2019年6月135.1 什么是可信系统 (续) 安全专家喜欢说
5、“可信操作系统”而不是“安全操作系统”。可信操作系统可信操作系统是指这个系统不但达到了设计时的安全要求,质量很高,而且能证明用户对系统质量的信任是正确的。也就是信任是由系统的接收者或使用者来体会的,作为用户,你或许不能够直接评价一个系统是否值得信任。你可能会相信设计方案,可能会相信专家的评估,也可能相信同事的意见。但最终,还得由你自己来确定所需要的信任度。8感谢你的观看2019年6月135.1 什么是可信系统 (续) 信任度非常重要。与安全不同,信任不是一个互斥的概念。信任通常随着时间的推移而增加,其程度与证据和经历有关。表 5.1 安全和可信的性质比较9感谢你的观看2019年6月135.1
6、什么是可信系统 (续) 可信操作系统还涉及以下几个概念: 可信进程可信进程(trusted process):能够影响系统安全的进程,或者说这个进程的不正确执行或恶意执行会破坏系统安全策略。 可信产品可信产品(trusted product):经过评估和认可的产品。 可信软件可信软件(trusted software):系统赖以实施安全策略的软件部分。10感谢你的观看2019年6月135.1 什么是可信系统 (续) 可信计算基可信计算基(trusted computing base):计算机系统内所有保护机制的集合,包括硬件、固件和软件,它们一起对产品或系统实施了统一的安全策略。 可信系统可信
7、系统(trusted system):该系统使用了充分的硬件和软件完整性措施,能够处理敏感信息。 # 与这些概念相关的概念是: 安全策略实施、足够的措施和机制、评估。11感谢你的观看2019年6月135.2 安全策略 5.2.1 军事安全策略 军事安全策略是很多可信操作系统的基础,而且很容易对其进行精确描述。军事安全军事安全策略策略(military security policy)是基于保护机密信息的策略。每条信息被标识为一个特定敏感等级,如不保密的、受限制的、秘密的、机密的、绝密的。这些等级构成了一个层次结构。我们用符号rankO表示对象O的敏感度。12感谢你的观看2019年6月135.2
8、.1 军事安全策略(续)图5.1 敏感度的层次结构13感谢你的观看2019年6月135.2.1 军事安全策略(续) 我们使用须知须知(need-to-know)原则来限制访问:只有那些在工作中需要知道敏感数据的主体才允许访问相应的敏感数据。每条机密信息都与一个或更多的项目相关,这些项目称做分隔项分隔项(compartments)。分隔项使人们只能访问那些与他们工作相关的信息,一个分隔项可以属于一个敏感级也可以属于多个敏感级。14感谢你的观看2019年6月135.2.1 军事安全策略(续)图5.2 分隔项和敏感等级# 可以通过指定名字来区分分隔项。单独一条信息可以不赋予分隔项名,也可以被赋予一个
9、、两个或多个,这取决与信息的属性。15感谢你的观看2019年6月135.2.1 军事安全策略(续)图5.3 信息与分隔项的联合16感谢你的观看2019年6月135.2.1 军事安全策略(续) 的组合被称为信息片断的类类(class)或分类分类(classification)。通过以这种方式指定信息,我们就能够用安全等级和主题来实施须知原则。用户必须得到许可许可(clearance)才能够访问敏感信息。许可表明可以信赖某人访问某个级别以下的敏感信息,以及此人需要知道某些类的敏感信息。我们用组合来表示对主体的许可。17感谢你的观看2019年6月135.2.1 军事安全策略(续) 由此,我们可以建立
10、在敏感对象和主体集合上,称为支配支配(dominance)的关系“”。对于一个主体s和一个对象o: 一个主体可以读一个对象,如果: (1) 主体的许可等级至少和访问信息的敏感等级一样高; (2) 主体需要知道该信息分类时涉及的所有分隔项。 18感谢你的观看2019年6月135.2.1 军事安全策略(续) 军事安全同时实施了敏感度要求和须知要求。我们知道,敏感度是层次化层次化(hierarchical)的要求,因为它们反映了敏感等级层次结构;而须知限制是非层次化非层次化(nonhierarchical)的,因为分隔项不需要表现为一个层次结构。许可和分类通常由一些称为安全职员的人控制,而并不是个人
11、能够随意改变的。这个策略非常适合通过权威中心进行严格访问控制环境。19感谢你的观看2019年6月135.2.2 商业安全策略 商业企业也非常关心安全问题。因此,即使商业界不像军事领域那样严格苛刻和层次化,在商业安全策略中仍然会发现许多与军事策略相同的概念。分属不同部门的数据项也具有不同的敏感度,例如,公共的、专有的或内部的。当然,这里并没有一个通用的层次结构。我们可以假设公共信息不如专有信息敏感,而专有信息又不如内部信息敏感。 20感谢你的观看2019年6月135.2.2 商业安全策略 (续)图5.4 敏感信息的商业观点21感谢你的观看2019年6月135.2.2 商业安全策略 (续) 商业信
12、息安全和军事信息安全有两个很显著的区别。 (1) 商业与军事不同,通常没有正式的“许可”概念;从事商业项目的人不需要得到中心安全职员的正式批准就可以访问项目。典型的,在允许一个雇员访问内部数据之前不需要对其授予不同的信任度。 (2) 由于没有正式的“许可”概念,所以允许访问的规则不太规范。 因此,对于大多数商业信息访问不存在一个支配函数,因为没有正式的“商业许可”概念。 22感谢你的观看2019年6月135.2.2 商业安全策略 (续) 前面的讨论主要集中在机密性机密性问题上。然而,完整性完整性和可用性可用性在许多情况下和机密性至少是同等重要的。通过下面的几个例子探讨完整性。 (1) Clar
13、k-Wilson商业安全策略商业安全策略 Clark和Wilson为他们所称的良构事务良构事务(well-formed transactions)提供了一个策略。为了明白其中的原因,考虑这样一个例子:一家公司预定货物,然后付款。典型的流程如下: 23感谢你的观看2019年6月135.2.2 商业安全策略 (续) (A) 采购员先做一张货物订单,并把订单同时发给供货方和收货部门。 (B) 供货方将货物运到收货部门。收货部门的接收员检查货物,确保收到货物的种类和数量是正确的,然后再送货单上签字。再将送货单和原始订单交给会计部门。 (C) 供货方将发票送到会计部门。会计人员将发票同原始订单进行校对(
14、校对价格和其他条款)并将发票同送货单进行校对(校对数量和品种),然后开支票给供货方。 24感谢你的观看2019年6月135.2.2 商业安全策略 (续) 在大多数实例中,订单和送货单都需要有某个授权的人员来签订。委任专人按顺序准确执行以上步骤,就构成了一个良构事务。Clark-Wilson策略的目标是使内部数据与其外部(用户)期望保持一致。Clark和Wilson用约束数据项约束数据项(constrained data item)来表达他们的策略,受约束数据项由转变程序转变程序(transformation procedure)进行处理。转变程序就像一个监控器,对特定种类的数据项执行特定的操作
15、,确认特定操作已经执行来维持数据项的完整。Clark和Wilson将这个策略定义为访问三元组访问三元组(access triple):userID,TPi,CDIj,CDIk, ,通过它将转变程序、一个或多个受约束数据项以及用户识别结合起来,其中用户是那些已被授权且以事务程序的方式操作数据项的人。 25感谢你的观看2019年6月135.2.2 商业安全策略 (续) (2) 职责分离职责分离 还是上面的那个订货的例子,我们希望建立一个策略,这个策略能够明确规定三个不同的人分别发送订单、接收货物和开支票,这种需求被称做职责分离职责分离(separation of duty)。由于访问三元组是“无状
16、态的”,无法实现职责分离,但如果将它作为一个策略需求表述出来,上述限制是容易实现的。 26感谢你的观看2019年6月135.2.2 商业安全策略 (续) (3) 中国墙安全策略中国墙安全策略 Brewer和Nash定义了一个名为中国墙中国墙(Chinese Wall)的安全策略,用于反映商业信息访问保护中的利益冲突问题。 安全策略建立在三个抽象等级上。 (A) 对象对象:位于最低等级,比如文件。每个文件只包含一家公司的信息。 (B) 公司群体公司群体:位于第二个等级,由与一家特定公司相关的所有对象组成。 (C) 冲突类冲突类:位于最高等级,相互竞争的公司的所有对象聚集。27感谢你的观看2019
17、年6月135.2.2 商业安全策略 (续) 假设一家广告公司,存储了巧克力公司Suchard和Cadbury,银行 Citicorp、Deutsche Bank和Credit Lyonnais,以及航空公司 SAS的数据。广告公司希望其雇员不能从这些信息中牟利。运用中国墙等级结构形成三个冲突类:Suchard,Cadbury,Citicorp,Deutsche Bank,Credit Lyonnais和SAS。这个结构可以导出一个简单控制策略:如果被访问的对象所属的公司群体中的某个对象已被访问过,或者这个对象所属的冲突对象从未被访问过,那么就允许访问该对象。28感谢你的观看2019年6月135
18、.2.2 商业安全策略 (续)图5.5 中国墙安全策略29感谢你的观看2019年6月135.2.2 商业安全策略 (续) 中国墙策略在商界中是非常有名的机密策略。中国墙策略注重完整性。它的访问许可可以动态变化:当一个主体访问某些对象后,就不能够访问先前可以访问的这一类中的其他对象了。30感谢你的观看2019年6月135.3 安全模型 我们常常用模型来描述、研究或者分析一个特定的情况或者关系。 Mclean给出了安全模型的一个良好概述。安全模型用于: (1) 检测一个特定策略的完善性和一致性。 (2) 对策略进行验证。 (3) 有助于构思和设计一个实现。 (4) 检测一个实现是否满足需求。 安全
19、需求是由策略决定的,而模型仅仅是实施策略的一种机制。 31感谢你的观看2019年6月135.3.1 多级安全 在理想情况下,我们希望建立一个模型能够表示一系列的敏感度,同时能够反映这样一个需求,即将主体同它们不能访问的对象严格地隔离开。这种一般化的模型被称为安全性的格模型格模型(lattice model),因为它的元素构成了一种被称为格的数学结构。 32感谢你的观看2019年6月135.3.1 多级安全 (续) 格是通过关系运算符关系运算符(relational operator)来组织元素的一种数学结构。用符号“”或“”来表示这种关系。当元素之间有传递关系和反对称关系时,该关系称为偏序偏序
20、(partial ordering)。也就是对于任意三个元素a ,b和c有: 传递性:若ab且bc,则ac 反对称性:若ab且ba,则a=b 在一个格中并不需要任意两个元素都可以比较。但是每个元素都应该有个上界。也就是说即使a和b没有可比性,也存在一个上界元素u,使得au和bu。进一步,格中每个元素还应该有一个下界。33感谢你的观看2019年6月135.3.1 多级安全 (续)数字60的所有因子构成格。图 5.6 格的实例34感谢你的观看2019年6月135.3.1 多级安全 (续) 格可以帮助我们描述关系。但是,许多典型的关系都只能表示成半格。在“小于”、“是其子非空集”、“报告于(对于雇员
21、)”或者“是一个后续”这些关系中,都有一个唯一的上界(比如,一个共同的祖先),但是可能任何一对元素都没有一个下界。 35感谢你的观看2019年6月135.3.1 多级安全 (续) 访问安全的格模型访问安全的格模型 军事策略中定义的支配关系“”就是格的关系。格中最大的元素是分类 ,最小的元素是。商业安全策略中的数据敏感度分为公共的、专用的和内部的,并按自然排序为:公共数据没有专用数据敏感,而专用数据没有内部数据敏感,这也构成格。 因为格是递增顺序的一种自然表示,所以被选作安全系统的基础。敏感等级的格表示被应用于很多计算场合。36感谢你的观看2019年6月135.3.1 多级安全 (续) Bell
22、-La Padula机密模型机密模型 Bell-La Padula机密模型的目标是识别出对维持保密性至为重要的允许通信。该模型已经用来定义那些并发处理不同敏感等级数据的系统安全需求。该模型是军事安全策略的形式化结果。我们对安全信息流感兴趣,是因为它描述了处于不同敏感等级的主体和对象之间可接受的连接。安全等级分析的一个目的是为了构建一个系统,此系统能够对处于两个不同敏感等级上的数据执行并行计算。37感谢你的观看2019年6月135.3.1 多级安全 (续) 系统包含了主体集S和对象集O,S中的每一个主体s和O中的每一个对象o都有一个固定的安全类C(s)和C(o)。安全类按关系“”排序。安全信息流
23、有两个特性: 简单安全特性简单安全特性:仅当C(o)C(s),主体 s才可以对于对象o有“读”访问权。 * *- -特性特性(称作称作“开始特性开始特性”):对于对象o行使了“读”访问权的主体,仅当C(o)C(p),才可能对于对象p有“写”访问权。 38感谢你的观看2019年6月135.3.1 多级安全 (续) 解释 (1) 在军事模型中,简单安全特性是说信息接收者的安全等级(许可)不可低于信息的安全等级。 (2) *-特性是说得到某个等级信息的人只能将这条信息传递给那些等级不低于这条信息等级的人。 *-特性是用来防止“下写下写” (write-down),当一个能够访问高级别数据的主体通过“
24、写”将数据传递给低级别对象时便会发生这种情况。39感谢你的观看2019年6月135.3.1 多级安全 (续)图 5.7 安全信息流# 仅当对较高级别信息有访问权的主体不传送任何敏感数据给低级敏感对象时,向下的流才是可接受的。40感谢你的观看2019年6月135.3.1 多级安全 (续) Biba完整性模型完整性模型 数据的完整性也很重要, Biba定义了“完整性等级”。对象和主体依据一个完整性分类方案来排序,分别用I(s)和I(o)表示。特性为: 简单安全特性简单安全特性:主体 s能够修改(有权“写”)对象o仅当I(s)I(o)。 完整性完整性* *- -特性特性:如果主体s有权“读”具有完整
25、性等级I(o)的对象o,则仅当I(o)I(p)时,s有权“写”对象p。41感谢你的观看2019年6月135.3.1 多级安全 (续) 解释 这两条规则自然包含对不可信信息的处理情况。一个不可信主体对于对象拥有写访问权会降低对象的完整性。类似的,人们有理由怀疑一份依据不确切证据作出的报告。源对象的低完整性意味着对于任何基于它的对象的完整性都很低。42感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限 模型对于说明方法的可行性非常有用。考虑一个系统应具有的安全特性,我们希望建立一个模型,能(在系统设计、编码和测试之前)告诉我们是否能真正获得这些特性。基于计算理论的模型可以帮助
26、我们回答这些问题。43感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续) Graham-Denning模型模型 Graham-Denning模型对主体集合S,对象集合O,权限集合R和访问控制矩阵A进行操作。对每一个对象,标明为“拥有者拥有者”的主体拥有特殊权限;对每一个主体,标明为“控制者控制者”的另一个主体也拥有特殊权限。 在Graham-Denning模型中,有8种基本的保护权。这些权限被表示为主体能够发出的命令,作用于其他主体或对象。 这实际给出一个保护系统的访问控制机制模型所必需的特性。44感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的
27、局限(续) (1) 创建对象创建对象:允许主体引入新对象。 (2) 创建主体、删除对象以及删除主体创建主体、删除对象以及删除主体:效果与创建或销毁一个主体或对象相似。 (3) 读访问权读访问权:允许一个主体确定一个主体对一个对象或主体当前访问权。 (4) 授予访问权授予访问权:允许拥有者把对象的任意访问权交给另一个主体。 (5) 删除访问权删除访问权:允许一个主体删除另一个主体对一个对象的权限。 (6) 转移访问权转移访问权:允许一个主体把它对对象的权限转移给另一个主体。每个权限可以是可转移的,也可以是不可转移的。45感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续
28、)表 5.2 保护系统的命令命令命令前提前提效果效果创建对象o-在A中为o加一列;拥有者置于Ax, o创建主体s-在A中为s加一行;控制权置于Ax, s删除对象oAx, o中的内容是拥有者删除列o删除主体sAx, s中的内容是控制权删除行ss对o的读访问权Ax, s中的内容是控制或Ax, o中的内容是拥有者将As, o复制到x删除s对o的访问权rAx, s中的内容是控制或Ax, o中的内容是拥有者从As, o删除r授予s对o的访问权rAx, o中的内容是拥有者将r添加到As, o中转移s对o的访问权rAx, o中的内容是r将r添加到As, o中访问控制矩阵是As, o,其中s是主体, o是对象
29、。用符号x表示执行命令的主体,r是权限。46感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续) Harrison-Ruzzo-Ullman模型模型 假设将要使用某个操作系统,并且想要知道是否一个给定的用户能被授权进行某种访问。Harrison-Ruzzo-Ullman模型(HRU模型)能够回答这类问题。HRU模型是基于命命令令(command)的,其中每条命令含有条件条件(condition)和原语操作原语操作(primitive operation)。47感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续) 在HRU模型中,每个主体同时也
30、是对象。因此,访问控制矩阵的列表示了所有主体和不是主体的对象。因此,一条命令的所有参数都表示为o,尽管它们要么是主体,要么是非主体的对象。每个op是一个原语操作。48感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续)表5.3 HRU模型中的访问控制矩阵对象对象主体主体s1s2s3o1o2o3s1控制拥有、挂起、恢复拥有拥有读、传播s2控制扩展拥有s3控制读、写写读 原语操作op包括:创建主体s、创建对象o、撤消主体s、撤消对象o、往As, o输入权限r、从As, o撤消权限r。一个保护系统保护系统(protection system)就是由主体、对象、权限和命令组成
31、的集合。Harrison等人说明,这些足以用于对几种常见保护系统进行建模。49感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续) HRU模型的两个重要结论: (1) 在模型化系统中,当每个命令都被限制为一个单独的操作时,我们就可能判断出一个给定的主体是否能够获得对一个对象的特殊权限。 由此我们知道,一个低级的主体能否获得对高级对象的读访问权是可以判定的(也就是说,能事先知道)。50感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续) (2) 如果不把每条命令限制为单一操作,就不总能判定是否给定的保护系统能够授予一条给定的权限。 因此,我们并
32、不总能确定一个主体是否可以获得对一个对象的特殊权限。对特殊的保护系统集合可能存在一种算法来判定访问权问题,但不存在适合所有保护系统的访问权问题的判定算法。51感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续) 获取获取-授予系统授予系统 获取获取-授予系统授予系统(take-grant system)只有4个原语操作:创建、撤消、获取和授予。S表示主体集合,O表示对象集合。对象要么是主动的(主体)要么是被动的(非主体对象),R表示权限集合。用图中的节点表示主体或对象,特定主体对特定对象的权限用一条从主体到对象的有向边表示。图5.8 主体、对象和权限52感谢你的观看2
33、019年6月135.3.2 安全系统在证明理论模型上的局限(续) 假定S为执行操作的主体,4个原语操作定义如下: Create(O, r):图中增加一个标记为O的新节点。 Revoke(O, r):撤消 S对O的权限r。 Grant(O, P, r):主体S将对P的访问权限r授予给O。主体S可以将它在P上的访问权授予O,当且仅当S对O有授予权,并且S对P有访问权限r。 Take(O, P, r):主体S从O那里获取O对P的访问权限r。主体S能够从O获取P的访问权r,当且仅当S对O具有获取权,并且O对P拥有访问权r。53感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续
34、) 图 5.9 创建一个对象;撤消、授予和获取访问权54感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续) 获取-授予系统回答了两个问题: (1) 是否能判定一个给定的主体可以和另外一个主体共享一个对象? 回答是肯定的,只要其他主体一起拥有对于对象所期望的访问权,且第一个主体通过具有特定形式的边与其他主体的每一个组相连,共享就可能发生。55感谢你的观看2019年6月135.3.2 安全系统在证明理论模型上的局限(续) (2) 是否能判定一个给定的主体可以从另外一个主体那里窃取对一个对象的访问权? 在严重依赖共享能力的环境中,这个问题的回答也是肯定的。 # 获取-授予
35、系统假设了用户的最坏情况:如果一个用户能够授予访问权,这个模型就假设用户将会授予。这种最坏情况的假设限制了该模型在控制信息共享环境下的应用。但总的来说,获取-授权模型是有用的,因为它可以识别出用户能够获得对一个对象访问权的条件。56感谢你的观看2019年6月135.3.3 保护系统模型总结 研究计算机安全模型有两个作用。首先,在确定一个安全系统应该实施的策略时,模型很重要。其次,对于抽象模型的研究能够引导我们理解保护系统的特性。对于保护系统的设计者来说,知道这些特性是很重要的。利用保护系统的模型来建立我们的安全策略,并确定什么是可行的和合意的。57感谢你的观看2019年6月135.4 可信操作
36、系统的设计 操作系统本身是很难设计的,将安全的职能加入到操作系统中大大增加了操作系统设计的难度。软件工程原则告诉我们设计初期就考虑安全因素比在设计末期再考虑更好。我们首先考察标准的多用途操作系统的基本设计。然后,在考虑隔离。通过隔离,操作系统支持用户域的共享和分离。接下来,我们将重点考察操作系统内核的设计;内核的设计方法表明了是否能够有效地提供安全。最后,我们将研究两种不同的内核解析,并考虑分层或环结构化的设计。 58感谢你的观看2019年6月135.4.1 可信系统设计元素 安全因素渗透于操作系统的设计和结构中包括两个方面:首先,一个操作系统控制着主体和对象间的合作,因此,操作系统设计的每一
37、个方面都必须考虑安全性。即操作系统设计必须包括这样一些定义:哪些对象将以什么样的方式被保护,什么样的主体具有访问权,以及这些访问权在什么等级上。其次,由于安全体现在操作系统的每一个部分中,因此,不能到了操作系统的其余部分开始工作和测试的时候,安全的设计和实现都还模糊不清。对一个安全不够完善的操作系统中的安全特性进行改进是极其困难的事情。59感谢你的观看2019年6月135.4.1 可信系统设计元素(续) 好的设计原则对于安全十分重要,Saltzer以及Saltzer和Schroeder将这些原则清楚地表达出来: (1) 最少特权最少特权:每一个用户和程序都应该通过使用尽可能少的特权进行操作。
38、(2) 机制的经济性机制的经济性:保护系统的设计应该小而简单,且直截了当。 (3) 开放设计开放设计:保护机制一定不能依赖于潜在攻击者的无知;机制应该是公开的,且依赖于相对很少的关键项的保密性,如一个口令。 (4) 完全检查完全检查:对每次访问企图都必须进行检查。直接访问的企图和绕过访问检查机制的企图都应该加以考虑,而且检查机制应正确摆放以避免被绕过。60感谢你的观看2019年6月135.4.1 可信系统设计元素(续) (5) 基于许可基于许可:默认情况下应该是拒绝访问。稳健的设计者确定那些应该将被访问的项,而不是将不应该访问的项。 (6) 分权机制分权机制:理想情况下,对于对象的访问应依赖于
39、多个条件。 (7) 最少公用机制最少公用机制:共享对象为信息流提供了潜在通道,但也带来了风险。 (8) 易用性易用性:如果一个保护系统用起来很简单,那么人们就会使用它。 # 实践表明,在操作系中出现的安全问题都是由于没有遵守这些原则中的一条或者多条而引起的。61感谢你的观看2019年6月135.4.2 普通操作系统的安全特性图 5.10 操作系统功能概括62感谢你的观看2019年6月135.4.2 普通操作系统的安全特性(续) 操作系统完成与安全性相关的几种特殊功能,可以总结如下: (1) 用户鉴别用户鉴别:操作系统必须识别每一个请求访问的用户,并查明该用户是否与其声称的相符。 (2) 内存保
40、护内存保护:每个用户的程序都运行在一个受保护的内存区域中以防止未授权访问。 (3) 文件和输入文件和输入/输出设备访问控制输出设备访问控制:操作系统必须保护用户、系统文件和设备以防止非授权用户的访问。63感谢你的观看2019年6月135.4.2 普通操作系统的安全特性(续) (4) 对一般对象的分配和访问控制对一般对象的分配和访问控制:用户访问一般对象产生的问题,如允许并行和同步的机制。 (5) 共享的实施共享的实施:资源应该恰当地被用户获取,保证完整性和一致性。 (6) 保证公平服务保证公平服务:所有用户都按期望使用CPU和其他服务,这样用户就不会产生“饥饿”现象。 (7) 进程间通信和同步
41、进程间通信和同步:正在运行的进程有时需要和其他进程进行通信,或者需要对共享资源的访问进行同步。 (8) 对操作系统保护数据的保护对操作系统保护数据的保护:操作系统必须维护那些用于实施安全的数据。64感谢你的观看2019年6月135.4.3 可信操作系统的安全特性 可信操作系统集成了一些技术实现可信特征特征(feature)和保证保证(assurance)。可信操作系统的设计是精细的,涉及选择一个合适且一致的特性集合合适且一致的特性集合以及一个合适等级的保证程度合适等级的保证程度使得特性被正确组合与实现。相对于传统的操作系统,该机制提供了更多的保护和分离。此外,内存也按用户划分,且数据和程序库有
42、可控的共享和分离。 可信操作系统的主要特性包括:用户识别和鉴别、强制访问控制、自主访问控制、对象重用保护、完全检查 、可信路径、审计、审计日志精简、入侵检测。65感谢你的观看2019年6月135.4.3 可信操作系统的安全特性(续)图5.11 可信操作系统的安全功能66感谢你的观看2019年6月135.4.3 可信操作系统的安全特性(续) 识别和鉴别识别和鉴别 可信操作系统需要安全的个体识别机制,并且所有个体必须是独一无二的。 强制和自主访问控制强制和自主访问控制 强制访问控制强制访问控制(MAC,mandatory access control)是指访问控制策略的判决不受一个对象的单个拥有者
43、的控制。例子有军事安全中的文件。自主访问控制自主访问控制(DAC,discretionary access control),顾名思义,留下一些访问控制让对象的拥有者来自主决定,或者给那些已被授权控制对象访问的人。例子有商业应用。 MAC和DAC可同时应用于同一个对象。MAC的优先权要高于DAC,即在所有具有MAC访问许可的人中,只有通过DAC的人才能真正被允许访问这个对象。67感谢你的观看2019年6月135.4.3 可信操作系统的安全特性(续) 对象重用保护对象重用保护 必须小心控制可重用的对象,以免它们产生严重的缺陷。新文件占用的磁盘空间通常是先前用过、但现在已经释放的空间。这些被释放的
44、空间是“脏”的,也就是说,它仍然包含先前用户的数据。恶意用户会申请大量磁盘空间,然后检查获取其中的敏感数据,这种攻击被称为对象重用对象重用(object reuse)。 非常精密和昂贵的仪器有时候能够将最近的数据与其先前记录的数据分开,然后再将后者与后者之前的数据分开,以此类推。这种威胁称为磁记忆磁记忆(magnetic remanence)。因此,在任何情况下,操作系统在允许对资源访问之前必须负责清除资源上的信息。 68感谢你的观看2019年6月135.4.3 可信操作系统的安全特性(续) 完全检查完全检查 完全检查完全检查(complete mediation),意思就是所有访问都必须经过
45、检查,而不仅仅限于文件访问控制检查。这样可信操作系统的设计和实现难度就大大增加了。 可信路径可信路径 对于关键的操作,如设置密码或者更改访问许可,用户希望能进行无误的通信,称为可可信路径信路径(trusted path)。一些操作系统,用户通过输入唯一的键序列请求可信路径,而其他操作系统,通过与安全相关的改变只能在系统启动时进行来保护。69感谢你的观看2019年6月135.4.3 可信操作系统的安全特性(续) 可审计性和审计可审计性和审计 可审计性通常涉及到维护与安全相关的、已发生的事件日志,即列出每一个事件和所有执行过添加、删除或改变操作的用户。 审计日志精简审计日志精简 (1) 审计日志的
46、观念是吸引人的,但在实际应用中,由于其容量很大且还需要进行分析,所以对审计日志的处理是非常困难的。如果要为每个读入字符的访问和每条执行指令作审计记录,则审计日志就会非常庞大(事实上,审计每条指令是不可能的,因为审计命令自身也会被审计,这样就会永无休止)。 70感谢你的观看2019年6月135.4.3 可信操作系统的安全特性(续) (2) 在大多数操作系统中,只需要在打开或者关闭文件(或类似对象)的时候进行审计,就可以大大简化工作量。但针对文件打开和关闭的审计,在一些情况下可能会造成审计数据太多,而在其他情况下,又可能不足以满足安全需求。 (3) 另一个困难是“海底捞针” 现象。即使审计数据可以
47、限制在一个合理数值,但大量的数据都是合法访问,可能只有一个访问是攻击。进一步,由谁来分析或者做怎样的分析也很重要。是由系统管理员来分析审计日志中的所有数据吗?或者是由开发者写专门程序来分析数据?如果是后者,我们该怎样自动识别出不可接受的行为呢? 71感谢你的观看2019年6月135.4.3 可信操作系统的安全特性(续) # 一些可信操作系统执行审计精简审计精简(audit reduction),用分离工具来精简审计数据的数量。对大多数分析来说,精简审计日志就足够了。 入侵检测入侵检测 计算机有助于将独立数据联系起来。入侵检入侵检测测(intrusion detection)软件构造了正常系统使
48、用的模式,一旦使用出现异常就会发出警告。一些可信操作系统包含了一个基本的入侵检测软件。 72感谢你的观看2019年6月135.4.4 内核化设计 内核内核(kernel)是操作系统的一部分,执行操作系统的最底层功能。在标准的操作系统设计中,内核实现这样一些操作,如同步、进程间通信、消息传递以及中断处理。内核也称为核核(nucleus)或核心核心(core)。 一个安全内核安全内核(security kernel)负责实施整个操作系统的安全机制。安全内核负责在硬件、操作系统、计算系统的其他部分之间提供安全接口。安全内核一般包含在操作系统内核中。73感谢你的观看2019年6月135.4.4 内核化
49、设计(续) 将安全功能隔离在安全内核中的原因: (1) 覆盖覆盖:对受保护对象的每次访问必须通过安全内核。 (2) 隔离隔离:通过将安全机制从操作系统的其余部分和用户空间中隔离出来,易于保护安全机制免遭操作系统或用户的侵入。 (3) 统一统一:所有的安全功能都由单一的代码集合来执行。这样,追踪由于这些功能引起的任何问题的原因就会容易些。 74感谢你的观看2019年6月135.4.4 内核化设计(续) (4) 可修改性可修改性:易于对安全机制做出修改和对这种改变进行测试。 (5) 紧凑性紧凑性:由于安全内核只是执行安全功能,所以它相对较小。 (6) 可验证性可验证性:由于相对较小,所以安全内核能
50、够被严格地分析。 # 另一方面,实现一个安全内核会降低系统的性能。因为其在用户程序和操作系统资源之间又添加了另外一层接口。在某些情况下,安全内核可能很大。 75感谢你的观看2019年6月135.4.4 内核化设计(续) 引用监视器引用监视器 引用监视器引用监视器(reference monitor),它控制着对对象的访问。一个引用监视器不一定仅是代码,应该是对设备、文件、内存、进程间通信以及其他种类对象的访问控制的集合。它必须是: (1) 抗干扰:即不可弱化或使其无效。 (2) 不可绕过:当出现对任何对象的访问请求时,它总能被激活。 (3) 可分析:由于它足够小,经过测试和分析,能够确保其完整
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。