CN111310192B - 数据处理方法、装置、存储介质和处理器 - Google Patents
数据处理方法、装置、存储介质和处理器 Download PDFInfo
- Publication number
- CN111310192B CN111310192B CN202010088886.5A CN202010088886A CN111310192B CN 111310192 B CN111310192 B CN 111310192B CN 202010088886 A CN202010088886 A CN 202010088886A CN 111310192 B CN111310192 B CN 111310192B
- Authority
- CN
- China
- Prior art keywords
- interface
- control module
- platform control
- trusted platform
- tpcm
- 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
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据处理方法、装置、存储介质和处理器。该方法包括:获取***服务信息,其中,***服务信息用于实现可信平台控制模块的业务功能;从至少一个接口中确定出与***服务信息对应的目标接口,其中,可信平台控制模块包括至少一个接口;通过目标接口将***服务信息转换为目标功能指令,并通过目标功能指令控制可信平台控制模块执行业务功能。本发明解决了可信平台控制模块的适配性低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据处理方法、装置、存储介质和处理器。
背景技术
目前,可信平台控制模块(Trusted Platform Control Model,简称为TPCM)通常作为一个整体进行设计,为可信计算平台提供完整性度量、安全存储、可信报告以及密码服务等功能,并未进行分层设计,这使得可信平台控制模块在实现业务功能时通常需要考虑可信平台控制模块所采用的硬件结构,从而降低了可信平台控制模块的适配性,进而无法满足可信平台控制模块在多种物理场景中实现的需求。
针对上述的可信平台控制模块的适配性低的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法、装置、存储介质和处理器,以至少解决可信平台控制模块的适配性低的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法。该方法可以包括:获取***服务信息,其中,***服务信息用于实现可信平台控制模块的业务功能;从至少一个接口中确定出与***服务信息对应的目标接口,其中,可信平台控制模块包括至少一个接口;通过目标接口将***服务信息转换为目标功能指令,并通过目标功能指令控制可信平台控制模块执行业务功能。
可选地,目标接口包括以下至少之一:第一接口,用于将***服务信息转换为操作功能指令,其中,目标功能指令包括操作功能指令,操作功能指令用于向可信平台控制模块提供执行环境;第二接口,用于将***服务信息转换为驱动功能指令,其中,目标功能指令包括驱动功能指令,驱动功能指令用于向可信平台控制模块提供访问闪存的功能;第三接口,用于将***服务信息转换为通信功能指令,其中,目标功能指令包括通信功能指令,通信功能指令用于使可信平台控制模块与主机进行通信。
可选地,第一接口通过结构体函数指针实现。
可选地,第一接口包括以下至少之一:主机内存访问接口,用于访问主机内存;中断开关接口,用于采用中断方式接收主机发送的命令;本地内存管理接口,用于分配和释放内存;调试信息输出接口,用于输出格式化信息;随机数生成接口,用于生成随机数;时间获取接口,用于获取可信平台控制模块在启动之后的时间;内存使用信息获取接口,用于返回可信平台控制模块的内存使用的信息;中央处理器的信息获取接口,用于获取运行的中央处理器的信息;***延迟接口,用于控制中央处理器的运行延迟目标时间段;中央处理器的缓存清理接口,用于清理中央处理器的缓存。
可选地,主机内存访问接口用于执行以下步骤之一来访问主机内存:将主机内存的物理地址映射成可信平台控制模块的虚拟地址进行访问;将主机内存复制到可信平台控制模块的内存中来模拟映射访问。
可选地,中断开关接口用于在可信平台控制模块执行关键任务时关闭。
可选地,本地内存管理接口用于通过以下步骤来分配和释放内存:从堆上分配和释放内存。
可选地,调试信息输出接口用于通过以下步骤来输出格式化信息:输出格式化信息至调试端口,以实现串口打印。
可选地,随机数生成接口用于通过以下步骤来生成随机数:生成真随机数,其中,真随机数满足可信密码的计算要求。
可选地,时间获取接口用于通过以下步骤来获取可信平台控制模块在启动之后的时间:获取可信平台控制模块在启动之后以秒或毫秒为单位所表示的时长。
可选地,内存使用信息获取接口用于通过以下步骤来返回可信平台控制模块的内存使用的信息:返回可信平台控制模块的总内存数量和可信平台控制模块的已使用内存数量。
可选地,中央处理器的信息获取接口用于通过以下步骤来获取运行的中央处理器的信息:获取中央处理器的编号。
可选地,在***延迟接口控制中央处理器延迟时,响应打断命令,控制中央处理器继续运行。
可选地,中央处理器的缓存清理接口用于通过以下步骤来清理中央处理器的缓存:当可信平台控制模块访问主机内存时,在中央处理器的缓存与主机内存的数据不一致的情况下,清理中央处理器的缓存。
可选地,第二接口用于实现分数据段访问闪存的功能,其中,不同的数据段存储在不同的闪存芯片上。
可选地,第二接口包括以下至少之一:闪存读接口,用于读取第一预定长度的数据;闪存写接口,用于写入第二预定长度的数据;闪存擦除接口,用于擦除第一数据;闪存擦写接口,用于先擦除第二数据,再写入第三数据;闪存区域长度返回接口,用于返回闪存区域的长度。
可选地,闪存读接口用于通过以下步骤来读取第一预定长度的数据:按照第一预定区域和第一偏移量,读取第一预定长度的数据。
可选地,闪存写接口用于通过以下步骤来写入第二预定长度的数据:按照第二预定区域和第二偏移量,写入第二预定长度的数据。
可选地,闪存擦除接口用于通过以下步骤来擦除第一数据:按照第三预定区域和第三偏移量擦除第一数据。
可选地,闪存擦写接口用于通过以下步骤来先擦除第二数据,再写入第三数据:先在第四预定区域擦除第二数据,再向第四预定区域写入第三数据,其中,第二数据的长度大于第三数据的长度。
可选地,第三接口用于实现可信平台控制模块与主机之间的通信。
可选地,第三接口包括以下至少之一:命令处理回调接口,用于打断可信平台控制模块的主程序的执行;命令信息说明接口,用于保存可信平台控制模块的命令信息;命令映射接口,用于将输入参数地址和输出参数地址映射为可信平台控制模块可访问的虚拟地址;异步命令完成通知接口,用于在完成异步处理命令时,向主机发送第一通知消息;命令释放接口,用于在命令信息处理完成之后,释放与命令信息相关联的资源;度量结果发送接口,用于在度量操作完成之后,发送第二通知消息;消息发送接口,用于向计算子***发送第三通知消息。
可选地,命令处理回调接口用于通过以下步骤来打断可信平台控制模块的主程序的执行:在中断处理函数中打断可信平台控制模块的主程序的执行。
可选地,命令信息说明接口用于通过以下步骤来保存可信平台控制模块的命令信息;通过结构体保存可信平台控制模块的命令信息。
可选地,命令映射接口用于通过以下步骤来将输入参数地址和输出参数地址映射为可信平台控制模块可访问的虚拟地址:在输入参数地址和输出参数地址未能直接访问的情况下,将输入参数地址和输出参数地址映射为虚拟地址。
可选地,第一通知消息由异步命令完成通知接口和主机的驱动接口协商得到。
可选地,命令释放接口保留命令信息在内存中的数据。
可选地,第二通知消息用于唤醒主机的中央处理器。
可选地,消息发送接口用于通过以下步骤向计算子***发送第三通知消息:向计算子***的中央处理器发送中断请求消息。
可选地,通过目标功能指令控制可信平台控制模块执行业务功能,包括:响应目标功能指令,对计算子***进行度量,得到度量结果。
可选地,响应目标功能指令,对计算子***进行度量,得到度量结果,包括:获取计算子***的行为数据;响应目标功能指令,通过行为数据对计算子***进行度量,得到度量结果。
可选地,可信平台控制模块采用分层设计结构,且通过至少一个接口划分为***层和业务层,其中,可信平台控制模块的***层用于提供***服务信息,可信平台控制模块的业务层用于通过目标功能指令控制可信平台控制模块执行业务功能。
可选地,通过目标功能指令控制可信平台控制模块执行业务功能,包括:响应目标功能指令,可信平台控制模块的度量业务层通过调用目标接口,对主机的启动过程和运行过程进行度量检查和控制。
可选地,通过目标功能指令控制可信平台控制模块执行业务功能,包括:响应目标功能指令,可信平台控制模块的可信密码业务层通过调用目标接口,为可信平台控制模块提供可信密码服务。
根据本发明实施例的另一方面,提供了一种数据处理装置。该装置包括:获取单元,用于获取***服务信息,其中,***服务信息用于实现可信平台控制模块的业务功能;确定单元,用于从至少一个接口中确定出与***服务信息对应的目标接口,其中,可信平台控制模块包括至少一个接口;转换单元,用于通过目标接口将***服务信息转换为目标功能指令,并通过目标功能指令控制可信平台控制模块执行业务功能。
根据本发明实施例的另一方面,提供了一种存储介质。该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行本发明实施例的数据处理方法。
根据本发明实施例的另一方面,提供了一种处理器。该处理器用于运行程序,其中,程序运行时执行本发明实施例的数据处理方方法。
在该实施例中,通过获取***服务信息,其中,***服务信息用于实现可信平台控制模块的业务功能;从至少一个接口中确定出与***服务信息对应的目标接口,其中,可信平台控制模块包括至少一个接口;通过目标接口将***服务信息转换为目标功能指令,并通过目标功能指令控制可信平台控制模块执行业务功能。也就是说,本发明在TPCM内部设置了至少一个接口,定义了TPCM内部的交互规范,使得在TPCM通过至少一个接口在执行功能上分离出了业务层和***层,这样在TPCM执行业务功能时,***层为业务层的业务功能的实现提供了必要的环境,可以屏蔽底层硬件和通信机制的差异性,使业务层只需关心业务功能的实现,而无需关心TPCM所采用的硬件结构,以满足TPCM在多种物理场景中实现的需求,使得TPCM更容易进行迁移和维护,从而达到了提高TPCM的适配性的目的,解决了可信平台控制模块的适配性低的技术问题,达到了提高可信平台控制模块的适配性的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种数据处理方法的流程图;
图2是根据本发明实施例的一种TPCM的结构示意图;
图3是根据本发明实施例的一种TPCM***层框架的示意图;
图4是根据本发明实施例的一种可信计算平台中的总体逻辑结构的示意图;以及
图5是根据本发明实施例的一种数据处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种数据处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种数据处理方法的流程图。如图1所示,该方法可以包括如下步骤:
步骤S102,获取***服务信息,其中,***服务信息用于实现可信平台控制模块的业务功能。
在本发明步骤S102提供的技术方案中,获取***服务信息,可以从可信平台控制模块的***层获取服务信息,该***服务信息为用于支撑可信平台控制模块的业务功能实现的***服务信息,可以包括操作***基本服务的信息、通信驱动的信息和闪存(FLASH)驱动的信息等。其中,操作***基本服务的信息可以用于实现提供基本的执行环境,比如,TPCM内存管理、访问主机内存、中断处理、同步机制、时钟和计数等基本功能,通信驱动的信息可以用于完成TPCM与主机之间的通信,与主机之间相互发送消息,FLASH驱动的信息可以用于提供访问FLASH的功能,TPCM和可信密码模块(Trusted Cryptography Module,简称为TCM)的数据可存储到FLASH,该实施例的服务信息还可以用于提供密码计算的基本功能,其中,***层中设置密码模块可以提供密码计算的基本功能,从而为可信度量的实现提供支持,密码模块可以有软件实现和硬件实现两种方式。
步骤S104,从至少一个接口中确定出与***服务信息对应的目标接口,其中,可信平台控制模块包括至少一个接口。
在本发明步骤S104提供的技术方案中,可信平台控制模块采用分层设计结构,且通过至少一个接口划分为***层和业务层,其中,可信平台控制模块的***层用于提供***服务信息,可信平台控制模块的业务层用于通过目标功能指令控制可信平台控制模块执行业务功能。其中,可信平台控制模块包括的至少一个接口也即TPCM***层接口,从而通过其将可信平台控制模块划分为TPCM***层和TPCM业务层,其中,TPCM业务层为TPCM***层的上层,这样可将TPCM业务功能的实现与支撑这些TPCM业务功能实现的***服务分离开来,TPCM业务层可以通过调用TPCM***层接口实现与TPCM***层之间的交互。该实施例通过TPCM***层接口分离业务层与***层,可以使得TPCM更容易进行迁移和维护,以满足TPCM在多种物理场景中实现的需求。
在获取***服务信息之后,从至少一个接口中确定出与***服务信息对应的目标接口,该目标接口为针对***服务信息与业务层进行交互的接口,可以用于定义业务层与***层之间交互的规范。
步骤S106,通过目标接口将***服务信息转换为目标功能指令,并通过目标功能指令控制可信平台控制模块执行业务功能。
在本发明步骤S106提供的技术方案中,在从至少一个接口中确定出与***服务信息对应的目标接口之后,通过目标接口将***服务信息转换为目标功能指令,可以是通过目标接口对应的函数来实现将***服务信息转换为需要输出至业务层的目标功能指令,从而通过目标功能控制指令控制TPCM在业务层执行对应的业务功能,该业务功能可以是主动防御业务功能或其它可信业务功能等。
通过上述步骤S102至步骤S106,通过获取***服务信息,其中,***服务信息用于实现可信平台控制模块的业务功能;从至少一个接口中确定出与***服务信息对应的目标接口,其中,可信平台控制模块包括至少一个接口;通过目标接口将***服务信息转换为目标功能指令,并通过目标功能指令控制可信平台控制模块执行业务功能。也就是说,本发明在TPCM内部设置了至少一个接口,定义了TPCM内部的交互规范,使得在TPCM通过至少一个接口在执行功能上分离出了业务层和***层,这样在TPCM执行业务功能时,***层为业务层的业务功能的实现提供了必要的环境,可以屏蔽底层硬件和通信机制的差异性,使业务层只需关心业务功能的实现,而无需关心TPCM所采用的硬件结构,使得TPCM更容易进行迁移和维护,以满足TPCM在多种物理场景中实现的需求,提高了TPCM的适配性,解决了可信平台控制模块的适配性低的技术问题,达到了提高可信平台控制模块的适配性的技术效果。
下面对该实施例的上述目标接口进行进一步介绍。
作为一种可选的实施方式,目标接口包括以下至少之一:第一接口,用于将***服务信息转换为操作功能指令,其中,目标功能指令包括操作功能指令,操作功能指令用于向可信平台控制模块提供执行环境;第二接口,用于将***服务信息转换为驱动功能指令,其中,目标功能指令包括驱动功能指令,驱动功能指令用于向可信平台控制模块提供访问闪存的功能;第三接口,用于将***服务信息转换为通信功能指令,其中,目标功能指令包括通信功能指令,通信功能指令用于使可信平台控制模块与主机进行通信。
在该实施例中,TPCM的目标接口与TPCM的***层可以提供的***服务信息相对应,比如,在TPCM的***层中,可以实现***基本服务、通信驱动、FLASH驱动,则TPCM的***层也相应地规定这几部分接口。可选地,该实施例的TPCM的***层还可以包括密码模块和任务管理模块,其中,密码模块提供密码计算的基本功能,为可信度量和可信密码模块实现提供支持,密码模块可以有软件实现和硬件实现两种方式,任务管理模块可以用于实现TPCM的***层的任务管理。需要说明的是,不同的TPCM实现方式和硬件环境,***层的差异比较大。
可选地,该实施例的目标接口包括第一接口,比如,第一接口为***基本服务接口,可以用于将***服务信息转换为操作功能指令,通过操作功能指令向TPCM提供基本的执行环境。
可选地,该实施例的目标接口还包括第二接口,比如,第二接口为FLASH驱动接口,可以将***服务信息转换为驱动功能指令,通过驱动功能指令向可信平台控制模块提供访问闪存的功能,可选地,TPCM数据和TCM数据存储到FLASH中。
可选地,该实施例的目标接口还包括第三接口,比如,第三接口为通信驱动接口,用于将***服务信息转换为通信功能指令,通过通信功能指令使可信平台控制模块与主机进行通信,包括发送命令和/或接收命令,可以在底层***的支持下进行实现。
下面对该实施例的第一接口进行详细介绍。
作为一种可选的实施方式,第一接口通过结构体函数指针实现。
该实施例的第一接口规定了一些通常由操作***和C语言标准库提供的基本编程接口,可以定义在tpcm_sys.h头文件里,可以具有两种实现方式,第一种是直接实现其所包含的接口,第二种是定义一个structtpcm_sys结构的对象,该结构体的成员是一组与下文描述的接口相同的函数的指针,也即,结构体函数指针,可以将适当的函数赋予该对象的指针即可。其中,采用结构体函数指针的优点是可以直接复用底层***已经存在的函数,而不用再封装一层,可以优选第二种方法来实现上述第一接口。如果要直接实现第一接口,需要定义宏DIRECT_IMPL_SYSFUNC。
作为一种可选的实施方式,上述第一接口包括以下至少之一:主机内存访问接口,用于访问主机内存;中断开关接口,用于采用中断方式接收主机发送的命令;本地内存管理接口,用于分配和释放内存;调试信息输出接口,用于输出格式化信息;随机数生成接口,用于生成随机数;时间获取接口,用于获取可信平台控制模块在启动之后的时间;内存使用信息获取接口,用于返回可信平台控制模块的内存使用的信息;中央处理器的信息获取接口,用于获取运行的中央处理器的信息;***延迟接口,用于控制中央处理器的运行延迟目标时间段;中央处理器的缓存清理接口,用于清理中央处理器的缓存。
在该实施例中,上述第一接口可以包括主机内存访问接口,TPCM希望***层可以提供直接访问主机内存的第一接口。
作为一种可选的示例,上述主机内存访问接口用于执行以下步骤之一来访问主机内存:将主机内存的物理地址映射成可信平台控制模块的虚拟地址进行访问;将主机内存复制到可信平台控制模块的内存中来模拟映射访问。
在该实施例中,访问主机内存是通过将主机内存物理地址映射成TPCM的虚拟地址进行访问,访问完成后再解除映射。如果底层硬件不支持通过映射方式来访问主机内存,则可以通过将主机内存复制到TPCM内存的方式来模拟映射访问。
可选地,该实施例的主机内存访问接口的函数定义如下:
MAPObjecttpcm_sys_map(unsigned long paddr,unsigned
length,void**vadrr);
voidtpcm_sys_unmap(MAPObjectapobj);
其中,tpcm_sys_map用于表示建立映射;tpcm_sys_unmap用于表示解除映射;MAPObject被定义为一个void*指针,用于表示一个映射的句柄,该对象对上层调用者透明的,由接口实现者自己定义这个句柄的意义,而调用者不会关心MAPobject的内部定义,只会将映射时返回的句柄作为解除映射的参数传回接口实现者;paddr用于表示要访问内存的主机地址,可以就是主机的物理地址,但也可以是TPCM与主机侧驱动达成共识的其它地址;vadrr用于表示映射以后的虚拟地址;tpcm_sys_map用于表示成功时返回MAPObject句柄,出错时返回空值;tpcm_sys_unmap用于表示没有返回值。
在该实施例中,上述第一接口还可以包括中断开关接口,用于采用中断方式接收主机发送的命令,TPCM一般采用中断方式接收主机发送的命令。
作为一种可选的示例,上述中断开关接口用于在可信平台控制模块执行关键任务时关闭。
在该实施例中,在TPCM访问关键数据的时候如果发送中断将导致***崩溃,因此TPCM要求在执行关键任务时不能被打断。
可选地,该实施例的中断开关接口的函数定义如下:
voidtpcm_sys_disable_irq(uint64_t*status);
voidtpcm_sys_enable_irq(uint64_t status);
其中,tpcm_sys_disable_irq要求底层***不能打断TPCM的执行;tpcm_sys_enable_irq允许底层***可以打断TPCM执行;status用于保存上下文信息,上层不会使用和修改这个值,只会将tpcm_sys_disable_irq返回的值传递给tpcm_sys_enable_irq,底层实现者可以根据实际情况使用或者不适用这个参数。
在该实施例中,上述第一接口还可以包括本地内存管理接口,用于实现分配和释放内存。
作为一种可选的示例,上述本地内存管理接口用于通过以下步骤来分配和释放内存:从堆上分配和释放内存。
在该实施例中,本地内存管理接口从堆上分配和释放内存。TPCM对本地内存的使用方式可以与普通C程序使用malloc,free的方式相同,如果底层***已实现malloc,free或类似的功能,则可以按照结构体的函数指针的方式进行实现,只能将malloc,free实现函数赋予structtpcm_sys对象指针。
可选地,该实施例的本地内存管理接口的函数定义如下:
void*tpcm_sys_malloc(unsigned int size);
voidtpcm_sys_free(void*p);
其中,tpcm_sys_malloc用于分配内存;tpcm_sys_free用于释放内存;tpcm_sys_malloc的参数size指定内存大小,分配成功时返回地址,分配失败是返回空;将tpcm_sys_malloc返回值作为传递给tpcm_sys_free的参数可以用于释放内存。
在该实施例中,上述第一接口还可以包括调试信息输出接口,用于输出格式化信息。
作为一种可选的示例,上述调试信息输出接口用于通过以下步骤来输出格式化信息:输出格式化信息至调试端口,以实现串口打印。
该实施例的调试信息输出接口可以用于输出格式化信息到调试端口,一般可以实现串口打印。该调试信息输出接口的参数与C语言标准输出的printf可以完全相同。如果底层***已实现printf或类似的功能,可以按照结构体的函数指针的方式进行实现,只需将printf实现函数赋予structtpcm_sys对象的函数指针即可。
可选地,该实施例的调试信息输出接口的函数定义如下:
voidtpcm_sys_printf(const char*fmt,...);
其中,fmt用于表示格式化字符串,其后的是格式化参数。
在该实施例中,上述第一接口还可以包括随机数生成接口,用于生成一组随机数。
作为一种可选的示例,上述随机数生成接口用于通过以下步骤来生成随机数:生成真随机数,其中,真随机数满足可信密码的计算要求。
在该实施例中,随机数生成接口用于生成一组随机数,为满足可信密码计算的要求,应该生成真随机数。
可选地,该实施例的随机数生成接口的函数定义如下:
inttpcm_sys_rand(unsigned char*buffer,int length);
其中,buffer用于表示一个接收随机数结果的缓冲区;length用于表示指定生成的随机数的字节数量;该函数当成功生成随机数时返回0,并将生成的随机数填入buffer,当生成随机数失败时返回非0,其中,当生成随机数失败时buffer的数据不确定。
在该实施例中,上述第一接口还可以包括时间获取接口,可以为获取当前相对时间接口,用于获取***启动以后的时间。
作为一种可选的示例,上述时间获取接口用于通过以下步骤来获取可信平台控制模块在启动之后的时间:获取可信平台控制模块在启动之后以秒或毫秒为单位所表示的时长。
在该实施例中,可信平台控制模块在启动之后的时间可以用秒或毫秒表示,返回的时间结构体可以如下:
structtpcm_sys_time{
uint32_t seconds;
uint32_tmillis;
};
其中,seconds用于表示存储***启动以来经过的秒数;millis用于表示表示当前的毫秒数。
可选地,该实施例的时间获取接口的函数定义如下:
inttpcm_sys_get_time(structtpcm_sys_time*time);
其中,time用于表示是一个接收返回时间指针,time不会为空值;该函数成功返回0,并会将当前时间值填入time,而在失败时返回非0。
该实施例的上述第一接口还可以包括内存使用信息获取接口,也即,获取内存使用情况接口,可以用于返回***内存使用的信息,可以是返回描述信息,不要求精确,可返回粗略值。
作为一种可选的示例,上述内存使用信息获取接口用于通过以下步骤来返回可信平台控制模块的内存使用的信息:返回可信平台控制模块的总内存数量和可信平台控制模块的已使用内存数量,内存使用信息获取接口的函数定义可以如下:
voidtpcm_sys_get_memory_status(uint32_t*total,uint32_t*used);
其中,total用于表示接收***总内存数量;used用于表示接收***已使用内存数量;内存以字节为单位。
该实施例的上述第一接口还可以包括中央处理器的信息获取接口,用于获取运行的中央处理器的信息。
可选地,该实施例的内存使用信息获取接口的函数定义如下:
uint32_t tpcm_sys_get_cpu_id(void);
作为一种可选的示例,上述中央处理器的信息获取接口用于通过以下步骤来获取运行的中央处理器的信息:获取中央处理器的编号,也即,获取运行TPCM的CPU的编号。
该实施例的上述第一接口还可以包括***延迟接口,用于控制中央处理器的运行延迟目标时间段,也即,控制CPU延迟一段时间。
作为一种可选的示例,在上述***延迟接口控制中央处理器延迟时,响应打断命令,控制中央处理器继续运行。
在该实施例中,TPCM希望延迟期间尽可能减少CPU的能耗,并可被命令打断。
可选地,该实施例的***延迟接口的函数定义如下:
voidtpcm_sys_udelay(uint32_t us);
voidtpcm_sys_mdelay(uint32_t ms);
其中,tpcm_sys_udelay用于表示延迟指定的微妙数,tpcm_sys_mdelay用于表示延迟指定的毫秒数;us和ms参数指定延迟的数量。
该实施例的上述第一接口还可以包括中央处理器的缓存清理接口,用于清理中央处理器的缓存,可以当TPCM访问主机内存时,清理中央处理器的缓存。
作为一种可选的示例,上述中央处理器的缓存清理接口用于通过以下步骤来清理中央处理器的缓存:当可信平台控制模块访问主机内存时,在中央处理器的缓存与主机内存的数据不一致的情况下,清理中央处理器的缓存。
在该实施例中,会存在CPU缓存和主机主存数据不一致的情况,这时候就需要对缓存进行清理。清理缓存可以有两个方向,Clean指将CPU cache中的脏数据写入主机内存;Invalidate指删除CPUcache。一般TPCM修改了共享内存的数据时可能会调用Clean。一般度量时会使用Invalidate,丢弃cache中的陈旧数据。清理缓存可以只在通信驱动中使用。
可选地,该实施例的缓存清理接口的函数定义如下:
voidtpcm_sys_dcache_cleaninv_range(void*addr,size_tsize);
voidtpcm_sys_dcache_clean_range(void*addr,size_t size);
voidtpcm_sys_dcache_inv_range(void*addr,size_t size);
其中,tpcm_sys_dcache_clean_range用于复制将脏数据写入主机内存;tpcm_sys_dcache_inv_range用于删除缓存;tpcm_sys_dcache_cleaninv_range用于执行脏数据写入主存后删除缓存;addr用于指定要清除缓存的地址;size用于指定要清除缓存的大小;大多数***可不实现这几个接口(即定义为空函数)。
下面对该实施例的上述第二接口进行详细介绍。
作为一种可选的实施方式,上述第二接口用于实现分数据段访问闪存的功能,其中,不同的数据段存储在不同的闪存芯片上。
在该实施例中,第二接口可以为FLASH驱动接口,实现按分段访问FLASH的功能。分段可以如下定义,不同的段可能存储与不同的FLASH芯片之上,底层实现可以根据分段参数识别要访问的FLASH芯片和地址偏移。
enum{
FLASH_REGIN_CPU_FIRMWARE=0,
FLASH_REGIN_TPCM_DATA,
FLASH_REGIN_BOOT_CODE,//uboot or uefi bios
FLASH_REGIN_BOOT_CONFIG,//bios data
FLASH_REGIN_TPCM,
FLASH_REGIN_MAX
};
其中,FLASH_REGIN_BOOT_COD=2代表BOIS,UEFI,UBOOT的代码段,这部分代码通常存储与FLASH之上,TPCM在启动阶段将度量该段;FLASH_REGIN_TPCM_DATA=1代表TPCM的数据段,TPCM会根据业务处理需要读写该段;FLASH_REGIN_TPCM段存储TPCM代码;升级功能可能会修改FLASH_REGIN_TPCM段,以及FLASH_REGIN_CPU_FIRMWARE、FLASH_REGIN_BOOT_CODE等段;其它段的读写可以不使用,实际情况如果没有常量对应的段可一忽略不实现,读写不存在的段时返回错误值。
作为一种可选的实施方式,上述第二接口包括以下至少之一:闪存读接口,用于读取第一预定长度的数据;闪存写接口,用于写入第二预定长度的数据;闪存擦除接口,用于擦除第一数据;闪存擦写接口,用于先擦除第二数据,再写入第三数据;闪存区域长度返回接口,用于返回闪存区域的长度。
该实施例的上述第二接口可以包括闪存读接口,用于读取第一预定长度的数据。
作为一种可选的示例,上述闪存读接口用于通过以下步骤来读取第一预定长度的数据:按照第一预定区域和第一偏移量,读取第一预定长度的数据。
在该实施例中,闪存读接口可以实现按制定的区域和偏移量,来读取指定长度的数据。
可选地,该实施例的闪存读接口的函数定义如下:
inttpcm_sys_flash_read(intzone,char*buffer,intoffset,int length);
其中,zone用于表示指定区域,可以由常量定义区域;buffer用于接收读取的数据;offset用于指定相对于该区域的偏移量;length用于指定读取的长度;如果读取成功返回指定长度的数据,则函数返回0。如果该区域不存在、不允许读取,或者该区域数据少于指定的长度时返回非0;硬件返回的数据是否正确,可以由上层检查,底层驱动可以不用检查。
该实施例的上述第二接口还可以包括闪存写接口,用于写入第二预定长度的数据。
作为一种可选的示例,上述闪存写接口用于通过以下步骤来写入第二预定长度的数据:按照第二预定区域和第二偏移量,写入第二预定长度的数据。
在该实施例中,闪存写接口可以按照指定的区域和偏移量,写入指定长度的数据。
可选地,该实施例的闪存写接口的函数定义如下:
inttpcm_sys_flash_write(intzone,char*buffer,intoffset,int length);
zone用于表示指定区域,可以由常量定义区域;buffer用于写入数据;offset用于指定相对于该区域的偏移量;length用于指定写入的长度;如果写入成功,则函数返回0;如果该区域不存在,或者不允许写入,或者该区域空间少于指定的长度时返回非0;硬件是否正确写入数据,可以由上层检查,底层驱动可以不用检查。
该实施例的上述第二接口还可以包括闪存擦除接口,用于擦除第一数据。
作为一种可选的示例,上述闪存擦除接口用于通过以下步骤来擦除第一数据:按照第三预定区域和第三偏移量擦除第一数据。
在该实施例中,可以按照指定的区域和偏移量,来擦除第一数据。如果长度大于一次擦写单位,则实现者可以执行多次擦除命令。
可选地,该实施例的闪存擦除接口的函数定义如下:
inttpcm_sys_flash_erase(intzone,intoffset,int length);
zone用于表示指定区域,可以由常量定义区域;offset用于指定相对于该区域的偏移量;length用于指定擦除的长度;如果擦除成功,则函数返回0;如果该区域不存在,擦写边界和长度未对齐,或者不允许擦除、或者该区域空间少于指定的长度时返回非0;硬件是否正确擦除数据,可以由上层检查,底层驱动不用检查。
该实施例的上述第二接口还可以包括闪存擦写接口,用于先擦除第二数据,再写入第三数据。
作为一种可选的示例,上述闪存擦写接口用于通过以下步骤来先擦除第二数据,再写入第三数据:先在第四预定区域擦除第二数据,再向第四预定区域写入第三数据,其中,第二数据的长度大于第三数据的长度。
在该实施例中,可以对指定区域先擦除,再写入,底层可以根据写入数据的长度和偏移来查找出数据,然后写入。其中,擦除的实际长度可大于写入长度。由上层负调用者责不会擦除无关区域。
可选地,该实施例的闪存擦写接口的函数定义如下:
inttpcm_sys_flash_write_ex(intzone,char*buffer,intoffset,int length);
zone用于表示指定区域,可以由常量定义区域;offset用于指定相对于该区域的偏移量;length用于指定擦除的长度;如果擦写成功,则函数返回0;如果该区域不存在,擦写边界未对齐,或者不允许擦除,或者该区域空间少于指定的长度时,则返回非0;硬件是否正确擦除数据、写入数据,可以由上层检查,底层驱动可以不用检查。
该实施例的上述第二接口还可以包括闪存区域长度返回接口,用于返回指定的闪存区域的长度。
可选地,该实施例的闪存区域长度的函数定义如下:
inttpcm_sys_flash_size(int zone,uint32_t*length);
其中,zone用于表示指定区域,可以由常量定义区域;length用于接收长度返回值;该函数成功返回0,失败返回非0;成功时将区域长度写入length;区域不存在时返回失败;区域不存在时length可以填0。
下面对该实施例的上述第三接口进行详细介绍。
作为一种可选的实施方式,上述第三接口用于实现可信平台控制模块与主机之间的通信。
该实施例的第三接口也即通信驱动接口,用于实现可信平台控制模块与主机之间的通信,包括相互发送命令,还可以是与TPCM的业务层的交互。
作为一种可选的实施方式,上述第三接口包括以下至少之一:命令处理回调接口,用于打断可信平台控制模块的主程序的执行;命令信息说明接口,用于保存可信平台控制模块的命令信息;命令映射接口,用于将输入参数地址和输出参数地址映射为可信平台控制模块可访问的虚拟地址;异步命令完成通知接口,用于在完成异步处理命令时,向主机发送第一通知消息;命令释放接口,用于在命令信息处理完成之后,释放与命令信息相关联的资源;度量结果发送接口,用于在度量操作完成之后,发送第二通知消息;消息发送接口,用于向计算子***发送第三通知消息。
在该实施例中,上述第三接口可以包括命令处理回调接口,用于打断可信平台控制模块的主程序的执行。
作为一种可选的示例,上述命令处理回调接口用于通过以下步骤来打断可信平台控制模块的主程序的执行:在中断处理函数中打断可信平台控制模块的主程序的执行。
在该实施例中,TPCM主程序会设置一个命令处理回调函数,当通信驱动收到主机命令时可以调用该命令处理回调接口。TPCM接收命令通常通过中断来响应,命令处理回调函数一般是在中断处理函数中执行的,即打断TPCM主程序的执行。当命令处理函数返回后底层***还应负责恢复被打断的TPCM主程序的执行上下文。
可选地,该实施例的命令处理回调接口的函数定义如下:
typedef uint32_t(*COMMAND_NOIFTY)(structcommand_info*info);
voidtpcm_comm_set_notify_handler(COMMAND_NOIFTY func);
其中,COMMAND_NOIFTY用于表示回调函数的类型定义;func用于表示TPCM主程序传给驱动的回调函数,到收到命令时调用;structcommand_info用于表示命令的详细信息。
该实施例的上述第三接口还可以包括命令信息说明接口,用于保存可信平台控制模块的命令信息。
作为一种可选的示例,上述命令信息说明接口用于通过以下步骤来保存可信平台控制模块的命令信息;通过结构体保存可信平台控制模块的命令信息。
该实施例的结构体也即命令信息结构体,用于保存命令的详细信息。
structcommand_info{
uint32_t cmd_type;
int32_t cmd_length;
uint64_t cmd_sequence;
uint64_t input_addr;
uint64_t output_addr;
uint32_t input_length;
uint32_t output_maxlength;
uint32_t out_length;
uint32_t out_return;
charprivate_data[];//array size=COMMAND_EXTRA_SIZE
};
其中,uint32_t cmd_type用于表示命令的类型;int32_t cmd_length用于表示命令的长度;uint64_t cmd_sequence用于表示命令的序列号,用于区分命令,返回时上层可用该序列号查找发送者;uint64_t input_addr用于表示命令的输入地址,代表命令输入参数的内存地址,根据命令是如何传递的具有不同的意义;uint64_t output_addr用于表示命令的输出地址,代表命令输出参数的内存地址,根据命令是如何传递的有不同的意义;uint32_t input_length用于表示命令输出参数的长度;uint32_t output_maxlength用于表示命令输出缓存去的最大长度;uint32_t out_length用于表示命令输出实际长度;uint32_t out_return用于表示命令处理后的返回值;char private_data[]用于表示驱动内部使用的额外数据,上层不会使用这部分数据。
该实施例的上述第三接口还可以包括命令映射接口,用于将输入参数地址和输出参数地址映射为可信平台控制模块可访问的虚拟地址。
作为一种可选的示例,上述命令映射接口用于通过以下步骤来将输入参数地址和输出参数地址映射为可信平台控制模块可访问的虚拟地址:在输入参数地址和输出参数地址未能直接访问的情况下,将输入参数地址和输出参数地址映射为虚拟地址。
在该实施例中,在通过通信机制传递过来的命令中,其输入参数地址和输出参数地址可能不可以直接访问,比如,可能传递的是物理地址。则命令映射接口可以将输入参数地址和输出参数地址映射为TPCM可访问的虚拟地址。
可选地,该实施例的命令映射接口的函数定义如下:
inttpcm_comm_map_address(structcommand_info*info,void**input,void**output);
其中,info用于表示命令的基本信息,之前由命令驱动传递给命令处理函数,现在TPCM将这个数据传回来进行映射;input用于表示接收映射后的输入参数虚拟地址;output用于表示接收映射后的输出参数虚拟地址;映射成功时返回0,失败时返回非0;通常地址无效映射失败则会返回错误;映射时底层驱动可使用info末端的私有区域保存额外信息,TPCM业务层不会使用额外区域。
该实施例的上述第三接口还可以包括异步命令完成通知接口,用于在完成异步处理命令时,向主机发送第一通知消息,也即,当异步处理命令完成时,给主机发送第一通知消息。
作为一种可选的示例,上述第一通知消息由异步命令完成通知接口和主机的驱动接口协商得到。
该实施例的异步命令完成通知接口的函数定义可以如下:
voidtpcm_comm_async_command_handled(structcommand_info*info);
其中,info用于表示已处理的命令;无返回值;具体发送什么第一通知消息给主机,可以由通信驱动接口中的异步命令完成通知接口与主机侧的驱动接口协商决定。
该实施例的上述第三接口还可以包括命令释放接口,用于在命令信息处理完成之后,释放与命令信息相关联的资源,在完成命令处理后可以释放命令信息的相关资源,可以包括对命令映射的逆向操作。
作为一种可选的示例,上述命令释放接口保留命令信息在内存中的数据。
在该实施例中,命令释放接口保留命令信息在内存中的数据,也即,并不需要释放命令信息自身(info)的内存。
可选地,该实施例的命令释放接口的含义定义如下:
voidtpcm_comm_release_command(structcommand_info*info);
其中,info用于指向需释放资源的命令。
该实施例的上述第三接口还可以包括度量结果发送接口,用于在度量操作完成之后,发送第二通知消息,可以是当BIOS度量完成后,发送第二通知消息。
作为一种可选的示例,上述第二通知消息用于唤醒主机的中央处理器。
在该实施例中,第二通知消息主要是唤醒主机CPU。
可选地,该实施例的度量结果发送接口的函数定义如下:
voidtpcm_comm_send_bios_measure_result(uint32_tret);
无返回值。
当ret为0时,可以唤醒主机CPU,而在其它情况下,可以不用唤醒CPU。
该实施例的上述第三接口还可以包括消息发送接口,用于向计算子***发送第三通知消息
作为一种可选的示例,上述消息发送接口用于通过以下步骤向计算子***(计算节点)发送第三通知消息:向计算子***的中央处理器发送中断请求消息。
在该实施例中,消息发送接口可以向计算节点发送第三通知消息,可以是给计算节点CPU发送一个中断请求消息。
可选地,该实施例的消息发送接口的函数定义可以如下:
voidtpcm_comm_send_simple_notify(uint32_tnotify_type)
其中,notify_type用于表示通知类型,该通知类型可以由上层决定。
作为一种可选的实施方式,步骤S106,通过目标功能指令控制可信平台控制模块执行业务功能,包括:响应目标功能指令,对计算子***进行度量,得到度量结果。
在该实施例中,在实现通过目标功能指令控制可信平台控制模块执行业务功能时,TPCM可以是响应目标功能指令,根据策略对计算子***进行度量,得到度量结果,其中,可以由可信管理中心配置策略和基准值,通过终端工具下发给TPCM,终端也可以将基准值上报给可信管理中心。可选地,该实施例在实现定时度量时,可以完全根据策略执行,拦截度量需要可信软件基(TSB)代理拦截计算子***行为进行配合。其中,TSB为可信计算平台的可信性提供支持的软件元素的集合,TSB代理负责拦截计算节点行为,采集行为和上下文数据,将数据发送给TSB。
作为一种可选的实施方式,响应目标功能指令,对计算子***进行度量,得到度量结果,包括:获取计算子***的行为数据;响应目标功能指令,通过行为数据对计算子***进行度量,得到度量结果。
在该实施例中,计算子***的行为数据可以是TPCM接收到TSB代理传递的拦截行为(采集行为)数据,可以响应目标功能指令,根据策略通过行为数据和上下文数据对计算节点进行度量,从而得到度量结果。
作为一种可选的实施方式,响应目标功能指令,对计算子***进行度量,得到度量结果,包括:响应目标功能指令,在业务层从计算子***获取主机资源或通过***层从计算子***获取主机资源,其中,***层通过目标接口与业务层相关联;通过主机资源对计算子***进行度量,得到度量结果。
在该实施例中,在TPCM的度量业务层(TSB)度量计算子***时,可以通过TPCM***层对应的目标接口访问主机资源,某些情况如果TSB的某一部分物理上位于计算子***之中,则TSB可以自己从计算子***获取主机资源,比如,自己访问计算节点资源,而不通过TPCM***层访问计算节点资源。在获取主机资源之后,通过主机资源对计算子***进行度量,得到度量结果。
作为一种可选的实施方式,响应目标功能指令,对计算子***进行度量,得到度量结果,包括:响应目标功能指令,通过***层提供的密码数据对计算子***进行度量。
在该实施例中,在实现响应目标功能指令,对计算子***进行度量,得到度量结果时,可以响应目标功能指令,通过***层提供的密码数据对计算子***进行度量。TPCM的度量业务层(TSB)在度量计算子***时,可以通过TPCM提供的密码模块进行密码相关计算。
在该实施例中,TPCM的度量业务层(TSB)可以根据度量结果、基准值、策略决定如何对计算子***进行控制。
作为一种可选的实施方式,步骤S106,通过目标功能指令控制可信平台控制模块执行业务功能,包括:响应目标功能指令,通过目标接口访问主机***,以执行业务功能。
在该实施例中,根据控制的类型不同,TSB可以通过目标接口(TPCM***层接口)直接访问主机***进行控制,以执行业务功能。
作为一种可选的实施方式,步骤S106,通过目标功能指令控制可信平台控制模块执行业务功能,包括:响应目标功能指令,可信平台控制模块的度量业务层通过调用目标接口,对主机的启动过程和运行过程进行度量检查和控制。
在该实施例中,可信平台控制模块的业务层包括度量业务层(TSB),该度量业务层为TPCM的核心功能,通过调用目标接口对主机的启动过程和运行过程进行度量检查和控制,其中,计算子***主要是协助TPCM对主机进行度量检查,可以包括以下内容:
TSB代理,用于植入操作***内部,能够获取操作***更准确的信息,这些信息是TPCM进行度量必要的数据;TSB代理还负责进行精确的控制;在TPCM性能不足的情况,TSB代理也负责一些度量工作。可选地,该实施例的TSB代理还可以用于实现动态度量、白名单度量代理、日志处理、报告处理等。
启动度量代理,用于植入相关的启动模块内部,功能与上述TSB代理相似,但只处理启动阶段的度量和控制。可选地,该实施例的启动度量代理还包括GRUB度量代理和BOIS度量。
TPCM访问服务,为主机上的其它模块提供访问TPCM功能以及协调工作的接口。可选地,该实施例的TPCM访问服务可以实现TPCM接口服务、TPCM驱动和通信驱动的功能。
通过可信终端工具与管理中心通信,为TPCM和TSB代理设置策略和基准库,以及传输日志和可信报告。可选地,该实施例的可信终端工具还可以用于实现可信报告上传、基准采集、日志上传、证书管理、策略和基准下发。
作为一种可选的实施方式,步骤S106,通过目标功能指令控制可信平台控制模块执行业务功能,包括:响应目标功能指令,可信平台控制模块的可信密码业务层通过调用目标接口,为可信平台控制模块提供可信密码服务。
在该实施例中,可信平台控制模块的业务层除了包括度量业务层之外,还可以包括可信密码业务层(TCM),也即,TCM业务层,可以通过调用目标接口,为可信平台控制模块提供可信密码服务,比如,处理可信密码模块,以及与可信密码模块相关联的功能,从而为TPCM提供可信密码支撑服务,其中,可信密码模块是受TPCM控制的支持部件,上述可信密码服务包括可信密码支撑服务,使用该可信密码支撑服务可以完成基准值采集、目标度量、可信凭证签名等操作,另外,该实施例的可信密码服务还可以包括但不限于杂凑、签名、加解密、获取随机数等。任何安全离不开可靠的密码支持,TCM正是这样不可或缺的支持模块。在其它环境中TCM是受计算机控制的,而在双体系机构中,TCM是受TPCM控制的,在双体系机构中计算节点也可以使用TCM的密码功能,但是应通过TPCM的控制。
因为TCM是防护***的一部分,其使用应由TPCM控制,而不是由计算子***控制。否则也无法真正做到密码功能的安全可信。比如,TPCM和计算子***都可以使用TCM的安全存储功能,但计算子***使用安全存储功能时,应依赖于TPCM的度量结果。计算子***通过TPCM去使用TCM的功能还有一个原因是同步访问往往需要协调。
可选地,该实施例也可以通过给TSB代理发送控制指令的方式进行控制,其中,部分控制通过拦截度量返回值的方式来进行控制,部分控制通过机制给TSB代理发送控制通知指令。
在该实施例中,如果需要TSB代理协助,则TSB代理在接收到控制指令之后(或得到度量返回的控制指令),可以对主机进行控制。
该实施例的TPCM的度量业务层(TSB)可以输出可信日志。终端工具可以将上述可信日志上传至可信管理中心,终端工具也可以获取可信报告发送至管理中心或获取可信凭据发送至请求者,管理中心可以对日志和可信报告进行分析,比如,分析产品更有价值的可信数据,这些可信数据有不同的用途,可以用于评估当节点和整个网络计算环境的可信读,用于预测网络的危险状态并采取相应的措施,用于生成智能控制策略下发给终端工具等。
在相关技术中,并未将TPCM进行分层设计,也并未提出为了便于TPCM迁移和维护而设计的TPCM***层接口。而在该实施例中,为了便于TPCM进行迁移和维护,将通过目标接口(TPCM***层接口)对TPCM进行分层设计,将其划分为TPCM***层和TPCM业务层,这样TPCM业务层可以通过调用TPCM***层接口实现与TPCM***层之间的交互,使得TPCM业务层在进行主动防御业务时无需关心TPCM所采用的硬件结构,从而极大地提高了TPCM的适配性,解决了可信平台控制模块的适配性低的技术问题,达到了提高可信平台控制模块的适配性的技术效果。
实施例2
下面结合优选的实施方式对本发明实施例的技术方案进行举例说明。
本发明的TPCM应用在可信计算平台中,该可信计算平台可以包括并行运行的计算子***和防御子***,其中,防御子***总体上由TPCM、可信管理中心以及TPCM在主机侧的延伸和代理的部分共同构成上述防御子***,其中,可信管理中心为上述防御子***配置策略、进行数据分析。
图2是根据本发明实施例的一种TPCM的结构示意图。如图2所示,TPCM包括TPCM***层、TPCM业务层(包括TSB、TCM模块)和***层接口。
该实施例的TPCM内部设计采用了一种分层设计的思想,将TPCM业务功能的实现,与支撑这些TPCM业务功能实现的***服务分离开来。通过分离业务层与***层,使TPCM更容易进行迁移和维护,以满足TPCM在多种物理场景中实现的需求。
该实施例的***层接口使得TPCM分层,可以定义TPCM业务层与***层之间交互的规范。TPCM***层主要包括操作***基本服务、通信驱动和FLASH驱动三部分,***层接口也相应的规定这几部分的接口。
图3是根据本发明实施例的一种TPCM***层框架的示意图。如图3所示。TPCM***层可以包括:TPCM操作***(TPCM OS)、通信驱动、FLASH驱动、密码模块和任务管理模块,可以为TCM和TPCM的处理提供基本的执行环境,不同的TPCM实现方式和硬件环境,***层的差异比较大;***层屏蔽的硬件差异性,可以上层TCM和TPCM业务模块可以专注于业务的处理。
在该实施例中,TPCM操作***(TPCM OS),用于提供基本的执行环境,比如,TPCM内存管理、访问主机内存、中断处理、同步机制、时钟和计数等基本功能。
FLASH驱动,用于提供访问FLASH的功能,TPCM和TCM数据可存储到FLASH。
通信驱动用于完成与主机的通信,相互发送消息。
密码模块用于提供密码计算的基本功能,为可信度量和可信密码模块实现提供支持,其中,密码模块有软件实现和硬件实现两种方式。
图4是根据本发明实施例的一种可信计算平台中的总体逻辑结构的示意图。如图4所示,可信计算平台40可以包括:可信管理中心41、计算子***42和TPCM 43。
在该实施例中,计算子***42主要是协助TPCM 43对主机进行度量检查,主要包括:
1)TSB代理,用于植入操作***内部,能够获取操作***更准确的信息,这些信息是TPCM进行度量必要的数据;TSB代理还负责进行精确的控制;在TPCM 43性能不足的情况,TSB代理也负责一些度量工作。可选地,该实施例的TSB代理还可以用于实现动态度量、白名单度量代理、日志处理、报告处理等。
2)启动度量代理,用于植入相关的启动模块内部,功能与上述TSB代理相似,但只处理启动阶段的度量和控制。可选地,该实施例的启动度量代理还包括GRUB度量代理和BOIS度量。
3)TPCM访问服务,为主机上的其它模块提供访问TPCM 43功能以及协调工作的接口。可选地,该实施例的TPCM访问服务可以实现TPCM接口服务、TPCM驱动和通信驱动的功能。
4)终端工具,也即,可信终端工具,用于与管理中心通信,为TPCM 43和TSB代理设置策略和基准库,以及传输日志和可信报告。可选地,该实施例的终端工具还可以用于实现可信报告上传、基准采集、日志上传、证书管理、策略和基准下发。
该实施例的TPCM 43可以包括TPCM业务层、TCM业务层、TPCM***层,其中,TPCM业务层可以用于实现启动度量、动态度量、拦截度量、可信报告、策略和基准库管理;TPCM***层可以用于实现任务管理、通信驱动、密码模块的功能、TPCM OS的功能等。
在该实施例中,TPCM 43中的TCM业务层可以主要处理可信密码模块TCM,以及可信密码模块的相关功能,为TPCM 43提供可信密码支撑,其中,TCM为可信计算平台的硬件模块,为可信计算平台提供密码运算功能,具有受保护的存储空间。该TPCM 43的业务层是TPCM 43的核心功能,用于对主机启动流程和运行阶段进行度量检查和控制。
该实施例的可信管理中心41和计算子***42之间可以用于实现日志策略报告的传输,计算子***42和TPCM 43之间可以用于实现度量通知命令的传输。
下面对该实施例的可信计算平台的执行流程介绍如下:
S1,由可信管理中心41配置策略和基准值。
S2,策略和基准值通过终端工具下发给TPCM 43。
该实施例的终端工具也负责采集终端工具的基准值上报给可信管理中心41。
S3,TPCM 43根据策略对计算子***42进行度量。
该实施例的TPCM 43可以根据策略对计算子***42进行定时度量,其中,定时度量可以完全根据策略执行,拦截度量需要TSB代理拦截计算节点***行为进行配合。
S4,TSB代理负责拦截计算子***42的行为,采集行为和上下文数据,将数据发送给TSB。
S5,TPCM 43接收到TSB代理传递的采集行为和上下文数据,根据策略对计算子***42进行度量。
S6,在TPCM的度量业务层(TSB)度量计算子***42时,可以通过TPCM***层提供的服务接口访问主机资源,在某些情况下,如果TSB的某一部分物理上位于计算子***42之中,则TSB可自己访问计算节点资源,而不通过TPCM***层来访问计算节点资源。
S7,在TPCM的度量业务层(TSB)度量计算子***42时,可以通过TPCM 43提供的密码模块进行密码相关计算。
S8,TPCM的度量业务层(TSB)根据度量结果、基准值、策略决定如何对计算节点进行控制。
根据控制的类型不同,TSB可通过TPCM 43的***层接口直接访问主机***进行控制,也可以通过给TSB代理发送控制指令的方式进行控制。其中部分控制通过拦截度量返回值的方式进行控制,部分控制通过机制给TSB代理发送控制通知指令。
S9,对于需要TSB代理协助的情况,TSB代理在接收到控制指令后(或得到度量返回的控制指令),可以对主机进行控制。
S10,TPCM的度量业务层(TSB)输出可信日志。
S11,终端工具可以将可信日志上传给可信管理中心41,终端工具也可以获取可信报告发送给管理中心或获取可信凭据发送给请求者。
S12,管理中心对日志和可信报告进行分析。
该实施例可以分析产品更有价值的可信数据,这些可信数据可以有不同的用途,可以评估当节点和整个网络计算环境的可信读、可以预测网络的危险状态并采取相应的措施、可生成智能控制策略再下发给终端。
该实施例在TPCM内部设置了***层接口,定义了TPCM内部的交互规范,使得在TPCM通过***层接口在执行功能上分离出了业务层和***层,这样在TPCM执行业务功能时,***层为业务层的业务功能的实现提供了必要的环境,可以屏蔽底层硬件和通信机制的差异性,使业务层只需关心业务功能的实现,而无需关心TPCM所采用的硬件结构,使得TPCM更容易进行迁移和维护,以满足TPCM在多种物理场景中实现的需求,提高了TPCM的适配性,解决了可信平台控制模块的适配性低的技术问题,达到了提高可信平台控制模块的适配性的技术效果。
实施例3
本发明实施例还提供了一种数据处理装置。需要说明的是,该实施例的数据处理装置可以用于执行本发明实施例1中的数据处理方法。
图5是根据本发明实施例的一种数据处理装置的示意图。如图5所示,该数据处理装置50可以包括:获取单元51、确定单元52和转换单元53。
获取单元51,用于获取***服务信息,其中,***服务信息用于实现可信平台控制模块的业务功能。
确定单元52,用于从至少一个接口中确定出与***服务信息对应的目标接口,其中,可信平台控制模块包括至少一个接口。
转换单元53,用于通过目标接口将***服务信息转换为目标功能指令,并通过目标功能指令控制可信平台控制模块执行业务功能。
该实施例的数据处理装置在TPCM内部设置了至少一个接口,定义了TPCM内部的交互规范,使得在TPCM通过至少一个接口在执行功能上分离出了业务层和***层,这样在TPCM执行业务功能时,***层为业务层的业务功能的实现提供了必要的环境,可以屏蔽底层硬件和通信机制的差异性,使业务层只需关心业务功能的实现,而无需关心TPCM所采用的硬件结构,以满足TPCM在多种物理场景中实现的需求,使得TPCM更容易进行迁移和维护,提高了TPCM的适配性,解决了可信平台控制模块的适配性低的技术问题,达到了提高可信平台控制模块的适配性的技术效果。
实施例4
本发明实施例还提供了一种存储介质。该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行本发明实施例的数据处理方法。
实施例5
本发明实施例还提供了一种处理器。该处理器用于运行程序,其中,程序运行时执行本发明实施例的数据处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取***服务信息,其中,所述***服务信息用于实现可信平台控制模块的业务功能;
从至少一个接口中确定出与所述***服务信息对应的目标接口,其中,所述可信平台控制模块包括所述至少一个接口;
通过所述目标接口将所述***服务信息转换为目标功能指令,并通过所述目标功能指令控制所述可信平台控制模块执行所述业务功能;
其中,所述可信平台控制模块采用分层设计结构,且通过所述至少一个接口划分为***层和业务层,其中,所述可信平台控制模块的***层用于提供所述***服务信息,所述可信平台控制模块的业务层用于通过所述目标功能指令控制所述可信平台控制模块执行所述业务功能;
其中,所述可信平台控制模块采用分层设计结构,且通过所述至少一个接口划分为***层和业务层,包括:在所述可信平台控制模块内部设置所述至少一个接口;定义所述可信平台控制模块内部的交互规范;基于所述交互规范在所述可信平台控制模块通过所述至少一个接口在执行功能上分离出业务层和***层。
2.根据权利要求1所述的方法,其特征在于,所述目标接口包括以下至少之一:
第一接口,用于将所述***服务信息转换为操作功能指令,其中,所述目标功能指令包括所述操作功能指令,所述操作功能指令用于向所述可信平台控制模块提供执行环境;
第二接口,用于将所述***服务信息转换为驱动功能指令,其中,所述目标功能指令包括所述驱动功能指令,所述驱动功能指令用于向所述可信平台控制模块提供访问闪存的功能;
第三接口,用于将所述***服务信息转换为通信功能指令,其中,所述目标功能指令包括所述通信功能指令,所述通信功能指令用于使所述可信平台控制模块与主机进行通信。
3.根据权利要求2所述的方法,其特征在于,所述第一接口包括以下至少之一:
主机内存访问接口,用于访问主机内存;
中断开关接口,用于采用中断方式接收主机发送的命令;
本地内存管理接口,用于分配和释放内存;
调试信息输出接口,用于输出格式化信息;
随机数生成接口,用于生成随机数;
时间获取接口,用于获取所述可信平台控制模块在启动之后的时间;
内存使用信息获取接口,用于返回所述可信平台控制模块的内存使用的信息;
中央处理器的信息获取接口,用于获取运行的中央处理器的信息;
***延迟接口,用于控制中央处理器的运行延迟目标时间段;
中央处理器的缓存清理接口,用于清理中央处理器的缓存。
4.根据权利要求2所述的方法,其特征在于,所述第二接口包括以下至少之一:
闪存读接口,用于读取第一预定长度的数据;
闪存写接口,用于写入第二预定长度的数据;
闪存擦除接口,用于擦除第一数据;
闪存擦写接口,用于先擦除第二数据,再写入第三数据;
闪存区域长度返回接口,用于返回闪存区域的长度。
5.根据权利要求2所述的方法,其特征在于,所述第三接口包括以下至少之一:
命令处理回调接口,用于打断所述可信平台控制模块的主程序的执行;
命令信息说明接口,用于保存所述可信平台控制模块的命令信息;
命令映射接口,用于将输入参数地址和输出参数地址映射为所述可信平台控制模块可访问的虚拟地址;
异步命令完成通知接口,用于在完成异步处理命令时,向主机发送第一通知消息;
命令释放接口,用于在命令信息处理完成之后,释放与所述命令信息相关联的资源;
度量结果发送接口,用于在度量操作完成之后,发送第二通知消息;
消息发送接口,用于向计算子***发送第三通知消息。
6.根据权利要求1所述的方法,其特征在于,通过所述目标功能指令控制所述可信平台控制模块执行所述业务功能,包括:
响应所述目标功能指令,所述可信平台控制模块的度量业务层通过调用所述目标接口,对主机的启动过程和运行过程进行度量检查和控制。
7.根据权利要求1所述的方法,其特征在于,通过所述目标功能指令控制所述可信平台控制模块执行所述业务功能,包括:
响应所述目标功能指令,所述可信平台控制模块的可信密码业务层通过调用所述目标接口,为所述可信平台控制模块提供可信密码服务。
8.一种数据处理装置,其特征在于,包括:
获取单元,用于获取***服务信息,其中,所述***服务信息用于实现可信平台控制模块的业务功能;
确定单元,用于从至少一个接口中确定出与所述***服务信息对应的目标接口,其中,所述可信平台控制模块包括所述至少一个接口;
转换单元,用于通过所述目标接口将所述***服务信息转换为目标功能指令,并通过所述目标功能指令控制所述可信平台控制模块执行所述业务功能;
其中,所述装置还包括:划分单元,用于将所述可信平台控制模块采用分层设计结构,且通过所述至少一个接口划分为***层和业务层,其中,所述可信平台控制模块的***层用于提供所述***服务信息,所述可信平台控制模块的业务层用于通过所述目标功能指令控制所述可信平台控制模块执行所述业务功能;
其中,所述划分单元还用于通过以下步骤将所述可信平台控制模块采用分层设计结构,且通过所述至少一个接口划分为***层和业务层:在所述可信平台控制模块内部设置所述至少一个接口;定义所述可信平台控制模块内部的交互规范;基于所述交互规范在所述可信平台控制模块通过所述至少一个接口在执行功能上分离出业务层和***层。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010088886.5A CN111310192B (zh) | 2020-02-12 | 2020-02-12 | 数据处理方法、装置、存储介质和处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010088886.5A CN111310192B (zh) | 2020-02-12 | 2020-02-12 | 数据处理方法、装置、存储介质和处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111310192A CN111310192A (zh) | 2020-06-19 |
CN111310192B true CN111310192B (zh) | 2022-03-15 |
Family
ID=71160078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010088886.5A Active CN111310192B (zh) | 2020-02-12 | 2020-02-12 | 数据处理方法、装置、存储介质和处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111310192B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821803B (zh) * | 2021-11-24 | 2022-02-15 | 飞腾信息技术有限公司 | 安全架构***、安全管理方法和计算设备 |
CN114285906B (zh) * | 2021-12-24 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279914A (zh) * | 2011-07-13 | 2011-12-14 | 中国人民解放军海军计算技术研究所 | 一种uefi可信支撑***及其控制方法 |
CN109753453A (zh) * | 2018-12-26 | 2019-05-14 | 北京可信华泰信息技术有限公司 | 一种存储隔离的可信*** |
CN109918915A (zh) * | 2019-03-14 | 2019-06-21 | 沈昌祥 | 一种基于双体系结构可信计算平台的动态度量方法 |
CN110008708A (zh) * | 2019-04-11 | 2019-07-12 | 北京可信华泰信息技术有限公司 | 一种主机与可信平台控制模块之间的通信方法及*** |
CN110321714A (zh) * | 2019-07-08 | 2019-10-11 | 北京可信华泰信息技术有限公司 | 基于双体系结构的可信计算平台的动态度量方法及装置 |
CN110334520A (zh) * | 2019-07-08 | 2019-10-15 | 北京可信华泰信息技术有限公司 | 双体系结构的可信计算平台的构建方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795742B (zh) * | 2018-08-02 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 高速密码运算的度量处理方法、装置、存储介质及处理器 |
-
2020
- 2020-02-12 CN CN202010088886.5A patent/CN111310192B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279914A (zh) * | 2011-07-13 | 2011-12-14 | 中国人民解放军海军计算技术研究所 | 一种uefi可信支撑***及其控制方法 |
CN109753453A (zh) * | 2018-12-26 | 2019-05-14 | 北京可信华泰信息技术有限公司 | 一种存储隔离的可信*** |
CN109918915A (zh) * | 2019-03-14 | 2019-06-21 | 沈昌祥 | 一种基于双体系结构可信计算平台的动态度量方法 |
CN110008708A (zh) * | 2019-04-11 | 2019-07-12 | 北京可信华泰信息技术有限公司 | 一种主机与可信平台控制模块之间的通信方法及*** |
CN110321714A (zh) * | 2019-07-08 | 2019-10-11 | 北京可信华泰信息技术有限公司 | 基于双体系结构的可信计算平台的动态度量方法及装置 |
CN110334520A (zh) * | 2019-07-08 | 2019-10-15 | 北京可信华泰信息技术有限公司 | 双体系结构的可信计算平台的构建方法及装置 |
Non-Patent Citations (2)
Title |
---|
High Performance PCIe Interface for the TPCM based on Linux platform;Wanjun Yu等;《网页在线公开:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7469164》;20160512;第1-4页 * |
基于TPCM的主动动态度量机制的研究与实现;田健生等;《技术研究》;20160714(第6期);第22-27页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111310192A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Pond: Cxl-based memory pooling systems for cloud platforms | |
JP7007425B2 (ja) | 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術 | |
US10565104B2 (en) | System and method to manage and share managed runtime memory for JAVA virtual machine | |
JP6845264B2 (ja) | オポチュニスティックハイパーバイザを用いたパフォーマンスの変動の低減 | |
JP5680070B2 (ja) | 複数の仮想計算装置の計算機活動をモニタする方法、装置及びプログラム | |
US8127092B2 (en) | Migration management based on destination performance information | |
WO2018085421A1 (en) | Read/write request processing method and apparatus | |
JP2019525313A (ja) | 仮想化マネージャのセキュアなブート処理 | |
US7574551B2 (en) | Operating PCI express resources in a logically partitioned computing system | |
EP1548589A2 (en) | Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices | |
CN111831588A (zh) | 一种存储设备访问方法、装置和*** | |
US10228993B2 (en) | Data dump for a memory in a data processing system | |
CN111310192B (zh) | 数据处理方法、装置、存储介质和处理器 | |
JP6927375B2 (ja) | ディープラーニングタスクの処理方法、装置及びコンピュータ読み取り可能な記憶媒体 | |
US11544096B2 (en) | Virtual trusted platform modules | |
WO2010106692A1 (en) | Storage system and its controlling method | |
CN114595038A (zh) | 数据处理方法、计算设备及计算机存储介质 | |
CN111310193B (zh) | 数据处理方法、装置、存储介质和处理器 | |
JP5492731B2 (ja) | 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム | |
Xue et al. | Dapper: An adaptive manager for large-capacity persistent memory | |
US10379912B2 (en) | Data storage allocation utilizing virtual machine resource allocation | |
CN115964093A (zh) | 用于访问存储设备上的设备程序的***、方法和设备 | |
CN115562588A (zh) | 虚拟磁盘阵列配置方法、装置、计算机设备及存储介质 | |
CN116069584A (zh) | 将监控服务扩展到可信云运营商域中 | |
Tong et al. | Experiences in Managing the Performance and Reliability of a {Large-Scale} Genomics Cloud Platform |
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 |