CN113342735B - 一种处理器芯片及电子设备 - Google Patents
一种处理器芯片及电子设备 Download PDFInfo
- Publication number
- CN113342735B CN113342735B CN202110720353.9A CN202110720353A CN113342735B CN 113342735 B CN113342735 B CN 113342735B CN 202110720353 A CN202110720353 A CN 202110720353A CN 113342735 B CN113342735 B CN 113342735B
- Authority
- CN
- China
- Prior art keywords
- cpu
- virtual machine
- processor
- kernel
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005259 measurement Methods 0.000 claims description 63
- 238000011161 development Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 18
- 238000000034 method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000009191 jumping Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012883 sequential measurement Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种处理器芯片及电子设备,其中处理器芯片包括:多个硬件层器件;所述多个硬件层器件包括:CPU、与所述CPU连接的安全处理器、与所述CPU和所述安全处理器连接的内存控制器、与所述CPU连接的CPU加密引擎;所述CPU具有内核态和用户态,所述内核态部署多个内核态模块,所述用户态部署多个用户态模块;所述硬件层器件被配置为:统一使用标准密码算法,以支持所述内核态模块和所述用户态模块的安全运行。本申请实施例可支持处理器芯片实现全栈安全运行。
Description
技术领域
本申请实施例涉及处理器技术领域,具体涉及一种处理器芯片及电子设备。
背景技术
处理器芯片是在CPU(central processing unit,中央处理器)基础上集成更多其他功能器件的集成电路。例如,ASIC(Application Specific Integrated Circuit,专用集成电路)、SOC(System-On-Chip,片上系统芯片)等集成电路。处理器芯片作为终端、服务器中执行代码、处理数据的重要组成部分,保障处理器芯片的安全运行非常重要。然而,目前并没有能够支持处理器芯片实现全栈安全运行的技术方案。
发明内容
有鉴于此,本申请实施例提供一种处理器芯片及电子设备,以支持处理器芯片实现全栈安全运行。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种处理器芯片,包括:多个硬件层器件;所述多个硬件层器件包括:CPU、与所述CPU连接的安全处理器、与所述CPU和所述安全处理器连接的内存控制器、与所述CPU连接的CPU加密引擎;
所述CPU具有内核态和用户态,所述内核态部署多个内核态模块,所述用户态部署多个用户态模块;
所述硬件层器件被配置为:统一使用标准密码算法,以支持所述内核态模块和所述用户态模块的安全运行。
第二方面,本申请实施例提供一种电子设备,包括如上述第一方面所述的处理器芯片。
本申请实施例提供的处理器芯片,包括:多个硬件层器件;所述多个硬件层器件包括:CPU、与所述CPU连接的安全处理器、与所述CPU和所述安全处理器连接的内存控制器、与所述CPU连接的CPU加密引擎。其中,所述CPU具有内核态和用户态,所述内核态部署多个内核态模块,所述用户态部署多个用户态模块;所述硬件层器件被配置为:统一使用标准密码算法,以支持所述内核态模块和所述用户态模块的安全运行。可以看出,在处理器芯片的全栈涉及处理器芯片的底层硬件层器件、内核态和用户态的情况下,本申请实施例可在处理器芯片的全栈架构上统一使用标准密码算法,实现代码、数据的安全运行。在本申请实施例中,标准密码算法的使用贯穿处理器芯片的全栈架构,使得处理器芯片能够实现全栈安全运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的处理器芯片的架构示意图。
图2a为启动操作系统涉及的多个第一内核态模块的示例图。
图2b为由CPU依序度量第一内核态模块的示意图。
图2c为安全处理器依序度量第一内核态模块的示意图。
图2d为安全处理器度量第一内核态模块的示例图。
图3为基于TPM进行度量的架构示意图。
图4为安全虚拟化的技术架构示意图。
图5a为未使能MMU情况下的虚拟机数据访问示意图。
图5b为使能MMU情况下的虚拟机数据访问示意图。
图6a为本申请实施例提供的CPU加密引擎的加密架构示意图。
图6b为本申请实施例提供的CPU加密引擎的另一加密架构示意图。
图7为本申请实施例提供的处理器芯片的另一架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
处理器芯片的全栈包括处理器芯片的底层硬件层、内核态和用户态,是一种自处理器芯片的底层硬件层到用户空间的架构体系。图1示例性的示出了处理器芯片100的一种可选架构示意图。如图1所示,处理器芯片100在硬件层可以部署多个硬件层器件,该多个硬件层器件例如图1所示的CPU 110、安全处理器120、内存控制器130、CPU加密引擎140和总线150。
CPU 110作为处理器芯片100中的运算和控制核心,是数据处理、程序运行的最终执行单元。在一些实施例中,CPU 110可以包括多个CPU核,例如图1所示CPU核110a、110b和110c等。
安全处理器120为处理器芯片100中集成的专门负责数据安全的处理器。安全处理器120可与CPU 110连接。在一些实施例中,安全处理器120作为处理器芯片100内部集成的协处理器,安全处理器120可以具有独立的资源,外部(包括CPU核)不可访问安全处理器120的资源。同时,安全处理器120具有极高的系统权限,可以访问处理器芯片100中的所有资源,包括控制CPU 110、访问处理器芯片100外部的物理内存10a和IO(Input/Output,输入/输出)设备10b。
对于CPU 110而言,安全处理器120可以是CPU 110通过总线150连接的功能器件,CPU 110中的CPU核访问安全处理器120只能通过固定的硬件邮箱接口。例如,安全处理器120定义了所有支持的命令及命令格式,CPU核通过邮箱接口给安全处理器120发送命令请求,安全处理器处理完成后返回相应结果。
内存控制器130为处理器芯片100中集成的用于控制物理内存10a与处理器芯片100之间交互数据的功能器件。内存控制器130可与CPU 110和安全处理器120连接。在一些实施例中,处理器芯片100在内存控制器130与CPU 110之间还可设置多级缓存(cache),以加速物理内存10a与处理器芯片100之间的数据交互。
CPU加密引擎140为处理器芯片100中集成的加密器件。在一些实施例中,CPU加密引擎140可用于以硬件方式实现加密的加速,以减轻CPU 110的计算负担。CPU加密引擎140可与CPU 110连接。
总线150可以被配置为在处理器芯片100的各个硬件层器件(例如CPU 110、安全处理器120、内存控制器130和CPU加密引擎140)之间传输数据信息和控制信息,以及实现与处理器芯片100外部的物理内存10a和IO设备10b的交互。例如,总线110可以包括控制总线和数据总线,控制总线用于在处理器芯片100的各个硬件层器件之间传输控制信息,数据总线用于在处理器芯片100的各个硬件层器件之间传输数据信息、以及与外部的物理内存10a和IO设备10b进行数据交互。
需要说明的是,尽管处理器芯片100的结构仅示出了CPU 110、安全处理器120、内存控制器130、CPU加密引擎140和总线150,但是在具体实施过程中,该处理器芯片100还可以包括实现正常运行所必需的其他硬件层器件。此外,本领域的技术人员可以理解的是,上述处理器芯片100的结构中也可以仅包含实现本公开实施例方案所必需的硬件层器件,而不必包含图中所示的全部硬件层器件。
进一步如图1所示,CPU 110可以具有内核态200和用户态300。内核态也称为内核空间或者内核,是运行操作系统的空间。内核态一般对应CPU的特权模式,可控制处理器芯片100的资源,例如协调CPU资源,分配内存资源,并且提供稳定的环境供应用程序运行。用户态也称为用户空间,是应用程序运行的空间。用户态的应用程序可通过内核态提供的通用访问接口(也称为系统调用),访问内核态管理的资源(例如CPU、内存、IO等)。在一些实施例中,CPU 110的内核态200和用户态300可以是CPU 110部署Linux下的内核态和用户态。
进一步如图1所示,内核态200可以部署多个内核态模块210,以实现内核态下的功能。在一些实施例中,针对操作系统的启动,内核态模块210可以包括用于启动操作系统的多个顺序执行的第一内核态模块,例如BIOS、Grub、OS;为便于说明,本申请实施例将涉及操作系统启动的内核态模块称为第一内核态模块。在一些实施例中,针对虚拟化技术,内核态模块210可以包括用于管理虚拟机的VMM(Virtual Machine Monitor,虚拟机监视器)。其中,基于虚拟化技术,CPU 110可虚拟化出多台虚拟机,以高效利用CPU 110的资源。在一些实施例中,内核态模块210也可以包括内核驱动。
用户态300可以部署多个用户态模块310,以实现用户态下的功能。在一些实施例中,用户态模块310可以包括:应用程序、虚拟化技术下的虚拟机、用户数据接口(例如,用户层加密接口)等。
基于图1所示处理器芯片100的架构,本公开实施例所指的处理器芯片的全栈涉及处理器芯片的底层硬件层器件、内核态和用户态。支持处理器芯片实现全栈安全运行可以理解为是:以处理器芯片的硬件层器件作为标准密码算法的执行主体,在硬件层器件统一使用标准密码算法的情况下,支持内核态模块和用户态模块的安全运行。基于此,本申请实施例可将处理器芯片的硬件层器件配置为:统一使用标准密码算法,以支持内核态模块和用户态模块的安全运行。也就是说,从处理器芯片的全栈架构来看,处理器芯片统一使用标准密码算法,实现代码、数据的安全运行,标准密码算法的使用贯穿处理器芯片的全栈架构,能够使得处理器芯片实现全栈安全运行。
在一些实施例中,处理器芯片的硬件层器件统一使用标准密码算法,支持内核态模块和用户态模块的安全运行(即实现处理器芯片的全栈安全运行)主要包括:安全处理器120、内存控制器130、CPU加密引擎140统一使用标准密码算法,支持内核态模块和用户态模块的安全运行。在可选实现中,实现处理器芯片的全栈安全运行可以包括如下任一项情况:
情况一、安全处理器120基于标准密码算法,实现操作系统的安全启动;
情况二、在安全虚拟化技术下,内存控制器130基于标准密码算法,对物理内存中的虚拟机数据进行安全保护;
情况三、CPU加密引擎140基于标准密码算法,对用户数据接口传递的用户数据进行安全保护。
下面将分别对上述各种情况的具体实现,以及各种情况下的扩展实现进行详细描述。
针对情况一,操作系统的安全启动主要是保证操作系统启动过程的安全性,使得操作系统启动后进入安全可靠的状态。在一些实施例中,操作系统的安全启动是对内核态模块和用户态模块的代码、数据进行可信度量的前提。
由于操作系统对应内核态,因此操作系统的启动涉及内核态下的多个顺序执行的第一内核态模块;也就是说,在处理器芯片100上电后,需要顺序执行多个第一内核态模块来完成操作系统的启动。在一些实施例中,一个第一内核态模块可以对应启动操作系统的一个启动阶段,从而通过顺序执行启动操作系统的各个启动阶段(即各个第一内核态模块),来完成启动操作系统。在一些实施例中,图2a示例性的示出了启动操作系统涉及的多个第一内核态模块的示例图,如图2a所示,该多个第一内核态模块可以包括顺序执行的:BIOS(Basic Input Output System,基本输入输出系统)、Grub(GRand UnifiedBootloader,统一引导程序)和OS(operating system,操作系统)。基于图2a所示示例,通过顺序执行BIOS、Grub和OS这些启动阶段,可实现启动操作系统。当然,图2a所示的启动阶段仅是一种可选示例,本申请实施例也可支持启动操作系统具有不同的其他启动阶段。
在启动操作系统涉及多个第一内核态模块的情况下,实现操作系统的安全启动可以理解为是:在执行上一个第一内核态模块之后,跳转到下一个第一内核态模块之前,对下一个第一内核态模块的代码进行度量(例如验证),只有下一个第一内核态模块的代码度量通过后,才跳转到下一个第一内核态模块进行执行。也就是说,在启动操作系统的过程中,完成当前启动阶段跳转到下一个启动阶段之前,需先对下一个启动阶段的代码进行度量,只有度量通过后,才交出CPU运行权以跳转到下一个启动阶段。举例来说,在执行BIOS之后,跳转到执行Grub之前,需要对Grub的代码进行度量,只有Grub的代码度量通过后,才跳转到执行Grub。在启动操作系统的过程中,通过上述依序的度量各启动阶段的方式,可使得操作系统启动过程的信任链得以建立,保障操作系统的各启动阶段的安全性。
为保障上述依序度量各启动阶段的过程是可信的,需要以可信的度量根为基础,对各个第一内核态模块进行依序的度量。在由CPU 110实现依序度量第一内核态模块的方案中,上述度量根可以是CPU度量根。图2b示例性的示出了由CPU 110依序度量第一内核态模块的示意图。如图2b所示,CPU度量根通常作为处理器芯片上电后的初始代码,位于处理器芯片的外部;在依序度量第一内核态模块的过程中,CPU需要从处理器芯片的外部加载CPU度量根;基于CPU度量根先对BIOS进行度量,在BIOS度量成功后,执行BIOS;在BIOS执行完成之后,CPU基于CPU度量根对Grub进行度量,在Grub度量成功后,执行Grub;在Grub执行完成之后,CPU基于CPU度量根对OS进行度量,在OS度量成功后,执行OS,从而完成操作系统的启动。
上述由CPU实现依序度量第一内核态模块的方案,需要CPU从处理器芯片的外部加载CPU度量根,而CPU度量根位于处理器芯片的外部存在被篡改的风险,一旦CPU度量根被篡改,则无法保障CPU依序度量各启动阶段的过程是可信的,致使操作系统的安全启动无法保障。需要说明的是,在一些实施例中,CPU度量根可以是CRTM(Core Root Of Trust ForMeasurement,可信度量根的核心),例如,CPU度量根可以是UEFI(Unified ExtensibleFirmware Interface,统一可扩展固件接口)的SEC(Security Phase,安全阶段)代码,其一般位于处理器芯片的外部。
基于CPU度量根存在被篡改的风险,无法保障操作系统的安全启动,本申请实施例由安全处理器120实现操作系统的安全启动。安全处理器可基于固化在安全处理器内部的安全处理器度量根,使用标准密码算法(例如SM2、SM3、SM4等中国国密标准算法),对各个第一内核态模块进行依序的度量。图2c示出了安全处理器依序度量第一内核态模块的示意图。如图2c所示,安全处理器度量根固化在安全处理器内部,一旦处理器芯片生产出来,则安全处理器度量根无法修改,可以保障对各个第一内核态模块进行度量的基础具有极高的可信度。
如图2c所示,与操作系统启动相关的多个第一内核态模块可以包括顺序执行的第一内核态模块211至第一内核态模块21n,n的具体数值可视实际情况而定,本申请实施例并不设限。安全处理器120可基于固化在内部的安全处理器度量根,使用标准密码算法,先对第一内核态模块211进行度量;在第一内核态模块211度量成功后,使第一内核态模块211执行(例如将第一内核态模块211的度量成功结果传输给CPU,从而触发CPU运行第一内核态模块211);在第一内核态模块211执行完成后,安全处理器120基于安全处理器度量根,使用标准密码算法,对第一内核态模块212进行度量;在第一内核态模块212度量成功后,使第一内核态模块212执行;以此类推,直至第一内核态模块21n执行完成之后,实现操作系统的安全启动。
在安全处理器120依序度量第一内核态模块211至第一内核态模块21n的过程中,如果任一第一内核态模块度量失败,则安全处理器可向CPU反馈度量失败结果,从而CPU基于该第一内核态模块的度量失败结果,可拒绝在下一阶段执行该第一内核态模块,即终止操作系统的后续启动过程,避免操作系统在无法保障安全的情况下启动。
可以看出,在内核态部署与操作系统启动相关的多个第一内核态模块,且该多个第一内核态模块顺序执行的情况下,安全处理器可被配置为:基于固化在安全处理器内部的安全处理器度量根,使用标准密码算法,依序对各个第一内核态模块进行度量;其中,上一个第一内核态模块执行完成时,安全处理器对下一个第一内核态模块进行度量,并在该下一个第一内核态模块度量成功时,使下一个第一内核态模块执行(例如,将下一个第一内核态模块的度量成功结果传输给CPU,从而触发CPU运行下一个第一内核态模块)。
本申请实施例基于安全处理器内部固化的安全处理器度量根,使用标准密码算法,依序对操作系统启动过程中的各个启动阶段进行度量,整个度量过程不需要CPU参与;从而,本申请实施例可在安全处理器度量根无法修改的情况下,保障操作系统各个启动阶段的度量可信性,以保障操作系统的安全启动。安全处理器度量时使用的标准密码算法可以是中国国密标准算法,例如SM2、SM3、SM4等。
需要说明的是,本申请实施例所指的度量可以是完整性度量,完整性度量可以是利用杂凑密码算法重新计算代码的杂凑值,从而将重新计算的杂凑值与事先存储的代码的参考杂凑值进行对比,进而根据比对结果,判断代码是否完整。例如比对结果一致,则认为代码完整,比对结果不一致,则认为代码存在因被篡改等情况而不完整。在一些实施例中,本申请实施例进行度量时使用的杂凑密码算法可以是标准密码算法(例如上述说明的标准密码算法)。
在进一步的一些实施例中,安全处理器在度量多个第一内核态模块之前,可基于安全处理器度量根,使用标准密码算法,对安全处理器的加载程序进行度量;在安全处理器的加载程序度量成功后,安全处理器可运行该加载程序;进而,安全处理器可基于安全处理器度量根,使用标准密码算法,对CPU的加载程序进行度量,在CPU的加载程序度量成功后,安全处理器可通知CPU开始运行加载程序;在CPU运行加载程序之后,安全处理器可再对多个第一内核态模块依序进行度量,以使得任一个第一内核态模块度量成功时,安全处理器能够触发CPU执行该第一内核态模块。
在一些实施例中,安全处理器可进一步被配置为:在依序对各个第一内核态模块进行度量之前,基于安全处理器度量根,使用标准密码算法,对安全处理器的加载程序进行度量;在安全处理器的加载程序度量成功之后,运行安全处理器的加载程序,以及,基于安全处理器度量根,使用标准密码算法,对CPU的加载程序进行度量;在CPU的加载程序度量成功后,通知CPU开始运行。
在一个实现示例中,安全处理器的加载程序可以包括安全处理器的bootloader(引导加载程序),CPU的加载程序可以包括CPU的UEFI(包含SEC代码)。作为可选实现示例,图2d示出了安全处理器度量第一内核态模块的示例图。在图2d示例中,安全处理器可先度量安全处理器的bootloader,在安全处理器的bootloader度量成功后,安全处理器的bootloader开始运行;然后,安全处理器度量CPU的UEFI(包含SEC代码),在UEFI度量成功后,安全处理器通知CPU开始运行;可以看出,在UEFI度量成功之前,CPU处于等待安全处理器触发运行的状态;在CPU接收到安全处理器的触发之后,CPU可运行UEFI,并等待安全处理器依序度量第一内核态模块的结果。在图2d示例中,本申请实施例以第一内核态模块包括Grub和OS为示例进行说明,当然,第一内核态模块也可以具有其他形式,本申请实施例并不设限。
如图2d示例,安全处理器可度量Grub,并在Grub度量成功后,将Grub的度量成功结果传输给CPU;CPU基于Grub的度量成功结果运行Grub。然后,安全处理器度量OS,此时,CPU可等待OS的度量结果,安全处理器在度量OS成功之后,可将OS度量成功结果传输给CPU;CPU基于OS的度量成功结果运行OS,从而完成操作系统的启动。
在本申请实施例中,安全处理器基于安全处理器内部固化的安全处理器度量根,使用标准密码算法,先后对安全处理器的引导程序和CPU的引导程序进行度量;在度量成功之后,安全处理器可基于安全处理器度量根,使用标准密码算法,依序对操作系统启动过程中的各个启动阶段进行度量。本申请实施例可在安全处理器度量根无法修改的情况下,保障操作系统各个启动阶段的度量可信性,从而保障操作系统的安全启动。
在进一步的一些实施例中,在操作系统安全启动之后,本申请实施例还可对内核态模块和/或用户态模块的代码和数据进行度量,以保障操作系统启动之后,内核态模块、用户态模块的运行安全。区别于由CPU对内核态模块、用户态模块的代码和数据进行度量,本申请实施例支持由安全处理器对内核态模块、用户态模块的代码和数据进行度量。在一些实施例中,在操作系统启动之后,安全处理器可被配置为:基于安全处理器度量根,使用标准密码算法,对内核态模块和/或用户态模块的代码和数据进行度量,并将度量结果反馈给CPU;CPU基于安全处理器的度量成功结果,可运行该内核态模块和/或用户态模块;CPU基于安全处理器的度量失败结果,可拒绝运行该内核态模块和/或用户态模块,从而保障CPU运行内核态模块和/或用户态模块处于安全环境下。
在一些实施例中,安全处理器可以包括TPM(Trusted Platform Module,可信平台模块)设备,并且内核态可抽象有TPM驱动,从而用户可以使用TPM设备度量内核态模块和/或用户态模块的代码和数据。在进一步的一些实施例中,TPM设备可以是安全处理器本身,或者安全处理器内部部署的硬件器件、软件器件。基于Linux,图3示例性的示出了基于TPM进行度量的架构示意图。如图3所示,在基于TPM进行度量的架构中,底层的硬件层器件为安全处理器(具体是TPM设备);硬件层之上是内核态,内核态中可部署用于驱动TPM设备的TPM驱动,以及多个内核态模块;内核态之上可以是TSS(TCG software stack,可信软件栈)软件栈和libc(Linux下的函数库),最顶层是可信应用程序(用户态模块的一种形式)。其中TSS软件栈由自己的标准实现,与TPM驱动之间有规定的标准接口。结合图3示例架构,用户在需要对内核态模块和/或用户态模块的代码和数据进行度量时,用户可通过用户层接口调用TPM驱动,以驱动TPM设备对内核态模块和/或用户态模块的代码和数据进行度量。在一些实施例中,TPM设备可响应于TPM驱动的被调用,基于安全处理器度量根,使用标准密码算法,对内核态模块和/或用户态模块的代码和数据进行度量;安全处理器可将度量结果反馈给CPU,从而CPU可基于度量成功结果,执行该内核态模块和/或用户态模块,CPU可基于度量失败结果,拒绝执行该内核态模块和/或用户态模块。
在一些实施例中,在虚拟化技术场景下,本申请实施例在操作系统启动之后,支持进行度量的内核态模块可以包括:VMM。VMM也称作Hypervisor(管理程序),是用于创建、管理虚拟机的软件程序;在虚拟化技术场景下,支持进行度量的用户态模块可以包括:虚拟机。在另一些实施例中,本申请实施例在操作系统启动之后,也可支持对容器、可信应用程序等进行度量。
在一些实施例中,TPM设备和对应的TPM驱动可以支持任意的TPM协议。在可选实现中,本申请实施例可使用TPM2.0协议。TPM2.0是国际可信计算联盟(TCG)制定的关于可信计算的标准,其加入了对中国国密标准算法的支持,可在本申请实施例使用的标准密码算法为中国国密标准算法时,实现较好的兼容性。
针对情况二、安全虚拟化是指支持对虚拟机数据进行加密保护的虚拟化技术。安全虚拟化将物理内存中虚拟机数据的加密与CPU的硬件虚拟化相结合,可支持实现加密虚拟机(加密虚拟机可以理解为是虚拟机数据处于加密状态的虚拟机)。图4示出了安全虚拟化的技术架构示意图。结合图1和图4所示,CPU 110可以通过虚拟化技术在用户态虚拟化出多台虚拟机,每台虚拟机可以在物理内存10a中被分配虚拟机内存空间(例如,由内核态中的VMM实现为虚拟机分配和管理虚拟机内存空间),每台虚拟机可以被分配作为标识的唯一的ASID(Address Space ID,地址空间标记),虚拟机的ASID可以存放在虚拟机的虚拟机控制块中。
区别于传统的虚拟化技术,在安全虚拟化技术下,每台虚拟机可以被分配与ASID相绑定的虚拟机密钥(例如,由安全处理器120为每台虚拟机分配与ASID相绑定的虚拟机密钥并进行管理),不同虚拟机可以具有不同的虚拟机密钥;当然,本申请实施例也可支持部分虚拟机可能具有相同虚拟机密钥的情况。虚拟机的虚拟机密钥可以存放在内存控制器130中。内存控制器130中进一步设置内存加密引擎131,内存加密引擎131在虚拟机访问物理内存时,可使用标准密码算法,以虚拟机的ASID相绑定的虚拟机密钥,对虚拟机数据进行加解密。在一些实施例中,当虚拟机需要将虚拟机数据写入虚拟机内存空间时,内存加密引擎131可从该虚拟机的虚拟机控制块中读取ASID,并在内存控制器130中调用与所读取的ASID相绑定的虚拟机密钥,从而基于该虚拟机密钥,使用标准密码算法,对虚拟机数据进行加密,得到加密虚拟机数据;加密虚拟机数据可写入虚拟机相应的虚拟机内存空间。当虚拟机需要从虚拟机内存空间读取虚拟机数据时,由于虚拟机内存空间的虚拟机数据为加密状态,因此内存加密引擎131可使用标准密码算法,以虚拟机相应的虚拟机密钥,对虚拟机内存空间中的加密虚拟机数据进行解密,然后将解密的虚拟机数据送入CPU,以实现读取虚拟机内存空间中的虚拟机数据。
可以看出,在安全虚拟化技术下,虚拟机的虚拟机数据在虚拟机内存空间中,以虚拟机相应的虚拟机密钥进行加密保护。该虚拟机密钥由安全处理器分配和管理,并存放在内存控制器中,CPU和VMM均无法获得虚拟机密钥,因此可以保障虚拟机内存空间中的加密虚拟机数据无法被恶意软件窃取,能够实现虚拟机数据的安全保护。
在本申请实施例中,内存控制器在对虚拟机数据进行加解密时,可使用标准密码算法(例如SM2、SM3、SM4等中国国密标准算法)。在一些实施例中,内存控制器中的内存加密引擎可被配置为:响应于虚拟机针对虚拟机内存空间的虚拟机数据访问请求,基于虚拟机相应的虚拟机密钥,使用标准密码算法,对虚拟机数据进行加解密。
在虚拟机内存空间访问虚拟机数据可以包括:在虚拟机的虚拟机内存空间读取虚拟机数据,和在虚拟机的虚拟机内存空间写入虚拟机数据。例如,在将虚拟机的虚拟机数据写入虚拟机内存空间时,内存控制器可响应于虚拟机针对虚拟机内存空间的虚拟机数据写入请求,基于虚拟机相应的虚拟机密钥,使用标准密码算法,对虚拟机数据进行加密,然后将加密虚拟机数据写入虚拟机内存空间。例如,在从虚拟机内存空间读取虚拟机的加密虚拟机数据时,内存控制器可响应于虚拟机针对虚拟机内存空间的虚拟机数据读取请求,基于虚拟机相应的虚拟机密钥,使用标准密码算法,对加密虚拟机数据进行解密。
在一些实施例中,内存控制器(具体可以是内存加密引擎)可基于虚拟机数据访问请求指示的物理地址中的指示bit(又称为c-bit),来判断当前访问的内存页是否被加密。在一个示例中,指示bit可以设置在物理地址的设定位置,例如,物理地址偏移为47的位置可以设置指示bit。如果物理地址中指示bit为第一值(第一值的可选示例例如1),则说明当前访问的内存页被加密,如果物理地址中指示bit不为第一值,则说明当前访问的内存页未被加密。在当前访问的内存页被加密的情况下,当前访问的内存页属于加密虚拟机的内存页,内存控制器需要基于虚拟机密钥,使用标准密码算法,对内存页相应的虚拟机数据进行加解密(即在内存页写入虚拟机数据时,加密虚拟机数据,在内存页读取虚拟机数据时,解密虚拟机数据);在当前访问的内存页未被加密的情况下,当前访问的内存页为普通虚拟机的内存页,内存控制器可直接在内存页读取、写入虚拟机数据。普通虚拟机可以理解为是虚拟机数据未使用虚拟机密钥进行加密的虚拟机。
在一些实施例中,如果CPU未使能MMU(Memory Management Unit,内存管理单元),则CPU可直接使用物理地址寻址,此时,可由CPU在物理地址中设置指示bit以及指示bit的数值;进而,CPU将物理地址提供给内存控制器时,内存控制器可基于物理地址中指示bit的数值,判断是否需要对虚拟机数据进行加解密。图5a示例性的示出了未使能MMU情况下的虚拟机数据访问示意图,如图5a所示,CPU 110可将用于访问虚拟机数据的物理地址提供给内存控制器130,内存控制器可基于物理地址中c-bit的值是否为1,来判断当前访问的内存页是否被加密;当c-bit的值为1时,当前访问的内存页被加密,内存控制器中的内存加密引擎131可基于虚拟机密钥,使用标准密码算法,对虚拟机数据进行加解密(即在写入虚拟机数据时,加密虚拟机数据,在读取虚拟机数据时,解密虚拟机数据),以实现在内存页访问虚拟机数据;当c-bit的值为0时,内存控制器可直接在内存页访问虚拟机数据。
需要说明的是,MMU是处理器芯片中负责处理CPU的内存访问请求的计算机器件,它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、缓存控制等。
在一些实施例中,如果CPU使能了MMU,则基于MMU的页表管理功能,本申请实施例可由MMU在物理地址中设置指示bit以及指示bit的数值。例如,MMU可在内存页的页表项(例如最后一级页表项)中的物理地址设置指示bit以及指示bit的数值,从而MMU可将带有指示bit的物理地址传输给内存控制器,以进行内存页的访问。在这个过程中,CPU可以按照虚拟地址访问内存页,可在不需要修改CPU的软件程序的情况下,实现对内存页的数据加解密。图5b示例性的示出了使能MMU情况下的虚拟机数据访问示意图,如图5b所示,MMU可将用于访问虚拟机数据的物理地址传输给内存控制器,内存控制器可基于物理地址中c-bit的值是否为1,来判断当前访问的内存页是否被加密;当c-bit的值为1时,当前访问的内存页被加密,内存加密引擎131可基于虚拟机密钥,使用标准密码算法,对虚拟机数据进行加解密,以实现在内存页访问虚拟机数据;当c-bit的值为0时,内存控制器可直接在内存页访问虚拟机数据。
在本申请实施例中,基于安全虚拟化技术,虚拟机可被分配ASID以及与ASID绑定的虚拟机密钥;从而,内存控制器在虚拟机内存空间访问虚拟机的虚拟机数据时,可基于虚拟机的虚拟机密钥,使用标准密码算法,对虚拟机数据进行加解密。虚拟机的虚拟机密钥可与CPU使用的密钥不同,甚至各个虚拟机可以采用不同的虚拟机密钥,因此恶意软件即使拿到了系统权限,也无法读取虚拟机内存空间加密的虚拟机数据,能够实现虚拟机数据的安全保护。
在进一步的一些实施例中,内存控制器中的内存加密引擎还可进一步被配置为:基于安全处理器生成的密钥,使用标准密码算法对内核态模块和/或用户态模块在物理内存的代码和数据进行加密保护,以保障内核态模块、用户态模块的代码和数据的安全性。例如,安全处理器在操作系统启动时可随机生成密钥,并保存在内存控制器中,该密钥无法被运行在CPU核上的软件访问。由于内存控制器集成在处理器芯片内部,因此通过内存控制器使用标准密码算法将代码、数据进行加密,可以防止处理器芯片的外部器件通过总线侦听内核态模块、用户态模块在物理内存中的代码和数据,从而实现内核态模块、用户态模块的代码和数据的安全保护。在一些实施例中,支持内存控制器进行加密保护的内核态模块、用户态模块的代码和数据可以包括:BIOS、Grub、OS、VMM、内核驱动、容器、软件栈、虚拟机的代码和数据。
在一些实施例中,内存控制器在实现对内核态模块和/或用户态模块的代码和数据进行安全保护时,也可基于内核态模块和/或用户态模块的内存页的物理地址中的c-bit,决定内核态模块和/或用户态模块的内存页是否需要加密。例如,内核态模块和/或用户态模块的内存页的物理地址中的c-bit为第一值(例如1),则内存控制器在访问该内存页时,可对该内存页对应的内核态模块和/或用户态模块的代码和数据进行加解密(即,内存控制器在写入代码、数据到该内存页时,可对代码、数据进行加密,内存控制器在从该内存页读代码、数据时,可对代码、数据进行解密)。
在本申请实施例中,内存控制器使用的标准密码算法可以与安全处理器实现操作系统安全启动时的标准密码算法、与TPM设备度量内核态模块、用户态模块的代码和数据时使用的标准密码算法相同。也就是说,安全处理器和内存控制器可以统一使用相同的标准密码算法,例如SM2、SM3、SM4等中国国密标准算法。
针对情况三,CPU加密引擎140为处理器芯片中设置的用于加速加密的加密器件,利用CPU加密引擎140可使用标准密码算法,对用户数据实现快速加解密。例如,用户可通过用户态的用户层加密接口,调用内核态的用于加密的驱动,以驱动CPU加密引擎140实现用户数据的加解密。作为一种可选实现,图6a示例性的示出了本申请实施例提供的CPU加密引擎的加密架构示意图。基于Linux,如图6a所示,该架构在底层硬件层为处理器芯片中集成的CPU加密引擎140;硬件层之上是内核态的用于加密的驱动,例如CCP(Crypto Co-processor,密码协处理器)driver(驱动)、CCP Crypto(加密)driver、Linux CryptoArchitecture(架构);其中,内核态的CCP Crypto driver和CCP driver可用于驱动CCP(CPU加密引擎140的一种可选形式);内核态之上是用户态布置的应用程序、用户层加密接口(例如Openssl接口、Crypto API)。Openssl(Open secure sockets Layer,开放安全套接层)是一个开放源代码的软件包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份,其广泛被应用在互联网的网页服务器上。基于图6a所示架构,用户在需要对应用程序的程序数据等用户数据进行加密时,可通过用户层加密接口,调用内核态的用于加密的驱动,从而驱动CPU加密引擎140使用标准密码算法,对用户数据进行加密保护。相应的,CPU加密引擎140可被配置为:响应于用户态的用户层加密接口,调用内核态的用于加密的驱动,使用标准密码算法,对用户态的用户数据进行加密保护。
在CPU加密引擎140实现用户数据的加密保护的一个示例中,CPU加密引擎可对数据平面开发工具集的数据进行加解密。数据平面开发工具集可为用户空间高效的处理数据包提供库函数和驱动的支持。作为一种可选实现,图6b示例性的示出了本申请实施例提供的CPU加密引擎的另一加密架构示意图。结合图6a和图6b所示,数据平面开发工具集并不位于内核态,但是数据平面开发工具集可部署用于加密的驱动(例如CCP driver),也就是说,处理器芯片中可设置数据平面开发工具集。从而,用户在需要对数据平面开发工具集的数据进行加密时,可通过用户层加密接口,调用数据平面开发工具集的用于加密的驱动,以驱动CPU加密引擎140使用标准密码算法,对数据平面开发工具集的数据进行加密保护。相应的,CPU加密引擎140可响应于用户态的用户层加密接口,调用数据平面开发工具集的用于加密的驱动,使用标准密码算法,对数据平面开发工具集的数据进行加密保护。
在本申请实施例中,CPU加密引擎140可使用与安全处理器、内存控制器相同的标准密码算法,例如SM2、SM3、SM4等中国国密标准算法。在一些实施例中,基于不同形式的标准密码算法,CPU加密引擎140可以相应配置如下至少一项加密安全功能:SM2算法的签名、验签,加密、解密;SM3算法;HMAC(Hash-based Message Authentication Code,哈希运算消息认证码)算法;SM4算法的加密、解密,支持不同的SM4算法模式;硬件真随机数的生成。
可以看出,CPU加密引擎140使用标准密码算法,通过硬件电路加解密用户数据,加解密过程不用CPU核参与;CPU加密引擎140加解密数据的同时,CPU核运行其他程序,能够极大减轻CPU的压力。在内核支持CPU加密引擎140的驱动程序的情况下,用户通过使用支持标准密码算法的用户层加密接口,调用内核的用于加密的驱动,实现CPU加密引擎140使用标准密码算法加解密用户数据,从而实现用户数据的安全保护。
基于上述描述的情况一、情况二和情况三的方案,在本申请实施例提供的处理器芯片的一种可选实现中,处理器芯片可至少实现:
可信度量,涉及安全处理器对操作系统的安全启动、以及操作系统安全启动之后,安全处理器(例如TPM设备)对内核态和/或用户态的代码度量;
内存加密,涉及内存控制器对虚拟机数据的加密保护,以及内存控制器对内核态和/或用户态的代码、数据的加密保护;
用户数据加密,涉及CPU加密引擎对用户态的用户数据的加速加密。
基于上述实现,图7示出了本申请实施例提供的处理器芯片的另一可选架构示意图。如图7所示,从处理器芯片的全栈架构来看:
安全处理器可实现可信度量,可信度量相关过程可以参考图7带箭头的细实线所示,具体包括:使用标准密码算法对内核态的BIOS、Grub、OS进行依序度量,实现操作系统的安全启动,以及,TPM设备使用标准密码算法,对内核态模块、用户态模块的代码和数据进行度量;本段涉及的具体实现可参照前文相应部分的描述;
内存控制器实现内存加密,内存加密相关过程可以参考图7带箭头的加粗实线所示,具体包括:使用标准密码算法对虚拟机数据进行加密保护,以及使用标准密码算法对内核态和用户态的代码、数据的进行加密保护;本段涉及的具体实现可参照前文相应部分的描述;
CPU加密引擎实现用户数据加密,CPU加密引擎的加密相关过程可以参考图7带箭头的加粗虚线所示,具体包括:在用户层加密接口调用内核的加密驱动、或者数据平面开发工具集的情况下,CPU加密引擎使用标准密码算法对用户数据进行加密;本段涉及的具体实现可参照前文相应部分的描述。
可以看出,从处理器芯片的硬件层器件到内核态到用户态,安全处理器、内存控制器和CPU加密引擎均统一使用标准密码算法,保障内核态模块和用户态模块的安全运行。也就是说,从处理器芯片的全栈架构来看,处理器芯片统一使用标准密码算法,实现代码、数据的安全运行,标准密码算法的使用贯穿处理器芯片的全栈架构,能够使得处理器芯片实现全栈安全运行。
需要说明的是,上述示出的情况一、情况二和情况三仅是处理器芯片的全栈架构统一使用标准密码算法,实现代码、数据的安全运行的可选示意。基于处理器芯片的硬件层器件对于标准密码算法的支持,本申请实施例也可在其他情况下,使用标准密码算法实现内核态模块、用户态模块的安全运行。
在进一步的一些实现中,本申请实施例还提供一种电子设备,该电子设备可以是终端设备,也可以是服务器设备,该电子设备可以包括本申请实施例提供的处理器芯片。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (13)
1.一种处理器芯片,其特征在于,包括:多个硬件层器件;所述多个硬件层器件包括:CPU、与所述CPU连接的安全处理器、与所述CPU和所述安全处理器连接的内存控制器、与所述CPU连接的CPU加密引擎;
所述CPU具有内核态和用户态,所述内核态部署多个内核态模块,所述用户态部署多个用户态模块,其中,所述多个内核态模块用于实现内核态下的功能,所述多个用户态模块用于实现用户态下的功能;
所述硬件层器件被配置为:统一使用标准密码算法,以支持所述内核态模块和所述用户态模块的安全运行;
其中,所述多个内核态模块包括:与操作系统启动相关的多个第一内核态模块,所述多个第一内核态模块顺序执行;所述安全处理器被配置为:
基于固化在安全处理器内部的安全处理器度量根,使用标准密码算法,依序对各个第一内核态模块进行度量;其中,上一个第一内核态模块执行完成时,安全处理器对下一个第一内核态模块进行度量,并在所述下一个第一内核态模块度量成功时,使所述下一个第一内核态模块执行。
2.根据权利要求1所述的处理器芯片,其特征在于,所述安全处理器进一步被配置为:
在依序对各个第一内核态模块进行度量之前,基于安全处理器度量根,使用标准密码算法,对安全处理器的加载程序进行度量;
在所述安全处理器的加载程序度量成功之后,运行所述安全处理器的加载程序,以及,基于安全处理器度量根,使用标准密码算法,对CPU的加载程序进行度量;在CPU的加载程序度量成功后,通知CPU开始运行。
3.根据权利要求2所述的处理器芯片,其特征在于,所述安全处理器的加载程序包括:安全处理器的引导加载程序;所述CPU的加载程序包括:CPU的统一可扩展固件接口,所述统一可扩展固件接口包括安全阶段代码;所述多个第一内核态模块包括:统一引导程序和操作系统。
4.根据权利要求2-3任一项所述的处理器芯片,其特征在于,所述安全处理器进一步被配置为:
在操作系统启动之后,基于安全处理器度量根,使用标准密码算法,对内核态模块和/或用户态模块的代码和数据进行度量,并将度量结果反馈给CPU;
其中,CPU基于安全处理器的度量成功结果,运行所述内核态模块和/或用户态模块;CPU基于安全处理器的度量失败结果,拒绝运行所述内核态模块和/或用户态模块。
5.根据权利要求4所述的处理器芯片,其特征在于,所述安全处理器包括可信平台模块设备,且所述内核态抽象有可信平台模块驱动;其中,所述可信平台模块设备响应于可信平台模块驱动的被调用,基于安全处理器度量根,使用标准密码算法,对内核态模块和/或用户态模块的代码和数据进行度量。
6.根据权利要求1所述的处理器芯片,其特征在于,所述CPU在用户态虚化有多台虚拟机,每台虚拟机在物理内存分配有虚拟机内存空间,并且每台虚拟机分配有唯一的地址空间标记和与地址空间标记绑定的虚拟机密钥;其中,虚拟机的虚拟机密钥由所述安全处理器管理和分配,并存放在内存控制器中。
7.根据权利要求6所述的处理器芯片,其特征在于,所述内存控制器包括内存加密引擎,所述内存加密引擎被配置为:响应于虚拟机针对虚拟机内存空间的虚拟机数据访问请求,基于虚拟机相应的虚拟机密钥,使用标准密码算法,对虚拟机数据进行加解密。
8.根据权利要求7所述的处理器芯片,其特征在于,所述内存加密引擎进一步被配置为:基于所述虚拟机数据访问请求指示的物理地址中的指示bit,判断当前访问的内存页是否被加密;若所述指示bit为第一值,则所述内存页被加密,若所述指示bit不为第一值,则所述内存页未被加密;所述指示bit设置于所述物理地址的特定位置;
其中,在所述内存页被加密的情况下,所述内存加密引擎基于虚拟机相应的虚拟机密钥,使用标准密码算法,对所述内存页相应的虚拟机数据进行加解密。
9.根据权利要求8所述的处理器芯片,其特征在于,若所述CPU未使能内存管理单元,则CPU在所述物理地址中设置指示bit以及指示bit的数值;若所述CPU使能内存管理单元,则所述内存管理单元在所述内存页的页表项中的物理地址设置指示bit以及指示bit的数值。
10.根据权利要求6-9任一项所述处理器芯片,其特征在于,所述内存加密引擎进一步被配置为:基于安全处理器在操作系统启动时随机生成的密钥,使用标准密码算法对内核态模块和/或用户态模块在物理内存的代码和数据进行加密保护。
11.根据权利要求1所述的处理器芯片,其特征在于,所述用户态部署有用户层加密接口,所述内核态部署有用于加密的驱动,所述驱动用于驱动所述CPU加密引擎;所述CPU加密引擎被配置为:
响应于用户态的用户层加密接口调用所述驱动,使用标准密码算法,对用户态的用户数据进行加密保护。
12.根据权利要求11所述的处理器芯片,其特征在于,所述处理器芯片还设置数据平面开发工具集;所述数据平面开发工具集部署有用于加密的驱动;所述CPU加密引擎进一步被配置为:
响应于用户态的用户层加密接口,调用数据平面开发工具集的驱动,使用标准密码算法,对数据平面开发工具集的数据进行加密保护。
13.一种电子设备,其特征在于,包括如权利要求1-12任一项所述的处理器芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720353.9A CN113342735B (zh) | 2021-06-28 | 2021-06-28 | 一种处理器芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720353.9A CN113342735B (zh) | 2021-06-28 | 2021-06-28 | 一种处理器芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342735A CN113342735A (zh) | 2021-09-03 |
CN113342735B true CN113342735B (zh) | 2024-04-16 |
Family
ID=77479267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110720353.9A Active CN113342735B (zh) | 2021-06-28 | 2021-06-28 | 一种处理器芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342735B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117113362B (zh) * | 2023-10-19 | 2024-01-19 | 中电科申泰信息科技有限公司 | 一种多芯粒处理器的安全启动维护方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436566A (zh) * | 2012-01-12 | 2012-05-02 | 冶金自动化研究设计院 | 一种动态可信度量方法及安全嵌入式系统 |
CN109828827A (zh) * | 2018-11-22 | 2019-05-31 | 海光信息技术有限公司 | 一种检测方法、装置及相关设备 |
CN111737701A (zh) * | 2020-06-19 | 2020-10-02 | 全球能源互联网研究院有限公司 | 一种服务器可信根系统及其可信启动方法 |
CN111783078A (zh) * | 2020-07-14 | 2020-10-16 | 大唐终端技术有限公司 | Android平台安全芯片控制系统 |
-
2021
- 2021-06-28 CN CN202110720353.9A patent/CN113342735B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436566A (zh) * | 2012-01-12 | 2012-05-02 | 冶金自动化研究设计院 | 一种动态可信度量方法及安全嵌入式系统 |
CN109828827A (zh) * | 2018-11-22 | 2019-05-31 | 海光信息技术有限公司 | 一种检测方法、装置及相关设备 |
CN111737701A (zh) * | 2020-06-19 | 2020-10-02 | 全球能源互联网研究院有限公司 | 一种服务器可信根系统及其可信启动方法 |
CN111783078A (zh) * | 2020-07-14 | 2020-10-16 | 大唐终端技术有限公司 | Android平台安全芯片控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113342735A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7962738B2 (en) | Hypervisor runtime integrity support | |
CN109669734B (zh) | 用于启动设备的方法和装置 | |
CN109918919B (zh) | 认证变量的管理 | |
EP2815349B1 (en) | Roots-of-trust for measurement of virtual machines | |
US8782801B2 (en) | Securing stored content for trusted hosts and safe computing environments | |
CN107667347B (zh) | 用于虚拟化访问由融合式可管理性和安全引擎提供的安全服务的技术 | |
McCune et al. | Flicker: An execution infrastructure for TCB minimization | |
CN107851160B (zh) | 用于在isa控制下进行多个共存可信执行环境的可信i/o的技术 | |
US7974416B2 (en) | Providing a secure execution mode in a pre-boot environment | |
KR102102090B1 (ko) | Arm® trustzone™ 구현을 위한 펌웨어 기반 신뢰 플랫폼 모듈 | |
US20140230024A1 (en) | Computer system and virtual computer management method | |
US20110246778A1 (en) | Providing security mechanisms for virtual machine images | |
TWI582632B (zh) | 使用多重鑑別碼模組以進入安全計算環境之方法及系統、以及處理器 | |
US20080163212A1 (en) | Paralleled management mode integrity checks | |
TW201145069A (en) | Providing integrity verification and attestation in a hidden execution environment | |
US9015454B2 (en) | Binding data to computers using cryptographic co-processor and machine-specific and platform-specific keys | |
JP2016021220A (ja) | 退避ファイルの一貫性を検証する方法、コンピュータおよびコンピュータ・プログラム | |
CN112800429B (zh) | 一种基于基础性的uefi bios固件系统中驱动程序保护的方法 | |
CN112069506B (zh) | 一种安全启动方法和装置 | |
Arnold et al. | IBM 4765 cryptographic coprocessor | |
US20080104711A1 (en) | System and method for an isolated process to control address translation | |
CN113342735B (zh) | 一种处理器芯片及电子设备 | |
US9202056B2 (en) | Inter-processor attestation hardware | |
Safford et al. | Take control of TCPA | |
CN114077739A (zh) | 快速外设组件互联设备启动方法、装置以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |