1、7.1 安全性概述 计算机安全性基本内容是对计算机系统的硬件、软件、数据加以保护,不因偶然或恶意原因而造成破坏、更改和泄露,使计算机系统得以连续正常地运行。物理方面和逻辑方面 操作系统安全性、网络安全性、数据库安全性操作系统安全性主要内容安全策略。描述一组用于授权使用其计算机及信息资源的规则。安全模型。精确描述系统的安全策略,它是对系统的安全需求,以及如何设计和实现安全控制的一个清晰全面的理解和描述。安全机制。实现安全策略描述的安全问题,它关注如何实现系统的安全性,包括:认证机制(Authentication)、授权机制(Authorization)、加密机制(Encryption)、审 计
2、机 制(Audit)、最 小 特 权 机 制(Least Privilege)等。安全威胁来自这些方面1硬件 2软件 3数据 4网络和通信线路7.2 安全策略 7.2.1 安全需求和安全策略操作系统安全需求指设计一个安全操作系统时期望得到的安全保障,一般要求系统无错误配置、无漏洞、无后门、无特洛伊木马等,能防止非法用户对计算机资源的非法存取。操作系统的安全需求机密性(confidentiality)需求 为秘密数据提供保护方法及保护等级的一种特性。完整性(integrity)需求 系统中的数据和原始数据未发生变化,未遭到偶然或恶意修改或破坏时所具有的一种性质。可记帐性(accountabili
3、ty)需求 又称审计,指要求能证实用户身份,可对有关安全的活动进行完整记录、检查和审核,以防止用户对访问过某信息或执行过某操作的否认 可用性(availability)需求 防止非法独占资源,每当合法用户需要时保证其访问到所需信息,为其提供所需服务。安全策略和安全系统安全策略指用于授权使用其计算机及信息资源的规则、即有关管理、保护、分配和发布系统资源及敏感信息的规定和实施细则。一个系统可以有一个或多个安全策略,其目的是使安全需求得到保障。一个计算机系统是安全系统,是指该系统达到了设计时所制定的安全策略的要求,一个安全的计算机系统从设计开始,就要考虑安全问题。安全策略是构建可信系统的坚实基础,而
4、安全策略的制定取决于用户的安全需求。安全策略分成两类(1)军事安全策略 主要目的是提供机密性,同时还涉及完整性、可记帐性和可用性。用于涉及国家、军事和社会安全部门等机密性要求很高的单位,一旦泄密将会带来灾难性危害。(2)商业安全策略 主要目的是提供完整性,但不是惟一的,也涉及机密性、可记帐性和可用性。它要满足商业公司的数据不被随意篡改。例如,一个银行的计算机系统受到完整性侵害,客户账目金额被改动,引起金融上的严重后果。一个基本概念-TCB操作系统的安全依赖于具体实施安全策略的可信软件和硬件,计算机系统内安全保护装置的总体,包括硬件、固件、可信软件和负责执行安全策略的管理员的组合体称为可信计算基
5、TCB(Trusted Computing Base),它建立了一个基本的保护环境并提供一个可信计算机系统所要求的附加用户服务。TCB的组成操作系统的安全内核、具有特权的程序和命令、处理敏感信息的程序、实施安全策略的有关文件、相关的固件、硬件和设备、固件和硬件的诊断程序、安全管理员等。TCB的软件部分是安全操作系统的核心,它能完成以下任务:内核的安全运行、标识系统中的每个用户、保持用户到TCB登录的可信路径、实施主体对客体的访问控制、维护TCB功能的正确性和监视及记录系统中发生的有关事件。7.2.2 访问支持策略这类安全策略是为了把系统中的用户与访问控制策略中的“主体”挂起钩来,用户欲进入系统
6、必须要经过“身份认证”,确保试图访问资源的主体实际上就是他声称的主体,于是他才能成为系统中的合法用户,才能访问被授权的相应资源。(1)标识与鉴别1)用户标识(identification):用来标明用户身份,确保用户的惟一性和可辨认性的标志,一般选用用户名称和用户标识符(UID)来标明一个系统用户,名称和标识符均为公开的明码信息。用户标识是有效实施其他安全策略,如用户数据保护和安全审计的基础。通过为用户提供标识,TCB能使用户对自己的行为负责。2)用户鉴别(authentication):用特定信息对用户身份、设备和其他实体的真实性进行确认,用于鉴别的信息是非公开的和难以仿造的,如口令(也称密
7、钥)。用户鉴别是有效实施其他安全策略的基础。三类信息用作身份标识和鉴别用户知道的信息用户拥有的东西用户的生物特征利用其中的任何一类都可进行身份认证,但若能利用多类信息,或同时利用三类中的不同信息,会增强认证机制的有效性和强壮性。(2)可记帐性要求任何影响系统安全性的行为都被跟踪和记录在案,安全系统拥有把用户标识与它被跟踪和记录的行为联系起来的能力。审计信息必须有选择性的保留和保护,所有与安全相关的事件记录在审计日志文件中,所有审计数据必须防止受到未授权的访问、修改和破坏,以作为日后对事件调查的依据。审计系统能记录以下事件:和标识与鉴别机制相关的事件、将客体导入用户地址空间的操作、删除客体、系统
8、管理员执行的操作及其他与安全相关的事件。(2)确切保证和连续保护确切保证指系统事先制定的安全策略能得到正确执行并且安全系统能正确可靠地实施安全策略的意图,为此,把住安全系统从设计、开发、安装和维护的各个环节,基于硬件、固件、软件来保证系统内信息的安全,防止可能造成的保护机制失效或被旁路的未授权的改变。连续保护策略要求安全系统必须连续不断地保护系统免遭篡改和非授权改变,如果用来实现安全策略的基础硬件、固件、软件自身容易受到篡改和破坏,那么没有任何一种计算机系统是安全的,也就不可能实现连续保护。(3)客体重用指重新分配给某些主体的介质,如页框、磁带、盘块、软盘、可擦光盘等,为达到安全地再分配的目的
9、,在TCB安全控制范围内的存储介质作为系统资源被动态再分配给新主体时,必须确保其中不能包含任何客体残留信息,以防止造成泄密。所以,可信计算基TCB应确保:1)非授权用户不能查找在使用后返还系统的资源中的内容;2)非授权用户不能查找现已分配给他的资源中以前的内容;3)系统应确保数据未被未授权用户修改过;4)系统自身和系统中的数据应保持准确和一致地反映用户意图的状态。(5)隐蔽信道分析是指可以被进程用来以违反系统安全策略的方式进行非法传输信息的通信通道,有两类隐蔽信道:存储隐蔽信道和时间隐蔽信道。(6)可信路径和可信恢复可信路径是一种实现用户与可信计算基TCB之间进行直接交互作用的机制,当连接用户
10、时(如登录、更改主体安全级),可信计算基TCB应提供它与用户之间的可信的通信路径,该路径上的通信只能由用户和TCB激活,不能由其他软件(恶意软件)模仿,且在逻辑上与其他路径上的通信隔离,并能正确加以区分。7.2.3 访问控制策略1.访问控制属性与访问控制策略相关的因素有三类:主体、客体和主客体属性。(1)主体 是主动的实体,是系统内行为的发起者,通常它是用户和代表用户的进程,系统中所有事件请求几乎都是由主体激发的。系统的合法用户可分成:普通用户(进程),信息属主(进程),系统管理员(进程),(2)客体是一个被动的实体,是系统内所有主体行为的直接承担者,它常被分成:1)一般客体,系统内以具体形式
11、存在的信息实体,如文件、目录、数据和程序等。2)设备客体,指系统内的硬件设备,如磁盘、磁带、显示器、打印机、网络节点等。3)特殊客体,有时一些进程是另外一些进程行为的承担者,那么,这类进程也是客体的一部分。(3)主客体属性(敏感标记)是TCB维护与可被外部主体直接或间接访问到的计算机信息系统资源相关的敏感标记,这些安全标记是实施自主或强制访问的基础。1)主体属性它是用户特征,是系统用来决定访问控制的常用因素,一个用户的任何一种属性都可作为访问控制决策点,一般系统访问控制策略中常用的用户属性有:a)用户ID/用户组ID:b)用户访问许可级别:C)用户需知属性:d)角色:e)权能列表:2)客体属性
12、与系统内客体相关联的属性也作为访问控制策略的一部分,客体安全属性有:a)敏感性标记:信息按“安全等级”进行分类,如“公开信息”、“机密信息”、“秘密信息”、“绝密信息”;还可将系统内的信息按非等级分类,进行模拟人力资源系统的划分,称“范畴”,如参谋部、作战部、后勤部等,系统内信息的敏感性标记由等级与非等级两部分组成:敏感性级别和范畴。b)访问控制列表与客体相关联的有一个“访问控制列表”,用来指定系统中哪些用户和用户组可以以何种模式访问该客体的一种列表。其他3)外部状态:4)数据内容和上下文环境:(4)用户与主体绑定用户进程是固定为某特定用户服务的,它在运行中代表该用户对客体资源进行访问,其权限
13、应与所代表的用户相同,这一点可通过用户与主体绑定实现。系统进程是动态地为所有用户提供服务的,它的权限随着服实对象的变化而改变,这需要将用户的权限与为其服务的进程的权限动态地相关联。这也就是说,一个进程在不同时刻对一个客体有不同的访问权限,取决于它当时所执行的任务。当进程在执行正常的用户态应用程序时(用户进程),它所拥有的权限与其代表的用户有关;当进程进行系统调用时,它开始执行内核函数(系统进程),此时运行在核心态,拥有操作系统权限。2 自主访问控制策略本策略根据系统中信息属主指定方式或默认方式、即按照用户的意愿来确定用户对每一个客体的访问权限,这一点上对信息属主是“自主的”。这样一来,它能提供
14、精细的访问控制策略,能将访问控制粒度细化到单个用户(进程)。按照系统访问控制策略实现的访问控制机制,能够为每个命名客体指定命名用户和用户组,并规定他们对客体的访问权限,没有访问权限的用户,只允许由授权用户指定其对客体的访问权。4 强制访问控制策略在强制访问控制机制下,系统内的每个用户或主体被赋予一个许可标记或访问标记,以表示他对敏感性客体的访问许可级别;同样,系统内的每个客体被赋予一个敏感性标记(sensitivity label),以反映该客体的安全级别。安全系统通过比较主、客体的相应标记来决定是否授予一个主体对客体的访问请求权限。7.3 安全模型7.3.1 安全模型概述 安全模型是对安全策
15、略所表达的安全需求的精确、无歧义抽象描述,在安全策略与安全机制的关联之间提供一种框架。安全模型本身描述了安全策略需用哪种机制满足,模型的实现描述了如何将特定机制应用于系统中,从而,实现某种安全策略所需的安全与保护。安全模型分为:形式化和非形式化两种,非形式化安全模型仅模拟系统的安全功能,其开发过程为:从安全需求出发,推出功能规范,再实现安全系统,其间主要采用了论证与测试技术;而形式化安全模型使用数学模型来精确地描述安全性及其在系统中使用的情况,其开发途径为:建立抽象模型,推出形式化规范,通过证明方法来实现安全系统。安全模型分类安全模型分为:形式化和非形式化两种,非形式化安全模型仅模拟系统的安全
16、功能,其开发过程为:从安全需求出发,推出功能规范,再实现安全系统,其间主要采用了论证与测试技术;而形式化安全模型使用数学模型来精确地描述安全性及其在系统中使用的情况,其开发途径为:建立抽象模型,推出形式化规范,通过证明方法来实现安全系统。形式化开发途径开发安全系统首先必须建立安全模型,通过形式化安全模型来模拟安全系统,从而,可以正确地综合系统的各类因素,如使用方式、应用环境类型、授权的定义、共享的客体(系统资源)、共享的类型等,所有这些因素构成安全系统的形式化抽象描述,使得系统可以被证明是完整的、反映真实环境的、逻辑上能实现程序受控制的执行的。状态机模型在当前技术条件下,安全模型都采用状态机模
17、型,该模型将系统描述成一个抽象的数学状态机器,状态变量表示机器的状态;转移函数或操作规则描述状态变量的变化过程,它是对系统应用通过请求系统调用来影响操作系统状态的这种方式的抽象。7.3.2 几种安全模型简介对状态机模型进行改进,一类是把系统状态中与安全相关的因素概括在一个访问矩阵中;另一类引入“格”概念,它是一个有限偏序集,有最小上界和最大下界操作符的数学结构,利用格的性质来约束安全系统中的变量,以实现多级安全策略,安全模型分成:基于访问控制矩阵的安全模型和基于格的安全模型。(1)Lampson访问控制矩阵模型客体被认为是存储器,访问控制检查不基于存储的内容值而是基于系统的状态,系统状态中与安
18、全相关的因素概括在访问矩阵中,由三元组(S,O,M)决定,访问权限集包含读、写、追加、修改和执行等。系统中状态的改变取决于访问矩阵M的改变,一个独立的状态机构成一个系统,因而,访问矩阵也称为系统的“保护状态”。系统中所有主体对客体的访问均由“引用监视器”控制,它的任务是确保只有那些在访问矩阵中获得授权的操作才被允许执行。(2)Graham-Denning模型 此模型的保护性能更具有一般性,对主体集合S、客体集合O、权力集合R和访问控制矩阵A进行操作。主体有一行,每个主体及所有客体都有一列,一个主体对于另一个主体或对于一个客体的权力用矩阵元素的内容来表示。对于每个客体,标明为“拥有者”的主体有特
19、殊权力;对于每个主体,标明为“控制者”的另一主体有特殊权力。本模型中,设计了8个基本保护权,构造一个保护系统的访问控制机制模型所必需的性质,这些权力被表示成主体能够发出的命令,作用于其他主体或客体。(3)Harrison-Ruzzo-Ullman模型主体 客体S1S2S3O1O2O3拥有/读/S1控制挂起/拥有拥有扩展恢复S2控制扩展拥有S3控制读/写写读图7-1HRU模型的访问控制矩阵(4)Bell-LaPadula模型是最早和最常用的适用于军事安全策略的操作系统多级安全模型,其目标是详细说明计算机的多级安全操作规则。BLP模型中,将主体定义为能发起行为的实体,如进程;将客体定义为被动的主体
20、行为的承担者,如文件、目录、数据;将主体对客体的访问分为:只读、读写、只写、执行、控制等访问模式,控制是指主体用来授予或撤销另一主体对某客体的访问权限的能力。BLP模型的安全策略包括:自主安全策略和强制安全策略,前者使用一个访问矩阵表示,其中,第i行第j列的元素Mij 表示主体Si对客体Oj的所有允许的访问模式,主体只能按在访问矩阵中被授予对客体的访问权限对客体进行访问;后者包括简单安全特性和*特性,系统对所有主体和客体都分配一个访问类属性,包括主体和客体的密级和范畴,系统通过比较主体和客体的访问类属性控制主体对客体的访问。BLP模型两条基本规则1)简单安全特性规则 一个主体对客体进行读访问的
21、必要条件是主体的安全级支配客体的安全级、即主体的安全级别不小于客体的保密级别,主体的范畴集包含客体的全部范畴,或者说主体只能向下读,不能向上读。2)*特性规则 一个主体对客体进行写访问的必要条件是客体的安全级支配主体的安全级、即客体的保密级别不小于主体的保密级别,客体的范畴集包含主体的全部范畴,或者说主体只能向上写,不能向下写。多级安全规则 R违反规则1公开进程机密进程机密文件公开文件WWRRRWW违反规则2(5)D.Denning信息流模型有些信息泄露问题(如隐蔽信道)不是因为访问控制机制不完善,而是由于缺乏对信息流的必要保护引起的。在系统中,一个主体S能否获得资源R所包含的信息?这种情况下
22、,主体S不必具有对R的实际访问权限,信息可能经由其他主体到达S,或者信息只是简单地被复制到S可以访问的资源中。控制原理信息流模型是存取控制模型的一种变形,它不检查主体对客体的存取,而是试图控制从一个客体到另一个客体的信息传输过程,根据两个客体的安全属性来决定是否允许当前操作的执行。隐蔽信道的核心是低安全级主体对高安全级主体所产生的信息的间接存取,信息流分析能保证操作系统在对敏感信息存取时,不会把数据泄露给调用者。7.4 安全机制优秀的硬件保护设施是实现高效、安全、可靠的操作系统的基础,计算机硬件安全的目标是保证其自身的可靠性,并为操作系统提供基本的安全设施,常用的有:内存保护、运行保护和I/O
23、保护等。1内存保护 1)下界和上界寄存器法 2)基址和限长寄存器法3)内存块锁与进程钥匙配对法PSW的其余部分 钥匙内存锁0110块1101块0101块0110块 0110进程(2)支持虚拟内存的系统进程的存储空间的隔离可以很容易地通过虚拟存储器的方法来实现,分段、分页或段页式,提供了管理和保护主存的有效方法,这类系统通过段表、页表和段页表间接地访问虚拟内存的一个段或一个页。由于表对于进程是私有的,因此,通过在有关表项中设置保护信息,每个进程可以对该进程能(私有或共享)访问的任何段或页面具有不同的访问权限,在每次地址转换时执行必需的权限检查。(3)沙盒技术在大多数操作系统中,一个进程调用的函数
24、会自动继承调用进程的所有访问特权,特别是可以访问进程的整个虚拟内存。若函数是不可信的,如Internet上下载的程序(很可能带有特洛伊木马),这种不受限制的访问是不允许的,会给系统造成严重威胁。为了限制不可信程序造成潜在损害的范围,系统可限制特权为调用进程所具有的授权的一小部分特权,通常称这种缩小访问后的环境为“沙盒”。2运行保护安全操作系统很重要的一点是进行分层设计,而运行域正是一种基于保护环的层次等级式结构。运行域是进程运行的区域,最内层具有最小环号的环拥有最高特权,最外层具有最大环号的环拥有最小特权,一般的系统不少于3至4个环。处理器模式扩展了操作系统的访问权限 用户空间系统空间用户进程
25、系统进程运 行 在内户态运 行 在核心态不可执行特权指令可执行特权指令VAX/VMS操作系统的四种模式构成保护环处理器模式决定了:指令执行特权、即处理器当前可执行的指令系统子集;随当前模式而增减的存储访问特权、即当前指令可以存取的虚拟内存的位置。内核(kernel)态。执行VMS操作系统的内核,包括内存管理、中断处理、I/O操作等。执行(executive)态。执行操作系统的各种系统调用,如文件操作等。监管(supervisor)态。执行操作系统其余系统调用,如应答用户请求。用户(user)态。执行用户程序,如编译、编辑、链接、排错等实用程序和各种应用程序。3 I/O保护CPU与计算机系统相连
26、接的各种外围设备通信时,必须读写设备控制器提供的各种寄存器,对这类寄存器的访问可采用两种途径:内存映射接口和I/O指令(集)。7.4.2 认证机制1用户身份的标识与鉴别 认证机制主要包括标识与鉴别,标识就是操作系统识别用户的身份,并把它转换为系统内部识别码用户标识符,它是惟一的且不能被伪造,以防止一个用户冒充另一个用户。将用户标识符与用户联系的过程称鉴别,该过程主要用于识别用户的真实身份,该操作需要用户具有能够证明其身份的特殊信息,且这些信息是秘密的和独一无二的,任何其他用户都不会拥有。多级安全操作系统认证过程不但要完成一般的用户管理和登录,如检查登录的用户名和口令、赋予用户的惟一标识用户ID
27、和组ID,还要核对用户申请的安全级、计算特权集、审计屏蔽码。检查用户安全级就是检验其本次申请的安全级是否在系统安全文件档案中定义的该用户安全级范围之内。2 UNIX/Linux系统标识和鉴别系统的/etc/passwd文件含有全部系统掌握的关于每个用户的登录信息,加密后的口令存于/etc/shadow文件中,口令文件包含:用户登录名、加密过的口令、口令时限、用户号uid、用户组号gid、用户注释、用户主目录和用户使用的shell程序。3 Kerberos网络身份认证2b2a3b3a1b1a 客户机A认证服务器(AS)应用服务器B图7-5 Kerberos 体系结构票证颁发服务器(TGS)密钥分
28、发中心(KDC)口令KAT+tg_ticketAUTTGS+tg_ticketKAB+sg_ticketAUTB+sg_ticketKAB+结果7.4.3 授权机制1权授机制的功能经典的计算机系统两种机制的关键点,当一个用户试图访问计算机系统时,认证机制首先标识与鉴别用户身份用户进入系统后,再由授权机制检查其是否拥有使用本机资源的权限及有多大的访问权限。授权机制的功能是授权和存取控制,其任务是:授权,确定给予哪些主体存取哪些客体的权力。确定存取权限,通常有:读、写、执行、删除、追加等存取方式。实施存取权限。认证和授权用户1认证机制授权机制主体1主体1可访问的资源计算机系统主体2用户2主体1、主
29、体2可访问的资源安全系统模型安全策略访问监控器访问权限授权机制主体客体O OS S2 自主存取控制机制是用来决定一个用户是否有权访问一些特定客体的一类访问约束机制,这种机制下,资源属主可以按照自已的意愿精确指定系统中的其他用户对其资源的访问权、故称自主存取控制。(3)基于行的自主存取控制机制在每个主体上都附加一个该主体可访问的客体明细表,根据表中信息的不同又可分成3种:权能表 进程ID1的CL:文件X(rw-);程序Y(r-);进程IDn的CL:内存段Z(rw-);程序Y(r-x);2)前缀表对每个主体赋予前缀(Profiles)表,它包含受保护的客体名和主体对它的访问权限,每当主体访问某客体
30、时,自主存取控制机制将检查主体的前缀是否具有它所请求的访问权。3)口令表(Passwords List)在基于口令表的自主存取控制机制中,每个客体都有一个口令,主体在对客体访问前,必须向安全系统提供该客体的口令,如果正确便允许访问。(1)基于列的自主存取控制机制存取控制表ACL(Access Control List)是十分有效的自主访问控制机制,被许多系统采用。此机制如下实现,在每个客体上都附加一个可访问它的主体的明细表,表示存取控制矩阵,表中的每一项都包括主体的身份和主体对该客体的访问权限。ACL和优化ACLPID1,r-xPID2,rw-PID3,-xPID4,rwx客体Y (a)存取控
31、制表 文件XPID1 GROUP5 rwx*GROUP5 -xPID3 *-*r-(b)优化的存取控制表(3)自主存取控制机制实现举例1)“拥有者/同组同户/其他用户”模式2)“存取控制表ACL”和“拥有者/同组同户/其他用户”结合模式在安全操作系统UNIX SVR4.1中,采用“存取控制表ACL”和“拥有者/同组同户/其他用户”结合的实现方法,ACL只对于“拥有者/同组同户/其他用户”无法分组的用户才使用。3 强制存取控制机制强制存取控制用于将系统中的信息分密级和范畴进行管理,保证每个用户只能够访问那些被标明能够由他访问的信息的一种访问约束机制。系统中每个主体(进程),每个客体(文件、消息队
32、列、信号量集、共享存储区等)都被赋予相应的安全属性,这些安全属性不能改变,它由安全系统(包括安全管理员)自动地按严格的规则设置,而不是像存取控制表那样由用户或用户程序直接或间接修改。实现多级安全访问控制机制必须对系统的主体和客体分别赋予与其身份相对称的安全属性的外在表示-安全标签,它有两部分组成:安全类别:范畴(1)安全类别有等级的分类安全级别:也称密级,系统用来保护信息(客体)的安全程度。敏感性标签:客体的安全级别的外在表示,系统利用此敏感性标签来判定一进程是否拥有对此客体的访问权限。许可级别:进程(主体)的安全级别,用来判定此进程对信息的访问程度。许可标签:进程的安全级别的外在表示,系统利
33、用进程的安全级别来判定此进程是否拥有对要访问的信息的相应权限。(2)范畴无等级概念范畴是该安全级别信息所涉及的部门。公司内可以建立信息安全类别ConfidentialRestricted(技术信息)、Restricted(内部信息)Unrestricted(公开信息);军事部门的信息安全类别TopSecret(绝密)、Secret(秘密)、Confidential(机密)和Unclassified(公开)。公司内的范畴Accounting(财 务 部)、Marketing(市 场 部)、Advertising(广告部)、Engineering(工程部)和Reserch&Development(
34、研发部)。在公司内,财务部经理与市场部经理虽然级别相同(都是经理),但由于两人分属不同部门(财务部负责财务,市场部负责市场),从而,分 属 两 个 不 同 的 范 畴(Accounting、Marketing),故市场部经理是不能够访问财务部经理的信息的。4特殊授权机制最小特权原理为了使系统能正常运行,系统中的某些进程,如安全管理员、网络管理员和系统操作员,需要具有一些可违反安全策略的操作能力,定义一个特权就是定义一个可违反系统安全策略的操作能力。必须实行最小特权(Least Privilege Principle)原理。最小特权原理指:系统中的每个主体只能拥有与其操作相符的必须的最小特权集,
35、特别是不应给超级用户超过执行任务所需特权以外的特权。POSIX中指出要想在系统获得安全性方面达到合理的保障程度,必须严格地实施最小特权原理。超级用户的特权划分使每个特权用户仅具有完成其任务所需的特权,就能以此减少由于特权口令丢失、恶意软件、误操作引起的损失。例如,可在某系统中规定5个特权管理职责,任何一个都不能获取足够的权力被坏系统安全策略,5个特权职责为:系统安全管理员、审计员、常规操作员、安全操作员和网络管理员。7.4.4 加密机制加密(encrytion)是用某种方式伪装信息以隐藏它的内容的过程。加密的关键是要能高效地建立从根本上不可能被未授权用户解密的加密算法,以提高信息系统及数据的安
36、全性和保密性,防止信息被窃取与泄密。数据加密技术可分两类:一类是数据传输加密技术,目的是对网络传输中的数据流加密,又分成链加密和端加密。另一类是数据存储加密技术,目的是防止系统中存储的数据的泄密,又分成文件级(对单个文件)加密和驱动器级(对逻辑驱动器上的所有文件)加密。数据加密模型明文密文原始明文加密算法解密算法加密密钥解密密钥密码系统功能秘密性。解决信息泄漏问题,防止非法的信息接受者窃取信息。鉴别性。解块发送者的真实性问题,信息接受者能确认信息来源、即此信息确实是由发送方传送而非别人伪造。完整性。解决信息被修改或损坏问题,信息接受者能验证信息没有被修改,也不可能被假消息所替代。防抵赖。发送者
37、在事后不可能虚假地否认其发送的信息。基于密钥的算法分两类(1)对称算法又称传统密码算法,就是加密密钥能够从解密密钥中推算出来,反之也成立,加密/解密密钥是相同的,算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对信息加密和解密。对称算法分为两种:一种是一次只对明文中的字位(有时对字节)运算的算法称序列算法或序列密码;另一种对明文中的一组字位运算,这些位组称分组,相应算法称分组算法或分组密码。现代计算机密码的典型分组长度为64位,这个长度大到足以防止分析破译,但又小到足以方便使用。(2)公开密钥算法又称非对称密码算法,是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密
38、钥计算出来。之所以称公开密钥算法,是因为加密密钥可以公开、即其他人能用加密密钥来加密信息,但只有用相应的解密密钥才能解密信息,因此,加密密钥叫做“公开密钥”,解密密钥叫做“私人密钥”。2基本的加解密算法 基本的加解密方法只有两种:代替密码和换位密码。密码算法在早期是基于字符,现在则基于字位进行代替和换位。(1)代替密码1)简单代替密码:2)多名码代替密码:3)多字母代替密码:4)多表代替密码:(2)换位密码明文:FirsttruedigitalcomputerwasdesignedbytheEnglishCharlesBabbage.F i r s t t r u e d i g i t a
39、l c o m p u t e r w a s d e s i g n e d b y t h e E n g l i s h C h a r l e s B a b b a g e .密文:FaegbilslbrciiasogsgtmnsetpeC.rudhutbaeeyrdrtliwhegaesisEBtdna 纵行换位密码示例3计算机密码算法(1)数据加密标准 DES(Data Encryption Standard)是最通用的计算机加密算法,它是美国和国际标准,用于政府和商业应用,这是一种对称算法,加密和解密密钥是相同的,70年代中期由美国IBM公司开发出来的,DES这套加密方法至今仍
40、被公认是安全的。(2)RSA(Rivest,Shamir,Adleman)是最流行的公开密钥算法,已成为事实上的国际标准,能被用作加密和数字签名。DES属于传统加密算法,要求加解密的密钥是相同的(对称的),加密者必须用非常安全的方法把密钥送给解密者。如果通过计算机网络来传送密钥,则密钥又有泄密的可能。解决这一问题的最彻底的办法是不分配密钥,这种方法就是公开密钥法。要求密钥是对称的,并不是一个必要条件,可以设计出一个算法,加密用一个密钥,而解密用有联系的另一个密钥。基本技术网中每个节点都产生一对密钥,用来对它接收的消息加密和解密。每个系统都把加密密钥放在公共的文件中,这是公开密钥,另一个设为私有
41、的,称私有密钥。若A要向B发送消息,它就用B的公开密钥加密消息。当B收到消息时,就用私钥解密。由于只有B知道其私钥,于是没有其他接收者可以解出消息。公开密钥法的主要缺点是算法复杂,开销大、效率低。(3)数字签名算法DSA(Digital Signature Algorithm)是另一种公开密钥算法,但仅用作数字签名。4数字签名(1)简单的数字签名 1)发送者A可使用私有解密密钥对明文进行加密,形成的密文传送给接收者B。2)B可利用A的公开加密密钥对所得密文进行解密,便得到明文。因为,除了A之外,谁也不具有解密密钥,因此,也只有A才能送出用他的解密密钥加密过的密文。3)如果A要抵赖,只需出示他的
42、解密密钥加密过的密文,使其无法抵赖。(2)保密数字签名 上述方法解决数字签名,但不能达到保密的目的,因为任何人都能接收密文,并可用A的公开加密密钥对所得密文进行解密。为了使A所传送的密文只让B接收,可按下面步骤进行:1)发送者A可使用私有解密密钥对明文进行加密,得到密文1,2)A再用B的公开加密密钥对密文1进行加密,得到密文2再传送给B,3)B收到后,先用自己的私有密钥对密文2进行解密,得到了密文1,4)B再利用A的公开加密密钥对所得密文1进行解密,于是得到了明文。5 网络加密防止网络资源被窃取、泄漏、篡改和被破坏的最好方法是网络加密,那么,要决定加密什么,在网络中何处加密?通常有两种网络加密
43、技术:链-链加密和端-端加密。链-链加密 端-端加密 链-链加密和端-端加密的组合 7.4.5 审记机制审计(auditing)就是对系统中有关安全的活动进行完整记录、检查及审核。作为一种事后追踪手段来保证系统的安全性,是对系统安全性实施的一种技术措施,也是对付计算机犯罪者们的利器。其目的是检测和阻止非法用户侵入系统,显示合法用户的误操作,进行事故发生前的预测和报警,提供事故发生后分析处理的依据,如违反系统安全规则的事件发生的地点、时间、类型、过程、结果和涉及的主体、客体及其安全级别。审计内容和设施1审计事件 2审计记录和审计日志3审计机制的实现实现审计机制,首先要解决系统中所有安全相关的事件
44、都能被审计到,操作系统的用户接口主要是系统调用,也就是说,当用户请求系统服务时,必定使用系统调用。因此,把系统调用的总入口的位置称作审计点,在这儿增加审计控制,就可成功地审计系统调用,也就全面地审计了系统中所有使用内核服务的事件。7.4.6防火墙1防火墙的功能(1)访问控制(2)网络安全事件审计和报警(3)其他功能防火墙Internet防火墙防火墙组织内网组织内网内部主机内部主机内部主机内部主机内部主机内部主机内部主机内部主机2防火墙技术目前常用的防火墙技术主要有:(1)包过滤型技术(2)代理服务技术(3)自适应代理技术7.5安全操作系统的设计和开发7.5.1 安全操作系统结构和设计原则 1开
45、放系统设计:2 机制的经济性:3 最小特权:4严密的访问控制机制:5基于“许可”的模式:6 特权分离:7 避免信息流潜在通道:8 便于使用:安全操作系统一般结构 可信应用软件 应用软件 安 全 内 核 硬 件7.5.2 安全操作系统的开发 应用程序 通用OS 硬件应用程序 通用OS 安全内核 硬件应用程序 安全内核 硬件应用程序通用OS仿真器 安全内核 硬件(a)原通用系统(b)虚拟机系统(c)改进/增强系统(d)仿真型系统 基于通用OS开发安全操作系统 1安全操作系统一般开发方法(1)虚拟机系统:(2)改进/增强法:(3)仿真法:安全操作系统的开发过程 安全需求分析抽象和归纳出安全策略建立安
46、全模型安全机制的设计和实现安全操作系统可信度认证安全功能测试安全模型与系统的对应性说明阶段一阶段二阶段三2安全操作系统的研究和发展BLP机密性安全模型首次成功地应用于Multics Lampson的主体、客体与访问矩阵,隐蔽通道等概念;Anderson的参照监视器、引用验证机制、授权机制、安全内核和安全建模 KSOS、Secure UNIX;计算机安全评价标准可信计算机系统评价标准(TCSEC)(又称橘皮书);LINUS,Secure Xenix,Secure Xenix System/MLS,ASOS(Army Secure Operating System)、Flask、OSF/1、UNI
47、X SVR4.1ES、DTOS、SE-Linux、STOP、VMM 3安全功能和安全保证安全操作系统的开发,应从安全功能(Security Function)和安全保证(Security Assurance)两方面实施,安全功能主要说明一个操作系统所实现的安全策略和安全机制符合评价准则中哪一级的功能要求,安全保证(保障)是通过一定的方法保证操作系统所提供的安全功能确实达到了指定的功能要求,能够确保系统的安全性。安全功能包括10个安全元素标识与鉴别、自主访问控制、标记、强制访问控制、客体重用、审计、数据完整性、可信路径、隐蔽信道分析和可信恢复。在通用操作系统中,TCB可以包含多个安全功能TSF(
48、Trusted Security Function)模块,每一个TSF实现一个安全功能策略TSP(Trusted Security Policy),这些TSP共同构成了安全域,以防止不可信主体的干扰和篡改。安全保证有3个方面(1)TCB自身安全保护,包括TSF模块、资源利用、TCB访问等。(2)TCB设计和实现,包括配置管理、分发和操作、开发、指导性文档、生命周期支持、测试、脆弱性评定等。(3)TCB安全管理。7.5.3 安全操作系统设计技术1隔离技术将系统中的一个用户(进程)与其他用户(进程)隔离开来是安全性的基本要求,有四种办法实现:物理分离,时间分离,密码分离,逻辑分离。隔离机制的设计方
49、法(1)多虚拟存储空间(2)多虚拟机系统虚机器操作系统物理计算机系统CP控制程序I/O设备文件存储器处理器虚机器操作系统虚拟计算机系统虚机器操作系统虚拟计算机系统虚机器操作系统虚拟计算机系统2安全内核 核(kernel)、又称内核(nucleus)或核心(Core),在传统或标准的操作系统中,它实现内层的低级功能,如进程通信、同步机制、中断处理及基本的内存管理。安全内核(Security kernel)是通过控制对系统资源的访问来实现基本安全规程的操作系统内核中相对独立的一部分程序,它在硬件和操作系统功能模块之间提供安全接口,凡是与安全有关的功能和机制都必须被隔离在安全内核之中。安全内核设计和
50、实现基本原则(1)完整性。(2)隔离性。(3)可验证性。3分层设计最不可信代码最可信代码用户认证模块用户接口子模块用户ID查找子模块认证数据修改子模块认证数据比较子模块图7-18不同层中实现的认证模块4环结构MULTICS操 作 系 统 用 环 结 构(ring structure)实现安全保护,这是分层设计的进一步发展,指定各个进程所具有的访问权,共设计了8个环,4个用于操作系统,4个用于应用程序。环界标n210只读正常调用(可信访问)指定入口点访问(可信访问)b1b2b3访问环界表访问环界表/门扩展对程序调用的环界标解释n210可被运行于p级(b1pb2)的任何过程调用在指定点,仅当主调用