本申请涉及信息安全技术领域,尤其涉及一种提供可信内存的方法、装置、处理器芯片和电子设备。
背景技术:
信息安全最重要的是数据安全,大量敏感数据的窃取泄露是在程序运行时发生的,因此,对运行时程序敏感数据的保护是信息安全领域的重要内容。
现有技术中,使用可信平台模块(tpm,trustedplatformmodule)实现对运行时数据的保护,具体地,tpm环境与中央处理器(cpu,centreprossesunint)通用计算环境隔离,cpu无法直接访问tpm内存储的数据,cpu上运行的程序使用tpm只能通过固定的命令接口进行。tpm为能够程序存储敏感数据如密钥提供了专门的命令接口,程序调用这些接口访问敏感数据时需通过严格的授权验证,以此提高程序运行时敏感数据的安全性。
然而,tpm功能结构复杂、命令接口复杂。即使tpm规范对tpm的功能及命令进行了详细的描述并提供上层tss软件栈,用户理解并使用tpm仍然具有较大的难度,使用不方便。
技术实现要素:
有鉴于此,本申请实施例提供一种提供可信内存的方法、装置、处理器芯片和电子设备,既能够提高程序运行时的敏感数据的安全性,又便于用户使用。
第一方面,本申请实施例提供一种提供可信内存的方法,包括:安全处理器接收可信内存申请请求;所述安全处理器根据所述可信内存申请请求,分配可信内存,并返回分配的可信内存的可信内存标识信息;所述可信内存与中央处理器对应的内存的运行环境相隔离;所述安全处理器接收对所述可信内存的操作请求,并根据所述操作请求,对所述可信内存进行相应的内存操作;所述操作请求中包括所述可信内存标识信息。
根据本申请实施例的一种具体实现方式,所述安全处理器接收可信内存申请请求,包括:所述安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的可信内存申请请求。
根据本申请实施例的一种具体实现方式,所述可信内存申请请求中包括第一验证信息;在所述安全处理器接收可信内存申请请求之后,所述方法还包括:所述安全处理器保存所述第一验证信息;和/或,所述安全处理器生成第二验证信息,保存并返回所述第二验证信息。
根据本申请实施例的一种具体实现方式,所述安全处理器接收对所述可信内存的操作请求,包括:所述安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的对所述可信内存的操作请求。
根据本申请实施例的一种具体实现方式,所述操作请求中包括第一验证信息和/或第二验证信息;其中,所述根据所述操作请求,对所述可信内存进行相应的内存操作,包括:对所述操作请求中的第一验证信息和/或第二验证信息进行验证,验证通过后根据所述操作请求,对所述可信内存进行相应的内存操作。
第二方面,本申请实施例提供一种获取可信内存的方法,包括:向安全处理器发送可信内存申请请求,以使安全处理器分配可信内存;所述可信内存与中央处理器对应的内存的运行环境相隔离;接收所述安全处理器返回分配的可信内存的可信内存标识信息;向所述安全处理器发送对所述可信内存的操作请求,以使所述安全处理器根据所述操作请求,对所述可信内存进行相应的内存操作;所述操作请求中包括所述可信内存标识信息。
根据本申请实施例的一种具体实现方式,所述向安全处理器发送可信内存申请请求,包括:运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存申请接口;其中,所述可信内存服务驱动运行在所述中央处理器上;所述可信内存服务驱动,根据所述上层应用对所述可信内存申请接口的调用,生成可信内存申请请求,并将所述可信内存申请请求向安全处理器发送。
根据本申请实施例的一种具体实现方式,在运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存申请接口之后,所述方法还包括:所述可信内存服务驱动提取所述上层应用的特征信息,形成第一验证信息;其中,所述可信内存服务驱动,根据所述上层应用对所述可信内存申请接口的调用,生成可信内存申请请求,包括:所述可信内存服务驱动,根据所述第一验证信息及所述上层应用对所述可信内存申请接口的调用,生成可信内存申请请求。
根据本申请实施例的一种具体实现方式,向所述安全处理器发送对所述可信内存的操作请求,包括:运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存操作接口;其中,所述可信内存服务驱动运行在所述中央处理器上;所述可信内存服务驱动,根据所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求,并将所述可信内存操作请求向安全处理器发送。
根据本申请实施例的一种具体实现方式,在向安全处理器发送可信内存申请请求之后,所述方法还包括:接收所述安全处理器发送的第二验证信息;和/或,在运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存操作接口之后,所述方法还包括:获取所述上层应用的第一验证信息;其中,所述可信内存服务驱动,根据所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求,包括:所述可信内存服务驱动,根据所述第一验证信息和/或所述第二验证信息,以及所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求。
第三方面,本申请实施例提供一种提供可信内存的装置,应用于安全处理器,包括:第一接收模块,用于接收可信内存申请请求;可信内存分配模块,用于根据所述可信内存申请请求,分配可信内存,并返回分配的可信内存的可信内存标识信息;所述可信内存与中央处理器对应的内存的运行环境相隔离;第二接收模块,用于接收对所述可信内存的操作请求,并根据所述操作请求,对所述可信内存进行相应的内存操作;所述操作请求中包括所述可信内存标识信息。
根据本申请实施例的一种具体实现方式,所述第一接收模块,包括:接收子模块,用于所述安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的可信内存申请请求。
根据本申请实施例的一种具体实现方式,所述可信内存申请请求中包括第一验证信息;所述装置还包括:保存模块,用于在所述第一接收模块接收可信内存申请请求之后,保存所述第一验证信息;和/或,生成模块,用于在所述第一接收模块接收可信内存申请请求之后,生成第二验证信息,保存并返回所述第二验证信息。
根据本申请实施例的一种具体实现方式,所述第二接收模块,包括:接收子模块,用于所述安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的对所述可信内存的操作请求。
根据本申请实施例的一种具体实现方式,所述操作请求中包括第一验证信息和/或第二验证信息;其中,所述第二接收模块,包括:接收子模块,用于对所述操作请求中的第一验证信息和/或第二验证信息进行验证,验证通过后根据所述操作请求,对所述可信内存进行相应的内存操作。
第四方面,本申请实施例提供一种获取可信内存的装置,包括:第一发送模块,用于向安全处理器发送可信内存申请请求,以使安全处理器分配可信内存;所述可信内存与中央处理器对应的内存的运行环境相隔离;第一接收模块,用于接收所述安全处理器返回分配的可信内存的可信内存标识信息;第二发送模块,用于向所述安全处理器发送对所述可信内存的操作请求,以使所述安全处理器根据所述操作请求,对所述可信内存进行相应的内存操作;所述操作请求中包括所述可信内存标识信息。
根据本申请实施例的一种具体实现方式,所述第一发送模块,包括:第一调用子模块,用于运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存申请接口;其中,所述可信内存服务驱动运行在所述中央处理器上;第一生成子模块,用于所述可信内存服务驱动,根据所述上层应用对所述可信内存申请接口的调用,生成可信内存申请请求,并将所述可信内存申请请求向安全处理器发送。
根据本申请实施例的一种具体实现方式,所述装置还包括:提取子模块,用于所述可信内存服务驱动提取所述上层应用的特征信息,形成第一验证信息;其中,所述生成子模块,包括:生成子单元,用于所述可信内存服务驱动,根据所述第一验证信息及所述上层应用对所述可信内存申请接口的调用,生成可信内存申请请求。
根据本申请实施例的一种具体实现方式,所述第二发送模块,包括:第二调用子模块,用于运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存操作接口;其中,所述可信内存服务驱动运行在所述中央处理器上;第二生成子模块,用于所述可信内存服务驱动,根据所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求,并将所述可信内存操作请求向安全处理器发送。
根据本申请实施例的一种具体实现方式,所述装置还包括:第二接收模块,用于在所述第一发送模块向安全处理器发送可信内存申请请求之后,接收所述安全处理器发送的第二验证信息;和/或,所述装置还包括:获取子模块,用于在所述第二调用子模块运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存操作接口之后,获取所述上层应用的第一验证信息;其中,所述生成子模块,具体用于所述可信内存服务驱动,根据所述第一验证信息和/或所述第二验证信息,以及所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求。
第五方面,本申请实施例提供一种处理器芯片,包括:中央处理器和安全处理器;其中,所述安全处理器,用于执行前述任一实现方式所述的提供可信内存的方法;所述中央处理器,用于执行前述任一实现方式所述的获取可信内存的方法。
第六方面,本申请实施例提供一种电子设备,所述电子设备包括:中央处理器、第一内存、安全处理器、第二内存,其中,第一内存与中央处理器相对应,第二内存为可信内存与安全处理器相对应,第一内存和第二内存的运行环境相隔离;安全处理器,用于执行前述任一实现方式所述的提供可信内存的方法;中央处理器,用于执行前述任一实现方式所述的获取可信内存的方法。
本实施例提供可信内存的方法、装置、处理器芯片和电子设备,通过安全处理器接收并根据可信内存申请请求,分配可信内存,并返回分配的可信内存的可信内存标识信息,其中,可信内存与中央处理器对应的内存的运行环境相隔离,安全处理器接收并根据对可信内存的操作请求,对可信内存进行相应的内存操作,由于可信内存与中央处理器对应的内存的运行环境相隔离,中央处理器无法直接访问可信内存,并且由安全处理器对可信内存进行管理,而安全处理器的安全性较高,这样,由安全处理器管理、与中央处理器对应的内存的运行环境相隔离的可信内存,能够为程序运行时的敏感数据提供较高的安全保证,从而,提高程序运行时的敏感数据的安全性,并且本实施例中的为敏感数据提高保护的技术方案中,对于用户申请可信内存、操作可信内存,与普通的内存的申请、操作相似,便于用户使用。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请一实施例提供的提供可信内存的方法的流程示意图;
图2为本申请又一实施例提供的提供可信内存的方法的流程示意图;
图3为本申请一实施例提供的获取可信内存的方法的流程示意图;
图4为本申请又一实施例提供的获取可信内存的方法的流程示意图;
图5为本实施例使用的软件件架构示意图;
图6为本实施例的申请可信内存的流程示意图;
图7为本实施例的操作可信内存的流程示意图;
图8为本申请一实施例提供的提供可信内存的装置的结构示意图;
图9为本申请一实施例提供的获取可信内存的装置的结构示意图;
图10为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
如背景技术所言,现有技术中,使用tpm可信平台模块实现对运行数据的保护,其中,tpm规范由tcg国际可信计算组制定,目前规范最新版本为2.0。tpm在可信计算体系架构中位于最底层,是可信的硬件基础,通常由专门的硬件模块实现。tpm环境与cpu通用计算环境隔离,cpu无法直接访问tpm内存储的数据,cpu上程序使用tpm只能通过固定的命令接口进行。tpm为程序存储敏感数据如密钥,提供了专门的命令接口,程序调用这些接口访问数据时必须通过严格的授权验证。
然而,tpm功能结构复杂、命令接口复杂。即使tpm规范对tpm的功能及命令进行了详细的描述并提供上层tcg软件协议栈(tss,tcgsoftwarestack),用户理解并使用tpm仍然具有较大的难度,使用不方便。
有鉴于此,发明人发现,可以通过为运行的程序提供可信内存的方式,为程序运行时的敏感数据提供保护,这样,既能够提高程序运行时的敏感数据的安全性,又便于用户使用。
为使本领域技术人员更好地理解本申请实施例的技术构思、实施方案和有益效果,下面通过具体实施例进行详细说明。
本申请一实施例提供的一种提供可信内存的方法,包括:安全处理器接收可信内存申请请求;所述安全处理器根据所述可信内存申请请求,分配可信内存,并返回分配的可信内存的可信内存标识信息;所述可信内存与中央处理器对应的内存的运行环境相隔离;所述安全处理器接收对所述可信内存的操作请求,并根据所述操作请求,对所述可信内存进行相应的内存操作;所述操作请求中包括所述可信内存标识信息,既能够提高程序运行时的敏感数据的安全性,又便于用户使用。
图1为本申请一实施例提供的提供可信内存的方法的流程示意图,本实施例的提供可信内存的方法,可以包括:
s101、安全处理器接收可信内存申请请求。
安全处理器可为一种专用集成电路,运行环境与中央处理器隔离,具有专用的内存资源即可信内存,中央处理器无法直接访问;与中央处理器之间具有特定的通信接口,中央处理器通过该接口可以给安全处理器发送命令,安全处理器通过该接口返回命令处理的结果。
可信内存申请请求可为由中央处理器发送给安全处理器的、用于申请可信内存的请求。
s102、安全处理器根据可信内存申请请求,分配可信内存,并返回分配的可信内存的可信内存标识信息。
可信内存与中央处理器对应的内存的运行环境相隔离。
安全处理器接收到可信内存申请请求后,根据申请请求,分配对应的可信内存,在分配完可信内存时,产生与可信内存对应的可信内存标识信息,该可信内存标识信息可为区别于其它内存的信息,具体可为可信内存的句柄信息。
可信内存的运行环境可与中央处理器对应的内存的运行环境相隔离,具体可采用物理隔离的方式,例如可使用两块独立的内存,即一块内存为可信内存,一块内存为中央处理器对应的内存,从而使可信内存与中央处理器对应的内存的运行环境相隔离;也可采用逻辑隔离的方式,例如一般情况下,内存管理单元用来完成虚拟地址到物理地址的转换,在将内存进行安全分区的情况下,当内存访问请求的虚拟地址未落入到隔离区域的范围内时,此时使用内存管理单元实现虚拟地址到物理地址的转换;当内存访问请求的虚拟地址落入到隔离区域的范围内时,将使用专门模块来进行虚拟地址到物理地址的转换,从而实现可信内存与中央处理器对应的内存的运行环境相隔离。
s103、安全处理器接收对可信内存的操作请求,并根据操作请求,对可信内存进行相应的内存操作。
操作请求中包括所述可信内存标识信息。
可根据操作请求中的可信内存标识信息,确定已分配的内存。
对可信内存进行相应的内存操作,可为读、写、比较和/或释放内存等操作,在一些例子中,为尽量做到数据不出可信内存,可以根据具体需求,内存操作还可以包括其他类型操作,比如数学运算。本实施例对可信内存进行相应的内存操作,包括但不限于以上几种具体的操作,任意的内存操作均在本申请的保护范围内。
本实施例,安全处理器接收并根据可信内存申请请求,分配可信内存,并返回分配的可信内存的可信内存标识信息,其中,可信内存与中央处理器对应的内存的运行环境相隔离,安全处理器接收并根据对可信内存的操作请求,对可信内存进行相应的内存操作,由于可信内存与中央处理器对应的内存的运行环境相隔离,中央处理器无法直接访问可信内存,并且由安全处理器对可信内存进行管理,而安全处理器的安全性较高,这样,由安全处理器管理、与中央处理器对应的内存的运行环境相隔离的可信内存,能够为程序运行时的敏感数据提供较高的安全保证,从而,提高程序运行时的敏感数据的安全性,并且本实施例中的为敏感数据提高保护的技术方案中,对于用户申请可信内存、操作可信内存,与普通的内存的申请、操作相似,便于用户使用,避免了现有技术中采用tpm为敏感数据提供保护时,由于为满足可信计算的各方面要求,tpm功能结构复杂,命令接口复杂,即使tpm规范对tpm的功能及命令进行了详细的描述并提供上层tss软件栈,用户理解并使用tpm仍然具有较大的难度,使用不方便的问题。
本申请又一实施例,与上述实施例基本相同,不同之处在于,本实施例的安全处理器接收可信内存申请请求(s101),可以包括:
s101a、安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的可信内存申请请求。
可信内存服务(tms,trustedmemoryservice)可提供操作内存的基本功能,在一些例子中,tms提供的基本功能可以包括可信内存申请、释放、读、写和/或比较等操作;进一步地,在又一些例子中,为尽量做到数据不出可信内存,tms提供的基本功能可以根据具体需求增加其他类型操作,例如数学运算。
可信内存服务驱动(tmsd,trustedmemoryservicedriver)可为操作系统内核里的一个内核模块,处于系统高特权模式,可向运行在中央处理器上的上层应用提供访问运行在安全处理器上的可信内存服务的统一接口,包括可信内存申请接口、读/写接口、比较接口、可信内存释放接口等等,通过这些接口,可实现程序运行时敏感数据的存储及访问。
本实施例中,安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的可信内存申请请求,由于可信内存服务驱动处于系统高特权模式,而低特权模式的程序无法修改它,这样,通过可信内存服务驱动的使用,能够提高可信内存申请请求的安全性,避免了处于低特权模式下的恶意程序篡改可信内存申请请求而导致的可信内存申请请求安全性较低的问题,在可信内存服务驱动发送的可信内存申请请求较为安全的基础上,安全处理器上运行的可信内存服务接收的可信内存申请请求也较为安全,进一步地,提高了可信内存服务根据申请请求分配的可信内存的安全性。
图2为本申请又一实施例提供的提供可信内存的方法的流程示意图,如图2所示,本申请又一实施例,与上述实施例基本相同,不同之处在于,本实施例的可信内存申请请求中包括第一验证信息;
在安全处理器接收可信内存申请请求(s101)之后,所述方法还包括:
s104、安全处理器保存第一验证信息。
第一验证信息可为上层应用的身份信息,如进程号、进程名、进程组号等等。
可在对可信内存进行相应的内存操作之前,安全处理器可以使用第一验证信息进行验证,这样,便于提高对可信内存进行相应的内存操作的安全性。
同样为了提高安全性,在一些例子中,在安全处理器接收可信内存申请请求(s101)之后,所述方法还包括:
s105、安全处理器生成第二验证信息,保存并返回第二验证信息。
第二验证信息可为安全处理器在接收到可信内存申请请求之后,随机生成的验证信息(或称为随机授权码),安全处理器对该第二验证信息保存,并且向发出可信内存申请请求的申请者返回第二验证信息,以使在对可信内存进行相应的内存操作之前,安全处理器可以使用第二验证信息进行验证,这样,便于提高对可信内存进行相应的内存操作的安全性。
为了便于进一步提高安全性,在一些例子中,在对可信内存进行相应的内存操作之前,安全处理器使用第一验证信息和第二验证信息进行验证,两个验证信息验证通过后,再对可信内存进行操作。
本申请又一实施例,与上述实施例基本相同,不同之处在于,本实施例的安全处理器接收对所述可信内存的操作请求,包括:
安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的对所述可信内存的操作请求。
本实施例中,安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的对所述可信内存的操作请求,由于可信内存服务驱动处于系统高特权模式,而低特权模式的程序无法修改它,这样,通过可信内存服务驱动的使用,能够提高可信内存的操作请求的安全性,避免了处于低特权模式下的恶意程序窃取可信内存的操作请求而导致的可信内存的操作请求安全性较低的问题,在可信内存服务驱动发送的可信内存的操作请求较为安全的基础上,安全处理器上运行的可信内存服务接收的可信内存的操作请求也较为安全,进一步地,提高了可信内存服务根据可信内存的操作请求,对可信内存进行操作的安全性。
本申请又一实施例,与上述实施例基本相同,不同之处在于,本实施例的操作请求中包括第一验证信息;其中,根据所述操作请求,对所述可信内存进行相应的内存操作,包括:
对操作请求中的第一验证信息进行验证,验证通过后根据操作请求,对可信内存进行相应的内存操作。
本实施例中,安全处理器比对操作请求中的第一验证信息和安全处理器保存的第一验证信息;
如果操作请求中的第一验证信息和安全处理器保存的第一验证信息一致,则安全处理器根据所述操作请求,对可信内存进行操作。
作为一可替代的实施方式,操作请求中包括第二验证信息;其中,根据操作请求,对可信内存进行相应的内存操作,包括:
对操作请求中的第二验证信息进行验证,验证通过后根据操作请求,对可信内存进行相应的内存操作。
安全处理器比对操作请求中的第二验证信息和安全处理器保存的第二验证信息;
如果操作请求中的第二验证信息和安全处理器保存的第二验证信息一致,则安全处理器根据操作请求,对可信内存进行操作。
作为又一可替代的实施方式,操作请求中包括第一验证信息和第二验证信息;其中,根据操作请求,对可信内存进行相应的内存操作,包括:
对操作请求中的第一验证信息和第二验证信息进行验证,验证通过后根据操作请求,对可信内存进行相应的内存操作。
安全处理器比对安全处理器比对操作请求中的第一验证信息和安全处理器保存的第一验证信息,以及比对操作请求中的第二验证信息和安全处理器保存的第二验证信息;
如果操作请求中的第一验证信息和安全处理器保存的第一验证信息一致,且操作请求中的第二验证信息和安全处理器保存的第二验证信息一致,则安全处理器根据操作请求,对可信内存进行操作。
在一些例子中,在所述根据操作请求,对可信内存进行相应的内存操作之后,还包括:
所述安全处理器生成新的第二验证信息;
所述安全处理器用所述新的第二验证信息替换保存的第二验证信息并发送,以使cpu核心接收所述新的第二验证信息并更新第二验证信息。
图3为本申请一实施例提供的获取可信内存的方法的流程示意图,如图3所示,本实施例的获取可信内存的方法,可应用于中央处理器,可以包括:
s201、向安全处理器发送可信内存申请请求,以使安全处理器分配可信内存。
可信内存与中央处理器对应的内存的运行环境相隔离。
安全处理器可为一种专用集成电路,运行环境与中央处理器隔离,具有专用的内存资源即可信内存,中央处理器无法直接访问;与中央处理器之间具有特定的通信接口,中央处理器通过该接口可以给安全处理器发送命令,安全处理器通过该接口返回命令处理的结果。
可信内存申请请求可由中央处理器发送给安全处理器的、用于申请可信内存的请求。
可信内存的运行环境可与中央处理器对应的内存的运行环境相隔离,具体可采用物理隔离的方式,例如可使用两块独立的内存,即一块内存为可信内存,一块内存为中央处理器对应的内存,从而使可信内存与中央处理器对应的内存的运行环境相隔离;也可采用逻辑隔离的方式,例如一般情况下,内存管理单元用来完成虚拟地址到物理地址的转换,在将内存进行安全分区的情况下,当内存访问请求的虚拟地址未落入到隔离区域的范围内时,此时使用内存管理单元实现虚拟地址到物理地址的转换;当内存访问请求的虚拟地址落入到隔离区域的范围内时,将使用专门模块来进行虚拟地址到物理地址的转换,从而实现可信内存与中央处理器对应的内存的运行环境相隔离。
s202、接收安全处理器返回分配的可信内存的可信内存标识信息。
安全处理器分配可信内存后,产生与可信内存对应的可信内存标识信息,该可信内存标识信息可为区别于其它内存的信息,具体可为可信内存的句柄信息。
s203、向安全处理器发送对可信内存的操作请求,以使安全处理器根据所述操作请求,对可信内存进行相应的内存操作。
操作请求中包括可信内存标识信息。
在操作请求中包括可信内存标识信息,可根据操作请求中的可信内存标识信息,确定已分配的内存。
对可信内存进行相应的内存操作,可为读、写、比较和/或释放内存等操作,为尽量做到数据不出可信内存,可以根据具体需求,包括其他类型操作,比如数学运算。本实施例对可信内存进行相应的内存操作,包括但不限于以上几种具体的操作,任意的内存操作均在本申请的保护范围内。
本实施例,通过向安全处理器发送可信内存申请请求,以使安全处理器分配可信内存,可信内存与中央处理器对应的内存的运行环境相隔离,接收安全处理器返回分配的可信内存的可信内存标识信息,向安全处理器发送对可信内存的操作请求,以使安全处理器根据所述操作请求,对可信内存进行相应的内存操作,操作请求中包括可信内存标识信息,由于可信内存与中央处理器对应的内存的运行环境相隔离,中央处理器无法直接访问可信内存,并且由安全处理器对可信内存进行管理,而安全处理器的安全性较高,这样,由安全处理器管理、与中央处理器对应的内存的运行环境相隔离的可信内存,能够为程序运行时的敏感数据提供较高的安全保证,从而,提高程序运行时的敏感数据的安全性,并且本实施例中的为敏感数据提高保护的技术方案中,对于用户申请可信内存、操作可信内存,与普通的内存的申请、操作相似,便于用户使用,避免了现有技术中采用tpm为敏感数据提供保护时,由于为满足可信计算的各方面要求,tpm功能结构复杂,命令接口复杂,即使tpm规范对tpm的功能及命令进行了详细的描述并提供上层tss软件栈,用户理解并使用tpm仍然具有较大的难度,使用不方便的问题。
图4为本申请又一实施例提供的获取可信内存的方法的流程示意图,如图4所示,本实施例,与上述实施例基本相同,不同之处在于,本实施例的向安全处理器发送可信内存申请请求(s201),包括:
s201a、运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存申请接口;其中,可信内存服务驱动运行在中央处理器上。
可信内存服务驱动(tmsd,trustedmemoryservicedriver)可为操作系统内核里的一个内核模块,处于系统高特权模式,可向运行在中央处理器上的上层应用提供访问运行在安全处理器上的可信内存服务的统一接口,例如可以包括可信内存申请接口、读/写接口、比较接口、可信内存释放接口等等,通过这些接口,可实现程序运行时敏感数据的存储及访问,本实施例中可信内存服务驱动能够为上层应用提供可信内存申请接口。
s201b、可信内存服务驱动,根据上层应用对可信内存申请接口的调用,生成可信内存申请请求,并将可信内存申请请求向安全处理器发送。
可将上层应用对可信内存申请接口的调用参数进行封装,生成可信内存申请请求。
本实施例中,运行在中央处理器上的上层应用,调用运行在中央处理器上的可信内存服务驱动的可信内存申请接口,可信内存服务驱动,再根据上层应用对可信内存申请接口的调用,生成可信内存申请请求,并将可信内存申请请求向安全处理器发送,由于可信内存服务驱动处于系统高特权模式,而低特权模式的程序无法修改它,这样,通过可信内存服务驱动提供的可信内存申请接口,能够提高可信内存申请请求的安全性,避免了处于低特权模式下的恶意程序篡改可信内存申请请求而导致的可信内存申请请求安全性较低的问题,在可信内存服务驱动发送的可信内存申请请求较为安全的基础上,安全处理器上运行的可信内存服务接收的可信内存申请请求也较为安全,进一步地,提高了根据申请请求分配的可信内存的安全性。
本申请又一实施例,与上述实施例基本相同,不同之处在于,本实施例的获取可信内存的方法,在运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存申请接口(s201a)之后,所述方法还包括:
可信内存服务驱动提取上层应用的特征信息,形成第一验证信息。
上层应用的特征信息可为上下文信息;第一验证信息可为从特征信息中提取的上层应用的身份信息,如进程号、进程名和/或进程组号等等。可信内存服务驱动也可对提取的上层应用的特征信息进行处理,在一些例子中,对特征信息进行hash处理后的特征值,将该特征值作为第一验证信息。
其中,所述可信内存服务驱动,根据所述上层应用对所述可信内存申请接口的调用,生成可信内存申请请求(s201b),包括:
所述可信内存服务驱动,根据第一验证信息及上层应用对所述可信内存申请接口的调用,生成可信内存申请请求。
本实施例中,可将第一验证信息、上层应用对所述可信内存申请接口的调用参数进行封装,生成可信内存申请请求。
本实施例,通过可信内存服务驱动提取上层应用的特征信息,形成第一验证信息,并根据第一验证信息及上层应用对所述可信内存申请接口的调用,生成可信内存申请请求并向安全处理器发送,这样,便于在对可信内存进行相应的内存操作之前,安全处理器可以使用第一验证信息进行验证,这样,便于提高对可信内存进行相应的内存操作的安全性。
本申请又一实施例,与上述实施例基本相同,不同之处在于,本实施例的向所述安全处理器发送对所述可信内存的操作请求(s203),包括:
s203a、运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存操作接口;其中,所述可信内存服务驱动运行在中央处理器上。
可信内存服务驱动的可信内存操作接口包括读/写接口、比较接口、可信内存释放接口等等。
s203b、可信内存服务驱动,根据上层应用对可信内存操作接口的调用,生成可信内存操作请求,并将可信内存操作请求向安全处理器发送。
本实施例,运行在中央处理器上的上层应用,调用运行在中央处理器上的可信内存服务驱动的可信内存操作接口,可信内存服务驱动,再根据上层应用对可信内存操作接口的调用,生成可信内存操作请求,并将可信内存操作请求向安全处理器发送,由于可信内存服务驱动处于系统高特权模式,而低特权模式的程序无法修改它,这样,通过可信内存服务驱动提供的可信内存操作接口,能够提高可信内存操作请求的安全性,避免了处于低特权模式下的恶意程序篡改可信内存操作请求而导致的可信内存操作请求安全性较低的问题,在可信内存服务驱动发送的可信内存操作请求较为安全的基础上,安全处理器上运行的可信内存服务接收的可信内存操作请求也较为安全,进一步地,提高了根据操作请求进行相应的可信内存操作的安全性。
为了提高对可信内存操作的安全性,在一些例子中,在向安全处理器发送可信内存申请请求(s201)之后,所述方法还包括:
s204、接收所述安全处理器发送的第二验证信息。
第二验证信息可为安全处理器在接收到可信内存申请请求之后,随机生成的验证信息(或称为随机授权码),安全处理器对该第二验证信息保存,并且向可信内存申请请求的申请者返回第二验证信息,以使在对可信内存进行相应的内存操作之前,安全处理器使用第二验证信息对可信内存进行相应的内存操作的安全性。
相应地,可信内存服务驱动,根据所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求,包括:
可信内存服务驱动,根据第二验证信息,以及所述上层应用对可信内存操作接口的调用,生成可信内存操作请求。
将所述第二验证信息以及所述上层应用对所述可信内存操作接口的调用参数、内存地址标识信息、可信内存操作信息进行封装,作为可信内存操作请求向安全处理器发送。
作为一可替代的实施方式,在运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存操作接口(s203a)之后,所述方法还包括:获取上层应用的第一验证信息。
第一验证信息可为上层应用的身份信息,如进程号、进程名、进程组号等等。
可在对可信内存进行相应的内存操作之前,安全处理器使用第一验证信息进行验证,这样,便于提高对可信内存进行相应的内存操作的安全性。
相应地,可信内存服务驱动,根据所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求,包括:
所述可信内存服务驱动,根据所述第一验证信息,以及所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求。
将所述第一验证信息以及所述上层应用对所述可信内存操作接口的调用参数、内存地址标识信息、可信内存操作信息进行封装,作为可信内存操作请求向安全处理器发送。
为了便于进一步提高安全性,在向安全处理器发送可信内存申请请求(s201)之后,所述方法还包括:接收安全处理器发送的第二验证信息;
在运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存操作接口之后,所述方法还包括:获取所述上层应用的第一验证信息;
可信内存服务驱动,根据所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求(s203a),包括:
所述可信内存服务驱动,根据第一验证信息和第二验证信息以及上层应用对可信内存操作接口的调用,生成可信内存操作请求。
可在对可信内存进行相应的内存操作之前,安全处理器使用第一验证信息和第二验证信息进行验证,这样,便于进一步提高对可信内存进行相应的内存操作的安全性。
在一些例子中,在所述向安全处理器发送对可信内存的操作请求,以使安全处理器根据所述操作请求,对可信内存进行相应的内存操作之后,还包括:
接收新生成的第二验证信息;
用所述新的第二验证信息更新保存的第二验证信息。
下面以一具体实施例,对本申请的方案进行详细说明。
图5为本实施例使用的软件架构示意图,图6为本实施例的申请可信内存的流程示意图,图7为本实施例的操作可信内存的流程示意图。
安全处理器满足以下要求:运行环境与cpu隔离,具有自己专用的内存资源,cpu无法直接访问;与cpu之间具有特定的通信接口,cpu通过该接口可以给安全处理器发送命令,安全处理器通过该接口返回命令处理的结果。
安全处理器上运行可信内存服务tms,cpu上运行可信内存服务驱动模块tmsd,上层软件通过tmsd提供的统一接口访问安全处理器上tms,实现程序敏感数据的存储及访问。
上层应用使用可信内存用于数据读写时需首先调用tmsd的可信内存申请接口进行申请,申请成功后才能调用读写接口进行敏感数据的读写,调用比较接口进行内部敏感数据之间或外部输入数据与内部敏感数据之间的比较,可信内存使用完毕后调用可信内存释放接口进行释放,以免造成可信内存的泄露。与普通内存使用不同之处是申请的可信内存绑定了特定的授权信息,访问时进行随机授权码加上下文信息双重验证,保证可信内存不被非法访问。
参见图6,本实施例的上层应用申请可信内存的方法,包括:
步骤601、运行在中央处理器中的上层应用调用可信内存申请接口。
步骤602、运行在中央处理器中的tmsd提取上层应用上下文信息。
tmsd根据调用参数设置提取上层软件相应的上下文信息,如上层软件进程号,进程名等
步骤603、tmsd封装内存申请请求并发送安全处理器。
将上下文信息或者上下文信息经过hash处理后的特征值,和相关调用参数一起发送给安全处理器。
步骤604、安全处理器中运行的tms根据请求分配内存。
安全处理器收到请求后在内部申请所需大小的内存。
步骤605、tms生成随机授权码。
安全处理器根据请求生成一个随机授权码。
步骤606、tms记录相关信息并返回分配的内存句柄及随机授权码。
安全处理器记录上下文信息或上下文信息特征值,并将随机授权码与可信内存的句柄信息一起返回给tmsd。
步骤607、tmsd返回内存句柄及随机授权码。
tmsd将内存句柄及随机授权码返回给上层应用。
步骤608、上层应用保存内存句柄及随机授权码。
步骤609、可信内存申请完成。
参见图7,本实施例的上层应用操作可信内存的方法,包括:
步骤701、上层应用指定可信内存句柄及随机授权码,调用可信内存操作接口。
操作接口包括读、写、比较、释放接口。
步骤702、tmsd提取上层应用上下文信息。
上层应用读、写、比较或释放可信内存时,tmsd以和申请内存时一样的方式重新提取上层应用的上下文信息并处理。
步骤703、tmsd将操作信息、随机授权码、上下文信息一起发送安全处理器。
步骤704、安全处理器上运行的tms验证上下文信息。
安全处理器验证上下文信息。
步骤705、tms验证随机授权码。
安全处理器验证随机授权码。
步骤706、tms执行请求的操作并返回。
上下文信息和随机授权码验证通过后执行请求的操作。
通过随机授权码加上下文信息双重验证使得恶意程序即使窃取了随机授权码依然难以获取存储在安全处理器内部的敏感数据,避免使用tpm对敏感数据保存时授权码被窃取而导致的tpm内数据可能被非法访问的问题。
步骤707、tmsd返回上层应用。
tmsd将tms返回的操作结果返回给上层应用。
步骤708、可信内存操作完成。
图8为本申请一实施例提供的提供可信内存的装置的结构示意图,如图8所示,本实施例的提供可信内存的装置,应用于安全处理器中,可以包括:第一接收模块11,用于接收可信内存申请请求;可信内存分配模块12,用于根据所述可信内存申请请求,分配可信内存,并返回分配的可信内存的可信内存标识信息;所述可信内存与中央处理器对应的内存的运行环境相隔离;第二接收模块13,用于接收对所述可信内存的操作请求,并根据所述操作请求,对所述可信内存进行相应的内存操作;所述操作请求中包括所述可信内存标识信息。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例的装置,安全处理器接收并根据可信内存申请请求,分配可信内存,并返回分配的可信内存的可信内存标识信息,其中,可信内存与中央处理器对应的内存的运行环境相隔离,安全处理器接收并根据对可信内存的操作请求,对可信内存进行相应的内存操作,由于可信内存与中央处理器对应的内存的运行环境相隔离,中央处理器无法直接访问可信内存,并且由安全处理器对可信内存进行管理,而安全处理器的安全性较高,这样,由安全处理器管理、与中央处理器对应的内存的运行环境相隔离的可信内存,能够为程序运行时的敏感数据提供较高的安全保证,从而,提高程序运行时的敏感数据的安全性,并且本实施例中的为敏感数据提高保护的技术方案中,对于用户申请可信内存、操作可信内存,与普通的内存的申请、操作相似,便于用户使用,避免了现有技术中采用tpm为敏感数据提供保护时,由于为满足可信计算的各方面要求,tpm功能结构复杂,命令接口复杂,即使tpm规范对tpm的功能及命令进行了详细的描述并提供上层tss软件栈,用户理解并使用tpm仍然具有较大的难度,使用不方便的问题。
作为一可选实施方式,所述第一接收模块,包括:接收子模块,用于所述安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的可信内存申请请求。
作为一可选实施方式,所述可信内存申请请求中包括第一验证信息;所述装置还包括:保存模块,用于在第一接收模块接收可信内存申请请求之后,保存所述第一验证信息;和/或,所述装置还包括:生成模块,用于在第一接收模块接收可信内存申请请求之后,生成第二验证信息,保存并返回所述第二验证信息。
作为一可选实施方式,所述第二接收模块,包括:接收子模块,用于所述安全处理器上运行的可信内存服务,接收来自中央处理器上运行的可信内存服务驱动发送的对所述可信内存的操作请求。
作为一可选实施方式,所述操作请求中包括第一验证信息和/或第二验证信息;其中,所述第二接收模块,包括:接收子模块,用于对所述操作请求中的第一验证信息和/或第二验证信息进行验证,验证通过后根据所述操作请求,对所述可信内存进行相应的内存操作。
上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本申请一实施例提供的获取可信内存的装置的结构示意图,如图9所示,本实施例的获取可信内存的装置,可以包括:第一发送模块21,用于向安全处理器发送可信内存申请请求,以使安全处理器分配可信内存;所述可信内存与中央处理器对应的内存的运行环境相隔离;第一接收模块22,用于接收所述安全处理器返回分配的可信内存的可信内存标识信息;第二发送模块23,用于向所述安全处理器发送对所述可信内存的操作请求,以使所述安全处理器根据所述操作请求,对所述可信内存进行相应的内存操作;所述操作请求中包括所述可信内存标识信息。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例的装置,通过向安全处理器发送可信内存申请请求,以使安全处理器分配可信内存,可信内存与中央处理器对应的内存的运行环境相隔离,接收安全处理器返回分配的可信内存的可信内存标识信息,向安全处理器发送对可信内存的操作请求,以使安全处理器根据所述操作请求,对可信内存进行相应的内存操作,操作请求中包括可信内存标识信息,由于可信内存与中央处理器对应的内存的运行环境相隔离,中央处理器无法直接访问可信内存,并且由安全处理器对可信内存进行管理,而安全处理器的安全性较高,这样,由安全处理器管理、与中央处理器对应的内存的运行环境相隔离的可信内存,能够为程序运行时的敏感数据提供较高的安全保证,从而,提高程序运行时的敏感数据的安全性,并且本实施例中的为敏感数据提高保护的技术方案中,对于用户申请可信内存、操作可信内存,与普通的内存的申请、操作相似,便于用户使用,避免了现有技术中采用tpm为敏感数据提供保护时,由于为满足可信计算的各方面要求,tpm功能结构复杂,命令接口复杂,即使tpm规范对tpm的功能及命令进行了详细的描述并提供上层tss软件栈,用户理解并使用tpm仍然具有较大的难度,使用不方便的问题。
作为一可选实施方式,所述第一发送模块,包括:第一调用子模块,用于运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存申请接口;其中,所述可信内存服务驱动运行在所述中央处理器上;第一生成子模块,用于所述可信内存服务驱动,根据所述上层应用对所述可信内存申请接口的调用,生成可信内存申请请求,并将所述可信内存申请请求向安全处理器发送。
作为一可选实施方式,所述装置还包括:提取子模块,用于所述可信内存服务驱动提取所述上层应用的特征信息,形成第一验证信息;其中,所述生成子模块,包括:生成子单元,用于所述可信内存服务驱动,根据所述第一验证信息及所述上层应用对所述可信内存申请接口的调用,生成可信内存申请请求。
作为一可选实施方式,所述第二发送模块,包括:第二调用子模块,用于运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存操作接口;其中,所述可信内存服务驱动运行在所述中央处理器上;第二生成子模块,用于所述可信内存服务驱动,根据所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求,并将所述可信内存操作请求向安全处理器发送。
作为一可选实施方式,所述装置还包括:第二接收模块,用于在第一发送模块向安全处理器发送可信内存申请请求之后,接收所述安全处理器发送的第二验证信息;和/或,所述装置还包括:获取子模块,用于在第二调用子模块运行在中央处理器上的上层应用,调用可信内存服务驱动的可信内存操作接口之后,获取所述上层应用的第一验证信息;其中,所述生成子模块,具体用于所述可信内存服务驱动,根据所述第一验证信息和/或所述第二验证信息,以及所述上层应用对所述可信内存操作接口的调用,生成可信内存操作请求。
上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请一实施例还提供一种处理器芯片,包括:中央处理器和安全处理器;其中,所述安全处理器,用于执行前述任一实施例提供的提供可信内存的方法;
所述中央处理器,用于执行前述任一实施例提供的获取可信内存的方法。
图10为本申请一实施例提供的电子设备的结构示意图,如图10所示,本申请的实施例提供的电子设备,可以包括:中央处理器51、第一内存52、安全处理器53、第二内存54(即安全处理器内存),其中,第一内存52与中央处理器51相对应,第二内存54为可信内存,与安全处理器53相对应,第一内存52和第二内存54的运行环境相隔离;安全处理器53,用于执行前述任一实施例所述的提供可信内存的方法;中央处理器51,用于执行前述任一实施例所述的获取可信内存的方法。
中央处理器51和安全处理器53对上述步骤的具体执行过程,可以参见前述实施例的描述,在此不再赘述。
上述电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
(3)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(4)其他具有数据交互功能的电子设备。
相应的,本申请的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种翻译方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本申请时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。