基于可信硬件与虚拟机的微内核操作系统完整性保护方法

文档序号:6458626阅读:200来源:国知局
专利名称:基于可信硬件与虚拟机的微内核操作系统完整性保护方法
技术领域
本发明涉及的是基于可信硬件平台与虚拟机的微内核操作系统完整性 保护方法,属于计算机应用技术领域。 技术背景系统运行过程中,操作系统很难保证自身服务及应用软件的安全,虽然 微内核操作系统可以通过在微内核中增加引用监视器来监控服务和应用的 行为,但是其仍无法对部分资源访问行为,尤其是进程内的内存访问进行监 控。除外微内核自身的安全性没有有效的措施进行保护。目前的可信度量只 是系统开机时的系统资源静态完整性度量,只能确保系统开机时的系统资源 静态完整性,尚不能确保系统工作后的动态可信性。缺少软件的动态可信性 的度量方法。本发明的目的旨在提供一种微内核可信操作系统中的系统完整性保护的 方法,通过虚拟机捕获和监控关键的资源访问操作,以保护系统内核的完整 性,保证服务和应用执行安全策略规定范围以内的内存访问。本发明的技术解决方案基于可信硬件平台与虚拟机的微内核操作系统 完整性的保护方法是采用两层保护机制通过虚拟机和微内核来确保操作系 统自身以及上层服务和应用的完整性。利用可信平台硬件实现操作系统运行 过程中的动态度量,实现对系统运行过程中的关键模块的数据和操作序列进 行完整性验证。所述的可信硬件平台、虚拟机作为微内核可信操作系统的安全基础,其中的可信硬件平台是由可信根CTRM、可信平台模块TPM、可信BI0S/EFI构 成。所述的两层保护机制,其第一层利用硬件虚拟化技术,使得处于root模 式的虚拟机能够捕获处于non-root模式的微内核或其它服务进程和用户进 程的关键内存访问,确保它们不会受到任何篡改;第二层利用微内核的隔离 机制和安全监控模块的控制机制来保障系统程序和用户程序的完整性。所述的利用可信平台实现操作系统运行过程中的动态度量,在TPM中 设定"执行表达式",利用TPM的硬件安全特性保证"执行表达式"不会被 修改,通过计算实际运行轨迹并于TPM中设定的"执行表达式"进行比较 来动态地度量系统的安全状态。本发明的优点通过虚拟机技术,操作系统内核、服务及应用的资源 访问操作得以有效监控。通过虚拟机捕获和监控关键的资源访问操作,以保 护系统内核的完整性,保证服务和应用执行安全策略规定范围以内的内存访 问。受虚拟机监控和保护的系统内核又可监控上层服务与应用的资源访问操 作,以保证服务和应用自身的完整性及执行的合法性。可信操作系统可信链 建立和完善,尤其是运行过程中的动态度量过程得以实现。在TPM的支持下, 除了能够实现其他可信操作系统己实现的由可信根(CRTM)、 BI0S、操作系统 加载器(OS loader)构成的系统启动前的可信链条,更可以实现系统启动 过程中的操作系统加载器对操作系统内核(kernel),以及操作系统内核对 上层服务和应用的的完整性验证。更重要的是,本方法可以实现在系统执行 过程中,对系统内核及关键服务、应用行为的动态度量和验证,使得可信链能够进一步延续。


附图1是可信操作系统及硬件平台的结构示意图。附图2是可信操作系统的结构示意图。附图3是未引入虚拟层的处理机系统结构示意图。附图4是引入虚拟层后的处理机系统构示意图。 附图5是实现硬件虚拟化的结构框图。
具体实施方式
对照附图l,其结构包括可信硬件平台(可信根CTRM、可信平台模块 TPM、 BI0S)、可信虚拟机(TV醒)、可信操作系统(NUT0S)。由可信硬件平 台可以保证虚拟机加载时的完整性;安全的的虚拟机又可以保证在其上加载 的可信操作系统的完整性,并在运行过程中监控微内核的行为,并借助TPM 度量和验证操作系统的动态完整性和安全性。扩展了可信操作系统的可信链,可信链条的建立包括以下环节主板建 有唯——个CRTM (Core Root of Trust Measurement),除厂商外,任何主 体无法更改CRTM。系统每次启动时,以CRTM为起点,在TPM的支持下,由 CRTM度量BIOS/EFI (Extended Firmware Interface)的完整性,而由 BIOS/EFI度量OS Loader的完整性,之后由OS Loader度量OS Kernel的完 整性,再由OS Kernel静态度量本地应用程序或远程应用程序的完整性,最 后再动态地度量系统运行过程。从而建立一条信任链,包含静态度量和动态 度量。OS Loader之前的部分和部分度量过程已有文献或专利讨论过,所以 本发明的关注重点主要集中在信任链中OS Loader以后的部分,特别是动态度量部分。OS Loader首先度量TV麗的完整性,OS Loader再调用TPM的接 口,依次计算要加载的TV讓各模块的代码的、配置文件、环境数据的哈希 值,以及计算启动过程的哈希值,并与期望值作比较,如果不相符,则拒绝 继续加载下一个模块。当TV醒的所有模块都加载并启动完毕,则认为TVMM 是可信的。OS Loader将OS kernel的控制和度量权交由TV丽,TVMM则可以 通过调用TPM的接口度量OS kernel各模块的代码完整性、数据完整性和启 动过程的完整性,与此同时加载和启动内核模块。在虚拟层构造系统监控器,独立于上层操作系统,避免上层操作系统行 为对它的影响,利用它监视上层操作系统的区域隔离状态,保证上层操作系 统内核和操作系统引用监视器的完整性。对照附图2,其结构包括微内核、设备驱动、安全服务器、服务进程 (进程管理、存储管理等)、上层应用。安全服务器是引用监视器(Reference Monitor)的关键部分,与其它进程有频繁的交互。我们的系统基于微内核 结构,安全微内核运行于内核特权模式,提供基本的功能和安全机制,系统 的大部分功能通过运行在用户模式的系统功能服务进程实现。系统功能服务 进程包括进程管理、资源管理和安全服务器及单独的驱动程序。该系统可以 有效地实现操作系统自身的完整性保护,并且可以为上层应用提供细粒度的 灵活的强制访问控制框架,为应用层提供完整性和机密性保障服务。进程管 理主要负责管理系统中的进程的加载、调度、运行、交互、结束等过程。资 源管理器管理系统中的资源如文件、设备、网络socket等并对访问加以控 制。安全服务器则负责整个系统的安全决策及安全策略信息的维护。驱动程 序进程与设备交互。各个模块实现了权限上的划分,每个模块只拥有完成自己工作的那些权限。有效的实现操作系统各功能模块之间的职责分离和最小特权原则。微内核和虚拟机共同处于执行安全级O级,而处于non-root 模式的微内核的完整性受处于root模式的虚拟机保护和监控;同时微内核 监控处于执行安全级3级的设备驱动、安全服务器、服务进程(进程管理、 存储管理等)的行为,并利用TPM验证其完整性;服务进程为上层应用服务, 上层应用同样受到微内核和安全服务器的管理和监控。依据上述结构可采用两层保护机制来确保操作系统自身以及上层服务 和应用的完整性,第一层利用硬件虚拟化技术,使得处于root模式的虚拟 机能够捕获处于non-root模式的微内核或其它服务进程和用户进程的关键 内存访问,确保它们不会受到任何篡改;第二层利用微内核的隔离机制和安 全监控模块的控制机制来保障系统程序和用户程序的完整性。对照附图3,对于未引入虚拟层的客户机系统,应用服务程序不能直接 访问硬件资源,只有运行在0级的操作系统内核和设备驱动程序可以通过调 用硬件抽象层来实现对物理硬件的间接访问。对照附图4,对于引入虚拟层的处理机系统,不允许客户系统绕过虚拟 层,直接访问物理硬件资源。我们又希望虚拟机的引入对操作系统是透明的, 即操作系统仍然运行在0级但又必须通过虚拟层来执行特权指令。利用 Intel和AMD的硬件虚拟技术的支持,引入VMX-root和VMX-non-root两种 运行模式。并使得虚拟机运行在VMX-root模式下,客户系统内核运行在 VMX-non-root模式下。运行在VMX-non-root模式下的程序执行特权指令, 即使特权级是0也会被虚拟机trap到,从而实现对客户系统的指令虚拟。 而对客户系统来说,就像它直接执行特权指令一样。对照图5,在Intel和AMD的硬件虚拟技术的支持下,实现硬件虚拟化 包括以下三个方面的基本内容内存管理,CPU虚拟化和设备I/0虚拟化。① CPUIntel的Vanderpool技术定义了从VMX-root到VMX-non-root的 VMentry操作和从VMX-non-root返回VMX-root的VMexit的操作。客户操作 系统执行CPU访问指令都会触发VMexit操作,并转向执行虚拟机中断处理 程序,从而为虚拟机监控客户操作系统提供了条件。VMentry和VMexit操作 还实现了模式切换所必需的虚拟地址空间重新加载、保存与恢复虚拟机的上 下文、激活虚拟机相应的处理程序等功能。② 内存管理本发明描述的虚拟机内存管理只支持分页的客户机操作系统。 Intel-Vanderpool技术给x86 CPU的MOV from CR3, MOV to CR3, INLVPG 等相关特权指令的执行,增加了可以触发VMexit操作的机制。CR3保存着页 目录地址,虚拟机为每一个客户操作系统提供了虚拟的CR3,并通过控制客 户操作系统对实际的CR3的访问,来控制客户机的地址映射过程,实现对客 户机内存的管理,提供区域隔离关键的机制。③ 设备I/O虚拟机为每一个客户系统都虚拟了一套设备1/0。如下图所示,当虚拟 机捕获到客户机内核或客户机的硬件抽象层执行的1/0操作指令后,便会调 用虚拟机的设备驱动或硬件抽象层访问实际的物理设备,为上层客户机操 作系统提供I/0服务。虚拟机对客户系统是透明的,每一个客户系统都以为 自己直接运行在物理平台上。利用可信平台实现操作系统运行过程中的动态度量,是在TPM中设定 "执行表达式",利用TPM的硬件安全特性保证"执行表达式"不会被修改, 通过计算实际运行轨迹并于TPM中设定的"执行表达式"进行比较来动态 地度量系统的安全状态。系统运行过程中的动态度量包括对静态数据的完整性度量和对关键模 块执行完整性的度量。对静态数据的度量主要包括TVMM、 OS Kernel和上层服务和应用程序的 代码,以及代码执行所依赖的动态库文件、环境配置文件、数据输入文件等 的完整性进行度量。由于系统资源在两级引用监视的控制之下,因此,度量 的频率不需要很高,具体频率依模块的安全级别而定。虚拟机、微内核、系统服务,以及应用程序都由很多进程组成。如果进 程的执行违背了安全策略的要求,则很可能破坏自身模块的执行,甚至间接 干扰其他交互模块的执行,产生安全问题。因此,对执行完整性的的动态度 量主要指度量进程执行是否符合预定的设计;关键模块是否被旁路;多个模 块并行执行时是否存在互相干扰的情况等。由于存储空间的限制和对时间开销的考虑,我们不可能将所有正确的执 行路径都列举并保存起来以考察实际的执行路径是否在这个庞大的集合里 面。但是我们通过进程代数的方法将每一个模块的中行为轨迹描述成表达 式,以及通过作用于表达式间的代数算子,将多个模块的表达式连接起来可 以描述一个进程的表达式。对于我们自行设计和实现的操作系统和软件,描 述是可行而方便的。而对于其他系统或软件,则需要通过分析其设计文档或通过跟踪学习的方式了解并描述其行为轨迹。模块的表达式如同代码一样,在其加载之后是不会改变,考虑到TPM中 PCR的存储容量的限制,我们将这些表达式以文件的形式保存在磁盘上,并 利用操作系统的签名私钥对其签名,在操作系统装载之前度量并验证其完整 性。当系统启动之后,模块表达式会被读取到内存中,该内存页设为只读, 受OS kernel保护,且其校验码会在读入内存之后被扩展入TPM的PCR中。在系统运行过程中,当一个进程被创建时,操作系统的动态度量模块会 根据进程执行的代码,读取相应的模块表达式,从而创建进程表达式,进程 表达式也会被存储在一块受保护的内存空间中,除了动态度量模块都不可以 读取这块区域(这可以由上文提到的虚拟机技术和多保护域机制保证)。同 时将进程表达式扩展入PCR中,在创建进程表达式之前,动态度量模块会首 先验证模块表达式的完整性和签名。当进程执行时,动态度量模块会记录进 程的执行日志到日志中,并会定期的对该进程进行度量,度量方法是通过 进程代数的方法将记录中未度量的实际路径与进程表达式做关于实际路径 的后继操作(即计算执行了该路径之后的进程表达式),如果运算结果仍是 一个可执行的表达式,则通过本地验证,并将新的表达式替换原有的进程表 达式,否则转到错误处理模块。在计算出新的进程表达式时,为了便于度量, 还需将表达式的校验码同时存入存储度量日志SML,以及扩展到PCR中。以 进程代数CSP为例进程表达式<formula>formula see original document page 10</formula> 实际路径<formula>formula see original document page 10</formula>路径i的验证<formula>formula see original document page 10</formula>实际路径<formula>formula see original document page 10</formula>路径2的验证<formula>formula see original document page 10</formula>显然F是可执行序列,而F'不是,所以执行路径2不能通过验证并继续 执行。对动态度量值的报告和验证过程与静态度量值的报告和验证机制类似。报告之前,度量模块要首先度量当前的执行状态,扩展SML记录和TPM的相 关PCR值。接着,将SML, PCR的签名、模块表达式和进程表达式的签名报 告给验证方。验证方首先验证签名,再利用模块表达式和进程表达式、SML 以及PCR值验证当前执行状态没有背离模块表达式的行为轨迹定义,从而认 为被验证方当前的执行状态是可信的。保证执行完整度量可用性的两个关键问题是如何选择构成度量表达式 的事件和度量的频率。本发明主要考虑将执行完整度量用在对完整性要求很 高的操组系统内核模块或服务模块,由于操作系统也是由本项组设计和实 现,因此对模块行为的描述和分析是可行的。而对于复杂的操作系统服务模 块,以及运行在其上的大量应用软件,我们也会通过采取剪枝、抽象等方法 尝试分析其行为轨迹的完整性特征。除外,对于构成模块表达式的度量事件 我们也会根据安全需求进行选择和裁减,以降低度量的空间和时间复杂度, 主要以系统调用,读写操作,跳转指令等为主。度量频率则根据模块安全级 别的不同而分别考察和定义。
权利要求
1、基于可信硬件与虚拟机的微内核操作系统完整性保护方法,其特征是采用可信硬件平台、虚拟机作为微内核可信操作系统的安全基础;采用两层保护机制通过虚拟机和微内核来确保操作系统自身以及上层服务和应用的完整性;利用可信平台实现操作系统运行过程中的动态度量。
2、根据权利要求1所述的基于可信硬件与虚拟机的微内核操作系统完 整性保护方法,其特征是所述的可信硬件平台、虚拟机作为微内核可信操作 系统的安全基础,其中的可信硬件平台是由可信根CTRM、可信平台模块TPM、 可信BI0S/EFI构成。
3、根据权利要求1所述的基于可信硬件与虚拟机的微内核操作系统完整 性保护方法,其特征是所述的两层保护机制,其第一层利用硬件虚拟化技术, 使得处于root模式的虚拟机能够捕获处于non-root模式的微内核或其它服 务进程和用户进程的关键内存访问,确保它们不会受到任何篡改;第二层利 用微内核的隔离机制和安全监控模块的控制机制来保障系统程序和用户程 序的完整性。
4、根据权利要求1所述的基于可信硬件与虚拟机的微内核操作系统完 整性保护方法,其特征是所述的利用可信平台实现操作系统运行过程中的动 态度量,在TPM中设定"执行表达式",利用TPM的硬件安全特性保证"执 行表达式"不会被修改,通过计算实际运行轨迹并于TPM中设定的"执行 表达式"进行比较来动态地度量系统的安全状态。
全文摘要
本发明涉及的是基于可信硬件与虚拟机的微内核操作系统完整性保护方法,采用可信硬件平台、虚拟机作为微内核可信操作系统的安全基础;采用两层保护机制通过虚拟机和微内核来确保操作系统自身以及上层服务和应用的完整性;利用可信平台实现操作系统运行过程中的动态度量。优点通过虚拟机技术,操作系统内核、服务及应用的资源访问操作得以有效监控。通过虚拟机捕获和监控关键的资源访问操作,以保护系统内核的完整性。受虚拟机监控和保护的系统内核又可监控上层服务与应用的资源访问操作,以保证服务和应用自身的完整性及执行的合法性。实现在系统执行过程中,对系统内核及关键服务、应用行为的动态度量和验证,使得可信链能够进一步延续。
文档编号G06F21/00GK101226577SQ20081001885
公开日2008年7月23日 申请日期2008年1月28日 优先权日2008年1月28日
发明者隽 崔, 皓 黄, 黄松华 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1