1第11章操作系统的安全性清华大学本章知识点:•11.1安全性概述•11.2安全保护机制•11.3病毒及其防御•11.4加密技术•11.5安全操作系统的设计•11.6系统举例(略)211.1安全性概述11.1.1安全性的内涵1.安全性系统的安全性包括以下几方面的内容:•①保护系统内的各种资源免遭自然与人为的破坏;•②估计到操作系统存在的各种威胁,以及它存在的特殊问题;•③开发与实施卓有成效的安全策略,尽可能减少系统所面临的各种风险;•④准备适当的应急措施,使系统在遭到破坏或攻击时能尽快恢复正常;•⑤定期检查各种安全管理措施的实施情况。311.1.1安全性的内涵不同的计算机操作系统有不同的安全要求,但总的来说系统应具有如下特性:•(1)保密性(Security)•(2)完整性(Integrity)•(3)可用性(Availability)411.1.1安全性的内涵2.对计算机系统安全性的主要威胁对计算机系统安全性的威胁主要来自以下3个方面:•(1)偶然无意•(2)自然灾害•(3)人为攻击前两个方面是被动的,也可以说是偶然发生的,人们主要是采取一定的预防措施来避免它们的发生。而对于第三个方面则必须加强系统的安全性来防范。511.1.2操作系统的安全性1.操作系统的安全性操作系统的安全性是计算机系统安全性的关键。一个操作系统应具有如下功能:•①用户身份鉴别。•②内存保护。•③文件及I/O设备存取控制。•④对一般实体进行分配与存取控制,并对其实行一定的控制与保护。•⑤共享约束。•⑥在考虑操作系统安全机制的同时,也要确保系统用户享有公平的服务,而不出现永久的等待服务;还要确保操作系统为进程同步与异步通信提供及时的响应。611.1.2操作系统的安全性传统操作系统中的安全机制:711.1.2操作系统的安全性Saltzer,J.和Schroeder,M.曾提出了保密安全操作系统设计的原则:•①最小权限。•②机制的经济性。•③开放式设计。•④完整的策划。•⑤权限分离。•⑥最少通用机制。811.1.2操作系统的安全性2.操作系统的安全保护•操作系统的安全方法可以从隔离、分层、内核三个方面来考虑。•在隔离的问题上,Rushby和Randel指出,应该从如下几个方面考虑:–①物理分离。–②时间分离。–③逻辑分离。–④密码分离。911.1.2操作系统的安全性一个操作系统可以在任何层次上提供如下保护:•①无保护。•②隔离。•③完全共享和无共享。•④存取权限的保护。•⑤权能共享的保护。•⑥实体的使用限制。1011.1.3操作系统的安全性级别美国国防部把计算机系统的安全从低到高分为4等(D、C、B、A)和8级(D1、C1、C3、B1、B2、B3、A1、A2),从最低级(D1)开始,随着级别的提高,系统的可信度也随之增加,风险也逐渐减少。1111.1.3操作系统的安全性级别1.D等——最低保护等级这一等只有一个级别D1,又叫安全保护欠缺级,列入该级别说明整个系统都是不可信任的,它不对用户进行身份验证,任何人都可以使用计算机系统中的任何资源,不受任何限制,并且硬件系统和操作系统非常容易被攻破。1211.1.3操作系统的安全性级别2.C等——自主保护等级•这一等分为两个级别(C1和C2),它主要提供选择保护(需要知道选择什么):–C1级称为自主安全保护级。它支持用户标识与验证、自主型的访问控制和系统安全测试;它要求硬件本身具备一定的安全保护能力,并且要求用户在使用系统之前一定要先通过身份验证。–C2级称为受控安全保护级,它更加完善了自主型存取控制和审计功能。•C2级针对C1级的不足之处做了相应的补充与修改,增加了用户权限级别,1311.1.3操作系统的安全性级别3.B等——强制保护等级这一等分为3个级别(B1、B2、B3),它检查对象的所有访问并执行安全策略,因此要求客体必须保留敏感标记,可信计算机利用它去施加强制访问控制保护。•B1级为标记安全保护级。它的控制特点包括非形式化安全策略模型,指定型的存取控制和数据标记,并能解决测试中发现的问题。•B2级为结构化保护级。它的控制特点包括形式化安全策略模型(有文件描述),并兼有自主型与指定型的存取控制,同时加强了验证机制,使系统能够抵抗攻击。•B3级为安全域级。它满足访问监控要求,能够进行充分的分析和测试,并且实现了扩展审计机制。1411.1.3操作系统的安全性级别4.A等——验证保护等级•它使用形式化安全验证方法,保证使用强制访问控制和自主访问控制的系统,能有效地保护该系统存储和处理秘密信息和其他敏感信息。•A等又分为两级(A1、A2)。1511.2安全保护机制本节将从进程支持、内存及地址保护、存取控制、文件保护和用户身份鉴别等方面介绍操作系统的安全保护机制。1611.2.1进程支持•对操作系统安全性的基本要求是,当受控路径执行信息交换操作时,系统能够使各个用户彼此隔离。所有现代操作系统都支持一个进程代理一个用户的概念,并且在分时和多道程序运行的系统中,每个用户在自己的权限内都可能会有几个同时运行的进程。•由于多道程序运行是多用户操作系统安全性的中心问题,所以进程的快速转换是非常重要的。1711.2.1进程支持•为描述和控制进程的活动,系统为每个进程定义了一个数据结构,即进程控制块PCB,系统创建一个进程的同时就为它设置了一个进程控制块,用它去对进程进行控制和管理,进程任务完成了,系统回收其PCB,该进程就消亡了。•系统将通过PCB而感知相应的进程,进程控制块PCB是进程存在的惟一标志。•进程控制块PCB包含了进程的描述信息和控制信息。1811.2.2内存及地址保护•多道程序中的一个最明显的问题是防止一道程序在存储和运行时影响到其他程序。操作系统可以在硬件中有效使用硬保护机制进行存储器的安全保护。•现在最常用的是界址、界限寄存器、重定位、特征位、分段、分页和段页式机制。1.界址•最简单的内存保护机制是将系统所用的存储空间和用户空间分开。•界址则是将用户限制在地址范围的一侧的方法。在这种方法中,界址被预先定义为内存地址,以便操作系统驻留在界址的一边而用户使用另一边的空间。1911.2.2内存及地址保护固定界址:可变界址寄存器:地址0内存操作系统用户空间NN+1硬件地址限制地址范围…地址0内存操作系统用户空间NN+1界址寄存器地址范围N+1…2011.2.2内存及地址保护2.重定位•我们可以将系统实际赋给程序的内存起始地址的值作为一个常数重定位因子。•先将程序的起始地址视为0(这时程序内的每个地址的值实际上就是相对于起始地址的偏移值),在把程序真正装入到内存时再将常数重定位因子加到程序内的每个地址上,使得程序执行时所涉及的所有和实际地址有关的地址都相应得到改变,这个过程,我们称之为重定位(Relocation)。•界址寄存器可以作为硬件重定位设备。2111.2.2内存及地址保护3.基址/界限寄存器•在两个或多个用户情况下,任何一方都不能预先知道程序将被装入到内存的什么地址去执行,系统通过重定位寄存器提供的基址来解决这一问题。•程序中所有的地址都是起始于基地址(程序在内存中的起始地址)的位移,由此可见,基地址寄存器提供了向下的界限,而向上的地址界限由谁来提供呢?系统引进了界限寄存器,其内容作为向上的地址界限。于是每个程序的地址被强制在基址之上,界限地址之下。2211.2.2内存及地址保护基址/界限寄存器对:两对基址/界限寄存器:内存操作系统用户空间ANN+1PP+1用户空间B用户空间CQQ+1……………基址寄存器械N+1界限寄存器P+1地址内存程序基址寄存器操作系统程序界限寄存器用户A程序空间数据基址寄存器用户B数据空间用户A数据用户程序数据界限寄存器空间和数据用户C程序空间空间用户C数据空间用户B程序空间2311.2.2内存及地址保护4.特征位结构•下面介绍内存地址保护的另一种方法——使用特征位结构,即在机器内存的每个字中都有一个或多个附加位表示该字的存取权限,这些存取位仅能被特权指令(操作系统指令)设置。•在程序状态字中同样设置特征位,每次指令存取该单元时都对这些位进行检查,仅当两者的特征位相匹配时才允许访问,否则产生保护中断。2411.2.2内存及地址保护5.分段、分页和段页式•程序可以被划分为许多具有不同存取权限的块,每块具有一个逻辑实体,可以是一个过程代码或是一个数组的数据等等。•从逻辑上讲,程序员将程序看做一系列段的集合,段可以分别重定位,允许将任何段放在任何可用的内存单元内。操作系统通过在段表中查找段名以确定其实际的内存地址,用户程序并不知道也无需知道程序所使用的实际内存地址。这种地址隐藏的意义:•其一,操作系统可以将任何段移到任何内存单元中。•其二,若段当前未使用的话,可以将其移出主内存,并存入辅存中,这样可以让出存储空间。•其三,每个地址引用都经由操作系统处理,以保证系统行使其安全保护检查的职责。2511.2.2内存及地址保护•和程序分段相对应的是分页。•从保护的角度来看,分页可能有一个严重的缺陷,它和分段不同,分段有可能将不同的段赋予不同的保护权限(如只读或只执行),可以在地址转换中很方便地解决保护问题,而使用分页由于没有必要将页中的项看做整体,因此,不可能将页中的所有信息置为同一属性。2611.2.3存取控制在计算机系统中,安全机制的主要目的是存取控制,它包含3个方面的内容:•授权,即确定可给予哪些主体存取实体的权力;•确定存取权限;•实施存取权限。2711.2.3存取控制•存取控制实现以实体保护为目标,内存保护是实体保护的特殊情况。•随着多道程序概念的提出,可共享实体种类及数目在不断增加,需要保护的实体也不断地扩充。•存取控制机制对实体保护实现的具体过程是检查每个存取,拒绝超越存取权限的行为,并防止撤权后对实体的再次存取;实施最小权限原则,其含义是主体为完成某些任务必须具有的最小的实体存取权限,并且不能对额外信息进行存取;存取验证除了检查是否存取外,还应检查在实体上所进行的活动是否适当。2811.2.3存取控制下面将进一步讨论几种一般实体的保护机制。1.目录•用目录机制实现实体保护是一种简单的保护工作方式。这像文件目录一样,每个文件有一个惟一的文件主,它拥有大多数存取权限,并且还可以对文件授权、撤权。•为了防止伪造存取文件,系统不允许任何用户对文件目录执行写操作。因此,只能通过文件主命令控制下的操作系统来维护所有的文件目录,用户可以通过系统进行合理的目录操作,但禁止用户直接对目录存取。2911.2.3存取控制目录控制表:用户1目录表文件文件名存取权限文件指针文件1ORW文件2OX文件3R文件4ORW用户2目录表文件名存取权限文件指针文件1R文件2RW文件3ORW3011.2.3存取控制2.存取控制表•存取控制表是用来记录所有可存取该实体的主体和存取方式的一类数据结构。•每个实体都对应一张存取控制表,表中列出所有的可存取该实体的主体和存取方式。这和目录表是不同的,目录表是由每个主体建立的,而存取控制表则是由每个实体建立的。3111.2.3存取控制存取控制表:目录存取控制表文件文件存取控制表指针文件1文件2用户权限AOWRBRCRWARBORWCRW文件1文件23211.2.3存取控制3.存取控制矩阵•将目录看做是单个主体能存取的实体表,而将存取表看做是记录能存取单个实体的主体表。•如果将存取控制表用另一种形式表示,则可以形成一张行用于表示主体,列表示实体的存取矩阵,每个记录则表示该主体对实体的存取权限集。•这样的存取控制矩阵是个稀疏矩阵,大多数主体对大多数实体并无存取权限,它可被表示为一个三维向量〈主体,实体,权限〉。3311.2.3存取控制4.权能•所谓权能,其原理是主体可以建立新的实体并指定在这些实体上所允许的操作。•权能是一张不可伪造的标志或凭证,它提供主体对某一实体的特定权限,其中也包括了允许主体对客体存取的具体类型以及其它特殊操作类型。•系统不是直接将此凭证发给用户,而是由操作系统以用户的名义拥有所有凭证。只有在通过操作系统发特定请求时,用户才建立权能。3411.2.3存取