论文部分内容阅读
经过数十年发展,尤其是随着近几年高速通信网络的普及,信息产业已经开始由“提供应用”向“提供服务”转变。在这种转变中,一个明显的特征是直接面向用户的应用开发者急剧减少,绝大部分应用都提交给特定的应用分发平台,由平台向用户推送,如苹果公司的iTunes、Google公司的GooglePlay、微软公司的微软应用商店等。随之而来的,应用版权保护、用户信息保护及平台安全防护成为首要解决的问题,而可信计算技术为解决此类问题提供了强有力的手段。 可信计算技术体系中,可信软件基(Trusted Software Base,TCB)立足于可信硬件提供的密码服务,为系统的安全可靠运行提供保障。可信度量是可信软件基的核心功能,为上层可信控制、可信证明、可信网络连接等具体功能的实现提供基础支撑。可信度量技术分为静态度量和动态度量两个方面。静态度量是指在信息系统运行过程中,在实体进入系统前(包括硬件启动、软件启动、人员登入、网络接入等),对实体初始状态进行的度量;动态度量是指在系统运行态中,对实体状态及行为进行的度量。动态度量实现的关键是对系统正常运行流程建模,在此模型下,对系统中的状态转换及行为权限进行统一的检测和判别,从而防止系统中出现越权操作、防止系统漏洞被攻击者利用,保证信息系统运行安全。 动态度量技术能够比较有效的抵御APT攻击,对服务器系统、云基础设施等需要长时间不间断稳定运行的信息系统环境具有特别重要的意义。 针对信息系统的动态可信度量需求,本文提出可信策略驱动的动态度量体系结构,并针对实现此体系结构需要突破的相关关键技术进行了研究。具体研究内容包括对已有动态度量模型进行改进;基于XML设计一种针对可信策略的表述语言;动态度量机制在国产Linux操作系统中的实现方法三个方面。最终基于某项目实现了可信度量原型系统,对动态度量模型和部分关键技术进行了功能验证与性能分析。具体而言,本文的主要工作包括: 1、提出可信计算系统动态度量体系结构 此体系结构中,可信管理平台能够利用策略语言编译描述应用行为及安全需求,准确定义应用度量点、度量对象、度量方法、判决依据,生成控制规则、度量规则和判决规则并下发到可信终端的可信软件基。可信软件基依据可信管理平台生成的控制规则、度量规则和判决规则,在指定时机对指定目标进行度量,按度量结果判决系统运行状态的可信性,并将控制结果反馈给可信管理平台的审计系统。 同时,在此体系结构中,策略的生成和执行相对分离,在系统特征出现变化时,仅需要最小限度的修正和维护工作。 2、改进动态度量模型 针对原有动态度量模型中度量的最小单位为进程,对插件等运行于宿主进程内的功能组件支持能力较差的情况,本文将动态度量的最小单位细化为功能模块,一个功能模块可以是一个独立应用(进程),也可以是一个插件程序(没有独立进程,插入主程序进程内执行。)以提供更好的度量力度和审计粒度。 原有动态度量模型主要关注进程空间中代码段、栈空间、堆等进程内部对象的构成、状态和操作,没有深入分析进程间的状态关联关系,本文改进的动态度量模型中增加了功能模块间依赖关系和调用关系的度量和验证能力。 本文改进的动态度量模型中建立由TPCM到可信软件基到上层应用的运行时动态信任支撑链条,保证系统运行时可信。 3、研究支持动态标记语言的可信计算系统动态度量机制在国产Linux操作系统中的相关技术与实现方法。 1)通过原子化操作技术,支持hotpatch、JIT编译(Just-In-Time compile)等运行时自修改代码行为; 2)设计与实现可信软件基度量判决API,支持功能模块主动调用可信软件基对交互对象的可信状态进行动态度量,有效杜绝中间人攻击和身份仿冒攻击。同时解决度量时机难以确定问题和内核层控制机制拦截插件加载可能导致应用崩溃的问题, 3)设计动态度量标记语言DMML,通过可信策略精确描述应用行为及安全需求,解决“什么时候触发度量、度量谁、如何度量及度量结果如何处理”的问题。为此,本文设计了动态度量标记语言(DMML,DynamicMeasurement Markup Language)作为策略描述工具,实现应用行为在可信软件基中的映射。 4、在国产Linux系统环境下设计并部分实现了原型系统,通过大量恶意代码实例对原型系统的功能和性能进行了验证,并对测试数据进行了比对分析。