P 所有的特征值为 CP。
定义 6 完整性验证函数:fvo→true false,对任意的o∈O,fvotrue 当且仅当客体 o 的完整性没有被破坏。
2.2 模型规则 规则 1 进程判别规则为: trust iff Detpi true ∧ C pi ∈ TP fppi suspicious iff Detpi true ∧ Cpi TP malicious iff Detpi false 使用监控机对进程进行监控,若进程 pi 产生的行为属于修改行为,对 pi 使用检测函数 Detpi进行检测,若 pi 通过了 图1 本文度量架构检测且 pi 的特征值存在于可信策略中,pi 为 trust,允许 pi 的 程序在载入时,首先要通过度量模块度量其完整性,在 若 但运行; pi 通过了检测, pi 的特征值不存在于可信策略中, 完整性度量结果与基准值比较后,如度量结果与基准值相同,pi 为 suspicious,将 pi 转到隔离模块运行;若 pi 没通过检测, 则它可获得信任并得到控制权。
这属于静态度量。
pi 为 malicious,撤销 pi。
在程序加载后,为了防止系统遭到恶意攻击和杜绝进程 规则 2 进程转化规则为: 的某些修改行为,虚拟机监控器对运行在计算机平台上的进 1 对 于 fppitrust , 若 fupTP∧fppisuspicious , iff 程进行监控。
进程的修改行为首先会被虚拟机监控器截获,fvofalse。
对于可信进程,在进程修改行为结束后,触发完 在经过分析和处理并被判断为安全的情况下才允许其执行。
整性验证机制对系统进行完整性度量,验证其完整性;若其 该方法使用 4 个模块来实现动态的完整性度量。
检测模块使完整性遭到破坏,则需要修复其完整性,对可信策略进行更 用用户定制的安全策略检查进程的行为是否被许可,并基于新,并将进程 pi 定义为 suspicious,转到隔离模块运行。
安全策略判决进程是否属于可信进程;度量模块的作用是对 2若进程 fppisuspicious,在以下情况下,fppi可以发 进程的完整性进行度量;完整性验证模块验证系统完整性是生转化: 否受到损害,隔离模块实现对系统的保护,以保证在检测模 1在隔离模块中,通过监控发现其有可能会对系统安全 块检测到异常时所有已发生的操作不会对系统造成影响。
造成损害,定义 fppimalicious。
3.1 检测模块 2对 pi 进行一段时间的监控发现系统各项运行正常,更 检测模块通过安全策略对当前的进程进行检测。
该模块新可信策略,定义 fppitrust。
首先通过安全规则检查可疑进程产生的某个行为是否符合规2.3 安全公理 则,这里安全规则可以由用户定制,也可以使用默认规则。
根据 TCG 规范对“可信传递”进行描述,如果系统启动 对于不符合规则的进程,拒绝进程的当前行为,将其列为恶时的初始状态是可信的,那么在其他任意时刻,只要确保主 意进程。
对于符合规则的进程通过安全策略中的可信策略进体所执行代码的完整性没有被破坏,就可保证主体所执行代 行检查,判断进程是否属于可信进程。
可信策略是由系统策码的安全,从而确保整个系统的完整性。
由此,可得到主体 略制定者制定的,列出系统所有可信的可执行代码文件的路完整性检验的公理: 径及其完整性校验值。
在这里,规定若进程符合可信策略的 公理 如果系统在初始状态是完整的, 并且此后每一次系 要求,那么视其为可信进程,允许其执行。
否则视其为可疑统变化后也是完整的,那么系统在证明时刻是完整的。
进程,并将它转到隔离模块执行。
根据以上公理,很容易得出: 3.2 度量模块 定理 如果系统在某一时刻 t0,fvotrue,并且从 t0 时刻 度量模块的作用是对系统的完整性进行度量。
在系统内到 t1 时刻之间的每一次系统变化后,fvotrue,那么在 t1 时 部,运行在计算机平台中的指令代码可分成 2 类:第 1 类包80 计 算 机 工 程 2012 年 1 月 20 日含内核映像文件和内核模块操作系统内核代码,内核映像文 将该程序的摘要值存储于 PCR 中,这里选择 PCR16 作件在系统开机的时候被载入到内存, 很稳定地驻留在内存中; 为默认的寄存器,选择“Read PCR”-“Read PCR ALL”选第 2 类是应用程序的指令代码,用户进程代表应用程序的执 项,看摘要值是否存入 PCR 中,结果如图 4 所示。
由图 4 可行。
度量模块度量的对象就是以上 2 类信息。
以看出,文件摘要值已经存入 PCR16 中。
3.3 完整性验证模块 可信进程的修改行为有时可能会对系统的完整性造成损害,因此,在每次可信进程的修改行为完成后,触发完整性验证模块执行完整性校验,校验的目的是防止系统在安全行为中受到非正确的修改,以保证系统的完整性。
在这个过程中,需要借助模型的安全审计功能,为信息的完整性检验创建日志。
一旦系统完整性被篡改,需要运用模型的安全审计功能对系统完整性进行恢复。
3.4 隔离模块 隔离模块的主要功能是防止可疑进程执行了影响其他正常进程的操作。
本文通过系统虚拟化技术实现隔离。
具体过程是对于每个涉及文件系统操作的系统调用,隔离模块首先创建一份被操作文件的影像文件,然后把所有相关的读写操作都引向该影像文件,所有由该进程衍生出的新进程也都只能访问这个影像文件系统。
如果在整个过程中进程运行正常,CPU、内存、I/O 的使用情况或者程序调用的动态链接库DLL、模块、系统进程等均正常,那么所有对影像系统的操 图4 PCR 值读取作需要被提交到主文件系统。
如果在此期间没有发生与其他 选择“PCR Compare”选项,验证文件完整性度量的特进程的冲突,那么修改将被直接提交。
当冲突发生时,2 个 征值。
本文程序在默认情况下,将文件的第 1 次度量特征值版本的文件都会被保存,并被提交给用户判断应该进行何种 作为标准特征值,与当前度量的特征值进行比较。
由图 5 可操作。
在这里,TPM 提供平台签名和硬件防记录篡改服务, 以看出,标准特征值与当前度量的特征值相同,说明文件的以保证完整性度量结果来源的真实性。
完整性没有遭到破坏。
4 模型实现 TPM 是可信计算平台完整性度量机制的重要基础性硬件。
因当前带有 TPM 模块的可信计算机价格过高,而且不能直接应用在实验研究过程中,所以本实验采用 TPM-emulator软件模拟器来模拟真实的 TPM 硬件, 对所提出的完整性度量模型进行相关实现。
实验所用的操作系统为 Ubuntu Linux,版本为 10.04,内核为 2.6.32。
所需开源软件为 gmp-5.0.1、 图5 PCR 验证cmake-2.8.2、tpm_emulator-0.7.1、jTSS_0.6 和 jdk1.6.0_22。
由于时间关系,该程序现阶段主要实现了对本地文件简 在 Ubuntu Linux 系统下,通过以上开源软件搭建可信平 单的完整性度量、存储、验证。
下文主要工作将在实现客户台。
可信平台搭建成功后,使用 Java 语言通过调用 TPM- 端与服务器完整性度量的基础上,对其进行改进,实现本文emulator 已有的程序代码功能对模型的相关功能进行实现。
所提出的动态完整性度量模型。
该程序实现了对本地文件简单的完整性度量、存储、验证; 5 模型分析并可将当前的本地的 PCR 值发送给远程服务器。
5.1 安全性分析 启动客户端程序如图 2 所示。
静态完整性度量机制对软件进行的完整性度量是在程序 加载到内存之前完成的,而在程序加载后,并没有采取相应 的机制保护系统的完整性,程序运行过程中因恶意进程的入 侵,系统的完整性可能会遭到破坏,并且静态完整性度量机 制存在 TOU-TOC 问题。
DIM 模型对进程的行为进行监控, 图2 客户端界面 若其行为为修改行为,触发完整性度量机制对其进行完整性 选择“Extend PCR”-“select file”选项,选择系统的任 度量,防止了在完整性度量后和完整性度量结果返回前这段意一文件对其进行完整
上一篇:
基于分组密码的消息完整性认证技术的研究与应用
下一篇:
还记得,那年的风车吗?