首页> 中国专利> 基于安全密码芯片的可信计算机系统及其可信引导方法

基于安全密码芯片的可信计算机系统及其可信引导方法

摘要

本发明涉及一种基于安全密码芯片的可信计算机系统及其可信引导方法,该系统包含主平台和安全密码芯片,主平台包含主处理器、内存、外存、总线及外部设备,主处理器包含指令缓存单元、数据缓存单元、执行单元及二级缓存单元。本发明在系统开机时安全密码芯片先于主处理器运行,将CRTM推送到指令缓存单元并唤醒主处理器;主处理器从CRTM开始执行,利用安全密码芯片度量并加载引导程序、操作系统、应用程序等,建立可信链,安全密码芯片全程参与可信引导过程,无法绕过;CRTM驻留在安全密码芯片内部,在主处理器上运行的其它程序无法见到CRTM,更无法对其分析、篡改,更加安全,系统更加稳固。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-23

    未缴年费专利权终止 IPC(主分类):G06F21/57 专利号:ZL2015106349345 申请日:20150930 授权公告日:20171024

    专利权的终止

  • 2017-10-24

    授权

    授权

  • 2016-01-27

    实质审查的生效 IPC(主分类):G06F21/57 申请日:20150930

    实质审查的生效

  • 2015-12-30

    公开

    公开

说明书

技术领域

本发明涉及计算机系统安全领域,特别涉及一种基于安全密码芯片的可信计算机系统及其可信引导方法。

背景技术

计算机系统的主要工作是执行程序。执行之前,程序是驻留在外存,如磁盘、光盘、FlashMemory等中的文件,包括程序代码、数据等,执行之时,程序文件、数据文件等被调入内存。正常情况下,驻留在外存中的文件应是稳定的,程序代码及其配置参数应保持不变,程序每次执行的行为应完全一样。然而由于设计或实现上的缺陷,程序可能有意或无意地修改文件;病毒、木马等恶意软件会故意篡改文件。文件内容的改变,不管是有意还是无意的,都有可能改变程序的行为,甚至可能将一个正常的程序劫持成恶意的软件。更为严重的是操作系统内核、系统管理软件、引导程序等也是程序,它们管理着计算机系统的资源,掌控着计算机系统的运行,一旦这些程序的文件被篡改,计算机系统的行为就会失控。保证程序行为可信的方法很多,如静态度量法、动态度量法等,其中较为简单的是静态度量法,即在执行之前对程序文件进行完整性检验,保证程序所执行的文件未被篡改,基本的实现方法是系统的可信引导。

支持可信引导的计算机系统中通常配置有可信平台模块TPM。TPM是独立芯片,提供可信度量服务,并提供部分存储空间。系统开机执行的第一段程序通常驻留在TPM之外的ROM中,被称为可信度量的核心根CRTM。CRTM利用TPM度量第二段程序并将其加载到内存执行,第二段程序再利用TPM度量并加载第三段程序,依次类推,试图保证系统运行的每一个程序都是未被篡改过的可信的程序,从而保证整个系统的行为是可信的。基于TPM的可信引导机制增强了系统的安全性,但仍然存在一些问题,如:TPM作为系统的外设存在,始终是一个被动的设备,有可能被绕过;CRTM驻留在TPM之外,不受TPM保护,有可能被篡改;且未提供度量基准值的保护机制等。

发明内容

针对现有技术中的不足,本发明提供一种基于安全密码芯片的可信计算机系统及其可信引导方法。

按照本发明所提供的设计方案,一种基于安全密码芯片的可信计算机系统,硬件组成包括主平台和安全密码芯片,安全密码芯片负责主平台的可信引导并为主平台提供度量服务,主平台负责日常处理工作;主平台包含主处理器、内存、外存、总线及外部设备,主处理器包含指令缓存单元、数据缓存单元、执行单元及二级缓存单元,拥有附加的被动工作状态并遵守启动约定,处于被动工作状态的主处理器接收来自安全密码芯片的推送数据并将其存入指令缓存单元,并接收来自安全密码芯片的唤醒信号,将自己切换到正常工作状态,进入正常工作状态后,主处理器遵守启动约定直接从指令缓存单元中取指执行;安全密码芯片包含可信度量单元、安全存储单元、推送单元、唤醒单元,可信度量单元用于度量输入数据并输出度量结果,安全存储单元用于封装主平台的可信度量核心根CRTM和引导程序,推送单元用于向主处理器推送CRTM,唤醒单元用于向主处理器发送唤醒信号,处于主动工作模式的安全密码芯片主动向主处理器推送CRTM并向主处理器发送唤醒信号,此后安全密码芯片进入被动工作模式,接收请求并为主处理器提供服务。

上述的基于安全密码芯片的可信计算机系统,主平台与安全密码芯片之间通过通信通道相互通信,通信通道可以有一条,也可以有两条:专用通道由安全密码芯片控制,用于向主处理器推送主平台的可信度量核心根CRTM;高速通道由主处理器控制,用于主平台与安全密码芯片之间的大数据量通信。

上述的基于安全密码芯片的可信计算机系统,在初次使用之前需要对系统进行初始安装,初装所需要的系统镜像及安装工具由可信软件提供方提供,系统镜像中包含主平台的操作系统内核文件、度量基准值文件、安全度量策略文件、系统配置文件、应用程序文件、内核模块文件、共享库文件、脚本文件、数据文件,安装工具利用安全密码芯片对系统镜像进行可信度量并将通过度量的系统镜像安装在主平台的外存中,包括操作系统、应用程序、度量基准值、安全度量策略等。

一种基于安全密码芯片的可信计算机系统的可信引导方法,具体包含如下步骤:

步骤1.可信计算机系统加电后,主处理器进入被动工作状态,等待被唤醒;

步骤2.安全密码芯片启动,进入主动工作模式,完成自身及通信通道的初始化后,从内置存储空间中取出主平台的可信度量核心根CRTM并将其推送给主处理器;

步骤3.主处理器接收来自安全密码芯片的CRTM,将其存入指令缓存;

步骤4.安全密码芯片向主处理器发送唤醒信号,而后进入被动工作模式;

步骤5.主处理器被信号唤醒后,进入正常工作状态,执行指令缓存中的CRTM,获得可信计算机系统的控制权,初始化系统的存储控制器和高速通道,将安全密码芯片转化成主处理器的外部密码设备,通过高速通道向安全密码芯片发出读引导程序的请求;

步骤6.安全密码芯片响应读引导程序的请求,从内置存储空间中取出引导程序,将其通过高速通道发送给主处理器;

步骤7.主处理器将引导程序放入内存,执行引导程序,初始化主平台的外存,从外存中读取操作系统内核文件及其度量基准值,通过高速通道将操作系统内核及其基准值发送到安全密码芯片,请求度量;

步骤8.安全密码芯片度量操作系统内核,通过高速通道将度量结果发送给主处理器;

步骤9.如果度量失败,主处理器进入系统修复模式,否则,主处理器将操作系统内核放入内存,执行操作系统内核,完成主平台的初始化,请求安全密码芯片度量主平台的系统配置文件和安全度量策略文件;

步骤10.安全密码芯片处理度量请求,将度量结果发送给主处理器;

步骤11.如果度量失败,主处理器进入系统修复模式,否则,主处理器根据配置文件、用户请求和安全度量策略,请求安全密码芯片度量应用程序文件;

步骤12.安全密码芯片处理度量请求,将度量结果发送给主处理器;

步骤13.如果度量失败,主处理器进入应用修复模式,否则,主处理器加载并执行应用程序,使可信计算机系统进入正常工作状态。

上述的可信引导方法,引导程序根据主平台的配置,按照预定的引导顺序,尝试从主平台的外存中读入操作系统内核文件和度量基准值文件,其中,外存包括U盘、光盘、硬盘;如果无法从第一号外存中成功读入操作系统内核和度量基准值文件,引导程序将尝试从第二号外存中读入,以此类推,直到成功读入或尝试完所有的外存;如果尝试完所有外存都无法成功读入操作系统内核和度量基准值文件,则进入系统修复模式。

上述的可信引导方法,系统修复模式用于修复操作系统内核文件、系统配置文件和安全度量策略文件,修复方法有二,一是从备份存储中恢复损坏的文件后重启计算机;二是直接关机,由管理员在USB口中插入修复U盘或在光驱中插入修复光盘后重启计算机,重启之后,引导程序从U盘或光盘中启动修复系统,引导用户对系统进行修复。

上述的可信引导方法,应用修复模式用于修复应用程序文件,修复方法有二,一是向用户报告程序启动失败,由用户决定修复方式;二是从备份存储中恢复损坏的文件后重新度量并加载应用程序文件。

上述的可信引导方法,用于初始安装的系统镜像由可信软件提供方提供,其中包含初装用的操作系统内核和度量基准值文件;修复U盘或光盘是可信软件提供方制作,其中包括操作系统内核、修复工具、度量基准值等文件。

上述的可信引导方法,安全度量策略文件可以为白名单策略,在白名单中列出的文件不需要度量;或为黑名单策略,在黑名单中列出的文件必须度量;主平台在使用任一文件之前都要查询安全度量策略文件,若安全度量策略要求度量某文件,主平台必须对其进行可信度量,度量的依据是度量基准值文件;主平台拒绝使用度量失败的文件。

上述的可信引导方法,所述度量基准值文件包括度量对象的文件标识和度量对象的基准值,度量对象的基准值由可信软件提供方生成,是可信软件提供方使用自身的私钥为度量对象生成的数字签名,用户无法伪造或篡改;在系统运行过程中,基准值文件会随度量对象的改变随时更新,包括增加新的度量对象及其基准值、删除已有度量对象及其基准值、修改已有度量对象的基准值;可信软件提供方的公钥已预先封装在安全密码芯片中。

上述的可信引导方法,主平台的度量工作由主处理器发起,由安全密码芯片完成,度量对象、度量基准值及度量结果经由高速通道传送,安全密码芯片处理度量请求具体包含如下步骤:

步骤(1).主处理器将度量对象内容及其度量基准值发送给安全密码芯片;

步骤(2).安全密码芯片计算度量对象的散列值,得到新算散列值;

步骤(3).安全密码芯片利用可信软件提供方的公钥对来自主处理器的度量基准值进行解签,得到度量对象的基准散列值;

步骤(4).安全密码芯片比对新算散列值和基准散列值,若两者相同,则度量成功,否则,度量失败,安全密码芯片将度量结果发送给主处理器。

上述的可信引导方法,封装在安全密码芯片内部的非易失性存储空间,如FlashMemory,由安全密码芯片自己管理,主处理器只能通过安全密码芯片提供的接口访问安全密码芯片内部的非易失性存储空间;安全密码芯片内部的非易失性存储空间中预存有主平台的CRTM和引导程序,用户无权更改。

本发明的有益效果:

1.在传统的可信计算机系统中,最先启动的是处理器,TPM只是系统的一个外部设备,处理器需要先执行一段代码以完成TPM及其通道的初始化,而后才能让TPM发挥作用,虽然TPM是可信计算的关键部件,但却不是最先运行的根部件;本发明中,安全密码芯片优先于主处理器启动运行,是主动部件,负责为主处理器准备最初的执行代码并唤醒主处理器,离开了安全密码芯片,主处理器因缺少最初的程序代码而无法启动,因而安全密码芯片无法绕过,是可信计算机系统的真正可信根,以安全密码芯片为可信根的可信引导更安全、更可靠。

2.在传统的可信计算机中,主处理器运行的第一段程序CRTM位于TPM外部,不受TPM保护,有可能被分析、篡改,所建立的可信链实际上并不可靠;在本发明中,CRTM、引导程序等始终存储在安全密码芯片的非易失性存储空间中,受到安全密码芯片的物理性保护,外界无法修改,其可信性是确定的;并且CRTM是被安全密码芯片推送到主处理器的指令缓存单元的,随着主处理器的执行会自动消失,系统的其余部分,甚至主平台的操作系统内核都无法见到CRTM,更不可能分析、篡改CRTM,以CRTM为根的可信链更加可靠,建立在其上的可信链也更加可信安全。

3.在传统的可信计算机系统中,TPM仅提供度量值的计算服务,计算并返回一个度量对象的度量值,度量值与基准值的比对验证工作则由主处理器负责,脱离TPM保护,存在一定的安全风险;在本发明中,可信度量过程由安全密码芯片全权负责,一次性完成度量值的计算和验证两个工作,第三者无法介入度量过程;安全密码芯片在计算出度量值后直接在芯片内部进行度量值的验证工作,对外不返回度量值,只返回度量验证的结果,更加直接、快捷,降低了完整性度量的复杂性,提高了度量过程的安全可靠性;此外,度量基准值使用数字签名值而非散列值,且只有可信软件提供方提供的基准值才能通过安全密码芯片的可信度量,由于攻击者没有可信软件提供方的私钥,因而不能伪造出合法的度量基准值,由此提供了度量基准值的保护机制;可信度量失败时,系统自动进入修复模式,利用可信软件提供方的修复系统对可信计算机系统进行修复,解决了由于度量失败造成系统无法启动的问题,增强了本发明可信引导方法的健壮性。

附图说明:

图1为本发明的基于安全密码芯片的可信计算机系统硬件组成结构图;

图2为本发明的安全密码芯片组成框图;

图3为本发明的主处理器组成框图;

图4为本发明的可信引导方法流程示意图。

具体实施方式:

下面结合附图和技术方案对本发明作进一步详细的说明,并通过优选的实施例详细说明本发明的实施方式,但本发明的实施方式并不限于此。

实施例一,参见图1~3所示,一种基于安全密码芯片的可信计算机系统,其硬件组成包括主平台和安全密码芯片,安全密码芯片负责主平台的可信引导并为主平台提供度量服务,主平台负责日常处理工作;主平台包含主处理器、内存、外存、总线及外部设备,主处理器包含指令缓存单元和数据缓存单元,拥有附加的被动工作状态并遵守启动约定,处于被动工作状态的主处理器接收来自安全密码芯片的推送数据并将其存入指令缓存单元,并接收来自安全密码芯片的唤醒信号,将自己切换到正常工作状态,进入正常工作状态后,主处理器遵守启动约定直接从指令缓存单元中取指执行;安全密码芯片包含可信度量单元、安全存储单元、推送单元、唤醒单元,可信度量单元用于度量输入数据并输出度量结果,安全存储单元用于封装主平台的可信度量核心根CRTM和引导程序,推送单元用于向主处理器推送CRTM,唤醒单元用于向主处理器发送唤醒信号,处于主动工作模式的安全密码芯片主动向主处理器推送CRTM并向主处理器发送唤醒信号,此后安全密码芯片进入被动工作模式,接收请求并为主处理器提供服务

主处理器包含指令缓存单元、数据缓存单元、执行单元及二级缓存单元。执行单元执行指令缓存单元中的指令,而指令缓存单元中的指令和数据缓存单元中的数据来自于二级缓存单元。主处理器有一个附加的被动工作状态,遵循可信引导所需要的启动约定。

实施例二,与实施例一基本相同,不同之处在于:安全密码芯片通过通信通道与主处理器连接。通信通道包含专用通道SPI总线和高速通道PCI-E总线。安全密码芯片通过SPI总线与主处理器通讯,将主平台的可信度量核心根CRTM推送到主处理器的指令缓存单元;主处理器通过PCI-E总线与安全密码芯片通讯,完成两者之间的大数据量传输,如引导程序的加载、文件的可信度量和数据加解密等。

安全密码芯片包含片上处理器、密码协处理器、RAM、NandFlash及I/O总线。片上处理器负责与主处理器交互并协调安全密码芯片内部的工作。密码协处理器负责加解密和度量算法的运算。I/O总线用于安全密码芯片内部的连接和数据交换。NandFlash是非易失性存储,用于封装安全密码芯片自身的固件系统及主平台的可信度量核心根CRTM和引导程序,其中固件系统包含芯片自身启动运行所需的管理程序、对外提供服务所需的度量程序、密码程序及密码资源。安全密码芯片具有可信度量功能、安全存储功能、推送功能和唤醒功能,并具有主动和被动两种工作模式。系统开机时,安全密码芯片首先进入主动工作模式。

系统开机时,主处理器首先进入被动工作状态,接收来自安全密码芯片的可信度量核心根CRTM并将其存入二级缓存单元;被唤醒之后,主处理器进入正常工作状态,直接从指令缓存而不是内存中取指执行,因此主处理器的执行从CRTM开始,而CRTM是由安全密码芯片推送出来的。CRTM完成最急需的初始化工作,如设置存储控制器、PCI-E总线等,以便从安全密码芯片中加载引导程序。引导程序由主处理器通过PCI-E总线从安全密码芯片中读入,是主处理器执行的第二段程序,引导程序利用安全密码芯片度量并加载操作系统内核,操作系统内核利用安全密码芯片度量并加载应用程序等,从而建立起可信链。

在使用可信计算机系统之前,需要对系统进行初始安装。初装所需要的系统镜像由可信软件提供方提供,包含主平台的操作系统内核文件、度量基准值文件、安全度量策略文件、系统配置文件、应用程序文件、内核模块文件、共享库文件、脚本文件、数据文件等,在安装过程中,安装工具还要利用安全密码芯片对系统镜像进行可信度量,因而在初装之后,计算机系统中的软件是可信的。在系统运行过程中,用户可以安装新软件,但新软件也必须来自可信软件提供方,否则新软件将无法启动运行。

实施例三,参见图4所示,一种基于安全密码芯片的可信计算机系统的可信引导方法,具体包含如下步骤:

步骤1.可信计算机系统加电后,主处理器进入被动工作状态;

步骤2.安全密码芯片先启动运行,进入主动工作模式;安全密码芯片处理器从NandFlash中将安全密码芯片自身的固件系统加载到安全密码芯片内置的RAM中并执行,对安全密码芯片及SPI总线进行初始化,初始化完成之后,从NandFlash中读取主平台的可信度量核心根CRTM,并通过SPI总线将CRTM推送给主处理器;

步骤3.主处理器接收推送来的CRTM,将其保存在指令缓存单元中;

步骤4.安全密码芯片完成CRTM的推送之后,向主处理器发送唤醒信号,而后进入被动工作模式,将自己转化成主处理器的一个外部密码设备,此后,安全密码芯片进入等待状态,等待来自主处理器的操作请求;

步骤5.主处理器被信号唤醒后,进入正常工作状态,执行指令缓存单元中的可信度量核心根CRTM,获得可信计算机系统的控制权,初始化系统的存储控制器、高速通道PCI-E总线等,将安全密码芯片转化成主处理器的外部密码设备,通过PCI-E总线向安全密码芯片发出读引导程序的请求;

步骤6.安全密码芯片响应读引导程序的请求,从内置NandFlash中读出引导程序,将其发送给主处理器;

步骤7.主处理器将引导程序存入内存,执行引导程序,初始化外存,从外存中读取操作系统内核文件,从度量基准值文件中取出该操作系统内核文件的度量基准值,并将操作系统内核文件及基准值通过PCI-E总线发送给安全密码芯片,请求度量操作系统内核;

步骤8.安全密码芯片处理度量请求,度量操作系统内核,将度量结果发送给主处理器;

步骤9.如果度量失败,主处理器进入系统修复模式,否则,主处理器将操作系统内核放入内存的适当位置,执行操作系统内核,完成主平台的初始化,请求安全密码芯片度量主平台的系统配置文件和安全度量策略文件;

步骤10.安全密码芯片处理度量请求,将度量结果发送给主处理器;

步骤11.如果度量失败,主处理器进入系统修复模式,否则,主处理器根据配置文件、用户请求和安全度量策略,请求安全密码芯片度量应用程序文件;

步骤12.安全密码芯片响应处理度量请求,将度量结果发送给主处理器;

步骤13.如果度量失败,主处理器进入应用修复模式,否则,主处理器加载并执行应用程序,使可信计算机系统进入正常工作状态。

实施例四,与实施例三基本相同,不同之处在于:引导程序根据主平台的配置,按照预定的引导顺序,尝试从主平台的外存中读入操作系统内核文件和度量基准值文件;主平台的外存包括U盘、光盘、硬盘;如果无法从第一号外存中成功读入操作系统内核和度量基准值文件,引导程序将尝试从第二号外存中读入,以此类推,直到成功读入或尝试完所有的外存设备;如果尝试完所有外存都无法成功读入操作系统内核和度量基准值文件,则进入系统修复模式。

进入系统修复模式后,计算机关机,管理员在USB口中插入修复U盘或在光驱中插入修复光盘,而后重启系统;重启之后,引导程序将从U盘或光盘中启动修复系统,引导用户对系统进行修复;进入应用修复模式后,系统向用户报告程序启动失败,

用于初始安装的系统镜像在可信软件提供方制作的光盘或U盘上,其中包含初装用的操作系统内核和度量基准值文件;修复U盘或光盘是由可信软件提供方制作的,其中包括操作系统内核、修复工具、度量基准值等文件。

安全度量策略为白名单安全策略,在白名单中列出不需要度量的文件;或为黑名单安全策略,在黑名单中列出需要度量的文件。

度量基准值文件包括度量对象的文件标识、度量对象的基准值,度量对象的基准值由可信软件提供方生成,是可信软件提供方使用自身的私钥为度量对象生成的数字签名,其余用户无法伪造或篡改,度量基准值文件在系统运行过程中随度量对象的安装、卸载或者升级而随时更新,可信软件提供方的公钥已预置在安全密码芯片中。

主平台的度量工作由主处理器发起,由安全密码芯片完成,度量对象、度量基准值及度量结果经由高速通道传送,安全密码芯片处理度量请求具体包含如下步骤:

步骤(1).主处理器将度量对象及其度量基准值发送给安全密码芯片;

步骤(2).安全密码芯片计算度量对象的散列值,其中,度量对象由主处理器根据安全度量策略按需进行选择,包含操作系统内核文件、应用程序文件、系统配置文件、内核模块文件、共享库文件、脚本文件、数据文件;

步骤(3).安全密码芯片对基准值进行解签,得到基准散列值,其中,解签使用可信软件提供方的公钥,该公钥已预先封装到安全密码芯片的固件系统中;

步骤(4).安全密码芯片将计算得到的散列值与对应基准散列值进行比对,若相同,则判定度量成功,否则,判定度量失败。

实施例五,与实施例四基本相同,不同之处在于:将安全密码芯片内置的NandFlash分成两个区,隐藏区和安全数据管理区,其中隐藏区用于存储安全密码芯片自身的固件系统及主平台的可信度量核心根CRTM和引导程序,固件系统包含芯片自身启动运行所需的管理程序、对外提供服务所需的度量程序、密码程序及密码资源,固件系统由片上处理器执行,CRTM、引导程序由主处理器执行;安全数据管理区用于存储主处理器的备份数据,备份数据包含可信计算机系统启动所需的关键启动文件,关键启动文件包含主平台操作系统内核文件、度量基准值文件、安全度量策略文件以及系统启动所需的基本应用程序文件和系统配置文件。

初装完成后,将系统镜像中的关键启动文件备份到安全密码芯片的安全数据管理区中。将关键启动文件备份到安全密码芯片的具体步骤包括:将关键启动文件内容、度量基准值及该文件的绝对路径发给安全密码芯片;安全密码芯片根据文件绝对路径检查安全数据管理区中的文件,若需要备份的文件已存在,则无需备份,否则,根据基准值对需要备份的文件进行可信性备份检查,将通过备份检查的文件写入安全数据管理区。由于备份文件的基准值不可伪造,安全数据管理区内的备份文件均为可信的,安全密码芯片只提供备份接口,不提供删除文件接口,文件一旦备份,用户将无法从安全密码芯片中删除。

如果可信计算机系统无法正常启动,则进入系统修复模式,系统修复模式的具体执行步骤包括:从备份度量基准值文件中提取相应的关键启动文件的基准值,对关键启动文件进行再次度量,若再次度量成功,则说明安全密码芯片本次接收到的基准值错误,主平台的度量基准值文件损坏,用安全数据管理区中备份的度量基准值文件替换主平台外存中的度量基准值文件即可完成修复;若再次度量失败,则说明该关键启动文件损坏,用安全数据管理区中的备份文件替换主平台外存中的关键启动文件即可完成修复。系统修复模式解决了由于度量失败所造成的系统无法启动问题。进入应用修复模式后,系统向用户报告程序启动失败即可。

本发明并不局限于上述具体实施方式,本领域技术人员还可据此做出多种变化,但任何与本发明等同或者类似的变化都应涵盖在本发明权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号