可信操作系统设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6)特权分离:合理的做法是让对客体的访问受 到多级条件的控制。 7) 最少公共机制:客体共享提供了潜在的信息 通道,容易产生不可控的信息泄露 。 8)便于使用:安全机制应该方便使用。 对旧操作系统添加安全功能则相对困难一些, 因为这些操作系统的结构上就不符合安全要求, 改造起来是很困难的,或者说,把一个不安全 的操作系统通过增补修改手段实际上是得不到 安全操作系统的。
6.4.5.1 分层设计的概念
采用分层技术设计安全操作系统,在考 虑安全要求的基础上同时也使各层功能 相对简单,且相互依赖。在分层设计中, 把安全操作系统描绘成一个按可信(或 敏感)程度排序的多层嵌套结构。在中 心层的是硬件,最敏感的操作位于最内 层,一个进程可信程度和访问权可以用 它离开中心的距离来判断,离中心越近 的进程越值得信赖。
安全核负责整个操作系统安全机制的实 现,向用户提供安全服务功能。安全核 在硬件、操作系统、计算系统和其他部 分之间提供安全结构。通常也把安全核 放在操作系统内核中。安全核的技术基 础是访问监控器,它是负责实施系统安 全策略的硬件与软件的组合体。
安全核主要缺陷
一是影响了操作系统模块化结构。 二是由于在用户程序和资源之间又增加 了安全核这一层接口,使得安全核可能 会降低操作系统性能 。 三是很难保证安全核内包含了所有的安 全功能,由于核本身规模也可能比较大, 验证可能相当困难。
6.4 可信操作系统设计
6.4 可信操作系统设计
计算机系统安全性能的好坏在很大程度上取决 于操作系统提供的安全机制功能的强弱。任何 获取计算机系统中敏感信息的企图都是把操作 系统作为首先攻击的目标,因为必须要首先突 破操作系统的安全防护层。因此,开发可信赖 的安全操作系统是计算机系统信息安全的基础 性工作。
参数化原则:控制能随着环境的改变予以调节。 敌对环境原则:可以抵御最坏的用户企图,容 忍最差的用户能力及其它可怕的用户错误。 人为干预原则:在每个危急关头或作重大决策 时,为慎重起见,必须有人为干预。 隐蔽性原则:对职员和受控对象隐蔽控制手段 或其操作的详情。 安全印象原则:在公众面前应保持一种安全平 静的形象。
6.4.5.3 分层设计方法学 (HDM)
HDM是由SRI的研究人员开发的,主要 目的是用于支持可证明系统的开发的。 利用HDM证明一个系统的过程如下: 1)开发系统的形式说明; 2)证明“说明满足系统的安全性政策”; 3)证明“实现满足说明”。
首先HDM按上一小节介绍的方法把系统 分解为若干级抽象机。每一抽象机用 SPECIAL(specification and assertion language)语言进行模块说明,模块说明 采用了parnas隐蔽技术,用内部状态空间 (抽象数据结构)和状态转换的概念定 义。状态与状态转换分别用V-函数与O函数定义。(见P111)
环界标表示对一个段的信任程度,正确 性值得信赖和敏感程度高的段具有从低 号环开始的环界标,内核进程很少调用 不值得信赖的段的程序,因为不值得信 赖的程序的执行结果也不值得信赖。通 常不值得信赖段的环界标的起始环号比 较大。
利用HDM开发系统可划分为五 个阶段:
1、接口定义阶段。 2、层次分解阶段。 3、模块说明阶段 。 4、映射函数阶段。 5、实现阶段。
6.4.4 环型结构设计技术
环型结构的操作系统具有更高的安全控 制能力。MULTICS操作系统中采用环结 构实现保护方案,环是进程执行的区域 或访问的数据区,环依据其敏感程度的 高低从0 开始编号,内核为0号环,敏感 程度最高。进程的访问权限和它所处的 环有关。
4、安全核的安全策略
安全核技术已经被广泛应用在多级安全 系统中,最常用的是BLP模型的自主访 问控制(DAC)与强制访问控制(MAC) 策略。 安全核一般都提供对这两种要求的支持, 对第一个要求支持时,只检查主体是否 有权对客体设置访问权,并不检查设置 何种访问权。这有可能为特洛伊木马攻 击提供了可乘之机。
用户子进程
用户进程
编译器、编辑器、数据库管理 装入程序
实用功能程序 文件系统、设备管理 调度、共享、存储管理 同步、定位 安全功能 硬件 操作系统核 安 操作系统 全 核
6.4.5.2 分层设计的实例
Dijkstra在1968年在他的一篇“多道程序 系统的结构”论文中提出了一种层次化 分解系统的思想。他的基本思想是:把 一个系统(或安全核)分解为成线性等 级的抽象机M0,M1,……,Mn序列。每 一个抽象机Mi(0≤i≤n)是由运行在下 一个较低层次中的抽象机Mi1上的抽象程 序Pi1的集合实现的。
Saltzer 和Schroeder给出了8项设计原则: 1)最小特权。 2)节省机制:保护系统的设计应该小而简 单,且直截了当。 3)开放设计:保护机制的能力不应建立在 认为潜在攻击者的无知上。 4)完全中介(Complete Mediation):必 须检查系统中的每一次访问活动。 5)基于许可:默认的条件应该是拒绝访问。
解决的办法是使用Biba完整性策略,对每个客 体与主体分配完整性级。安全核将阻止低完整 性级别的主体向高完整性客体写入,防止低级 别的主体污染了高级别的信息。 同样,也要防止低完整性级别的程序污染高完 整性级别的程序。系统的注册程序一般都实现 为高完整性进程,如果用户在高级别下注册进 入系统,那么该用户的进程只能运行高级别的 程序,这样就可以防范低级别特洛伊木马程序 的攻击了。
ቤተ መጻሕፍቲ ባይዱ
分割原则:把受保护的的东西分割为几个部分, 并一一加以保护,以增加其安全性。 环状结构原则:采用环状结构的控制方式最保 险。 外围控制原则:重视“篱笆”和“围墙”的控 制作用。 规范化原则:控制设计要规范化,成为“可论 证的安全系统”。 错误拒绝原则:当控制出错时,必须能完全地 关闭系统,以防受攻击 。
6.4.3 操作系统中的安全功能 与技术
对客体的访问控制 用户的认证 共享的控制 保证公平服务 内部过程的通信与同步 分离技术(Separation)
分离技术
物理分离是指让各个过程使用不同的硬 件设施 。 时间分离则是让各个过程在不同的时间 内运行 。 加密分离是通过加密数据的方法使无权 的过程无法读取这些数据。 逻辑隔离在多用户系统中,同时运行的 几个进程可以各自完成自己的计算任务 而互不干扰 。
6.4.2 可信操作系统的设计原则
设计原则必须考虑安全信息系统的需求, 这些安全需求是满足保密性(Secrecy)、 完整性(Interity)和可用性(Availibility) 等要求。它们的具体要求如下: 美国著名信息系统安全顾问C.C沃德提出 了23条设计原则:
成本效率原则:应使系统效率最高而成 本最低,除军事设施外,不要花费100万 元去保护价值10万元的信息。 简易性原则:简单易行的控制比复杂控 制更有效和更可靠,也更受人欢迎,而 且省钱。 超越控制原则:一旦控制失灵(紧急情 况下)时,要采取预定的控制措施和方 法步骤。
承受能力原则:应该把各种控制设计成可容纳 最大多数的威胁,同时也能容纳那些很少遇到 的威胁的系统。 检查能力原则:要求各种控制手段产生充分的 证据,以显示已完成的操作是正确无误的。 防御层次原则:要建立多重控制的强有力系统, 如信息加密,访问控制和审计跟踪等。 记账能力原则:无论谁进入系统后,对其所作 所为一定要负责,且系统要予以详细登记。
公开设计与操作原则:保密并不是一种 强有力的安全措施,过分信赖可能会导 致控制失灵。对控制的公开设计和操作, 反而会使信息保护得以增强。 最小特权原则:只限于需要才给予这部 分特权,但应限定其它系统特权。 分工独立性原则:控制,负责设计,执 行和操作不应该是同一人。
设置陷阱原则:在访问控制中设置一种易入的 “孔穴”,以引诱某些人进行非法访问,然后 将其抓获。 环境控制原则:对于环境控制这一类问题,应 予重视,而不能忽视。 接受能力原则:如果各种控制手段不能为用户 或受这种控制影响的人所接受,控制则无法实 现。因此,采取的控制措施应使用户能够接受。
环型结构操作系统的特点
根据访问权限的高低,各进程被安排在 不同的环区内运行,访问权限越高的进 程运行区域的环号越小。一个进程的权 限也不仅限于所在环的权限,它的权限 包括比该环环号高的其他环的允许的权 限。
在系统中为了对访问进行控制,把每个 数据区或程序编为段,每个段用三个数 码(b1,b2,b3)作为环界标,其中 b1≤b2≤b3。系统利用环界标对各段进 行保护,(b1,b2)称为访问界标, (b2,b3)称为调用界标或门扩展。其中 b1与b2之间的所有环可以被允许访问该 段的进程自由访问;b2+1到b3之间的所 有环只允许在指定点调用该段程序的程 访问。
2、可信路径问题
需要系统能够在用户与安全核之间提供 一个可信路径,防止敏感信息泄漏或被 中途修改 。 办法是把用户的普通终端经过一条可信 路径与安全核相连,同时该终端发出一 个信号通知安全核表示两者之间的路径 及终端本身是可信的。这个信号称为安 全通告信号
3、可信功能问题
解决的办法是把这些与信息安全相关的处理功 能实现为可信的功能(或称可信进程),并让 它们运行在安全核之外。例如,系统管理员对 计算机的管理操作,以及用户的注册过程是与 系统安全及用户数据安全紧密相关的可信功能 操作。但这些可信功能操作通常是由自治进程 (autonomous process)而不是安全核完成的, 这些自治进程运行在安全核之外,利用安全核 提供的服务完成指定任务。
6.4.4 安全核的设计与实现技术
安全核的概念是Roger Schell在1972年提 出的,并把它定义为实现访问监控器的 硬件与软件,因此安全核的概念是与监 控器的概念紧密相关的。安全核技术是 实现高安全级操作系统的最常用技术。
6.4.4.1 安全核的基本概念
在普通的操作系统中原来就有核的概念, 把操作系统中的一些最基本的和不可被 中断的操作(称为原子或原语操作)集 中在一起形成操作系统的内核。这些操 作包括进程间的通信、消息的传递、同 步和中断处理等动作,这些操作完成低 级的处理任务。
6.4.4.2 与安全核有关的一些 问题
1、关于进程间的隔离问题 任何有关进程的隔离问题都需要解决进 程间的互相影响、资源的动态共享以及 隐蔽信道等问题。 需要解决的是由于资源动态共享而引起 的安全问题。 利用资源虚拟化技术可以解决这个问题。 但是任何动态资源分配机制都可能为隐 蔽存储信道提供潜在的途径
6.4.1 可信操作系统的开发过程
① 模型阶段 在确定操作系统的应用环 境、安全目标与安全等级后,首先应该 构造满足安全需要的安全模型。 ② 设计阶段 确定安全模型之后,要确 定实现该模型的方法与手段。 ③ 可信验证阶段 用形式化或非形式化 的方法验证设计是否满足安全模型的安 全要求。
④ 实现阶段 实现安全的操作系统有两 种方法,一个是对现有操作系统进行改 造,在其中实现安全模型描述的安全要 求;另一个是按照安全模型的要求实现 一个新的操作系统。 ⑤ 测试阶段 测试时,应该按照设计时 确定的安全等级严格测试所实现的操作 系统的安全性能,检查其是否与设计文 档中确定的性能指标与安全等级相一致。
6.4.4.3 安全核的设计与实现考虑
1、在早期操作系统中增加安全核 2、从安全核开始设计新操作系统
6.4.5 分层结构设计技术
安全核技术设计操作系统,仅把与安全 有关的功能集中在安全核内,虽然也分 了四个层次,但除硬件和安全核外,其 他层的功能仍然很复杂,而且层和层之 间的关系没有明确的依存和支持关系。 这设计的系统是很难证明或验证其安全 性的。作为一种改进,就是下面将要介 绍的分层设计技术及其形式化技术。