信息安全概论第20讲
2. 可信计算基的组成 计算机实施安全策略的可信的软件、硬件、负责系统安全的管理人员一 起组成了系统的可信计算基。 (1)操作系统的安全内核; 具有特权的程序和命令; 处理敏感信息的软件,如系统管理命令; 与TCB实施安全策略有关的文件; (2)其他有关的固件、硬件和设备; (3)负责系统管理的人员; (4)保障固件和硬件正确的程序和诊断软件。 功能是: 内核的良好定义和安全运行方式; 标识系统中的每个用户; 保持用户到可信计算基登录的可信路径; 实施主体对客体的访问控制; 维持可信计算基功能的正确性; 监视和记录系统中的相关安全事件,进行安全审计。
7.2.3操作系统安全机制
操作系统安全机制主要包括 客体重用保护 身份鉴别 访问控制 最小特权原则 可信通道 安全审计等。
1. 硬件安全机制
① 存储保护 存储保护主要指保护用户在存储器中的数据,对于在内存中一次只能运行一 个进程的操作系统,存储保护机制应能防止用户程序对操作系统的影响。 而允许多个进程同时执行的多道操作系统还需要进一步要求存储保护机制 对各个进程的存储空间进行相互隔离。 ② 运行保护 安全操作系统的一个重要的设计原则是分层设计,如基于保护ห้องสมุดไป่ตู้的等级式结 构。最内环是安全内核,具有最高的特权,外环则是不具有特权的用户程 序。 运行保护包括等级域机制和进程隔离机制。等级域机制应该保护某一环不被 其外环侵入,并且允许在某一环内的进程能够有效地控制和利用该环及该 环以外的环。进程隔离机制则指当一个进程在某个环内运行时,应保证该 进程免遭同一环内同时运行的其他进程的破坏,也就是说系统将隔离在同 一环内同时运行的各个进程。
7.1.2安全内核方法
可信计算基的设计通常基于安全内核方法。 安全内核(Security Kernel)方法指的是通过控制对系统资源的访问 来实现基本安全规程的计算机系统的中心部分,包括访问验证机制、访问控制 机制、授权机制和授权管理机制等。安全内核为操作系统提供服务,同时也对 操作系统施加限制。 TCSEC标准中给出了对安全内核的权威定义:“安全内核是一个可 信计算基中实现访问监视器思想的硬件、固件和软件成分;它必须仲裁所有访 问,必须保护自身免受篡改,必须能被验证是正确的”。 安全周界(Security Perimeter)是指用半径来标识的空间。该空间包 围着用于处理敏感信息的设备,并在有效的物理和技术控制之下,防止未授权 的进入或敏感信息的泄漏。
对用户建立可信通道的一种常见的方案是基于安全提示键(SAK: Security Attention Key)实现。Linux操作系统提供的安全提示键在X86平台 下为ALT+SysRq+k。Windows操作系统则为CTRL+ALT+DEL。
6. 安全审计
一个系统的安全审计就是对系统中有关安全的活动进行记录、检查或审核。 安全审计方法用于监视安全相关的活动。 安全审计机制的实现一般是一个独立的过程,应与系统其他功能相隔离,同 时要求操作系统必须能够生成、维护及保护审计过程,使其免遭修改、非法 访问及毁坏。 审计事件是安全审计机制最基本的单位。审计事件一般可分为注册事件、使 用系统事件和利用隐蔽通道的事件3大类。亦即用户身份鉴别机制的使用、把 客体引入到用户的地址空间或从地址空间删除客体、特权用户所发生的动作 以及利用隐蔽通道的事件。
一种典型的将超级用户的特权进行细分的方案如下: 系统安全管理员:负责对系统资源和应用定义安全级别;为用户赋予安全级 别;定义用户和自主访问控制的用户组;限制隐蔽通道活动的机制等。 安全审计员:负责安全审计系统的控制,与系统安全管理员形成一个“检查 平衡”,系统安全管理员负责实施安全策略,而安全审计员控制审计信息, 审核安全策略是否被正确实施。 操作员:完成常规的、非关键的安全操作,不能进行影响安全级的操作。 网络管理员:负责所有网络服务及通信的管理。
依据系统安全策略对用户的操作进行访问控制,防止用户对计算机资源的非 法访问(窃取、篡改和破坏); 标识系统中的用户并进行身份识别; 保证系统自身的可用性及系统数据的完整性; 监督系统运行的安全性。
为了实现这些安全目标,需要依据特定的设计原则和设计方法,实现 相应的安全机制,从而构建安全操作系统,其中关键的操作系统安全机制包 括:客体重用保护、身份鉴别、访问控制、最小特权原则、可信通道、安全 审计等。
图 7.2 安全内核
7.1.3可信计算基
1. 可信计算基的定义 可信计算基(TCB:Trusted Computing Base):“可信计算基是可 信计算系统的核心,它包含了系统中所有实施安全策略及对象(代码和数据) 隔离保护的机制,为了使得保护机制更容易被理解和验证,可信计算基应尽量 简单,并与安全策略具有一致性”。(1985年美国DoD可信计算机系统评估准 则(TCSEC)的定义)
③ I/O保护 绝大多数情况下,I/O操作是仅由操作系统完成的一个特权操作,所有操作系 统都对I/O操作提供一个相应的高层系统调用,在这些过程中,用户不需要 控制I/O操作的细节。
2. 身份鉴别
身份鉴别,即计算机系统对用户身份的标识与鉴别(I&A: Identification & Authentication)机制,用于保证只有合法用户才能进入系统,进而访问系统 中的资源。 在操作系统中,身份鉴别一般在用户登录系统时进行,常使用的鉴别 机制有口令机制、智能卡和生物鉴别技术等。
拥有者 r w e 同组用户 r w e 其他用户 r w e
图 7.3比特位模式
4. 最小特权原则
一个特权就是一个可违反系统安全策略的操作能力,作用是为了保证 操作系统的正常运行。 在目前多数流行的多用户操作系统(如UNIX、Linux和Windows)中, 超级用户一般具有所有特权,而普通用户不具有任何特权,一个进程要么具 有所有特权(超级用户进程),要么不具有任何特权(普通用户进程)。便 于系统维护和配置,但不利于系统的安全性。 最小特权原则(Least Privilege Principle)的基本思想是系统中每一个主体只 能拥有与其操作相符的必需的最小特权集。
4. 可信计算基安全保证 安全保证(Security Assurance)是为确保安全功能达到要求的安全性 目标所采取的方法和措施。主要包括: 可信计算基自身安全 可信计算基设计与实现 可信计算基安全管理
7.2 操作系统安全 7.2.1操作系统安全概述
操作系统是管理计算机硬件,并为上层应用软件提供接口的系统软件, 是计算机系统的核心。数据库系统、应用软件都运行在操作系统之上,因此 操作系统安全是整个计算机系统安全的基石和关键,不能保证操作系统的安 全性,就不可能达到数据库安全和应用安全。 操作系统安全要达到的主要目标是:
5. 可信通道
具体实施安全策略的软硬件构成安全内核,而用户是与安全周界外部 的不可信的中间应用层及操作系统交互的,但用户登录、定义用户的安全属 性、改变文件的安全级别等安全关键性操作,用户必须能够确认与安全内核 进行交互,而不是与一个特洛伊木马程序打交道。这就需要提供一种安全机 制,保障用户和安全内核之间的通信,而这种机制就是由可信通道提供的。 可信通道(Trusted path)机制即终端人员能借以直接与可信计算基通信的一 种机制。该机制只能由有关终端操作人员或可信计算基启动,并且不能被不 可信软件模拟。
信息安全概论
第20讲
第7章 计算机系统安全
7.1 可信计算基 7.2 操作系统安全 7.3 数据库安全 7.4 计算机病毒防护 7.5 备份与恢复
7.6 可信计算平台
7.1 可信计算基
可信计算基(TCB: Trusted Computing Base)的概念于1979年由G. H. Nibaldi提出,其思想是将计算机系统中所有与安全保护有关的功能提取出来, 并把它们与系统中的其他功能分离开,然后将它们独立加以保护,防止受到破 坏,这样独立出来得到的结果就称为可信计算基。
安全内核作为可信计算基 的设计和实现方式,同样必 须遵从访问验证机制的3条基 安全周界 本原则: 外部 1、防篡改原则 2、完备性原则 3、可验证性原则
用户 用户接口 应用程序 操作系统接口 操作系统 内核接口
安全周界 内部
安全内核
安全内核方法以指导设计 和开发的一系列严格的安全 原则为基础,能够极大地提 高用户对系统安全控制的信 任度,是一种最常用的构建 可信计算基的设计方法。
特权命令
审计点
内核审计进程
系统调用
审计点 循环缓冲区
审计 日志 文件
图7.4 安全审计机制实现方式
7.2.4 UNIX操作系统安全机制
UNIX是一种多用户多任务操作系统,其基本功能就是要防止使用同一个操作 系统的不同用户之间的相互干扰,因此UNIX操作系统在设计时就已经使用了 以下的一些安全机制来适应安全性需求。 1. 运行保护 UNIX系统具有两个执行态:核心态和用户态。运行内核中程序的进程处于核 心态,而运行核外程序的进程处于用户态。系统保证用户态下的进程只能访 问它自己的指令和数据,而不能访问内核和其他进程的指令和数据,并且保 证特权指令只能在核心态执行。用户程序可以使用系统调用进入内核,运行 完系统调用再返回用户态。并且在不受用户干扰的情况下对该请求进行访问 控制。
7.2.2操作系统安全机制设计原则
J. H. Saltzer和M. D. Schroeder提出了操作系统安全保护机制应符合8原则:
1. 最小特权原则:每个用户和进程必须按照“所需”原则,尽可能使用最小 特权。 2. 可验证性:保护操作系统安全的机制应该具备简单性和直接性,并能够通 过形式化证明方法或穷举测试验证其可靠性。 3. 开放设计原则:安全机制设计应该是开放的,机制本身的不应保密。还应 该接受广泛的公开审查,消除可能存在的设计缺陷。 4. 完全检查:每次访问尝试都必须通过检查。 5. 基于许可:对客体的访问应该是默认拒绝访问,稳健的设计机制,主体还 应该识别那些将被访问的客体。 6. 多重防护:理想情况下,对敏感客体的访问应依赖多个条件,比如用户鉴 别和密钥。 7. 最少公用机制:共享对象为信息流提供了潜在的通道。采用物理或逻辑隔 离的系统减少了共享的风险。 8. 易用性:使用简单的安全机制,并提供友好的用户接口,使其更容易被用 户所接受。