数据存储方法和电子设备与流程

文档序号:37281627发布日期:2024-03-12 21:21阅读:8来源:国知局
数据存储方法和电子设备与流程

本技术涉及数据处理领域,并且更具体地,涉及一种数据存储方法和电子设备。


背景技术:

1、重放保护内存块(replay protected memory block,rpmb)通常是指存储器中一个单独的物理分区,常常用来存储密钥等敏感数据。其中,存储器可以包括通用文件存储器(universal flash storage,ufs),和嵌入式多媒体存储卡(embedded multi media card,emmc)。

2、随着终端技术的不断进步,多可信执行环境(trustedexecution environment,tee)架构成为了一种常见的架构。通常,rpmb需要使用安全密钥(secure key)对tee发送的待存储数据进行认证,并在认证通过的情况下存储待存储数据。secure key只能存储在一个tee中,在终端设备采用多tee框架的情况下,未存储secure key的tee需要通过调用存储有secure key的tee中的secure key,对数据进行认证计算得到第一认证数据,以使rpmb根据第一认证数据确定是否存储待存储数据。然而,未存储secure key的tee在调用securekey的过程中,可能出现安全密钥泄露的情况,存在安全隐患。

3、基于此,如何提高多tee框架中各tee向rpmb写入数据的安全性成为了一个亟待解决的问题。


技术实现思路

1、本技术提供了一种数据存储方法,能够提高多tee框架中各tee向rpmb写入数据的安全性。

2、第一方面,提供了一种数据存储方法,该方法应用于电子设备中,电子设备包括至少两个可信执行环境tee和重放保护内存块rpmb,其中,rpmb中包括至少两个存储区域,至少两个存储区域中每个存储区域中存储的安全密钥不同,至少两个tee中的一个tee与至少两个存储区域中的一个存储区域一一对应,至少两个tee包括第一tee,第一tee中运行有第一可信应用程序ta,至少两个存储区域包括第一存储区域,第一tee与第一存储区域对应,第一tee与第一存储区域中存储第一安全密钥,第一安全密钥用于第一存储区域和第一ta对待存储数据进行认证计算,待存储数据是指向第一存储区域写入的数据,该方法包括:

3、第一ta向第一存储区域发送第一数据包,第一数据包中包括待存储数据和第一认证数据,第一认证数据为第一ta采用第一安全密钥对待存储数据进行认证计算后得到的数据;

4、第一存储区域基于第一安全密钥存储待存储数据。

5、应理解,存储设备支持multiple rpmb region的功能,不同的rpmb分区可以写入不同的安全密钥。对应的,不同的tee之中也可以存储不同的安全密钥。

6、本技术的实施例中,电子设备包括至少两个可信执行环境tee和重放保护内存块rpmb,rpmb中包括至少两个存储区域,至少两个存储区域中每个存储区域中存储的安全密钥不同,至少两个tee中的一个tee与至少两个存储区域中的一个存储区域一一对应,至少两个tee包括第一tee,第一tee中运行有第一可信应用程序ta,至少两个存储区域包括第一存储区域,第一tee与第一存储区域对应,其中,第一tee中存储第一安全密钥,第一存储区域中存着与第一tee中相同的第一安全密钥,第一ta采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,第一存储区域基于相同的第一安全密钥存储待存储数据。这样使得第一tee在向与之对应的第一存储区域存储待存储数据时,采用的第一安全密钥是存储在第一tee的安全密钥,无需从其他tee中调用安全密钥,进而避免了从其他tee中调用安全密钥而可能出现的安全密钥泄露的情况,提高了多tee框架中向rpmb写入数据的安全性。同时,采用本技术实施例提供的数据存储方法,各个tee在向rpmb写入数据的过程中,无需相互调用安全密钥,减少了由于调用安全密钥导致的数据交互,简化了向rpmb写入数据的流程。进一步地,由于至少两个存储区域中每个存储区域中存储的安全密钥不同,因此即使第一tee再向rpmb分区写入数据时出现了误将数据发送给其他rpmb分区(即不是第一tee对应的rpmb分区),由于其他rpmb分区中存储的安全密钥与第一tee中存储的安全密钥不同,因此其他rpmb分区通过其上存储的安全密钥对写入数据进行校验会导致校验不通过,进而使得其他rpmb分区无法存储第一tee发送的数据,提高了向rpmb写入数据的针对性,并进一步地提高了rpmb的数据的安全性。

7、结合第一方面,在第一方面的某些实现方式中,电子设备还包括内核kernel,kernel包括hypervisor模块,第一ta向第一存储区域发送第一数据包,包括:

8、第一ta向hypervisor模块发送第一数据包;

9、hypervisor模块向第一存储区域发送第一数据包。

10、应理解,hypervisor模块具有访问电子设备器上包括磁盘和内存在内的所有物理设备的功能。服务器启动后,hypervisor模块会加载所有虚拟机客户端的操作系统(包括tee-0、tee-1和存储设备),为虚拟机分配内存、磁盘和网络。这样使得hypervisor模块可以为第一tee和存储设备直接分配数据接口,使得tee-0和存储设备之间、tee-1和存储设备之间可以传输数据。

11、结合第一方面,在第一方面的某些实现方式中,第一数据包中包括第一参数,第一参数用于指示第一存储区域;hypervisor模块向第一存储区域发送第一数据包,包括:

12、hypervisor模块基于第一参数确定第一存储区域;

13、hypervisor模块向第一存储区域发送第一数据包。

14、其中,第一参数可以是指security protocol specific参数,security protocolspecific参数用于指示第一数据包发送到的rpmb分区的标识。

15、本技术的实施例中,电子设备包括至少两个可信执行环境tee和重放保护内存块rpmb,至少两个tee中的一个tee与rpmb中的一个存储区域一一对应,至少两个tee包括第一tee,第一tee中运行有第一可信应用程序ta,rpmb包括第一存储区域,第一tee与第一存储区域对应,其中,第一tee中存储第一安全密钥,第一存储区域中存着与第一tee中相同的第一安全密钥,第一ta采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据、第一参数和第一认证数据得到的第一数据包发送给hypervisor模块,hypervisor模块基于第一参数确定第一数据包的接收对象是第一存储区域,然后向第一存储区域发送第一数据包,第一存储区域基于相同的第一安全密钥存储待存储数据。这样使得hypervisor模块能够准确地将第一数据包发送给第一存储对象,在采用独立的安全密钥对写入第一存储区域的数据进行认证的基础上,进一步地提高了向第一存储区域写入数据的准确性。

16、结合第一方面,在第一方面的某些实现方式中,kernel还包括atf模块,第一ta向hypervisor模块发送第一数据包,包括:

17、第一ta向atf模块发送第一数据包;

18、atf模块向hypervisor模块发送第一数据包。

19、本技术的实施例中,电子设备包括至少两个可信执行环境tee和重放保护内存块rpmb,至少两个tee中的一个tee与rpmb中的一个存储区域一一对应,至少两个tee包括第一tee,第一tee中运行有第一可信应用程序ta,rpmb包括第一存储区域,第一tee与第一存储区域对应,其中,第一tee中存储第一安全密钥,第一存储区域中存着与第一tee中相同的第一安全密钥,第一ta采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,在向第一存储区域发送给第一数据包的过程,可以通过atf模块向第一存储区域发送,通常,通过atf模块向rpmb发送数据是预先设置的进程,因此无需用户设置如何向rpmb发送数据,提高了向第一tee向第一存储区域写入数据的便捷性。

20、结合第一方面,在第一方面的某些实现方式中,电子设备还包括富执行环境ree,ree中运行第一tee rpmb驱动模块,hypervisor模块向第一存储区域发送第一数据包,包括:

21、hypervisor模块向第一tee rpmb驱动模块发送第一数据包;

22、第一tee rpmb驱动模块向第一存储区域发送第一数据包。

23、应理解,修改kernel中的进程需要获取相应的权限。但是,在一种可能的情况下,受到芯片厂家的限制,无法获取修改kernel中的进程的权限。因此,采用本技术实施例所提供的数据存储方法,能够在第一tee向第一存储区域发送第一数据包的过程中,无需修改kernel中的进程。

24、应理解,修改kernel中的进程需要获取相应的权限。但是,在一种可能的情况下,受到芯片厂家的限制,无法获取修改kernel中的进程的权限。因此,采用本技术实施例所提供的数据存储方法,能够在第一tee向第一存储区域发送第一数据包的过程中,无需修改kernel中的进程。

25、本技术的实施例中所提供的数据存储方法,应用于电子设备中,该电子设备包括通过至少两个tee和rpmb,rpmb包括至少两个存储区域,至少两个tee中的一个tee与rpmb中的一个存储区域一一对应,至少两个tee包括第一tee,第一tee中运行有第一ta,至少两个存储区域包括第一存储区域,第一tee和第一存储区域对应,其中,第一tee中存储第一安全密钥,第一存储区域中存着与第一tee中相同的第一安全密钥,第一ta采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包,在向第一存储区域发送第一数据包的过程中,是利用的运行在ree中第一tee rpmb驱动模块发送的。由于第一tee rpmb驱动模块运行在ree中,而不是在kernel中,这样使得第一tee向第一存储区域发送第一数据包的过程中,无需修改kernel中的进程即可,也即是无需获取修改kernel中进程的权限即可,提高了第一tee向第一存储区域发送第一数据包的便捷性。

26、结合第一方面,在第一方面的某些实现方式中,kernel还包括存储设备驱动模块,第一tee rpmb驱动模块向第一存储区域发送第一数据包,包括:

27、第一tee rpmb驱动模块向存储设备驱动模块发送第一数据包;

28、存储设备驱动模块向第一存储区域发送第一数据包。

29、示例性的,存储设备驱动模块是指emmc驱动模块。

30、示例性的,存储设备驱动模块是指ufs驱动模块。

31、结合第一方面,在第一方面的某些实现方式中,kernel中包括第一tee tz驱动模块,hypervisor模块向第一tee rpmb驱动模块发送第一数据包,包括:

32、hypervisor模块向第一tee tz驱动模块发送第一数据包;

33、第一tee tz驱动模块向第一tee rpmb驱动模块发送第一数据包。

34、结合第一方面,在第一方面的某些实现方式中,第一存储区域基于第一安全密钥存储待存储数据,包括:

35、第一存储区域采用第一安全密钥对第一数据包中的待存储数据进行认证计算,得到第二认证数据;

36、在第一认证数据和第二认证数据匹配的情况下,第一存储区域存储待存储数据。

37、应理解,第一认证数据是采用第一安全密钥对待存储数据进行认证计算得到的,第二认证数据也是采用相同的第一安全密钥对待存储数据进行认证计算得到的。也即是说,在第一安全密钥相同、待存储数据相同,同时认证计算的计算方式相同的情况下,第一认证数据和第二认证数据是分别采用相同的安全密钥对相同的数据进行了相同的计算得到的,第一认证数据和第二认证数据也相同。

38、应理解,得到第一认证数据和第二认证数据的过程中,需要分别对待存储数据进行认证计算,考虑到认证计算中出现的误差,则可以在第一认证数据和第二认证数据相同的部分超过预设阈值时,认为第一认证数据和第二认证数据匹配。在确定第一认证数据和第二认证数据匹配的情况下,第一存储区域可以将待存储数据存储。

39、本技术的实施例中提供的数据存储方法,电子设备包括至少两个可信执行环境tee和重放保护内存块rpmb,至少两个tee中的一个tee与rpmb中的一个存储区域一一对应,至少两个tee包括第一tee,第一tee中运行有第一可信应用程序ta,rpmb包括第一存储区域,第一tee与第一存储区域对应,其中,第一tee中存储第一安全密钥,第一存储区域中存着与第一tee中相同的第一安全密钥,第一ta采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,第一存储区域采用相同的第一安全密钥对第一数据包中的待存储数据进行相同的认证计算,得到第二认证数据,并在第一认证数据和第二认证数据匹配的情况下,存储待存储数据,基于相同的第一安全密钥存储待存储数据。这样使得存入第一存储区域的数据均是第一存储区域通过独立的安全密钥进行校验通过的数据,能够有效地避免未知来源的数据对存储在第一存储区域中的数据进行攻击,提高了存储在第一存储区域中数据的安全性。

40、结合第一方面,在第一方面的某些实现方式中,电子设备还包括富执行环境ree和第一器件,ree中运行第一客户端应用程序ca,方法还包括:

41、接收第一操作,第一操作用于指示获取待存储数据;

42、响应于第一操作,第一ca向第一ta发送第一请求,第一请求用于指示第一ta获取待存储数据;

43、响应于第一请求,第一ta指示第一器件采集第一数据;

44、第一ta基于第一数据得到待存储数据。

45、结合第一方面,在第一方面的某些实现方式中,第一器件包括指纹传感器。

46、结合第一方面,在第一方面的某些实现方式中,第一器件包括摄像头。

47、结合第一方面,在第一方面的某些实现方式中,第一ta包括人脸ta和第一rpmb服务模块,第一rpmb服务模块中存储第一安全密钥,待存储数据为人脸识别数据,第一ta向hypervisor模块发送第一数据包,包括:

48、人脸ta指示摄像头采集人脸识别数据;

49、人脸ta向第一rpmb服务模块发送人脸识别数据;

50、第一rpmb服务模块基于人脸识别数据生成第一数据包;

51、第一rpmb服务模块向hypervisor模块发送第一数据包。

52、结合第一方面,在第一方面的某些实现方式中,电子设备还包括富执行环境ree和摄像头,ree中运行人脸客户端应用程序ca,人脸ta指示摄像头采集人脸识别数据之前,该方法还包括:

53、人脸ca检测到人脸识别注册操作,人脸识别注册操作用于指示获取人脸识别数据;

54、响应于人脸识别注册操作,人脸ca向人脸ta发送人脸识别注册请求,人脸识别注册请求用于指示人脸ta获取人脸识别数据;

55、人脸ta指示摄像头采集人脸识别数据,包括:

56、响应于人脸识别注册请求,人脸ta指示摄像头采集人脸识别数据。

57、结合第一方面,在第一方面的某些实现方式中,第一ta包括指纹ta和第二rpmb服务模块,第二rpmb服务模块中存储第一安全密钥,待存储数据为指纹数据,第一ta向hypervisor模块发送第一数据包,包括:

58、指纹ta指示指纹传感器采集指纹数据;

59、指纹ta向第二rpmb服务模块发送指纹数据;

60、第二rpmb服务模块基于指纹数据生成第一数据包;

61、第二rpmb服务模块向hypervisor模块发送第一数据包。

62、示例性的,待存储数据可以是指纹传感器采集的数据。

63、结合第一方面,在第一方面的某些实现方式中,电子设备还包括富执行环境ree和指纹传感器,ree中运行指纹客户端应用程序ca,指纹ta指示指纹传感器采集指纹数据之前,该方法还包括:

64、指纹ca检测到指纹注册操作,指纹注册操作用于指示获取指纹数据;

65、响应于指纹注册操作,指纹ca向指纹ta发送指纹注册请求,指纹注册请求用于指示指纹ta获取指纹数据;

66、指纹ta指示指纹传感器采集指纹数据,包括:

67、响应于指纹注册请求,指纹ta指示指纹传感器采集指纹数据。

68、结合第一方面,在第一方面的某些实现方式中,kernel还包括atf模块,第二rpmb服务模块向hypervisor模块发送第一数据包,包括:

69、第二rpmb服务模块向atf模块发送第一数据包;

70、atf模块向hypervisor模块发送第一数据包。

71、本技术的实施例中,电子设备包括至少两个可信执行环境tee和重放保护内存块rpmb,其中,rpmb中包括至少两个存储区域,至少两个存储区域中每个存储区域中存储的安全密钥不同,至少两个tee中的一个tee与至少两个存储区域中的一个存储区域一一对应,至少两个tee包括第一tee,第一tee中运行有指纹ta和第二rpmb服务模块,rpmb包括第一存储区域,第一tee与第一存储区域对应,其中,第一tee中的第二rpmb服务模块中存储第一安全密钥,第一存储区域中存有与第二rpmb服务模块中相同的第一安全密钥,指纹ta采集指纹数据,并将指纹数据发送给第二rpmb服务模块,第二rpmb服务模块采用第一安全密钥对指纹数据进行认证计算,得到第一认证数据,然后将根据指纹数据和第一认证数据得到的第一数据包发送给第一存储区域,在向第一存储区域发送给第一数据包的过程中,可以通过atf模块向第一存储区域发送,通常,通过atf模块向rpmb发送数据是预先设置的进程,因此无需用户设置如何向rpmb发送数据,提高了向第一tee向第一存储区域写入数据的便捷性。

72、结合第一方面,在第一方面的某些实现方式中,上述认证计算包括哈希hmac计算。

73、在本技术的实施例中,第二ta采用安全密钥通过哈希运算对待存储数据进行认证计算,得到第一认证数据,由于哈希运算是目前被广泛应用的,且经受了多种形式攻击的加密算法,使得通过哈希运算得到的第一认证数据是更加可靠的加密数据,提高了得到第一认证数据的安全性。

74、第二方面,提供了一种数据存储装置,包括用于执行第一方面中任一种方法的单元。该装置可以是服务器,也可以是终端设备,还可以是终端设备内的芯片。该装置可以包括获取单元和处理单元。

75、当该装置是终端设备时,该处理单元可以是处理器,该输入单元可以是通信接口;该终端设备还可以包括存储器,该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该终端设备执行第一方面中的任一种方法。

76、当该装置是终端设备内的芯片时,该处理单元可以是芯片内部的处理单元,该输入单元可以是输出接口、管脚或电路等;该芯片还可以包括存储器,该存储器可以是该芯片内的存储器(例如,寄存器、缓存等),也可以是位于该芯片外部的存储器(例如,只读存储器、随机存取存储器等);该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该芯片执行第一方面中的任一种方法。

77、在一种可能的实现方式中,存储器用于存储计算机程序代码;处理器,处理器执行该存储器所存储的计算机程序代码,当该存储器存储的计算机程序代码被执行时,该处理器用于执行:第一ta向第一存储区域发送第一数据包,第一数据包中包括待存储数据和第一认证数据,第一认证数据为第一ta采用第一安全密钥对待存储数据进行认证计算后得到的数据;第一存储区域基于第一安全密钥存储待存储数据。

78、第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被数据存储装置运行时,使得该数据存储装置执行第一方面中的任一种数据存储方法。

79、第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被数据存储装置运行时,使得该数据存储装置执行第一方面中的任一种装置方法。

80、在本技术的实施例中,电子设备包括至少两个可信执行环境tee和重放保护内存块rpmb,rpmb中包括至少两个存储区域,至少两个存储区域中每个存储区域中存储的安全密钥不同,至少两个tee中的一个tee与至少两个存储区域中的一个存储区域一一对应,至少两个tee包括第一tee,第一tee中运行有第一可信应用程序ta,至少两个存储区域包括第一存储区域,第一tee与第一存储区域对应,其中,第一tee中存储第一安全密钥,第一存储区域中存着与第一tee中相同的第一安全密钥,第一ta采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,第一存储区域基于相同的第一安全密钥存储待存储数据。这样使得第一tee在向与之对应的第一存储区域存储待存储数据时,采用的第一安全密钥是存储在第一tee的安全密钥,无需从其他tee中调用安全密钥,进而避免了从其他tee中调用安全密钥而可能出现的安全密钥泄露的情况,提高了多tee框架中向rpmb写入数据的安全性。同时,采用本技术实施例提供的数据存储方法,各个tee在向rpmb写入数据的过程中,无需相互调用安全密钥,减少了由于调用安全密钥导致的数据交互,简化了向rpmb写入数据的流程。进一步地,由于至少两个存储区域中每个存储区域中存储的安全密钥不同,因此即使第一tee再向rpmb分区写入数据时出现了误将数据发送给其他rpmb分区(即不是第一tee对应的rpmb分区),由于其他rpmb分区中存储的安全密钥与第一tee中存储的安全密钥不同,因此其他rpmb分区通过其上存储的安全密钥对写入数据进行校验会导致校验不通过,进而使得其他rpmb分区无法存储第一tee发送的数据,提高了向rpmb写入数据的针对性,并进一步地提高了rpmb的数据的安全性。

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