一种基于可信多任务操作系统实现可信计算的方法

文档序号:6463225阅读:125来源:国知局
专利名称:一种基于可信多任务操作系统实现可信计算的方法
技术领域
本发明涉及可信计算方法,尤指 一种可信多任务操作系统对不可信 操作系统行为进行度量和监控的方法。
技术背景1983年,在美国国防部推出的"可信计算机系统评价标准"(DOD 5200.28曙Std, Trusted Computer System Evaluation Criteria,简称TCSEC ) 中,提出了 "可信计算基"(Trusted Computing Base,简称TCB )的概念。 所谓"可信计算基",是指通过保持最小可信组件集合及对数据的访问权 限进行控制来实现系统的安全,从而达到系统可信的目的。中国的国家 标准GB 17859-1999 "计算机信息系统安全保护等级划分准则,,沿用了"可信计算基"这一概念。1999年1月,由Intel 、 Compaq 、 HP、 IBM以及Microsoft发起成立"可信计算平台联盟(TCPA)",致力于促进新一代具有安全、信任能力 的硬件运算平台。2002年底,IBM发布了一款带有嵌入式安全子系统(ESS)的笔记 本电脑。2003年4月8日,可信计算平台联盟重组为可信计算工作组(TCG)。 TCG在原TCPA强调安全硬件构建的宗旨之外,更进一步增加了对软件 安全的关注,旨在从跨平台和操作环境的硬件组件和软件接口两方面, 促进与厂商无关的可信计算平台工作标准的制订。目前,TCG已经发布了包括TPM (可信平台模块,Trusted Platform Module)主规范、TSS (TCG软件栈,TCG Software Stack)规范、PC平 台规范等在内的多个标准,形成了相对完整的软硬件标准体系。同时, TCG下属的各公司还推出了相应的软硬件产品,包括TPM芯片、主板、BIOS等,主流操作系统(包括Windows, Vista和Linux)也对TCG标 准提供了支持。预计在未来几年时间内,包含TPM芯片的计算机将成为 市场上的主流。在现有的计算机体系,特别是常用的Intel X86计算机体系下,任何 软件原则上都可以访问所有的计算机资源,如内存、硬盘上的数据,使 用声卡、网卡等,这种相对开放的架构带来了很多安全问题,造成病毒、 木马等危险程序的泛滥。TCG所定义的可信计算体系,试图从根本上解 决现有计算机体系中存在的弱点。TCG的可信计算体系是建立在密码体 系基础上的,其核心是TPM芯片。通过TPM芯片所提供的证书(密钥) 存储、散列函数、非对称加密等,实现了平台身份识别、平台完整性度 量(信任链传递)、关键数据加密等若干功能,从而达到整个计算机系统 的可4言目的。在国内,由于密码方面的管理规定,TPM芯片无法直接引入国内。 2007年12月,国家密码管理局发布了《可信计算密码支撑平台功能与接 口规范》,并于发布日开始实施。该规范定义了国内的可信计算新片一一 TCM(Trust Control Module)。与TPM不同的是,TCM采用了国内认可的 密码算法,加强了密码协议,将有力地推动可信计算在国内的发展。由 于TCM推出的时间较短,其配套软件还比较欠缺,特别是尚没有操作系 统基于TCM实现信任链传递等基本功能。无论是TCG规范,还是国内的TCM及其配套规范,其主要的定义 范围都包括可信计算芯片(TPM或TCM)的功能、物理特性,可信硬 件平台(主板、BIOS等)的组织构成,以及可信计算芯片软件栈的功能 和接口等。而对整个可信计算体系中最关键的软件一一搡作系统却没有 提出具体的功能要求和定义。本发明中所涉及的可信多任务操作系统,包含了两个方面的含义首先,该系统能够符合TCG规范和TCM规范的整体要求,支持TPM 和TCM芯片,实现了基于TPM或TCM芯片的完整性度量和信任链传递, 实现了 TCG和TCM规范定义的软件栈;其次,该系统符合国标GB 17859-1999的要求,构建了 "可信计算 基,,,达到了 GB 17859-1999中提出的第三级一一安全标记保护级(基本 等同于TCSEC定义的Bl级)以上的要求。目前,能够符合TCG规范,对TPM芯片全面支持,并且达到安全 标记保护级(或TCSEC Bl级)要求的操作系统只有经过通过安全增强 的Linux系统。而能够全面支持TCM规范的操作系统还没有出现。直接采用可信多任务操作系统固然可以解决系统的安全可信问题, 但是同时也带来一些弊端。譬如,安全性和可信性的提高势必降低系统 的兼容性和易用性,某些应用软件可能无法在可信多任务操作系统上直 接运行;现有应用使用的操作系统种类4艮多,如DOS、 Windows 95/98/NT/XP/Vista、 Linux、 MacOS、 FreeBSD、 SCO等等,并不是每个 系统都可以改造成为可信多任务操作系统,原有应用的安全性问题如何 解决?在这种背景下,可信计算与虚拟化技术的结合是一种最好的解决 方案。所谓虚拟化技术,就是使用软件或硬件技术,将一台计算机,虚拟 成若干台计算机;或者将一种体系架构的计算机,虚拟成另一种体系架 构的计算机。这种虚拟,对于运行在虚拟机上的软件系统, 一般是透明 的。目前常用的虚拟化技术包括半虚拟化和完全虚拟化。半虚拟化一般 采用软硬件结合的方法,如Intel的VT技术;完全虚拟化则完全采用软 件方法,如EMC的Vmware。这些技术目前已经处于相对成熟的阶段。可信计算和虚拟化技术的结合解决了两大问题第 一,可信多任务操作系统在安全性和可信性方面都得到了很大的 增强,但是相应地在兼容性和易用性方面则大大降低,经常无法满足用 户当前应用系统运行的需要。采用虚拟化技术后,用户仍然可以运行其 熟悉的操作系统和应用软件,可以极大保护用户的既有软件财产,降低系统切换的成本;第二,目前大量应用软件运行在一些安全性和可信性比较低的操作 系统上,而这些操作系统一般是由国外厂商提供的,很难对其进行安全 性增强;即使是号称安全性比较好的操作系统,由于无法进行代码检查 等安全测试,无法避免软件后门等缺陷存在。因此从信息系统安全角度 来讲,对这些操作系统(或称之为不可信操作系统)的行为进行监控和 度量就非常有必要。对于可信计算和虚拟化技术的结合,某些国际大公司,如Intel、 EMC 等,国内的一些企业、研究机构,如联想,也提出了^f艮多方案。这些方 案通过虚拟化技术,在某个操作系统(一般称为宿主系统,Host Operating System)上,运行一个或多个才喿作系统(一般称为客户系统,Guest Operating System),并且通过可信计算技术,对客户系统进行完整性度量。 但是这种完整性度量, 一般仅对客户系统的核心进行度量,保证其没有 被篡改,客户系统核心运行后的行为并没有得到监控和度量,也就是说, 宿主系统是"相信"客户系统的核心是"可信"的。而从安全的角度来讲,很难讲客户系统就是可信的,特别是没有经 过安全机构评估的系统。目前常用的客户系统可以分为两类, 一类是商 业操作系统,如Windows、 SCO Unix以及某些商业公司发布的Linux; 第二类是用户自由下载的自由软件,如大多数Linux、 FreeBSD。目前可 信评估的手段不足,特别是对于不发布源代码的私有软件,可信评估基 本是不可能的。所谓对软件系统的信任,往往会归结为对软件开发者和发行者的信任。譬如, 一般都会认为商业大公司发布的版本是"可信" 的,但是这种"可信"的基础是很薄弱的。即使是大公司发布的软件,也不可避免存在各种安全缺陷和漏洞,甚至可能存在后门;而且,并不 是所有操作系统在安全方面都作了足够的增强,很难满足特定环境下用 户对安全的需求。如果只对客户系统的核心进行度量,而不监控客户系统上应用软件 的行为,仍然无法保证客户系统不被病毒、木马等攻击手段破坏,更无 法规避客户系统中可能存在的后门的攻击。发明内容为解决上述问题,本发明通过虚拟化技术、截获中断、重定向等方法, 对客户系统的行为进行监控和度量,可以动态地保护客户系统完整性, 同时最大限度降低客户系统自身存在的缺陷、漏洞和后门造成的危害, 从而能够有效提高整体系统的安全性和可信性。本发明的目的是提出一种采用虚拟化技术在可信多任务操作系统上 对不可信操作系统的行为进行度量和监控的方法,极大保护用户的既有 软件财产,降低系统切换的成本,保证信息系统的安全性和可信性。为了实现上述目的,本发明的 一种基于可信计算实现可信多任务操 作系统对不可信操作系统行为进行度量和监控的方法包括以下步骤1) 在可信多任务操作系统上运行一个或多个不可信操作系统;2) 将不可信操作系统上的应用程序的所有系统调用等动作通过修改 终端向量表等方法进行重定向;3) 由可信多任务操作系统的监控和度量模块处理重定向后的应用程 序调用。其中,在所述步骤l)中,可信多任务操作系统包括可信虚拟机模块和监控度量模块;可信多任务操作系统利用可信虚拟机模块运行一个或多个不可信操作系统。可信多任务操作系统符合TCG规范和TCM规范 的整体要求,支持TPM和TCM芯片,实现了基于TPM或TCM芯片的 完整性度量和信任链传递,实现了 TCG和TCM规范定义的软件栈。可 信多任务操作系统符合国标GB 17859-1999的要求达到了 GB 17859-1999 中提出的第三级——安全标记保护级以上的要求。不可信操作系统包括 Windows或Linux操作系统的各种版本。其中,所述的步骤2)的重定向方法是通过加载代码时动态修改可执 行码来完成。其中,在所述步骤3)中,对客户系统行为的监控采用基于行为特征 的行为分析,并对异常行为提出警告,或者终止;完整性度量是对所访 问关键资源的完整性进行检查,包括核心模块、可执行文件、应用程序 库、配置文件、脚本文件。与现有技术相比,本发明的有益效果是在某个可信操作系统上, 利用虚拟化技术运行一个或多个可信操作系统,通过可信计算技术对客 户系统的核心及核心运行后的行为进行监控和度量。并且,本发明保护 用户的既有软件财产,节约成本。


图1为现有技术虚拟机架构的结构示意图; 图2为未采用虚拟化技术的系统调用的流程示意图;' 图3为采用现有技术的系统调用的流程示意图; 图4为可信多任务操作系统实现不可信操系统行为监控和度量的流 程图。
具体实施方式
为使本发明的特征及优点得到更清楚的了解,以下结合附图,作详细说明如下如图l所示,描述了本发明的系统架构的结构示意图,分为3 个部分,底层100是可信计算芯片,包括TPM和TCM;核心态110由可 信计算芯片驱动模块111、可信虚拟机模块112、监控和度量模块113组 成;用户态130包含多个不可信操作系统,其上运行多个应用程序。当 用户态的应用程序131对核心态请求信息时,系统会自动>夂人用户态切换 到核心态,进入可信多任务操作系统核心进行处理。在核心态110上运 行可信多任务操作系统,该系统能够符合TCG规范和TCM规范的整体 要求,其中可信计算芯片驱动模块111支持TPM和TCM芯片,实现了 基于TPM或TCM芯片的完整性度量和信任链传递,实现了 TCG和TCM 规范定义的软件栈,并且该系统符合国标GB 17859-1999的要求,构建 了 "可信计算基",达到了 GB 17859-1999中提出的第三银——安全标记 保护级(基本等同于TCSEC定义的Bl级)以上的要求。可信虚拟机模 块112通过虚拟化技术,在可信多任务操作系统(称为宿主系统)上运 行一个或多个不可信操作系统(称为客户系统);监控和度量模块113对 客户系统行为进行监控和完整性度量,对异常行为提出警告,或者终止, 对所访问关键资源的完整性进行检查。当用户态130对核心态120请求信息时,核心态120通过修改中断 号以及中断处理流程,截获客户系统的行为,并进行处理。本部分所描 述的方法,只适用于X86体系的计算机,包括32和64位计算机。运行 在X86体系中的操作系统, 一般是通过软中断的方式进行调用。(如 Windows使用INT2E, Linux则使用INT 80 )。在没有采用虚拟化技术之 前,系统调用的流程一般如图2所示。当应用软件需要调用核心的某个 功能时,将调用INT 2E或INT 80后,系统会自动从用户态切换到核心态,并进入注册的中断处理函数中;中断处理函数/人中断向量表的相应位置找到系统调用入口函数的地址,并调用系统调用入口函数。上层应用程序131在调用INT 2E或INT 80前,事先设置了 EAX、 EBX等寄存器,其中EAX存放的是系统调用号,EBX等依次存放系统 调用的参数。系统调用入口函数,根据EAX中存放的系统调用,从系统 调用表中查找到相应的系统调用处理函数的地址,调用相应函数,并将 EBX等寄存器中的内容作为参数传给系统调用处理函数。处理函数进行 处理后,将处理结果返回给上层应用软件,从而完成一次系统调用。'图3为使用虚拟化技术以后的系统调用情况。首先改变了原来所有 核心均运行在核心态的状况,而是只有宿主系统的核心运行在核心态, 而客户系统的核心及其应用则运行在用户态。其次,客户系统的系统调 用采用的中断号被动态改变(可以通过加载代码时动态修改可执行码来 完成);最后,客户系统的应用程序的系统调用流程也^C改变。监控和度量模块113对客户系统的行为进行监控和度量。对客户系 统行为的监控可以采用基于行为特征的行为分析,并对异常行为提出警 告,或者终止;完整性度量主要是对所访问关键资源的完整性进行检查, 包括核心模块、可执行文件、应用程序库、配置文件、脚本文件等。完 整性度量的方法遵循TCG规范或者TCM规范,依赖于TPM或TCM芯 片。完整流程图如图4,当应用程序131调用INTXX后,系统会自动/人 用户态切换到核心态,并进入可信多任务操作系统核心中的中断处理函 数中;中断处理函数从中断向量表的相应位置找到监控和度量函数的地 址,并调用相应函数,进行行为审计、行为监控和完整性度量等,如果 发现客户系统的行为出现异常,则中止本次系统调用;否则,调用不可 信操作系统的系统调用处理函数,继续由监控和度量模块进行处理;如果完整性检查通过,对关键资源的访问将继续;否则,意味着关键资源已经被篡改,存在出现安全问题的可能,本次访问将被终止,同时Guest OS将得到访问失败的通知。是本发明的具体实现形式并不局限于此,对于本技术领域的 一般技术人 员来说,在不背离本发明所述方法的精神和权利要求范围的情况下对它 进行的各种显而易见的改变都在本发明的保护范围之内。
权利要求
1. 一种基于可信多任务操作系统实现可信计算的方法,其特征在于其包括以下步骤1)在可信多任务操作系统上运行一个或多个不可信操作系统;2)将不可信操作系统上的应用程序的所有系统调用等动作通过修改终端向量表等方法进行重定向;3)由可信多任务操作系统的监控和度量模块处理重定向后的应用程序调用。
2. 如权利要求1所述的方法,其特征在于在所述步骤l)中,可信 多任务搡作系统包括可信计算芯片驱动模块、可信虚拟机模块和监控度 量模块;可信多任务操作系统利用可信虚拟机模块运行一个或多个不可 信操作系统。
3. 如权利要求1所述的方法,其特征在于在所述步骤1)中,可 信多任务操作系统符合TCG规范和TCM规范的整体要求,支持TPM和 TCM芯片,实现了基于TPM或TCM芯片的完整性度量和信任链传递, 实现了 TCG和TCM规范定义的软件栈。
4. 如权利要求1所述的方法,其特征在于在所述步骤1)中,可 信多任务操作系统符合GB 17859-1999的要求,达到了 GB 17859-1999 的第三级。
5. 如权利要求1所述的方法,其特征在于在所述步骤1)中,不 可信操作系统包括各种版本的Windows或Linux操作系统。
6. 如权利要求1所述的方法,其特征在于所述的步骤2)的重定向 方法是通过加载代码时动态修改可执行码来完成。
7. 如权利要求1所述的方法,其特征在于在所述步骤3)中,对客 户系统行为的监控采用基于行为特征的行为分析,并对异常行为提出警 告,或者终止;完整性度量是对所访问关键资源的完整性进行检查,包含核心模块、可执行文件、应用程序库、配置文件、脚本文件。
全文摘要
本发明利用可信计算技术实现了一种可信多任务操作系统对不可信操作系统行为进行度量和监控的方法。可信多任务操作系统由可信计算芯片驱动模块、可信虚拟机模块和监控度量模块组成,可信多任务操作系统利用可信虚拟机模块运行一个或多个不可信操作系统,通过修改终端向量表等方法,将不可信操作系统上的应用程序的所有系统调用等动作重定向,再由可信多任务操作系统的监控和度量模块进行处理,从而实现对不可信操作系统行为的度量和监控。不可信操作系统包含Windows或Linux操作系统的各种版本。本方法可用于个人计算机,有效提高系统的安全性和可信性,同时不改变用户原有的操作界面,能够更好地兼容用户使用习惯。
文档编号G06F21/00GK101246537SQ20081010297
公开日2008年8月20日 申请日期2008年3月28日 优先权日2008年3月28日
发明者兰雨晴, 刘文清, 东 张, 李红娟, 韩乃平 申请人:兰雨晴
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1