专利名称:一种动态可信度量方法及安全嵌入式系统的制作方法
技术领域:
本发明涉及一种动态可信度量方法及安全嵌入式系统,属于工业控制安全技术领域。
背景技术:
一直以来,信息安全的主要技术是防火墙、入侵检测和杀毒软件。传统的这三种信息安全技术是以“防外”为重点,与目前的信息安全问题主要源自内部(用户行为等)的实际情况不相适应,尤其是工业控制系统,其更严重的攻击来自内部物理层的攻击,传统的信息安全手段对这类攻击的预防已无能为力;另外,人们应对信息安全问题的注意力主要集中在对服务器和网络设备的保护上,都是被动的封堵的办法,忽略了对终端的主动的保护,这就造成了执行代码的可被修改,病毒程序的可被植入并运行;超级用户权限的可被窃取;私密信息的可被读取等漏洞。而近年来,嵌入式系统被广泛应用在工业领域中,但是嵌入式系统在最初的设计时没有过多地考虑其安全特性,使得现有的安全方案大多基于软件,缺乏硬件层面的支持。因此,越来越多的研究开始转向基于硬件的安全方案,其中,比较多的是在硬件平台上引入安全芯片(可信平台模块TPM)来提高终端系统的安全性,即可信计算技术。可信嵌入式系统设计的目标是使系统运行的各种固件和软件具有可信赖性,全子系统从一个硬件组成的信任根源开始,从系统上电到操作系统上层软件的运行形成信任链,每一个环节都具有完整性检测、存储保护和状态报告等机制,以确保系统运行的软件实体在该环节中不被非法改变。现有的TCG (可信计算组织)度量方法仅提供程序装载时的度量,不能响应实时运行攻击。现在有不少研究机构和大学对可信度量技术进行了研究,从多个角度对可信度量进行探索,如IMA度量架构、基于信息流的度量(PRIMA)。IMA在操作系统载入到内存时,对程序文件进行度量,但由于它在系统调用中插入了度量点,因而会产生大量冗余;PRIMA对此进行了改进,与SELinux结合,使用了策略规约的方法减少了冗余度,但IMA和PRIMA从本质说,仍然是静态度量系统;LKIM等人研究基于内核的上下文检查的度量方法,它采用静态度量加上状态变量的方式,但并没有实现真正的动态度量,而且它度量针对的Iinux 内核,对普通的进程无能为力;基于属性的度量不同于此前基于二进制的度量,其度量方式不再是对被度量对象的二进制代码进行哈希运算得到的摘要,而是确定被度量对象是否满足需要的安全属性,但缺点是,属性一般依赖于应用程序和其运行环境,可扩展性比较差。 这些方法要求监测的应用程序的源代码被限定在特定的运行环境中,在动态性和实时性方面都有很大缺陷,缺乏灵活性,不能有效阻止或探测实时攻击。目前大多数商用操作系统将内核程序设计成拥有超级用户权限,而且内核程序使用共享线性内存以便提高系统效率,这导致了仅仅提供软件加载验证的TCG结构容易遭受T0CT0U攻击,该攻击利用程序度量和程序使用这个时间差,对程序的内存进行篡改, 导致TPM所提供的平台信息无法反映出实际的运行情况(采用内存监控机制,发现内存被修改,攻击事件记录,通知度量模块进行响应)。目前出现了一种新的实时攻击,即被称为返回导向编程攻击技术,它不需要注入新的代码,而是使用已经存在进程内存空间的代码;这种新的攻击能够覆盖堆栈中的返回地址,指向程序或系统库中的现有的代码片段,现有的保护机制如数据执行保护(DEP)已经无能为力。这些实时攻击使得信息系统面临这极大的威胁,特别是工业控制系统,这些攻击可能造成更严重的财产和生命安全,目前还没有完善的解决方案。
发明内容
本发明的目的在于,提供一种动态可信度量方法及安全嵌入式系统,能有效地探测和防御复杂实时攻击。并且能够主动探测和防御内部物理层的攻击,实现安全嵌入式系统平台。为解决上述技术问题,本发明采用如下的技术方案一种动态可信度量方法,包括以下步骤
Si,硬件层通过TPM芯片和传统硬件重新设计可信BIOS,信任链从TPM安全芯片、可信 BIOS、可信OS内核、嵌入式软件栈传递到应用程序,实现动态可信度量模块DTM的可信启动;也可以将CRTM(CRTM是平台执行RTM的执行代码,在一个可信平台中有三个可信根度量可信根RTM、存储可信根RTS、报告可信根RTR)集成到TPM中,使得CRTM不直接与嵌入式设备的主处理器进行交互,避免了平台异构性对CRTM带来的影响;
S2,应用层度量请求模块根据来自安全设备的可疑事件及本地安全策略需求生成度量请求信息,并将其格式化,发送度量请求给内核层的动态可信度量模块DTM,激活动态可信度量模块DTM;
S3,动态可信度量模块DTM对系统进程或模块进行可信度量并响应。前述的一种动态可信度量方法中,所述实现动态可信度量模块DTM的可信启动的步骤包括
S21,启动TPM芯片进行初始化;
S22,由可信根依次对BootLoader、OS和应用程序3个实体进行完整性度量,如果所有被度量实体的完整性没有被破坏,就转到步骤S23 ;如果实体的完整性被破坏,就转到步骤 S24 ;
S23,将完整性度量值存储在TPM内部的平台配置寄存器(PCR)中,系统控制权交给 BootLoader开始启动,然后启动0S,最后启动应用程序;
S24,由上述实体的备份替换上述实体,再重新度量该实体的完整性,只有3个实体的完整性都通过验证之后,才能正常启动,否则拒绝启动执行。前述的一种动态可信度量方法中,所述步骤S3包括 S31,当监测到度量请求时,将DTM模块插入内核;
S32,判断度量目标程序是进程还是内核模块,根据其不同的数据结构分别进行处理; 由于进程和模块度量的关键数据(主体)不完全相同,因此其度量处理的过程有所不同,需要分别进行处理;
S33,对程序的静态二进制进行度量,根据跟踪控制策略重写程序二进制代码; S34,程序进程被激活,开始对程序进行动态跟踪,跟踪代码在相应的数据段存储跟踪数据;
S35,随着跟踪事件的发生,跟踪代码动态地更新跟踪数据;
S36,将这些跟踪数据交与TPM芯片做散列值,并由TPM芯片进行签名,将散列值和签名存入事先定义好的数据结构中;
S37,处理并响应接收的度量信息。前述的一种动态可信度量方法中,所述系统与其他终端或设备进行远程认证,如果该终端或设备也扩展了 TPM安全芯片,系统与该终端或设备之间通过各自的TPM模块相互进行可信报告。远程认证终端服务程序可以与访问控制模块相交互,通过远程认证进行双方的可信报告,如果通过验证则生成会话标志,可以进行会话,否则中断会话。前述的一种动态可信度量方法中,当监测到内存更改时就激活动态可信度量模块 DTM,对系统进行动态可信度量,可以作为度量请求的一种补充形式,实现真正的动态度量, 采用虚拟技术,可以不改动硬件,可扩展性较好。前述的一种动态可信度量方法中,向嵌入式系统加载新的软件和升级现有的软件,并由中心管理平台统一管理。主要包括系统升级、加载新的操作系统核心模块、升级已有的操作系统核心模块、加载新的应用程序、升级已有的应用程序等,通过嵌入式终端中引入TPM构建安全嵌入式系统,通过应用基于TPM的身份鉴别、动态可信度量、数字签名等技术来保障系统升级的安全可靠,从可信的角度考虑操作的安全性、可靠性及可恢复性。实现前述方法的一种安全嵌入式系统,包括硬件层、内核层(OS层)和应用层(用户层);
其中,硬件层包括ARM处理器、BIOS系统、外围设备和TPM模块,通过扩展TPM安全芯片作为信任根,信任链从TPM安全芯片、可信BIOS、可信OS内核、嵌入式软件栈传递到应用程序;ARM处理器具有高性能、低功耗的显著优点;外围设备包括存储器、输入设备、输出设备、外围接口、硬盘、电源、内存卡及其他嵌入式固件等;TPM具有密钥管理和配置管理等特性,能够被用于平台的完整性验证,用户身份认证和数据签名等,其内部还包括一组被称为 PCR (平台配置寄存器)的易失性存储器,被用来作为完整性度量的依据;在基于ARM处理器的嵌入式系统中,通过SPI接口并基于FPGA来扩展TPM芯片,通过FPGA实现信号间的转换,负责特殊LPC总线周期的生成。内核层包括度量接口模块和动态可信度量模块DTM ;TPM接口可以采用LPC总线接口,也可以通过SPI接口采用FPGA来扩展TPM芯片。应用层包括用来激活动态可信度量模块DTM的度量请求模块,位于应用层的用户空间,主要接收来自远端询问、访问控制等安全设备的可疑事件以及本地安全策略需求等, 并将其格式化;度量请求模块与度量接口模块进行交互。前述的一种安全嵌入式系统中,所述动态可信度量模块DTM包括 程序加载引擎,用于对系统进程或模块进行静态可信度量;
跟踪度量策略模块,用于预先定义所有需要度量的程序二进制的跟踪事件,以及与不同进程及模块相匹配的模式和跟踪代码;
跟踪实现组件,用于对进程或模块的二进制代码进行重写,即附加跟踪代码,用来实现对程序动态跟踪;跟踪实现组件的实现可以采用基于信息流的动态污点分析技术、基于数据流跟踪和库函数识别技术等;跟踪度量引擎,用于对系统进程或模块进行动态可信度量,实现程序动态事件跟踪及跟踪数据维护;负责与TPM模块的交互,将跟踪数据交与TPM芯片做散列值,并由TPM进行签名,将散列值和签名存入事先定义好的数据结构中;
度量响应引擎,用于根据度量结果进行判断并响应,将度量信息组装,发送回远端或本地。前述的一种安全嵌入式系统中,内核层还包括认证代理模块,与动态可信度量模块进行交互,用于系统与其他终端或设备进行远程认证,如果该终端或设备也扩展了 TPM 安全芯片,系统与该终端或设备之间通过各自的TPM模块相互进行可信报告,如果通过验证则生成会话标志,可以进行会话,否则中断会话,这样大大增加了通讯的安全性。前述的一种安全嵌入式系统中,内核层还包括内存监视器,用于监视内存更改,当监测到内存更改时就激活动态可信度量模块DTM,对内核进行动态可信度量,可以作为度量请求的一种补充形式,实现真正的动态度量,采用虚拟技术,可以不改动硬件,可扩展性较好。前述的一种安全嵌入式系统中,内核层还包括可信在线升级模块,与动态可信度量模块进行交互,用于向系统加载新的软件和升级现有的软件,并由中心管理平台统一管理。主要包括系统升级、加载新的操作系统核心模块、升级已有的操作系统核心模块、加载新的应用程序、升级已有的应用程序等,通过嵌入式终端引入TPM构建安全嵌入式系统,通过应用基于TPM的身份鉴别、动态可信度量、数字签名等技术来保障系统升级的安全可靠, 从可信的角度考虑操作的安全性、可靠性及可恢复性。与现有技术相比,本发明从可信硬件层、可信操作系统层和可信应用层这三个层上来保证嵌入式系统的安全,动态可信度量架构考虑了程序装载可信度量技术、动态跟踪技术、内存监视、远程认证、访问控制策略等技术,来构建安全嵌入式系统,能够探测和防御内部攻击及实时攻击,实现安全嵌入式系统平台。本发明采用嵌入式硬件扩展TPM安全芯片的硬件保护策略,通过BIOS静态启动度量,扩展到可执行程序加载度量,再到进程、模块及内存的动态度量,以及终端之间的远程认证,并与访问控制、入侵检测等安全策略相配合,采用全方位的保护策略,对系统从加电到运行进行实时度量和跟踪,能够有效防御 T0CT0U、返回导向编程ROP等复杂实时攻击。采用动态二进制数据流跟踪分析技术,很好的解决程序源代码不易获得的问题, 它通过将来自不安全途径的数据打标签,并跟踪观察其在内存中的行为,只要增加探测的规则就可以广泛的探测各种攻击行为,比较典型的如缓冲区溢出攻击、ROP攻击。跟踪代码可以采用二进制方式来实现,是由于目标是跟踪缓冲区溢出攻击、ROP攻击的一般特征,而不是特定程序的行为,因此不需要知道程序的源代码。现有的采用加密技术的嵌入式系统中,密钥通常被存储在不安全的存储器中,很容易被窃取。本发明基于软硬件相结合的技术,通过在嵌入式平台内部引入可信硬件设备 TPM安全芯片作为系统安全性的支撑模块,对系统引导及运行过程所需要的主要密码运算和安全存储提供支持。而TPM则可以将各种密钥及敏感数据存放在芯片内部和其他组件隔离的存储器内,从根本上摆脱了对操作系统的依赖,实现了数据的物理隔离。此外,TPM的加解密功能以及安全存储能力,可以在不占用嵌入式设备原有资源的情况下为系统提供安全保障,通过其低功耗、高性能的特点也刚好满足嵌入式系统的需求。
图1是本发明的一种实施例的动态可信度量架构图; 图2是本发明的一种实施例的总体架构图3是本发明的一种实施例的工作流程图。下面结合附图和具体实施方式
对本发明作进一步的说明。
具体实施例方式
具体实施例方式一种利用前述系统的可信度量方法,包括以下步骤
Si,硬件层通过TPM芯片和传统硬件重新设计可信BIOS,信任链从TPM安全芯片、可信 BIOS、可信OS内核、嵌入式软件栈传递到应用程序,实现动态可信度量模块DTM的可信启动;也可以将CRTM(CRTM是平台执行RTM的执行代码,在一个可信平台中有三个可信根度量可信根RTM、存储可信根RTS、报告可信根RTR)集成到TPM中,使得CRTM不直接与嵌入式设备的主处理器进行交互,避免了平台异构性对CRTM带来的影响;
S2,应用层度量请求模块根据来自安全设备的可疑事件及本地安全策略需求生成度量请求信息,并将其格式化,发送度量请求给内核层的动态可信度量模块DTM,激活动态可信度量模块DTM;
S3,动态可信度量模块DTM对系统进程或模块进行可信度量并响应。如图2所示,实心箭头标识了安全嵌入式系统信任链的传递过程,安全嵌入式系统信任链包括TPM安全芯片、可信BIOS、可信OS内核、嵌入式软件栈和应用程序。TSS (可信软件协议栈)是对可信度量计算平台提供支持的软件,是对使用TPM功能的应用程序提供一个唯一的入口,这样应用程序就可以通过调用TSS中的API函数(可信服务提供模块TSP) 方便地使用TPM中的功能,包括TPM的同步访问、管理TPM的资源、适当的时候释放TPM的资源等。TSS从结构上可分为三层,自下至上分别为TDDL、TCS和TSP,全部运行于用户模式。其中,TDDL (TPM驱动程序库)主要功能是通过提供标准接口,屏蔽各种不同安全芯片的差异,在用户模式和内核模式之间提供一个通信通道;TCS (TSS核心服务)是用户模式的系统进程,通常以系统服务形式存在,它通过TDDL与安全芯片进行通信,除提供安全芯片所具有的所有原始功能外,还提供如密钥管理等功能。通过TCS的接口,上层应用可以非常直接、简便地使用安全芯片提供的功能;TSP (TSS服务提供者)是用户模式的用户进程,位于TSS的最上层,它为应用程序提供了丰富的、面向对象的接口,使应用程序可以更加方便地利用安全芯片提供的功能结构建所需要的安全特性。嵌入式终端的资源有限,功能普遍单一,其应用领域相对比较集中,因此某一类型的嵌入式设备对TSS的功能需求相对固定, 因此,可以将嵌入式TSS的功能模块化,仅向上层提供某种功能的接口,应用程序可以按照自身需要选择有用的TSS功能,可以通过对现有的TSS进行剪裁和改造来实现。所述实现动态可信度量模块DTM的可信启动的步骤包括 S21,启动TPM芯片进行初始化;
S22,由可信根依次对BootLoader、OS和应用程序3个实体进行完整性度量,如果所有被度量实体的完整性没有被破坏,就转到步骤S23 ;如果实体的完整性被破坏,就转到步骤 S24 ;S23,将完整性度量值存储在TPM内部的平台配置寄存器(PCR)中,系统控制权交给 BootLoader开始启动,然后启动0S,最后启动应用程序;
S24,由上述实体的备份替换上述实体,再重新度量该实体的完整性,只有3个实体的完整性都通过验证之后,才能正常启动,否则拒绝启动执行。所述步骤S3包括
S31,当监测到度量请求时,将DTM模块插入内核;
S32,判断度量目标程序是进程还是内核模块,根据其不同的数据结构分别进行处理; 由于进程和模块度量的关键数据(主体)不完全相同,因此其度量处理的过程有所不同,需要分别进行处理;
S33,对程序的静态二进制进行度量,根据跟踪控制策略重写程序二进制代码; S34,程序进程被激活,开始对程序进行动态跟踪,跟踪代码在相应的数据段存储跟踪数据;
S35,随着跟踪事件的发生,跟踪代码动态地更新跟踪数据;
S36,将这些跟踪数据交与TPM芯片做散列值,并由TPM芯片进行签名,将散列值和签名存入事先定义好的数据结构中;
S37,处理并响应接收的度量信息。所述系统与其他终端或设备进行远程认证,如果该终端或设备也扩展了 TPM安全芯片,系统与该终端或设备之间通过各自的TPM模块相互进行可信报告。远程认证终端服务程序可以与访问控制模块相交互,通过远程认证进行双方的可信报告,如果通过验证则生成会话标志,可以进行会话,否则中断会话。当监测到内存更改时就激活动态可信度量模块DTM,对系统进行动态可信度量,可以作为度量请求的一种补充形式,实现真正的动态度量,采用虚拟技术,可以不改动硬件, 可扩展性较好。向嵌入式系统加载新的软件和升级现有的软件,并由中心管理平台统一管理。主要包括系统升级、加载新的操作系统核心模块、升级已有的操作系统核心模块、加载新的应用程序、升级已有的应用程序等,通过嵌入式终端中引入TPM构建安全嵌入式系统,通过应用基于TPM的身份鉴别、动态可信度量、数字签名等技术来保障系统升级的安全可靠,从可信的角度考虑操作的安全性、可靠性及可恢复性。如图3所示,嵌入式平台上Boot Loader严重依赖于硬件平台,必须在考虑嵌入式平台的基础上对Boot Loader进行重新设计。对于采用ARM+ Linux开发平台来说,Boot Loader通常分为两个阶段第一个阶段通常是一段代码,包括基本硬件初始化,为第二阶段准备RAM空间,复制Boot Loader的第二阶段代码到RAM,设置堆栈,之后跳转到第二阶段的程序入口点;第二阶段通常是C程序,包括初始化本阶段要用到的硬件设备,检查系统内存映射,将内核影像和根文件映像从Flash读到RAM,为内核设置启动参数,最后调用操作系统内核。系统首先进行硬件BIOS可信引导过程。进行以下处理硬件平台和TPM同时加电, TPM初始化,首先度量第一阶段关键代码的完整性;对硬件平台上各种硬件进行初始化,并度量其组成与配置;对第二阶段程序代码进行度量,为第二阶段准备RAM空间,复制第二段代码到RAM,设置堆栈,掉转到程序入口 ;检查系统内存映射,进行完整性度量,操作系统度量应用程序完整性,生成全部完整性度量值,存入RAM;设置内核启动参数,调用内核,TPM 将完整性值报告给操作系统;操作系统将完整性序列值和已存储在TPM内部的验证码进行比较;如两者不同,则中断系统运行,进行系统恢复,重启;若两者相同,系统能够正常启动,然后进入系统正常运行状态。系统进入正常的运行状态,系统程序的调度和响应是采用线程及中断方式进行的,操作系统基于线程及中断的调度方式可以实现快速切换、多处理器的并行运行,满足系统实时性的要求。系统按照以下流程工作的首先,进行系统、线程及中断初始化,为系统工作做准备;然后通过设置状态字及优先级的方式,进行线程及中断服务程序的调用,直到接收到结束命令。该系统主要由动态可信度量终端服务程序、远程认证中断服务程序、可信在线升级中断服务程序、第三方软件可信启动线程以及其他中断服务程序或线程组成。动态可信度量终端服务程序实现更加细粒度的实时动态度量,包括对内核的进程、模块的代码、参数、堆栈等分别进行度量。远程认证终端服务程序可以与访问控制模块相交互,通过远程认证进行双方的可信报告,如果通过验证则生成会话标志,可以进行会话,否则中断会话。第三方应用软件可信启动应用软件的可信启动将通过软件签名验证机制来保证,确保软件完整性没有被破坏,从而实现受控启动。在嵌入式可信平台上运行的应用软件 (包括动态链接库)、内核模块和脚本文件,必须由第三方可信认证中心对其签名授权发布。 首先计算原文件的Hash值,用TPM签名密钥对中的私钥对其加密,形成数字签名,然后附加在原文件后面,合并为签名后的新文件。应用软件的执行,将基于LSM框架结构和可信系统调用,实现软件的签名验证和受控启动。LSM框架通过对客体进行访问的函数中插入hook, 截获访问,由可信系统调用模块实现对可执行文件的签名验证。LSM的捕获点在内核空间中,其粒度比系统调用更细,且都位于对各种资源的访问点上,因此对软件的执行可实现更细粒度的安全控制。可重复编程是嵌入式系统的一大特性,但在产品投入使用后并且被安装在偏远或环境较为恶劣的地方,嵌入式系统软件直接制约着使用该嵌入式系统产品的功能。大多数情况下,产品功能的提升都可以通过嵌入式系统软件升级特别是远程在线升级来实现。其中,不同的中断服务程序采用不同优先级进行响应,线程之间采用状态字的方式进行同步控制。实现前述方法的一种安全嵌入式系统,如图1所示,包括硬件层、内核层(OS层) 和应用层(用户层);
其中,硬件层包括ARM处理器、BIOS系统、外围设备和TPM模块,通过扩展TPM安全芯片作为信任根,信任链从TPM安全芯片、可信BIOS、可信OS内核、嵌入式软件栈传递到应用程序;ARM处理器具有高性能、低功耗的显著优点;外围设备包括存储器、输入设备、输出设备、外围接口、硬盘、电源、内存卡及其他嵌入式固件等;TPM具有密钥管理和配置管理等特性,能够被用于平台的完整性验证,用户身份认证和数据签名等,其内部还包括一组被称为 PCR (平台配置寄存器)的易失性存储器,被用来作为完整性度量的依据;在基于ARM处理器的嵌入式系统中,通过SPI接口并基于FPGA来扩展TPM芯片,通过FPGA实现信号间的转换,负责特殊LPC总线周期的生成。内核层包括度量接口模块和动态可信度量模块DTM ;TPM接口可以采用LPC总线接
10口,也可以通过SPI接口采用FPGA来扩展TPM芯片。应用层包括用来激活动态可信度量模块DTM的度量请求模块,位于应用层的用户空间,主要接收来自远端询问、访问控制等安全设备的可疑事件以及本地安全策略需求等, 并将其格式化;度量请求模块与度量接口模块进行交互。所述动态可信度量模块DTM包括
程序加载引擎,用于对系统进程或模块进行静态可信度量;
跟踪度量策略模块,用于预先定义所有需要度量的程序二进制的跟踪事件,以及与不同进程及模块相匹配的模式和跟踪代码;
跟踪实现组件,用于对进程或模块的二进制代码进行重写,即附加跟踪代码,用来实现对程序动态跟踪;跟踪实现组件的实现可以采用基于信息流的动态污点分析技术、基于数据流跟踪和库函数识别技术等;
跟踪度量引擎,用于对系统进程或模块进行动态可信度量,实现程序动态事件跟踪及跟踪数据维护;负责与TPM模块的交互,将跟踪数据交与TPM芯片做散列值,并由TPM进行签名,将散列值和签名存入事先定义好的数据结构中;
度量响应引擎,用于根据度量结果进行判断并响应,将度量信息组装,发送回远端或本地。内核层还包括认证代理模块,与动态可信度量模块进行交互,用于系统与其他终端或设备进行远程认证,如果该终端或设备也扩展了 TPM安全芯片,系统与该终端或设备之间通过各自的TPM模块相互进行可信报告,如果通过验证则生成会话标志,可以进行会话,否则中断会话,这样大大增加了通讯的安全性。内核层还包括内存监视器,用于监视内存更改,当监测到内存更改时就激活动态可信度量模块DTM,对内核进行动态可信度量,可以作为度量请求的一种补充形式,实现真正的动态度量,采用虚拟技术,可以不改动硬件,可扩展性较好。内核层还包括可信在线升级模块,与动态可信度量模块进行交互,用于向系统加载新的软件和升级现有的软件,并由中心管理平台统一管理。主要包括系统升级、加载新的操作系统核心模块、升级已有的操作系统核心模块、加载新的应用程序、升级已有的应用程序等,通过嵌入式终端引入TPM构建安全嵌入式系统,通过应用基于TPM的身份鉴别、动态可信度量、数字签名等技术来保障系统升级的安全可靠,从可信的角度考虑操作的安全性、 可靠性及可恢复性。以上对本发明实施方式提供的技术方案进行了详细的介绍,本文中应用了具体实施例对本发明所实施的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明实施的原理;同时,对于本领域的一般技术人员,本发明实施例,在具体实施方式
以及应用范围上均有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种动态可信度量方法,其特征在于,包括以下步骤Si,硬件层通过TPM芯片和传统硬件重新设计可信BIOS,信任链从TPM安全芯片、可信 BIOS、可信OS内核、嵌入式软件栈传递到应用程序,实现动态可信度量模块DTM的可信启动;S2,应用层度量请求模块根据来自安全设备的可疑事件及本地安全策略需求生成度量请求信息,并将其格式化,发送度量请求给内核层的动态可信度量模块DTM,激活动态可信度量模块DTM ;S3,动态可信度量模块DTM对系统进程或模块进行可信度量并响应。
2.根据权利要求1所述的一种动态可信度量方法,其特征在于,所述实现动态可信度量模块DTM的可信启动的步骤包括S21,启动TPM模块进行初始化;S22,由可信根依次对BootLoader、OS和应用程序3个实体进行完整性度量,如果所有被度量实体的完整性没有被破坏,就转到步骤S23 ;如果实体的完整性被破坏,就转到步骤 S24 ;S23,将完整性度量值存储在TPM内部的平台配置寄存器(PCR)中,系统控制权交给 BootLoader开始启动,然后启动0S,最后启动应用程序;S24,由上述实体的备份替换上述实体,再重新度量该实体的完整性,只有3个实体的完整性都通过验证之后,才能正常启动,否则拒绝启动执行。
3.根据权利要求1所述的一种动态可信度量方法,其特征在于,所述步骤S3包括S31,当监测到度量请求时,将DTM模块插入内核;S32,判断度量目标程序是进程还是内核模块,根据其不同的数据结构分别进行处理;S33,对程序的静态二进制进行度量,根据跟踪控制策略重写程序二进制代码;S34,程序进程被激活,开始对程序进行动态跟踪,跟踪代码在相应的数据段存储跟踪数据;S35,随着跟踪事件的发生,跟踪代码动态地更新跟踪数据;S36,将这些跟踪数据交与TPM芯片做散列值,并由TPM芯片进行签名,将散列值和签名存入事先定义好的数据结构中;S37,处理并响应接收的度量信息。
4.根据权利要求1所述的一种动态可信度量方法,其特征在于所述系统与其他终端或设备进行远程认证,如果该终端或设备也扩展了 TPM安全芯片,系统与该终端或设备之间通过各自的TPM模块相互进行可信报告。
5.根据权利要求1所述的一种动态可信度量方法,其特征在于采用内存监视方式, 即监测到内存更改,就激活动态可信度量模块DTM,对系统进行动态可信度量。
6.实现权利要求1 5所述方法的一种安全嵌入式系统,其特征在于,包括硬件层、 内核层(OS层)和应用层(用户层);硬件层包括ARM处理器、BIOS系统、外围设备和TPM模块,通过扩展TPM安全芯片作为信任根,信任链从TPM安全芯片、可信BIOS、可信OS内核、嵌入式软件栈传递到应用程序;内核层包括度量接口模块和动态可信度量模块DTM ;应用层包括用来激活动态可信度量模块DTM的度量请求模块,度量请求模块与度量接口模块进行交互。
7.根据权利要求6所述的一种安全嵌入式系统,其特征在于,所述动态可信度量模块 DTM包括程序加载引擎,用于对系统进程或模块进行静态可信度量;跟踪度量策略模块,用于预先定义所有需要度量的程序二进制的跟踪事件,以及与不同进程及模块相匹配的模式和跟踪代码;跟踪实现组件,用于对进程或模块的二进制代码进行重写,即附加跟踪代码,用来实现对程序动态跟踪;跟踪度量引擎,用于对系统进程或模块进行动态可信度量,实现程序动态事件跟踪及跟踪数据维护;度量响应引擎,用于根据度量结果进行判断并响应,将度量信息组装,发送回远端或本地。
8.根据权利要求6所述的一种安全嵌入式系统,其特征在于内核层还包括认证代理模块,与动态可信度量模块进行交互,用于系统与其他终端或设备进行远程认证,如果该终端或设备也扩展了 TPM安全芯片,系统与该终端或设备之间通过各自的TPM模块相互进行可信报告。
9.根据权利要求6所述的一种安全嵌入式系统,其特征在于内核层还包括内存监视器,用于监视内存更改,当监测到内存更改时就激活动态可信度量模块DTM,对内核进行动态可信度量。
10.根据权利要求6所述的一种安全嵌入式系统,其特征在于内核层还包括可信在线升级模块,与动态可信度量模块进行交互,用于向系统加载新的软件和升级现有的软件,并由中心管理平台统一管理。
全文摘要
本发明公开了一种动态可信度量方法及安全嵌入式系统,所述方法包括以下步骤S1,硬件层通过TPM芯片和传统硬件重新设计可信BIOS,信任链从TPM安全芯片、可信BIOS、可信OS内核、嵌入式软件栈传递到应用程序,实现动态可信度量模块DTM的可信启动;S2,应用层度量请求模块根据来自安全设备的可疑事件及本地安全策略需求生成度量请求信息,并将其格式化,发送度量请求给内核层的动态可信度量模块DTM,激活动态可信度量模块DTM;S3,动态可信度量模块DTM对系统进程或模块进行可信度量并响应。本发明能有效地探测和防御复杂实时攻击。并且能够主动探测和防御内部物理层的攻击,实现安全嵌入式系统平台。
文档编号G06F21/00GK102436566SQ20121000870
公开日2012年5月2日 申请日期2012年1月12日 优先权日2012年1月12日
发明者于立业, 张云贵, 潘秋娟, 王丽娜, 赵永丽 申请人:冶金自动化研究设计院