公开/公告号CN103577748A
专利类型发明专利
公开/公告日2014-02-12
原文格式PDF
申请/专利权人 北京可信华泰信息技术有限公司;
申请/专利号CN201310582258.2
发明设计人 沈军;
申请日2013-11-20
分类号G06F21/50(20130101);
代理机构
代理人
地址 100097 北京市海淀区蓝靛厂金源时代购物中心B区2#B座705、706室
入库时间 2024-02-19 22:49:04
法律状态公告日
法律状态信息
法律状态
2017-01-18
授权
授权
2014-09-17
著录事项变更 IPC(主分类):G06F21/50 变更前: 变更后: 申请日:20131120
著录事项变更
2014-08-20
著录事项变更 IPC(主分类):G06F21/50 变更前: 变更后: 申请日:20131120
著录事项变更
2014-03-12
实质审查的生效 IPC(主分类):G06F21/50 申请日:20131120
实质审查的生效
2014-02-12
公开
公开
技术领域
本发明涉及基于可信计算机网络系统,尤其涉及一种基于可信计算的动态度量方法与基于可信计算的动态度量管理系统。
背景技术
信息网络的普及在为人们的工作、学习带来便利的同时,也造成了巨大的安全威胁。病毒、木马、rootkits等在当前的计算机网络中普遍存在,传统的安全防护手段无法实现计算机安全,信息系统的机密性、完整性、可用性等无法保证。
传统的安全防护手段均采用针对攻击手段的被动防御机制,依赖于攻击手法的特征,致使其永远滞后于新的攻击,这样做只能导致系统防火墙越做越高、入侵检测越做越复杂、恶意代码库越做越大,结果仍是防不胜防。为了解决计算机和网络结构上的不安全,从根本上提高其安全性,必须从芯片、硬件结构和操作系统等方面综合采取措施,由此产生出可信计算的基本思想,其目的是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高整体的安全性。
目前的可信计算技术对于单机的信任根建设和信任链传递已有大量研究和实践。现有静态度量仅在平台启动时发挥作用,无法防止运行时恶意代码注入,不能保证系统运行时的完整性。
本发明提供Linux系统内核和用户进程的动态度量方法。动态度量用于对系统运行时的关键数据、进程运行情况进行实时度量,判断系统是否受到攻击,并告警或/和修复。动态度量的对象是平台中运行的可执行主体及与平台状态相关的关键数据,内容涉及内核关键数据、程序代码、运算数据、库文件、进程的运行状态和进程的行为等,因而更能准确描述、评价计算平台是否可信。
发明内容
本发明提供一种基于可信计算的动态度量管理系统,提高可信计算的安全可信性。
为解决上述的技术问题,本发明提供一种基于可信计算的动态度量管理系统,通过操作系统的用户管理界面和应用程序与用户交互,其特征在于,包括与操作系统交互的动态度量控制模块,动态度量控制模块控制判决模块、审计模块和度量模块,判决模块从审计模块获取最新度量结果,并根据策略判定操作系统当前是否可信,度量模块负责检测操作系统的运行时可信状态,审计模块负责分类统计、存储、上报度量结果,控制模块负责将外部管理程序的策略配置到其他各模块,将系统状态信息发送到外部管理程序,并为各模块提供对可信软件基专用硬件的访问接口。
如上所述的管理系统,其特征在于,所述度量模块驱动可信计算专用硬件,并向其他各模块提供对硬件资源的访问。
如上所述的管理系统,所述度量模块的向其他各模块提供对硬件资源的访问包括在专用硬件中存取度量信息和利用专用硬件进行复杂计算。
如上所述的管理系统,所述控制模块对动态度量模块内部与外部管理软件的交互进行集中管理,所述的交互管理是对内部控制接口的调用。
如上所述的管理系统,所述控制模块与外界管理软件的交互方式包括使用动态度量自定义的基于Linux Netlink socket和procfs文件系统的通信通道、或者使用可信软件基提供的通用消息通道。
如上所述的管理系统,所述度量模块驱动可信计算专用硬件,并向其他各模块提供对硬件资源的访问。
如上所述的管理系统,所述度量模块包括在专用硬件中存取度量信息、利用专用硬件进行复杂计算。
如上所述的管理系统,所述的度量模块包括硬件设备度量、操作系统度量、应用程序度量、程序行为度量,所述硬件设备度量针对操作系统和动态度量模块存在时已有的设备,和其他即插即用设备,检查来源、状态是否可信,所述操作系统度量针对操作系统内核关键数据在内存中的存储区域进行完整性校验值计算,所述应用程序度量在用户进程创建时,获取进程的代码段、数据段、共享程序库等关键数据的内存存储区域和基准值等信息,所述程序行为度量通过预定义和学习建立应用程序的行为库,对超出正常范围的行为发送度量结果并上报告警。
本发明还进一步提供一种基于可信计算的动态度量方法,包括如下步骤:
步骤M101:从动态度量内部数据结构中取得一个待度量的对象;
步骤M102:查看该度量对象是否有用户提供的度量方法,如果有进入步骤M103,否则进入步骤M104;
步骤M103:使用缺省度量方法计算度量值;
步骤M104:使用用户提供的度量方法计算度量值;
步骤M105:将步骤M103或M104上一步计算出的度量值与度量对象注册时提供的初始值进行比较,如果相同进入步骤M108,否则进入步骤M106;
步骤M106:查看该度量对象是否指定的缺省的数据恢复方法,如果指定了进入步骤M107,否则进入步骤M108;
步骤M107:将数据恢复到度量对象注册时提供的初始值;
步骤M108:将度量结果记录到审计模块,并根据策略输出到系统控制台;
步骤M109:将恢复结果记录到审计模块,并根据策略输出到系统控制台;
步骤M110:判断是否本轮度量所有度量对象已经度量完毕,如果所有待度量对象已度量完毕结束本流程,否则进入步骤M101。
本发明再进一步提供一种基于可信计算的动态度量的判决方法,在用户空间程序通过系统调用进入操作系统内核时触发,包括如下步骤:
步骤S101:用户空间程序为进入内核发起系统调用;
步骤S102:动态度量模块在系统调用入口截获此操作,判断本次系统条用是否在度量的范围内,如果在进入步骤S103,否则进入步骤S108;
步骤S103:根据策略确定该操作需要根据哪些度量对象的度量值计算安全状态,并通过判决模块判定当前安全状态;
步骤S104:判决模块根据输入的度量对象类型从审计模块获取最新度量结果;
步骤S105:判决模块根据策略计算出安全状态;
步骤S106:判断当前是系统对于本次操作是否安全,如果安全进入步骤S108,否则进入步骤S107;
步骤S107:如果不安全,拒绝继续执行;
步骤S108:允许本次操作执行。
本发明的基于可信计算的动态度量方法与管理系统,在内核层当中,通过系统启动静态度量就可以保证本模块的完整性,提高可信度和安全性。
【附图说明】
图1是本发明动态度量系统的软件管理系统的结构图。
图2是本发明管理系统的内部自动度量方法流程图。
图3是本发明管理系统的外部触发度量方法流程图。
【具体实施方式】
为进一步阐述本发明达成预定目的所采取的技术手段及功效,以下结合附图及实施方式、结构特征,对本发明的具体结构及其功效,详细说明如下。
本发明的模块从操作系统的初始化开始监控系统,所以,其正确运行的前提条件是:从系统硬件启动到操作系统初始化之间的可信保障、信任链传递需要由静态度量等其他安全机制提供。
如图1,粗实线和粗虚线部分为动态度量模块,细实线部分为操作系统及其应用软件。
动态度量模块包括的子模块有:控制模块、度量模块、审计模块、判决模块。操作系统入口部分拦截所有从用户空间进入内核的操作,同时通过控制模块从判决模块获取操作系统当前可信状态,可信时放过当前操作,不可信时结束当前操作。判决模块从审计模块获取最新度量结果,并根据策略判定操作系统当前是否可信。审计模块收集、上报系统各个度量点发来的度量结果。
用户空间程序通过用户管理界面配置动态度量功能和策略,并获取系统状态信息。应用程序可以通过应用程序开发接口与动态度量模块通信,提供自定义的度量项目。内核中的其他程序可通过内核开发接口与动态度量模块通信,提供自定义的度量项目。
控制模块负责将外部管理程序的策略配置到其他各模块,将系统状态信息发送到外部管理程序,并为各模块提供对可信软件基专用硬件的访问接口。
度量模块负责检测操作系统的运行时可信状态,在操作系统运行过程中动态地周期地检测内核数据是否完整。度量针对系统运行过程中,内存中内核的关键数据、用户空间进程的代码、数据和行为。度量根据策略配置周期性进行,并将度量结果发送到审计模块。
审计模块负责分类统计、存储、上报度量结果。
判决模块负责根据配置的策略和从审计模块获取的最新度量结果,判定前系统可信状态。
下面针对各模块进行详细的说明和描述。
控制模块
在系统初始化阶段,控制模块初始化其他各子功能模块。本模块对动态度量模块内部与外部管理软件的交互进行集中管理,其他模块与外界通信必须通过本模块。
本模块与动态度量内部其他模块的交互体现为内部控制接口的调用。本模块与外界管理软件的交互有多种方式可选,可以使用动态度量自定义的基于Linux Netlink socket和procfs文件系统的通信通道,也可以使用可信软件基提供的通用消息通道。
度量模块
本模块负责驱动可信计算专用硬件,并向其他各模块提供对硬件资源的访问。包括:在专用硬件中存取度量信息、利用专用硬件进行复杂计算等。
度量模块的功能包括:硬件设备度量、操作系统度量、应用程序度量、程序行为度量。对系统中各类关键数据度量是通过启动操作系统提供的内核守护线程周期性自动执行的。执行周期可通过策略配置。各类度量中的完整性值计算可由软件完成,也可通过控制模块交给可信计算专用硬件完成。使用者可以使用本模块提供的缺省方法作为度量值计算方法,也可以提供自己的度量值计算方法,例如:MD5、SHA1等完整性校验值算法。
硬件设备度量针对操作系统和动态度量模块存在时已有的设备,和其他即插即用设备(包括:存储设备、控制设备、网络设备等),检查来源、状态是否可信。检查方式包括:比较当前设备所在物理位置、生产厂商、序列号、关键寄存器值是否与初始化时获取的或既定的基准值一致。
操作系统度量针对操作系统内核关键数据在内存中的存储区域进行完整性校验值计算,与基准值进行比较,将度量结果发送到审计模块,并根据策略告警、恢复数据到基准值。关键数据缺省包括,度量模块中定义的对操作系统安全运行至关重要的数据,例如:中断描述符表,系统调用表。内核开发者也可以通过控制模块调用本模块提供的开发接口,向本模块注册开发者关心的数据。基准值是本模块在操作系统产生相应数据时或外部用户注册关键数据时获取的第一手数据,是动态度量比较和恢复的依据。
应用程序度量针对用户空间的进程。度量模块在用户进程创建时,获取进程的代码段、数据段、共享程序库等关键数据的内存存储区域和基准值等信息。
程序行为度量通过预定义和学习建立应用程序的行为库,对超出正常范围的行为发送度量结果并上报告警。
审计模块
审计模块负责分类统计、存储、上报度量结果。本模块不主动从其他模块收集审计信息,只接收度量模块发来的度量结果。本模块周期性地向外部管理程序发送历史审计结果,判决模块可从本模块获取最新审计结果。
本模块维护自己的内存中的审计数据缓冲区,可以根据策略将这些信息保存到宿主机或可信计算专用硬件的存储器中。
本模块中存储的审计信息根据信息的类型、级别分类。收到审计信息时,根据级别输出到控制台。向外发送时,可以根据需要发送缓冲区中的最新信息或全部信息。
判决模块
判决模块向控制模块提供判决结果。根据策略配置,获取度量结果并计算出当前处于可信或不可信状态,并返回给控制模块。
本模块根据策略确定判决范围、判决方式。
度量流程
从系统初始化开始,本模块自动地周期性地度量内核和用户进程的关键数据。度量周期、度量方法、数据恢复方法都可以作为策略进行配置,本模块提供各个步骤的缺省处理方法。例如:缺省度量方法是计算当前度量数据CRC32校验值,并与度量项目初始化时取得的CRC32校验值比较,如果不一致认为度量失败。请参阅图2,内部自动度量流程包括如下步骤:
步骤M101:从动态度量内部数据结构中取得一个待度量的对象;
步骤M102:查看该度量对象是否有用户提供的度量方法,如果有进入步骤M103,否则进入步骤M104;
步骤M103:使用缺省度量方法计算度量值;
步骤M104:使用用户提供的度量方法计算度量值;
步骤M105:将步骤M103或M104上一步计算出的度量值与度量对象注册时提供的初始值进行比较,如果相同进入步骤M108,否则进入步骤M106;
步骤M106:查看该度量对象是否指定的缺省的数据恢复方法,如果指定了进入步骤M107,否则进入步骤M108;
步骤M107:将数据恢复到度量对象注册时提供的初始值;
步骤M108:将度量结果记录到审计模块,并根据策略输出到系统控制台;
步骤M109:将恢复结果记录到审计模块,并根据策略输出到系统控制台;
步骤M110:判断是否本轮度量所有度量对象已经度量完毕,如果所有待度量对象已度量完毕结束本流程,否则进入步骤M101。
判决流程
在用户空间程序通过系统调用进入操作系统内核时会触发如下流程。动态度量模块在系统调用入口对所管理的系统调用进行拦截。通过判决模块当前系统的安全状态,根据策略决定在当前的安全状态下是否允许当前操作。对不允许的系统调用返回错误并告警。
步骤S101:用户空间程序为进入内核发起系统调用;
步骤S102:动态度量模块在系统调用入口截获此操作,判断本次系统条用是否在度量的范围内,如果在进入步骤S103,否则进入步骤S108;
步骤S103:根据策略确定该操作需要根据哪些度量对象的度量值计算安全状态,并通过判决模块判定当前安全状态;
步骤S104:判决模块根据输入的度量对象类型从审计模块获取最新度量结果;
步骤S105:判决模块根据策略计算出安全状态,即:安全或者不安全;
步骤S106:判断当前是系统对于本次操作是否安全,如果安全进入步骤S108,否则进入步骤S107;
步骤S107:如果不安全,拒绝继续执行;
步骤S108:允许本次操作执行。
综合上述,本发明的基于可信计算的动态度量方法与管理系统,实现以下技术效果:
1. 测量和评估系统预期描述和系统实际状态的符合程度,判定系统的健康状态。
2. 检测恶意代码对系统的修改。
3. 如果动态度量发现系统异常,可根据需要将关键数据恢复到原始状态。
4. 作为访问控制的可信链接的基础设施。访问控制实施的过程中,检测主体、客体的状态是否可信。
5. 限制进程的非预期行为。
6. 既可以在独立的可信计算硬件环境中工作,也可以嵌入到操作系统中。
7. 完全工作在内核层当中,系统启动静态度量就可以保证本模块的完整性。
8. 从系统启动开始对宿主操作系统实施完全的度量,而非响应时间式的度量。
本发明的上述实施例仅用以说明本发明的原理和结构,本领域技术人员据此所作任何之显而易见之变换实施者,均在本发明的保护范围之内。
机译: 基于可信计算的远程投票管理系统和方法
机译: 具有电力管理系统的信息处理设备,该电力管理系统基于动态选择的用户优先顺序设置来动态改变操作条件
机译: 基于API的基于API的软件模糊度度量方法及系统