一种基于异构多核芯片的计算机安全启动方法与流程

文档序号:15272664发布日期:2018-08-28 22:37阅读:437来源:国知局

本发明涉及现代计算机安全启动技术领域,尤其涉及一种基于异构多核芯片的计算机安全启动方法。



背景技术:

随着信息技术的发展,计算机已经成为我们日常生活中不可或缺的一部分,但是它给人们带来信息化服务的同时也带来了信息安全方面的威胁,特别是在国防军工、航空航天等重要领域,这一点显得更加突出。当前各类计算机病毒层出不穷,可信计算也成了计算机的研究热点,但是目前可信计算的研究大多集中在操作系统层面,即在计算机启动操作系统后如何查杀病毒和抵御攻击,针对计算机启动过程的研究少之又少,这就导致针对bios(basicinputoutputsystem,基本输入输出系统)攻击,我们缺乏有效的解决方案。

bios作为引导操作系统的程序,已经存在了20多年,由于它设计之初缺乏安全性考虑,计算机启动过程一直处于不可信状态。uefi(unifiedextensiblefirmwareinterface,统一可扩展固件接口)的出现有力地改变了这一点,它带来了诸多好处,安全启动就是其中重要一项。uefi的安全启动功能依赖tpm(trustedplatformmodule,可信平台模块),tpm可提供加解密的安全启动功能,成为计算平台的信任根,据此建立一条可信链,从而解决平台启动的可信问题。但是这其中仍然存在不少问题。第一,tpm是由tcg(trustedcomputinggroup,可信计算组织)提出的,其整套标准与核心算法都由国外掌控,对我国的信息安全是不利的,因此国内在研发tcm(trustedcryptographymodule,可信加解密模块)与tpcm(trustedplatformcontrolmodule,可信平台控制模块)来解决这个问题。第二,在计算机上电后,最先执行的部分代码作为信任链的可信根,是被无条件信任的,因此如果信任根被攻击,那么整个平台仍然毫无安全性可言。第三,当前最流行的处理器基本都是x86架构,其核心技术由intel公司掌控,我们无法完全掌握该处理器的行为,这对我们的敏感信息也是隐患。因此如何在一个拥有不可信处理核心和不可信程序的计算平台上保障安全性,是解决这个问题的关键。



技术实现要素:

本发明所要解决的技术问题是设计一种安全启动的方法,在异构多核平台上可以使用一个可信核心来保障另一个不可信核心的安全启动。

这种方法基于异构多核平台,且其中至少一个核心是可信的。考虑到现实因素,具备我国自主知识产权的核心作为可信核心是最优选择。在这样的平台基础上,使用该方法可以搭建一套启动系统,保障启动过程的安全。

为了解决上述技术问题,本发明公开了一种基于异构多核芯片的计算机安全启动方法,包括:

分别确定可信核心与不可信核心的启动方式。可信核心采用自主研发的引导系统,且不必启动至操作系统,只需要能提供安全服务即可,该启动过程依托tpm模块,通过可信链的建立更安全得完成。而不可信核心作为芯片工作的主要核心,一般为x86架构,采取uefi引导操作系统。由于可信核心与不可信核心是异构的,两者具备二进制隔离性。两者的启动代码在不同的开发环境开发,在不同的编译环境下编译,并被烧录在同一块flash的不同位置,如果主板上存在多块flash,也可以烧录在不同的flash上。

进一步地,该方法包括:硬件资源划分。

可信核心与不可信核心是通过硬件隔离的,两者有各自独占的硬件资源,包括外设和内存。敏感的资源应当分配给可信核心,防止不可信核心的直接访问,如tpm。此外可信核心的主要任务是提供安全服务,为了保障后续计算机的性能,为可信核心分配必需的资源即可。其余资源都分配给不可信核心。

进一步地,该方法包括:核间通信与内存划分。

可信核心与不可信核心通过共享内存通信,因此整块内存被划分为三部分:可信核心独占部分,不可信核心独占部分以及共享部分。两个核心的同步方式为核间中断,由gpio完成。不可信核心将数据放在共享内存中,并产生核间中断,然后可信核心响应中断,获取数据并完成安全服务。然后将结果存回到共享内存中,不可信核心则根据该结果确定下一步行为。

进一步地,由于内存容易遭受攻击,在共享内存中的数据需要进行加密处理。

进一步地,该方法需要控制启动顺序。

启动的过程必须控制首先启动可信核心,完成独占硬件的初始化工作,然后开始启动不可信核心。

进一步地,该方法需要对uefi模块进行加解密验证。

由于uefi是模块化设计,其模块可以存放在rom、硬盘和flash等不同的位置,在每个模块加载之前都要对其进行安全验证。每一个uefi模块在编译完成之后需要进行封装,封装过程包括,对uefi模块进行哈希,得到哈希值后利用厂家私钥对其进行签名算法,然后将签名和模块封装在一起。而在加载前,需要对模块进行验证,该工作由可信核心完成。可信核心调用tpm的安全服务,利用厂家公钥对签名进行解密得到哈希值,将该值与原哈希值进行对比,验证模块是否具备完整可信。

进一步地,在可信核心完成验证后,会通过gpio和共享内存将结果返还给不可信核心,只有在验证通过情况下,不可信核心才能加载并执行该模块

本发明技术方案,能够在异构多核芯片上,利用一个可信核心来保障不可信核心的安全启动。

附图说明

图1为本发明的一种基于异构多核芯片的计算机安全启动方法实施例的架构图;

具体实施方式

以下结合附图和优选实施例对本发明的技术方案进一步详细地说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明的技术方案。

如图1所示,是本发明的一种基于异构多核芯片的计算机安全启动方法实施例的架构图,其中:

可信核心以北京大学微处理器研发中心具有自主知识产权的unicore处理器举例。

不可信核心为x86架构处理器。

硬件划分方面,tpm必须由可信核心独占,其余敏感资源的划分可以根据具体实施情况有所不同。gpio为可信核心与不可信核心共享,通过它来实现两者的同步。

内存被划分为三部分,具体位置与大小可根据具体情况决定,一般原则为可信核心独占部分与共享部分尽量小,只需要满足交互基本需求即可。

系统方面,可信核心最终会启动至unicoreboot系统,启动的过程遵循可信链的建立,因此整个unicore部分可以作为一个tcb(trustedcomputingbase,可信计算基)。所有涉及安全控制的行为都由unicore完成,而不可信核心采取uefi引导操作系统启动。

安全保障方面,可信核心集成了tpm的安全服务,提供给不可信核心,两边通过通信接口交互。对不可信核心而言,可信核心是透明的,即它只能知道可信核心提供的服务而无法探知其具体实施方式,也无法访问可信核心的独占硬件资源。

上述安全启动方法还包括uefi模块的封装与加解密过程:

其中uefi模块的加密与封装是在开发过程中实现的,在编译得到uefi的二进制代码之后,需要对其进行哈希,然后利用厂商私钥对齐进行签名算法,从而得到签名。将签名与二进制代码封装在一起。

uefi的验证是由作为可信计算基的可信核心完成的,它会利用tpm提供的安全服务队模块进行解密,并将得到的哈希值与原值进行对比,从而判断该模块是否完整可信。

在可信核心完成对uefi的第一个模块的验证后,uefi即建立了安全的可信根,然后根据可信链建立的过程,不可信核心会不断将需要验证的模块传递给可信核心,两者交互的同步通过gpio来实现,这里采用中断和轮询都可以。

一旦出现不可信模块,将不会被加载执行,可以有效保证启动过程的安全可信。

从上述实例可以看出,本发明是基于异构多核芯片的,其中存在可信核心与不可信核心,可信核心整合tpm的安全服务作为安全保障核心存在,而不可信核心作为被监控核心,无法接触敏感资源。为了有效保证不可信核心的安全启动,uefi的每一个模块都需要可信核心进行验证。本发明设计该系统的资源划分,通信方式,以及可信核心保障不可信核心的架构设计,可以有效解决基于异构多核芯片的计算机的安全启动问题。

对于本领域的专业人员来说,在了解本发明的内容和原理后,能够在不背离本发明的原理和范围的情况下,根据本发明的方法进行形式和细节上的各种修正和改变,但是这些基于本发明的修正和改变仍在本发明的权利要求保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1