CN116049844A - 一种可信平台模块调用方法、系统、装置及存储介质 - Google Patents
一种可信平台模块调用方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN116049844A CN116049844A CN202211530940.2A CN202211530940A CN116049844A CN 116049844 A CN116049844 A CN 116049844A CN 202211530940 A CN202211530940 A CN 202211530940A CN 116049844 A CN116049844 A CN 116049844A
- Authority
- CN
- China
- Prior art keywords
- tpm
- component
- trusted
- soft
- sel
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种可信平台模块调用方法、系统、装置及存储介质,方法包括:采用CAmkES框架实现seL4系统组件及TPM Proxy组件;根据seL4系统组件通过Linux虚拟机实现seL4微内核操作系统;基于嵌入式系统部署seL4微内核操作系统;当嵌入式系统需要升级时,通过seL4微内核操作系统执行可信升级;当嵌入式系统正常运行时,通过Linux虚拟机获取TPM调用请求,并通过TPM Proxy组件返回TPM调用结果。本发明可以为无法集成硬件TPM的嵌入式系统提供软TPM可信升级服务和TPM调用服务,提高了嵌入式系统的可信计算能力,可广泛应用于可信计算技术领域。
Description
技术领域
本发明涉及可信计算技术领域,尤其是一种可信平台模块调用方法、系统、装置及存储介质。
背景技术
可信平台模块(Trusted Platform Module,TPM)是一项针对安全加密处理器的国际标准,通常是一类专用微处理器,被设计为通过其内部集成的加密密钥来保障硬件安全。TPM也可用于指代符合该标准的专用硬件,包括芯片及模块。TPM可用于数字版权管理、计算机系统登入管理、软件许可证、反作弊等领域。使用TPM能有效提高受TPM保护的应用程序与固件的安全性,并增强搭载TPM的平台的服务安全性。
TPM分为TPM1.0和TPM2.0两套标准。TPM1.0为单层架构,采用单一RSA2048存储根密钥,并要求实现SHA-1摘要算法、RSA公钥算法、AES对称加密算法以及与之配套的密码学原语,支持HMAC、PCR、地址信息、实体存在性检验四种认证模式。TPM2.0为三层结构,包括平台层、存储层、背书层,每个层级均包含多个根密钥,其算法和密码学原语要求额外支持SHA256摘要算法、ECC非对称加密算法,TPM2.0要求在密码学原语中实现专门的异或函数,用户可根据需要,使用授权原语对多种认证手段进行逻辑操作以搭建复杂的认证策略。
由于硬件设计差异,不同厂家或同一厂家适配不同硬件平台的硬件TPM通常无法相互兼容。硬件TPM中的密码学功能通常由专用密码学硬件实现,部分固件使用一次性写入可编程存储器存储,因此当计算环境的完整性发生变化后,通常要由变化的提供方(如软件供应商或操作系统厂商)藉由安全凭证和内部接口对硬件TPM进行更新。因此,现有的嵌入式系统集成硬件TPM存在困难,且难以对软TPM及系统进行可信升级管理及调用,影响了其可信计算能力。
发明内容
本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
为此,本发明实施例的一个目的在于提供一种可信平台模块调用方法,该方法可以为无法集成硬件TPM的嵌入式系统提供软TPM可信升级服务和TPM调用服务,提高了嵌入式系统的可信计算能力。
本发明实施例的另一个目的在于提供一种可信平台模块调用系统。
为了达到上述技术目的,本发明实施例所采取的技术方案包括:
第一方面,本发明实施例提供了一种可信平台模块调用方法,包括以下步骤:
采用CAmkES框架实现seL4系统组件及TPM Proxy组件,所述seL4系统组件包括软TPM组件、软TPM可信管理组件以及VMM组件;
根据所述seL4系统组件通过Linux虚拟机实现seL4微内核操作系统;
基于嵌入式系统部署所述seL4微内核操作系统;
当所述嵌入式系统需要升级时,通过所述seL4微内核操作系统执行可信升级;
当所述嵌入式系统正常运行时,通过所述Linux虚拟机获取TPM调用请求,并通过所述TPM Proxy组件返回TPM调用结果。
进一步地,在本发明的一个实施例中,所述采用CAmkES框架实现seL4系统组件及TPM Proxy组件这一步骤,其具体包括:
采用CAmkES框架实现软TPM组件,所述软TPM组件用于对TPM关键数据进行加密保护,所述软TPM组件设有TPM调用接口和TPM升级接口,所述TPM调用接口用于读取所述TPM关键数据,所述TPM升级接口用于对所述软TPM组件进行升级;
采用CAmkES框架实现软TPM可信管理组件,所述软TPM可信管理组件设有TPM升级请求接口,所述TPM升级请求接口用于请求所述软TPM组件进行升级;
采用CAmkES框架实现VMM组件,所述VMM组件设有中转接口,所述中转接口用于中转所述Linux虚拟机与所述软TPM组件之间的往来事件;
采用CAmkES框架实现TPM Proxy组件,所述TPM Proxy组件用于拦截获取可信应用发送的所述TPM调用请求,并通过seL4 IPC将所述TPM调用请求透明传递至所述软TPM组件,还用于接收所述软TPM组件的TPM调用结果并返回至所述可信应用。
进一步地,在本发明的一个实施例中,所述根据所述seL4系统组件通过Linux虚拟机实现seL4微内核操作系统这一步骤,其具体包括:
向所述VMM组件中安装所述Linux虚拟机;
对所述Linux虚拟机进行配置,安装TSS协议栈、所述TPM Proxy组件、相关内核模块以及所述可信应用,并将所述TSS协议栈、所述TPM Proxy组件配置为开机自启动;
采用CAmkES框架建立所述软TPM组件、所述VMM组件以及所述软TPM可信管理组件间的链接,并将所述软TPM可信管理组件配置为首个被加载的组件,将所述VMM组件配置为在所述软TPM组件完成加载后被加载;
将所述seL4系统组件与seL4微内核整合为所述seL4微内核操作系统。
进一步地,在本发明的一个实施例中,所述基于嵌入式系统部署所述seL4微内核操作系统这一步骤,其具体包括:
将所述seL4微内核操作系统制作成可引导系统镜像,并将所述可引导系统镜像与引导所述seL4微内核操作系统所需的其它文件一同拷贝至预设的所述嵌入式系统中;
启动所述嵌入式系统,并在所述嵌入式系统上通过所述可引导系统镜像和所述其它文件引导所述seL4微内核操作系统;
通过所述软TPM可信管理组件对所述Linux虚拟机的配置完成加载,并对外部存储设备和可信升级包的存在进行检测;
通过所述seL4微内核操作系统加载所述软TPM组件;
当软TPM组件完成加载,通过所述软TPM可信管理组件初始化所述软TPM可信管理组件与所述软TPM组件之间的接口;
通过所述VMM组件对所述Linux虚拟机的配置完成加载并启动所述Linux虚拟机,使得所述TSS协议栈、所述TPM Proxy组件按照所述Linux虚拟机的配置完成启动;
通过所述TPM Proxy组件初始化所述TPM Proxy组件与所述软TPM组件之间的接口,所述seL4微内核操作系统启动完成,且所述嵌入式系统启动完成。
进一步地,在本发明的一个实施例中,所述当所述嵌入式系统需要升级时,通过所述seL4微内核操作系统执行可信升级这一步骤,其具体包括:
使用可信签名工具对更新文件进行签名生成可信升级包,并将所述可信升级包存入外部存储设备;
将所述外部存储设备插入所述嵌入式系统,并重启所述嵌入式系统;
在所述seL4微内核操作系统的启动过程中,通过所述软TPM可信管理组件根据所述Linux虚拟机的配置完成加载,并对所述外部存储设备和所述可信升级包的存在进行检测;
当所述软TPM可信管理组件检测到所述可信升级包,对所述可信升级包的签名、完整性以及更新版本号进行验证;
若验证通过,通过所述软TPM可信管理组件执行可信升级;
通过所述seL4微内核操作系统继续加载所述seL4系统组件直至系统启动完成,实现一次完整的系统可信升级。
进一步地,在本发明的一个实施例中,所述通过所述软TPM可信管理组件执行可信升级这一步骤,其具体包括:
通过所述软TPM可信管理组件初始化所述TPM升级请求接口与软TPM组件的TPM升级接口间的数据端口,并为所述数据端口分配共享内存缓冲区,进而将所述共享内存缓存区的地址映射到所述软TPM可信管理组件和所述软TPM组件的进程地址空间中;
通过所述软TPM可信管理组件从所述可信升级包中提取可信更新数据,并将所述可信更新数据写入所述共享内存缓冲区中;
通过所述TPM升级请求接口向所述TPM升级接口发送可信升级请求;
通过所述软TPM组件使用密码学原语对所述TPM关键数据进行解密,并读取所述共享内存缓冲区中的所述可信更新数据对解密后的所述TPM关键数据进行更新,进而使用密码学原语对更新完成的所述TPM关键数据重新进行加密;
通过所述软TPM组件检查所述可信更新数据中是否存在对所述Linux虚拟机进行更新的内容,若存在,则对所述Linux虚拟机的镜像中需要更新的文件进行更新,并在更新完成后对所述Linux虚拟机的镜像版本号进行递增;
通过所述软TPM组件对自身版本号进行递增,完成可信升级。
进一步地,在本发明的一个实施例中,所述当所述嵌入式系统正常运行时,通过所述Linux虚拟机获取TPM调用请求,并通过所述TPM Proxy组件返回TPM调用结果这一步骤,其具体包括:
通过所述Linux虚拟机中的所述可信应用基于标准API向所述TSS协议栈发送所述TPM调用请求;
通过所述TPM Proxy组件使用API拦截获取所述TPM调用请求,并通过seL4 IPC将所述TPM调用请求透明传递至所述软TPM组件;
通过所述软TPM组件对所述TPM调用请求进行处理得到TPM调用接口,并通过seL4IPC将所述TPM调用结果返回至所述Linxu虚拟机中的所述TPM Proxy组件;
通过所述TPM Proxy将所述TPM调用结果返回至所述可信应用,使得所述可信应用获得标准TPM服务,实现一次完整的软TPM调用。
第二方面,本发明实施例提供了一种可信平台模块调用系统,包括:
组件实现模块,用于采用CAmkES框架实现seL4系统组件及TPM Proxy组件,所述seL4系统组件包括软TPM组件、软TPM可信管理组件以及VMM组件;
系统实现模块,用于根据所述seL4系统组件通过Linux虚拟机实现seL4微内核操作系统;
系统部署模块,用于基于嵌入式系统部署所述seL4微内核操作系统;
可信升级模块,用于当所述嵌入式系统需要升级时,通过所述seL4微内核操作系统执行可信升级;
TPM调用模块,用于当所述嵌入式系统正常运行时,通过所述Linux虚拟机获取TPM调用请求,并通过所述TPM Proxy组件返回TPM调用结果。
第三方面,本发明实施例提供了一种可信平台模块调用装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现上述的一种可信平台模块调用方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行上述的一种可信平台模块调用方法。
本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:
本发明实施例在嵌入式系统上部署以seL4为内核的seL4微内核操作系统,使用CAmkES框架搭建软TPM组件、软TPM可信管理组件及VMM组件,在VMM组件中部署供工作使用Linux虚拟机,软TPM组件可以使用内建密码学原语对TPM关键数据进行加密保护,Linux虚拟机可通过seL4 IPC机制获取来自软TPM组件的标准TPM服务,软TPM可信管理组件使用可信升级包对软TPM组件的TPM关键数据进行收集,CAmkES框架的CapDL语言赋予各个组件完成其所需工作最有限的权限,seL4微内核可以通过基于能力的强制访问控制机制对各个组件的运行及TPM关键数据进行保护,拒绝未授权访问,从而为无法集成硬件TPM的嵌入式系统提供软TPM可信升级服务和TPM调用服务,提高了嵌入式系统的可信计算能力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面对本发明实施例中所需要使用的附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
图1为本发明实施例提供的一种可信平台模块调用方法的步骤流程图;
图2为本发明实施例提供的部署有seL4微内核操作系统的嵌入式系统的结构示意图;
图3为本发明实施例提供的对软TPM组件及Linux虚拟机进行可信升级的流程图;
图4为本发明实施例提供的对软TPM组件及Linux虚拟机进行可信升级的时序图;
图5为本发明实施例提供的Linux虚拟机的可信应用获取标准TPM服务的流程图;
图6为本发明实施例提供的Linux虚拟机的可信应用获取标准TPM服务的时序图;
图7为本发明实施例提供的一种可信平台模块调用系统的结构框图;
图8为本发明实施例提供的一种可信平台模块调用装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
在本发明的描述中,多个的含义是两个或两个以上,如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。
首先对本发明实施例的相关实体进行解释说明。
seL4是一个通过形式化验证的、具有很高实时性的微内核操作系统,具有基于能力的强制访问控制安全功能,在seL4中,当某一实体需要访问另外的对象时,必须在构建阶段显式声明所需要的“能力”属性,该属性包括了对目标对象的引用及其具体权限(例如只读、只写或读写)。同时seL4还具有虚拟机管理能力,能够借助于硬件的虚拟化功能,实现对通用Linux操作系统的运行支撑。
为了执行一个操作,一个seL4的应用程序必须调用一项它所掌握的,对所需服务拥有足够访问权限的能力。基于上述设计,系统能确保软件组件彼此隔离,并通过选择性地授予特定的通讯能力来授权和控制组件间的通讯,只有那些被它们所拥有的能力明确授权的组件才被允许执行相应操作。
一项能力是一个不可伪造的凭证,该凭证包含对一个特定内核对象的引用,例如一个线程控制块(TCB),并带有对何种方法可被调用(以应用于此对象)的访问权限。从概念上讲,一项能力驻留在一个应用程序的能力空间中,该空间中的一个地址指向一个插槽,这个插槽中或许包含一项能力。一个应用程序可以通过使用放有能力的插槽的地址来引用一项能力从而获取诸如内核服务等服务。能力机制由seL4内核强制实施,具有很高的安全保证能力。
CAmkES框架是运行在seL4本地的一类系统模块,用于为seL4系统提供服务。CAmkES框架使用一种形式化架构描述语言CAmkES ADL编写,该语言包含对组件、接口以及链接它们的链接器的精确描述。CAmkES可确保系统设计者在ADL中描述的内容是对组件间可能交互行为的精确描述并确保不会产生任何超出设计范围的行为,这通过CAmkES平台内部的能力分配语言CapDL实现。CAmkES框架包含了一个能自动将CAmkES ADL转译为CapDL的编译器,设计者无需自行编写CapDL代码。
CapDL是对seL4系统中访问权限的一种精确表达,并由seL4负责执行。这意味着系统只要运行CapDL编写的组件,CapDL就能保证组件的行为与CAmkES ADL所描述的一致,从而确保系统及其组件的强安全。
seL4微内核:seL4微内核操作系统的内核,用于调度CAmkES系统组件并运用基于能力的强制访问控制机制对系统组件的访问权限进行白名单式控制,实现系统组件间的强隔离与虚拟化Linux支持。
seL4SharedDataWithCaps数据端口链接器:CAmkES链接器,该链接器拥有操作内存帧的能力,可用于搭建跨虚拟机数据端口,使VMM能将数据端口的共享内存缓冲区映射到虚拟机地址空间中。在本发明中,该链接器用于建立软TPM组件与TPM Proxy间的共享内存缓冲区,从而使TPM Proxy可以使用Linux虚拟机中的dataport内核模块访问共享内存缓冲区并与软TPM组件交换数据。
seL4SharedData数据端口链接器:CAmkES链接器,用于搭建CAmkES组件间的数据端口。在本发明中,该链接器用于建立软TPM组件与软TPM可信管理组件间的链接,从而使上述组件间相应接口的数据端口能建立共享内存缓冲区。
软TPM组件:CAmkES系统组件,实现了TPM规范要求的标准TPM服务。包括背书密钥在内的TPM关键数据被加密存储在组件内部,由组件的密码学原语对其进行加解密。组件设有两个接口:TPM调用接口用于为Linux虚拟机提供标准TPM服务,仅允许读取TPM关键数据,接口包含一个基于seL4通知机制的通知接口和一个基于seL4SharedDataWithCaps数据端口链接器的共享内存缓冲区。TPM升级接口用于对软TPM进行升级,通过seL4基于能力的强制访问控制机制仅授权软TPM可信管理组件调用,可读写TPM关键数据,接口包含一个基于seL4通知机制的通知接口和一个基于seL4SharedData数据端口链接器的共享内存缓冲区。
软TPM可信管理组件:CAmkES系统组件,用于发现与验证可信升级包,并从通过验证的可信升级包中提取可信更新数据对软TPM组件进行升级。组件包含一个TPM升级请求接口,用于对软TPM组件进行升级,接口包含一个基于seL4通知机制的通知接口和一个基于seL4SharedData数据端口链接器的共享内存缓冲区。组件被实现为在完成加载后对外部存储设备及可信升级包的存在进行检测,若检测到可信升级包存在则自动执行可信升级。
VMM组件:CAmkES系统组件,实现了一个运行Linux虚拟机的VMM,用于运行Linux虚拟机并为跨虚拟机通信提供支持。组件包含一个基于seL4通知机制的通知接口,用于中转Linux虚拟机与软TPM组件间的往来事件。
Linux虚拟机:运行在VMM组件中的虚拟化Linux操作系统,安装有TSS协议栈、TPMProxy和dataport、emits_event、consumes_event三个内核模块。嵌入式系统用户使用该虚拟机进行工作。
dataport内核模块:该模块用于在虚拟机与seL4本地CAmkES组件间创建共享内存。在本发明中,该模块用于建立Linux虚拟机与软TPM组件间的共享内存缓冲区。
emits_event内核模块:该模块允许Linux虚拟机中的一个进程跨虚拟机向seL4本地CAmkES组件发送一个事件。在本发明中,该模块被TPM Proxy用于通知软TPM组件从两者的共享内存缓冲区中取走TPM调用请求。
consumes_event内核模块:模块允许Linux虚拟机中的一个进程使用系统调用对seL4本地CAmkES组件发出的一个事件进行等待或轮询。在本发明中,该模块被TPM Proxy用于等待来自软TPM组件的通知,以便取回两者的共享内存缓冲区中的TPM调用结果。
TSS协议栈:Linux虚拟机协议栈,在装有硬件TPM的计算机中用于接受来自应用程序的TPM服务API请求并通过系统API访问TPM,获取TPM调用结果并返回给发出调用的应用程序。本发明中,该协议栈并不实际生效,发往该协议栈的TPM调用请求将被TPM Proxy拦截。
TPM Proxy:Linux虚拟机应用程序,使用API拦截获取应用程序发送至TSS协议栈的TPM调用请求,通过seL4 IPC将其透明传递给软TPM组件,接收来自软TPM组件的TPM调用结果并返回给应用程序。TPM Proxy包含一个TPM调用请求接口,用于获取软TPM组件的标准TPM服务,接口包含一个基于emits_event和consumes_event内核模块的通知接口和一个基于dataport内核模块和seL4SharedDataWithCaps数据端口链接器的共享内存缓冲区。
下面结合附图对本发明实施例作进一步详细说明。
如图2所示为本发明实施例提供的部署有seL4微内核操作系统的嵌入式系统的结构示意图,本发明实施例将seL4应用于软TPM及其可信管理上,seL4作为经过完整形式化验证及实现证明的微内核,具有基于能力的强制访问控制机制,可以对系统各组件的访问权限进行细粒度的严格控制。使用经形式化验证的CAmkES平台开发的seL4系统组件权限受CapDL限制,仅被给予完成其工作所需的最小权限,对权限的控制由seL4微内核执行。因此本发明实施例提出的方法具有良好的安全性,能够有效保障标准TPM服务及TPM标准服务的安全,实现软TPM组件及Linux虚拟机的可信升级。此外,本发明的软TPM相比传统硬件TPM具有更好的硬件适配灵活性,能够为难以集成硬件TPM的嵌入式系统提供标准TPM服务。
参照图1,本发明实施例提供了一种可信平台模块调用方法,具体包括以下步骤:
S101、采用CAmkES框架实现seL4系统组件及TPM Proxy组件,seL4系统组件包括软TPM组件、软TPM可信管理组件以及VMM组件。
步骤S101具体包括以下步骤:
S1011、采用CAmkES框架实现软TPM组件,软TPM组件用于对TPM关键数据进行加密保护,软TPM组件设有TPM调用接口和TPM升级接口,TPM调用接口用于读取TPM关键数据,TPM升级接口用于对软TPM组件进行升级;
S1012、采用CAmkES框架实现软TPM可信管理组件,软TPM可信管理组件设有TPM升级请求接口,TPM升级请求接口用于请求软TPM组件进行升级;
S1013、采用CAmkES框架实现VMM组件,VMM组件设有中转接口,中转接口用于中转Linux虚拟机与软TPM组件之间的往来事件;
S1014、采用CAmkES框架实现TPM Proxy组件,TPM Proxy组件用于拦截获取可信应用发送的TPM调用请求,并通过seL4 IPC将TPM调用请求透明传递至软TPM组件,还用于接收软TPM组件的TPM调用结果并返回至可信应用。
具体地,使用CAmkES框架实现软TPM组件。软TPM组件对包括背书密钥在内的TPM关键数据进行加密保护,并设有两个接口,TPM调用接口用于为Linux虚拟机提供标准TPM服务,仅读取TPM关键数据,TPM升级接口用于对软TPM进行升级,通过seL4基于能力的强制访问控制机制仅授权软TPM可信管理组件调用,可读写TPM关键数据。每个接口包含一个基于seL4通知机制的通知接口和一个基于seL4数据端口机制的共享内存缓冲区。
使用CAmkES框架实现软TPM可信管理组件。软TPM可信管理组件包含一个TPM升级请求接口,用于对软TPM组件进行升级,接口包含一个基于seL4通知机制的通知接口和一个基于seL4数据端口机制的共享内存缓冲区。组件被实现为在完成加载后对外部存储设备及可信升级包的存在进行检测,若检测到可信升级包存在则自动执行可信升级。
使用CAmkES框架实现VMM组件。VMM组件包含一个基于seL4通知机制的通知接口,用于中转Linux虚拟机与软TPM组件间的往来事件。
实现TPM Proxy组件,TPM Proxy组件使用API拦截获取应用程序发送至TSS协议栈的TPM调用请求,通过seL4 IPC将其透明传递给软TPM组件,接收来自软TPM组件的TPM调用结果并返回给应用程序。TPM Proxy包含一个TPM调用请求接口,用于获取软TPM组件的标准TPM服务,接口包含一个基于seL4通知机制的通知接口和一个基于seL4数据端口机制的共享内存缓冲区。
S102、根据seL4系统组件通过Linux虚拟机实现seL4微内核操作系统。
步骤S102具体包括以下步骤:
S1021、向VMM组件中安装Linux虚拟机;
S1022、对Linux虚拟机进行配置,安装TSS协议栈、TPM Proxy组件、相关内核模块以及可信应用,并将TSS协议栈、TPM Proxy组件配置为开机自启动;
S1023、采用CAmkES框架建立软TPM组件、VMM组件以及软TPM可信管理组件间的链接,并将软TPM可信管理组件配置为首个被加载的组件,将VMM组件配置为在软TPM组件完成加载后被加载;
S1024、将seL4系统组件与seL4微内核整合为seL4微内核操作系统。
具体地,首先向VMM组件中安装Linux虚拟机;然后对Linux虚拟机进行配置,安装TSS协议栈、TPM Proxy、相关内核模块及可信应用,将TSS协议栈、TPM Proxy配置为开机自启动;再使用CAmkES框架实现步骤101中各seL4系统组件间的链接器,建立软TPM组件与VMM组件、软TPM可信管理组件间的链接,将软TPM可信管理组件配置为首个被加载的组件,将VMM组件配置为在软TPM组件完成加载后被加载,将步骤S101中的seL4系统组件与seL4微内核整合为seL4微内核操作系统。
S103、基于嵌入式系统部署seL4微内核操作系统。
步骤S103具体包括以下步骤:
S1031、将seL4微内核操作系统制作成可引导系统镜像,并将可引导系统镜像与引导seL4微内核操作系统所需的其它文件一同拷贝至预设的嵌入式系统中;
S1032、启动嵌入式系统,并在嵌入式系统上通过可引导系统镜像和其它文件引导seL4微内核操作系统;
S1033、通过软TPM可信管理组件对Linux虚拟机的配置完成加载,并对外部存储设备和可信升级包的存在进行检测;
S1034、通过seL4微内核操作系统加载软TPM组件;
S1035、当软TPM组件完成加载,通过软TPM可信管理组件初始化软TPM可信管理组件与软TPM组件之间的接口;
S1036、通过VMM组件对Linux虚拟机的配置完成加载并启动Linux虚拟机,使得TSS协议栈、TPM Proxy组件按照Linux虚拟机的配置完成启动;
S1037、通过TPM Proxy组件初始化TPM Proxy组件与软TPM组件之间的接口,seL4微内核操作系统启动完成,且嵌入式系统启动完成。
具体地,将配置完成的seL4微内核操作系统制作成可引导系统镜像,与引导seL4微内核操作系统所需的其它文件一同拷贝至嵌入式系统中;启动嵌入式系统,在嵌入式系统上引导seL4微内核操作系统;软TPM可信管理组件根据步骤S1023的配置完成加载并对外部存储设备及可信升级包的存在进行检测,由于此时不存在外部存储设备,seL4微内核操作系统将继续启动,加载软TPM组件;软TPM组件完成加载后,软TPM可信管理组件初始化与软TPM组件间的接口;VMM组件根据步骤S1023的配置完成加载并启动Linux虚拟机,Linux虚拟机启动过程中,TSS协议栈、TPM Proxy根据步骤S1023的配置启动;TPM Proxy初始化与软TPM组件间的接口;seL4微内核操作系统启动完成,嵌入式系统启动完成。
S104、当嵌入式系统需要升级时,通过seL4微内核操作系统执行可信升级。
步骤S104具体包括以下步骤:
S1041、使用可信签名工具对更新文件进行签名生成可信升级包,并将可信升级包存入外部存储设备;
S1042、将外部存储设备插入嵌入式系统,并重启嵌入式系统;
S1043、在seL4微内核操作系统的启动过程中,通过软TPM可信管理组件根据Linux虚拟机的配置完成加载,并对外部存储设备和可信升级包的存在进行检测;
S1044、当软TPM可信管理组件检测到可信升级包,对可信升级包的签名、完整性以及更新版本号进行验证;
S1045、若验证通过,通过软TPM可信管理组件执行可信升级;
S1046、通过seL4微内核操作系统继续加载seL4系统组件直至系统启动完成,实现一次完整的系统可信升级。
具体地,如图3和4所示分别为本发明实施例提供的对软TPM组件及Linux虚拟机进行可信升级的流程图和时序图,具体过程如下:
用户使用可信签名工具对需更新文件进行签名,生成可信升级包,将可信升级包存入外部存储设备(例如U盘或SD卡);将外部存储设备插入嵌入式系统,重启嵌入式系统;seL4微内核操作系统启动过程中,软TPM可信管理组件根据步骤S1023的配置完成加载并对外部存储设备及可信升级包的存在进行检测,此时可信升级包存在,组件在检测到可信升级包后,对其签名、完整性及更新版本号进行验证;若验证通过,软TPM可信管理组件执行可信升级;seL4微内核操作系统继续加载系统组件直至系统启动完成,完成一次完整的系统可信升级。
进一步作为可选的实施方式,通过软TPM可信管理组件执行可信升级这一步骤S1045,其具体包括:
S10451、通过软TPM可信管理组件初始化TPM升级请求接口与软TPM组件的TPM升级接口间的数据端口,并为数据端口分配共享内存缓冲区,进而将共享内存缓存区的地址映射到软TPM可信管理组件和软TPM组件的进程地址空间中;
S10452、通过软TPM可信管理组件从可信升级包中提取可信更新数据,并将可信更新数据写入共享内存缓冲区中;
S10453、通过TPM升级请求接口向TPM升级接口发送可信升级请求;
S10454、通过软TPM组件使用密码学原语对TPM关键数据进行解密,并读取共享内存缓冲区中的可信更新数据对解密后的TPM关键数据进行更新,进而使用密码学原语对更新完成的TPM关键数据重新进行加密;
S10455、通过软TPM组件检查可信更新数据中是否存在对Linux虚拟机进行更新的内容,若存在,则对Linux虚拟机的镜像中需要更新的文件进行更新,并在更新完成后对Linux虚拟机的镜像版本号进行递增;
S10456、通过软TPM组件对自身版本号进行递增,完成可信升级。
具体地,软TPM可信管理组件使用seL4SharedData数据端口链接器初始化TPM升级请求接口与软TPM组件的TPM升级接口间的数据端口,seL4微内核为该数据端口分配共享内存缓冲区,并将共享内存地址映射到软TPM可信管理组件与软TPM组件的进程地址空间中;软TPM可信管理组件从可信升级包中提取可信更新数据,并将数据写入共享内存缓冲区中;软TPM可信管理组件通过TPM升级请求接口的通知接口向软TPM组件TPM升级接口的通知接口发送一条通知,告知软TPM组件可信更新数据已就绪,请求进行可信升级;软TPM组件中存在一个对前述通知接口进行轮询的线程,线程收到该消息后,软TPM组件使用密码学原语对TPM关键数据进行解密,运用自身操作TPM关键数据的能力,读取共享内存缓冲区中的可信更新数据对解密后TPM关键数据进行更新,更新完毕后使用密码学原语对TPM关键数据重新加密;软TPM组件检查可信更新数据中是否存在对Linux虚拟机进行更新的内容,若存在,则对Linux虚拟机镜像中需要更新的文件进行更新,更新完成后,对Linux虚拟机镜像版本号进行递增;软TPM组件对自身版本号进行递增,避免重复升级,递增结束后,升级完成。
S105、当嵌入式系统正常运行时,通过Linux虚拟机获取TPM调用请求,并通过TPMProxy组件返回TPM调用结果。
步骤S105具体包括以下步骤:
S1051、通过Linux虚拟机中的可信应用基于标准API向TSS协议栈发送TPM调用请求;
S1052、通过TPM Proxy组件使用API拦截获取TPM调用请求,并通过seL4 IPC将TPM调用请求透明传递至软TPM组件;
S1053、通过软TPM组件对TPM调用请求进行处理得到TPM调用接口,并通过seL4IPC将TPM调用结果返回至Linxu虚拟机中的TPM Proxy组件;
S1054、通过TPM Proxy将TPM调用结果返回至可信应用,使得可信应用获得标准TPM服务,实现一次完整的软TPM调用。
具体地,Linux虚拟机中的可信应用通过标准API向TSS协议栈发送TPM调用请求;TPM Proxy使用API拦截获取TPM调用请求,并通过seL4 IPC将其透明传递给运行在seL4本地的软TPM组件;软TPM组件对TPM调用请求进行处理并通过seL4 IPC将TPM调用结果返回给Linxu虚拟机中的TPM Proxy;TPM Proxy将TPM调用结果返回给发出调用的可信应用,使其获得标准TPM服务,完成一次完整的软TPM调用。
如图5和6所示分别为本发明实施例提供的Linux虚拟机的可信应用获取标准TPM服务的流程图和时序图,具体为嵌入式系统正常运行时Linux虚拟机中的可信应用获取标准TPM服务的流程图和时序图。本发明实施例中,TPM Proxy与软TPM组件间的共享内存缓冲区已经由seL4SharedDataWithCaps数据端口链接器与dataport内核模块完成初始化。具体过程如下。
1)运行在Linux虚拟机中的可信应用通过标准API向TSS协议栈发送TPM调用请求;
2)TPM Proxy使用API拦截获取TPM调用请求,将其存入与软TPM组件的共享内存缓冲区中,随后TPM Proxy的TPM调用请求接口调用emits_event内核模块向软TPM组件发送一条通知,告知后者处理TPM调用请求;
3)emits_event内核模块被调用后,首先向VMM组件发出一个hypercall,VMM组件再通过自身的通知接口向软TPM组件的TPM调用接口发送通知。通知发送完毕后,TPM Proxy的TPM调用请求接口线程对来自软TPM组件的通知进行轮询;
4)软TPM组件收到通知后,从步骤2的共享内存缓冲区中取出TPM调用请求并进行处理;
5)软TPM组件完成处理后,将TPM调用结果写入步骤2的共享内存缓冲区中,并通过自身的TPM调用接口向TPM Proxy发送一条通知,告知后者取回TPM调用结果;
6)步骤5)中的通知首先被VMM组件接收,VMM组件将一个中断注入Linux虚拟机,consumes_event内核模块被调用进行中断处理,模块取出通知并将其递送给TPM Proxy的TPM调用请求接口;
7)TPM Proxy收到通知后,从步骤2的共享内存缓冲区中取出TPM调用结果并通过标准API返回给发出调用的可信应用,完成一次标准的软TPM服务流程。
以上对本发明实施例的方法步骤进行了说明。可以理解的是,本发明实施例通过seL4微内核及CAmkES平台搭建运行在嵌入式系统上的seL4微内核操作系统,操作系统中实现有软TPM组件,软TPM可信管理组件,VMM组件及组件中的Linux虚拟机镜像;软TPM组件根据TPM标准实现,内部存有加密的包含背书密钥在内的TPM关键数据,数据加解密通过软TPM中的密码学原语实现,组件设有两类接口,TPM调用接口用于为Linux虚拟机提供标准TPM服务,仅读取TPM关键数据,TPM升级接口用于对软TPM进行升级,通过seL4基于能力的强制访问控制机制仅授权软TPM可信管理组件调用,可读写TPM关键数据;正常运行时,Linux虚拟机通过seL4 IPC机制调用TPM调用接口获取标准TPM服务;当需要可信升级时,用户使用可信签名工具对需更新文件进行签名,生成可信升级包,存入外部存储设备,将外部存储设备插入系统并重启,系统启动过程中,软TPM可信管理组件作为首个被加载的组件,对外部存储设备及可信升级包的存在进行检测,检测到可信升级包存在后,软TPM可信管理组件对其进行验证,若验证通过则从中提取可信更新数据,调用软TPM组件更新TPM关键数据,并在可信更新数据中包含Linux更新数据时对Linux虚拟机进行升级。本发明实施例面向seL4微内核操作系统,基于seL4的完整形式化验证及基于能力的强制访问控制机制,为无法集成硬件TPM的嵌入式系统提供软TPM可信升级服务和TPM调用服务,提高了嵌入式系统的可信计算能力。
参照图7,本发明实施例提供了一种可信平台模块调用系统,包括:
组件实现模块,用于采用CAmkES框架实现seL4系统组件及TPM Proxy组件,seL4系统组件包括软TPM组件、软TPM可信管理组件以及VMM组件;
系统实现模块,用于根据seL4系统组件通过Linux虚拟机实现seL4微内核操作系统;
系统部署模块,用于基于嵌入式系统部署seL4微内核操作系统;
可信升级模块,用于当嵌入式系统需要升级时,通过seL4微内核操作系统执行可信升级;
TPM调用模块,用于当嵌入式系统正常运行时,通过Linux虚拟机获取TPM调用请求,并通过TPM Proxy组件返回TPM调用结果。
上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
参照图8,本发明实施例提供了一种可信平台模块调用装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当上述至少一个程序被上述至少一个处理器执行时,使得上述至少一个处理器实现上述的一种可信平台模块调用方法。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,该处理器可执行的程序在由处理器执行时用于执行上述一种可信平台模块调用方法。
本发明实施例的一种计算机可读存储介质,可执行本发明方法实施例所提供的一种可信平台模块调用方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或上述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,上述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印上述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得上述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种可信平台模块调用方法,其特征在于,包括以下步骤:
采用CAmkES框架实现seL4系统组件及TPM Proxy组件,所述seL4系统组件包括软TPM组件、软TPM可信管理组件以及VMM组件;
根据所述seL4系统组件通过Linux虚拟机实现seL4微内核操作系统;
基于嵌入式系统部署所述seL4微内核操作系统;
当所述嵌入式系统需要升级时,通过所述seL4微内核操作系统执行可信升级;
当所述嵌入式系统正常运行时,通过所述Linux虚拟机获取TPM调用请求,并通过所述TPM Proxy组件返回TPM调用结果。
2.根据权利要求1所述的一种可信平台模块调用方法,其特征在于,所述采用CAmkES框架实现seL4系统组件及TPM Proxy组件这一步骤,其具体包括:
采用CAmkES框架实现软TPM组件,所述软TPM组件用于对TPM关键数据进行加密保护,所述软TPM组件设有TPM调用接口和TPM升级接口,所述TPM调用接口用于读取所述TPM关键数据,所述TPM升级接口用于对所述软TPM组件进行升级;
采用CAmkES框架实现软TPM可信管理组件,所述软TPM可信管理组件设有TPM升级请求接口,所述TPM升级请求接口用于请求所述软TPM组件进行升级;
采用CAmkES框架实现VMM组件,所述VMM组件设有中转接口,所述中转接口用于中转所述Linux虚拟机与所述软TPM组件之间的往来事件;
采用CAmkES框架实现TPM Proxy组件,所述TPM Proxy组件用于拦截获取可信应用发送的所述TPM调用请求,并通过seL4 IPC将所述TPM调用请求透明传递至所述软TPM组件,还用于接收所述软TPM组件的TPM调用结果并返回至所述可信应用。
3.根据权利要求2所述的一种可信平台模块调用方法,其特征在于,所述根据所述seL4系统组件通过Linux虚拟机实现seL4微内核操作系统这一步骤,其具体包括:
向所述VMM组件中安装所述Linux虚拟机;
对所述Linux虚拟机进行配置,安装TSS协议栈、所述TPM Proxy组件、相关内核模块以及所述可信应用,并将所述TSS协议栈、所述TPM Proxy组件配置为开机自启动;
采用CAmkES框架建立所述软TPM组件、所述VMM组件以及所述软TPM可信管理组件间的链接,并将所述软TPM可信管理组件配置为首个被加载的组件,将所述VMM组件配置为在所述软TPM组件完成加载后被加载;
将所述seL4系统组件与seL4微内核整合为所述seL4微内核操作系统。
4.根据权利要求3所述的一种可信平台模块调用方法,其特征在于,所述基于嵌入式系统部署所述seL4微内核操作系统这一步骤,其具体包括:
将所述seL4微内核操作系统制作成可引导系统镜像,并将所述可引导系统镜像与引导所述seL4微内核操作系统所需的其它文件一同拷贝至预设的所述嵌入式系统中;
启动所述嵌入式系统,并在所述嵌入式系统上通过所述可引导系统镜像和所述其它文件引导所述seL4微内核操作系统;
通过所述软TPM可信管理组件对所述Linux虚拟机的配置完成加载,并对外部存储设备和可信升级包的存在进行检测;
通过所述seL4微内核操作系统加载所述软TPM组件;
当软TPM组件完成加载,通过所述软TPM可信管理组件初始化所述软TPM可信管理组件与所述软TPM组件之间的接口;
通过所述VMM组件对所述Linux虚拟机的配置完成加载并启动所述Linux虚拟机,使得所述TSS协议栈、所述TPM Proxy组件按照所述Linux虚拟机的配置完成启动;
通过所述TPM Proxy组件初始化所述TPM Proxy组件与所述软TPM组件之间的接口,所述seL4微内核操作系统启动完成,且所述嵌入式系统启动完成。
5.根据权利要求2所述的一种可信平台模块调用方法,其特征在于,所述当所述嵌入式系统需要升级时,通过所述seL4微内核操作系统执行可信升级这一步骤,其具体包括:
使用可信签名工具对更新文件进行签名生成可信升级包,并将所述可信升级包存入外部存储设备;
将所述外部存储设备插入所述嵌入式系统,并重启所述嵌入式系统;
在所述seL4微内核操作系统的启动过程中,通过所述软TPM可信管理组件根据所述Linux虚拟机的配置完成加载,并对所述外部存储设备和所述可信升级包的存在进行检测;
当所述软TPM可信管理组件检测到所述可信升级包,对所述可信升级包的签名、完整性以及更新版本号进行验证;
若验证通过,通过所述软TPM可信管理组件执行可信升级;
通过所述seL4微内核操作系统继续加载所述seL4系统组件直至系统启动完成,实现一次完整的系统可信升级。
6.根据权利要求5所述的一种可信平台模块调用方法,其特征在于,所述通过所述软TPM可信管理组件执行可信升级这一步骤,其具体包括:
通过所述软TPM可信管理组件初始化所述TPM升级请求接口与软TPM组件的TPM升级接口间的数据端口,并为所述数据端口分配共享内存缓冲区,进而将所述共享内存缓存区的地址映射到所述软TPM可信管理组件和所述软TPM组件的进程地址空间中;
通过所述软TPM可信管理组件从所述可信升级包中提取可信更新数据,并将所述可信更新数据写入所述共享内存缓冲区中;
通过所述TPM升级请求接口向所述TPM升级接口发送可信升级请求;
通过所述软TPM组件使用密码学原语对所述TPM关键数据进行解密,并读取所述共享内存缓冲区中的所述可信更新数据对解密后的所述TPM关键数据进行更新,进而使用密码学原语对更新完成的所述TPM关键数据重新进行加密;
通过所述软TPM组件检查所述可信更新数据中是否存在对所述Linux虚拟机进行更新的内容,若存在,则对所述Linux虚拟机的镜像中需要更新的文件进行更新,并在更新完成后对所述Linux虚拟机的镜像版本号进行递增;
通过所述软TPM组件对自身版本号进行递增,完成可信升级。
7.根据权利要求2所述的一种可信平台模块调用方法,其特征在于,所述当所述嵌入式系统正常运行时,通过所述Linux虚拟机获取TPM调用请求,并通过所述TPM Proxy组件返回TPM调用结果这一步骤,其具体包括:
通过所述Linux虚拟机中的所述可信应用基于标准API向所述TSS协议栈发送所述TPM调用请求;
通过所述TPM Proxy组件使用API拦截获取所述TPM调用请求,并通过seL4 IPC将所述TPM调用请求透明传递至所述软TPM组件;
通过所述软TPM组件对所述TPM调用请求进行处理得到TPM调用接口,并通过seL4IPC将所述TPM调用结果返回至所述Linxu虚拟机中的所述TPM Proxy组件;
通过所述TPM Proxy将所述TPM调用结果返回至所述可信应用,使得所述可信应用获得标准TPM服务,实现一次完整的软TPM调用。
8.一种可信平台模块调用系统,其特征在于,包括:
组件实现模块,用于采用CAmkES框架实现seL4系统组件及TPM Proxy组件,所述seL4系统组件包括软TPM组件、软TPM可信管理组件以及VMM组件;
系统实现模块,用于根据所述seL4系统组件通过Linux虚拟机实现seL4微内核操作系统;
系统部署模块,用于基于嵌入式系统部署所述seL4微内核操作系统;
可信升级模块,用于当所述嵌入式系统需要升级时,通过所述seL4微内核操作系统执行可信升级;
TPM调用模块,用于当所述嵌入式系统正常运行时,通过所述Linux虚拟机获取TPM调用请求,并通过所述TPM Proxy组件返回TPM调用结果。
9.一种可信平台模块调用装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至7中任一项所述的一种可信平台模块调用方法。
10.一种计算机可读存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于执行如权利要求1至7中任一项所述的一种可信平台模块调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211530940.2A CN116049844A (zh) | 2022-12-01 | 2022-12-01 | 一种可信平台模块调用方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211530940.2A CN116049844A (zh) | 2022-12-01 | 2022-12-01 | 一种可信平台模块调用方法、系统、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116049844A true CN116049844A (zh) | 2023-05-02 |
Family
ID=86112281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211530940.2A Pending CN116049844A (zh) | 2022-12-01 | 2022-12-01 | 一种可信平台模块调用方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116049844A (zh) |
-
2022
- 2022-12-01 CN CN202211530940.2A patent/CN116049844A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9989043B2 (en) | System and method for processor-based security | |
US20230214504A1 (en) | Secure processing systems and methods | |
CN109918919B (zh) | 认证变量的管理 | |
EP2791857B1 (en) | Facilitating system service request interactions for hardware-protected applications | |
US20190199692A1 (en) | Logic repository service using encrypted configuration data | |
US7073059B2 (en) | Secure machine platform that interfaces to operating systems and customized control programs | |
KR100692347B1 (ko) | 플랫폼 구성 레지스터를 리세트하기 위한 시스템 및 방법 | |
US9536063B2 (en) | Methods and apparatus for protecting software from unauthorized copying | |
US8549313B2 (en) | Method and system for integrated securing and managing of virtual machines and virtual appliances | |
US8694781B1 (en) | Techniques for providing hardware security module operability | |
US20070180271A1 (en) | Apparatus and method for providing key security in a secure processor | |
JP5346608B2 (ja) | 情報処理装置およびファイル検証システム | |
US11714895B2 (en) | Secure runtime systems and methods | |
KR20090005219A (ko) | 점대점 상호연결 시스템 상에서의 보안 환경 초기화 명령의실행 | |
US20190392117A1 (en) | Secure sharing of license data in computing systems | |
EP3785149B1 (en) | Memory assignment for guest operating systems | |
Ushakov et al. | Trusted hart for mobile RISC-V security | |
CN116049844A (zh) | 一种可信平台模块调用方法、系统、装置及存储介质 | |
US20230098991A1 (en) | Systems, methods, and media for protecting applications from untrusted operating systems | |
US20240259354A1 (en) | Logic repository service using encrypted configuration data | |
KR20240016243A (ko) | 온 다이 암호화 및 원격 증명을 통한 디지털 콘텐츠관리 | |
Paulus et al. | Enhancing security of computing platforms with TC-technology |
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 |