一种基于TPCM芯片的双向认证可信启动系统及方法与流程

文档序号:29028350发布日期:2022-02-24 10:45阅读:562来源:国知局
一种基于TPCM芯片的双向认证可信启动系统及方法与流程
一种基于tpcm芯片的双向认证可信启动系统及方法
技术领域
1.本发明涉及一种基于tpcm芯片的双向认证可信启动系统及方法,属于计算机安全技术领域。


背景技术:

2.可信计算体系结构通过在系统中构建实际有效的硬件可信根,并从可信根开始经过逐层可信扩展的方式建立可信链,最终实现系统运行环境的可信。可信根被假设是无条件受信任的,系统并不对可信根行为进行检测。因此可信根是否真正值得信任,可信根是否会被攻击者篡改替换,是确认系统可信的关键。
3.可信平台控制模块trusted platform control module(以下简称tpcm)是主动免疫可信体系的可信根,是系统的可信源点,是可信链建立的基础。可信启动的基本原理是:从tpcm初始信任状态发起,通过可信扩展技术将初始信任状态逐一扩展到系统启动的每一环节,进而在系统启动时构建出一个完整的可信链,以保障系统启动后运行环境的初始可信状态。然而当前大多数可信启动方法都未对tpcm芯片自身安全性进行校验,一旦tpcm芯片被篡改,会造成整个系统的失信,无法保障计算环境的安全性。


技术实现要素:

4.目的:为了克服现有技术中存在的不足,本发明提供一种基于tpcm芯片的双向认证可信启动系统及方法。
5.技术方案:为解决上述技术问题,本发明采用的技术方案为:第一方面,一种基于tpcm芯片的双向认证可信启动系统,包括:tpcm芯片、flash存储芯片和cpu芯片。
6.所述tpcm芯片包括:主spi接口、从spi接口,flash存储芯片包括:从spi接口,cpu芯片包括:主spi接口;tpcm芯片的主spi接口与flash存储芯片的从spi接口相连接,tpcm芯片的从spi接口与cpu芯片的主spi接口相连接,cpu芯片的主spi接口又与flash存储芯片的从spi接口相连;所述tpcm芯片的gpio输出引脚与cpu芯片的reset复位引脚相连接,用于实现对cpu芯片的启动控制;tpcm芯片的state引脚与cpu芯片的gpio引脚相连接,用于通知cpu度量过程是否已结束、tpcm处于spi主模式还是spi从模式。
7.作为优选方案,所述tpcm芯片预存有正向度量基准值、正向验证公钥、反向度量基准值。
8.作为优选方案,所述flash存储芯片预存有反向验证公钥。
9.作为优选方案,所述tpcm芯片有唯一的正向验证公钥、反向验证私钥。
10.作为优选方案,所述正向度量基准值是在干净的运行环境下对引导程序使用正向验证私钥实行数字签名得到的数字签名值;所述反向度量基准值是在干净的运行环境下对flash存储芯片唯一的flash id使用反向验证私钥实行数字签名得到的数字签名值。
11.第二方面,一种基于tpcm芯片的双向认证可信启动方法,包括如下步骤:
系统上电后,tpcm芯片获取系统的主控权,控制cpu芯片处于复位状态。
12.tpcm芯片对在flash存储芯片中的引导程序进行正向度量,若度量成功,则tpcm释放cpu芯片的复位信号,cpu芯片启动加载引导程序。
13.cpu芯片完成引导程序的加载之后,对tpcm芯片执行反向度量,若度量成功,则引导程序加载内核,启动操作系统。
14.作为优选方案,tpcm芯片对在flash存储芯片中的引导程序进行正向度量,若度量失败,则tpcm保持cpu芯片的复位信号,终止本次启动,并执行启动失败处理。
15.作为优选方案,所述引导程序包括:boot、pmon或bios。
16.作为优选方案,cpu芯片完成引导程序的加载之后,对tpcm芯片执行反向度量,若度量失败,则停止加载内核,终止本次启动,并执行启动失败处理。
17.作为优选方案,所述tpcm芯片对在flash存储芯片中的引导程序进行正向度量的方法,包括如下步骤:tpcm芯片使用spi主设备接口与flash存储芯片的spi从设备接口通信,tpcm芯片从flash存储芯片中读取引导程序数据和引导程序签名值,使用在tpcm芯片内的正向验证公钥对引导程序数据和引导程序签名值进行验签,若验签成功,tpcm芯片释放对flash存储芯片的控制权,tpcm芯片的工作模式由spi主模式切换为spi从模式,state状态线由高电平切换为低电平,tpcm芯片通过state状态线通知cpu芯片目前已完成度量且tpcm芯片已切换为spi从模式,之后通过gpio释放cpu芯片复位引脚,启动cpu芯片。
18.若验签失败,则停止加载过程,控制cpu芯片一直处在复位状态,由tpcm芯片记录审计日志,并对外报警,通知有关人员进行后续异常处理。
19.作为优选方案,所述cpu芯片完成引导程序的加载之后,对tpcm芯片执行反向度量的方法,包括如下步骤:cpu芯片启动后,cpu芯片使用spi主设备接口获得flash存储芯片的控制权,cpu芯片工作在spi主模式,从flash存储芯片中加载引导程序数据。
20.引导程序启动后,cpu读取flash存储芯片的flash id与反向验证公钥。
21.cpu读取成功后,若state状态线处于低电平,cpu使用spi主设备接口获得tpcm芯片的控制权,读取tpcm芯片中的反向验证基准值,并用反向验证公钥进行验签,若验签成功,则度量内核文件并启动操作系统;若验签失败,则停止加载过程,记录审计日志,并发出告警,通知有关人员进行后续异常处理;若state状态线处于高电平,则等待tpcm芯片可用,并记录审计日志。
22.有益效果:本发明提供的一种基于tpcm芯片的双向认证可信启动系统及方法,可实现tpcm芯片与cpu引导程序的双向身份认证,通过引入第三方可信因子,防止在身份认证过程中所有认证信息为同一方所持有,实现对tpcm芯片自身的安全验证,从源头上保证设备运行环境的安全性。
附图说明
23.图1是本发明设备可信启动系统结构示意图。
24.图2是本发明双向认证流程示意图。
具体实施方式
25.下面结合具体实施例对本发明作更进一步的说明。
26.如图1所示,一种基于tpcm芯片的双向认证可信启动系统,包括可信平台控制模块tpcm芯片、存储系统引导程序的flash芯片、系统中央处理器cpu芯片。
27.所述tpcm芯片、flash存储芯片和cpu芯片通过各自芯片的spi接口互连。其中tpcm芯片含有一主一从总共两路spi接口,flash芯片有一路从spi接口,cpu芯片有一路主spi接口。spi接口互连时,由tpcm芯片的主spi接口与flash芯片的从spi相连接,tpcm芯片的从spi接口与cpu芯片的主spi接口相连,cpu芯片的主spi接口与flash芯片的从spi接口相连。此外,tpcm芯片通过gpio输出引脚连到cpu芯片的reset复位引脚上,以实现对cpu芯片的启动控制。tpcm芯片通过state引脚与cpu芯片的gpio引脚相连,以通知cpu度量过程是否已结束、tpcm处于spi主模式还是spi从模式。
28.系统上电后的启动时序控制过程为:上电后tpcm芯片先于cpu芯片启动,tpcm控制gpio的输出使cpu芯片处于复位状态;此时由tpcm芯片主spi接口获得对flash芯片从spi接口的控制权,tpcm芯片对flash芯片中存储的系统引导程序进行主动度量,若tpcm的度量结果为成功,则tpcm芯片释放对flash芯片的控制权,令state输出度量成功的逻辑电平,tpcm由spi主设备状态转入spi从设备状态,之后释放对cpu芯片的复位,使cpu芯片启动;若tpcm的度量结果为失败,则保持cpu芯片处于复位状态,记录审计日志并告警。
29.在对系统正式启动运行之前,应事先在新生产板卡的出厂调试阶段将正向度量基准值、正向验证公钥、反向度量基准值存储到tpcm芯片内,并将反向验证公钥存储到flash芯片内。所述正向验证公钥、私钥由上位机生成;所述反向验证公钥、私钥由tpcm芯片生成,并且可以认为每个tpcm芯片都有唯一的公钥、私钥;所述正向度量基准值是在干净的运行环境下对引导程序使用正向验证私钥实行数字签名得到的数字签名值;所述反向度量基准值是在干净的运行环境下对flash芯片唯一的flash id使用反向验证私钥实行数字签名得到的数字签名值。
30.待完成以上准备工作后,方可进行系统可信启动,如图2所示,一种基于tpcm芯片的双向认证可信启动方法,按照以下步骤进行:步骤1:系统上电后,由上电时序控制电路保证tpcm芯片首先获取系统的主控权,控制cpu处于复位状态。依次转入步骤2执行正向认证和步骤3执行反向认证;步骤2:tpcm芯片对预存在flash存储芯片中的引导程序(boot/pmon/bios等)进行正向度量,若度量成功,则tpcm释放cpu的复位信号,接着由cpu启动加载引导程序,执行步骤3;若度量失败,则tpcm保持cpu的复位信号,终止本次启动,并执行启动失败处理;步骤3:cpu完成引导程序的加载之后,对tpcm芯片执行反向度量,若度量成功,则引导程序加载内核,启动操作系统;若度量失败,则停止加载内核,终止本次启动,并执行启动失败处理。
31.所述步骤2为正向认证、步骤3为反向认证,它们共同组成了双向认证方法,包括以下步骤:步骤a1:上电后tpcm芯片先于cpu启动,cpu处于复位状态,tpcm芯片使用spi主设备接口与flash存储芯片的spi从设备接口通信, state状态线处于高电平;步骤a2:tpcm芯片先从flash存储芯片中读取引导程序数据和引导程序签名值,接
着使用预存在tpcm芯片内的正向验证公钥对引导程序数据和引导程序签名值进行验签,若验签成功,则进入步骤a3;若验签失败,则停止加载过程,控制cpu一直处在复位状态,由tpcm芯片记录审计日志,并对外报警,通知有关人员进行后续异常处理;步骤a3:tpcm芯片释放对flash存储芯片的控制权,tpcm芯片的工作模式由spi主模式切换为spi从模式,state状态线由高电平切换为低电平,tpcm芯片通过state状态线通知cpu目前已完成度量且tpcm芯片已切换为spi从模式,之后通过gpio释放cpu复位引脚,启动cpu;步骤a4: cpu启动后, cpu作为spi主设备获得flash存储芯片的控制权, cpu工作在spi主模式,从flash存储芯片中加载引导程序文件;步骤a5:引导程序启动后,cpu读取flash存储芯片的flash id与反向验证公钥;步骤a6:cpu读取成功后,通过state状态线判断tpcm芯片是否可用,若state状态线处于低电平,则执行步骤a7;若处于高电平,则等待tpcm芯片可用,并记录审计日志;步骤a7:cpu作为spi主设备获得tpcm芯片的控制权后,读取tpcm芯片中的反向验证基准值,并用反向验证公钥进行验签,若验签成功,则度量内核文件并启动操作系统;若验签失败,则停止加载过程,记录审计日志,并发出告警,通知有关人员进行后续异常处理。
32.实施例1:本发明在引导程序启动后对tpcm芯片进行反向身份认证,对可信根做出监管,保证了tpcm芯片的真实可信性。采用存储芯片flash id作为第三方可信因子,去除了身份认证中的公开因子,可防止公开因子在交互过程中被窃取或篡改。实现对可信链源头的可信验证,保证设备运行环境的安全性。
33.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
34.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
35.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
36.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
37.以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1