CN114297093A - 一种数据的存储方法、装置、设备及存储介质 - Google Patents
一种数据的存储方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114297093A CN114297093A CN202111611362.0A CN202111611362A CN114297093A CN 114297093 A CN114297093 A CN 114297093A CN 202111611362 A CN202111611362 A CN 202111611362A CN 114297093 A CN114297093 A CN 114297093A
- Authority
- CN
- China
- Prior art keywords
- data
- storage medium
- header information
- information corresponding
- file
- 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
Abstract
本申请实施例提供的一种数据的存储方法、装置、设备及存储介质,所述方法包括:获取第一应用待存储的第一数据;从临时存储介质中获取所述第一数据对应的文件头信息;根据所述第一数据更新所述第一数据对应的文件头信息;将所述第一数据及更新后的所述第一数据对应的文件头信息存储至临时存储介质;在接收到第一应用发送的存储完成消息时,将临时存储介质中存储的第一数据及所述第一数据对应的文件头信息存储至非易失性存储介质中。这样一来,在第一数据的存储过程中,减少了从非易失性存储介质中获取第一数据对应的文件头信息的次数,减少了数据存储的耗时,提高了数据处理的效率。
Description
技术领域
本申请涉及数据安全技术领域,具体地涉及一种数据的存储方法、装置、设备及存储介质。
背景技术
随着电子设备的快速发展以及电子设备数据处理技术的不断提高,越来越多的数据处理业务在电子设备上执行,例如,存储文件、指纹支付、人脸支付等操作,这对电子设备的数据处理的时效性和安全性提出了挑战。
现有安全数据存储方法,一般是在非可信执行环境,如普通操作系统中进行加密处理。加解密程序和计算过程,以及明文数据和加解密密钥,均处于非可信环境中;数据存储方式一般使用操作系统提供的文件系统接口,把加密后的数据对象保存到非易失性存储介质,如通用闪存存储(UFS,Universal Flash Storage)。
现有安全数据存储系统主要包括四个功能实体:应用程序,加解密模块,普通操作系统,非易失性存储介质。通常的流程是:应用程序调用加解密模块对安全数据对象进行加密处理,调用普通操作系统文件系统接口,把加密后的数据对象存储到非易失性存储介质的分区上;当应用程序需要访问数据对象时,调用操作系统文件系统接口,从非易失性存储介质的分区上重新读取数据对象,并调用加解密模块进行解密处理。在非易失性存储介质上,数据对象以加密的形态被保存,因此保证了基本的数据安全。
现有技术中对安全数据的读写方法,一般是通过普通文件系统接口到非易失性存储介质,如UFS中进行读写。UFS提供针对重放保护存储块(RPMB,Replay Protect MemoryBlock)分区的授权读写保护机制,使用预置密钥对数据对象按RPMB数据包格式进行哈希计算获得其消息认证码(MAC),UFS进行重算和比对,以抵御非法读写。
在进行上述安全数据的存储时,例如,进行安全数据的写入操作时,应用程序中将文件中待存储的数据以数据块的形式发送至普通文件系统接口,普通文件系统接口接收到一个数据块后,会从UFS存储器中获取该数据块对应的文件头信息,并根据该数据块更新该数据块对应的文件头信息,再对该数据块进行安全认证,并在安全认证通过之后将该数据块存储至RPMB分区中。并且对更新后的该文件对应的文件头信息执行安全认证,并在安全认证通过之后将该文件对应的文件头信息存储至RPMB分区中。
若应用程序需要保存多个数据块,那么每获取一个数据块就需要从UFS存储器中重新获取该文件对应的文件头信息,并且在每次更新该文件对应的文件头信息后都需将其存储至RPMB分区,此时需要普通文件系统接口及UFS进行多次的安全认证过程,导致数据传输效率较低。
发明内容
有鉴于此,本申请提供一种数据的存储方法、装置、设备及存储介质,以利于解决现有技术中数据处理效率低的问题。
第一方面,本申请实施例提供了一种数据的存储方法,应用于可信执行环境TEE,所述方法包括:
获取第一应用待存储的第一数据;
从临时存储介质中获取所述第一数据对应的文件头信息;
根据所述第一数据更新所述第一数据对应的文件头信息;将所述第一数据及更新后的所述第一数据对应的文件头信息存储至临时存储介质;
在接收到第一应用发送的存储完成消息时,将临时存储介质中存储的第一数据及所述第一数据对应的文件头信息存储至非易失性存储介质中。
优选地,所述获取第一应用待存储的第一数据包括:
获取第一应用待存储的第一数据及文件标识信息;
所述从临时存储介质中获取所述第一数据对应的文件头信息包括:
根据所述文件标识信息,从临时存储介质中获取所述第一数据对应的文件头信息。
优选地,在所述获取第一应用待存储的第一数据之前,还包括:
接收所述第一应用发送的存储请求消息;其中,所述存储请求消息中携带有文件标识信息。
优选地,所述在所述从临时存储介质中获取所述第一数据对应的文件头信息之前还包括:
检测所述临时存储介质中是否存储有所述第一数据对应的文件头信息;
所述在所述从临时存储介质中获取所述第一数据对应的文件头信息包括:
若临时存储介质中存储有所述第一数据对应的文件头信息,则从所述临时存储介质中获取所述第一数据对应的文件头信息;
若临时存储介质中未存储有所述第一数据对应的文件头信息,则从所述非易失性存储介质中获取所述第一数据对应的文件头信息。
优选地,所述方法还包括:
在所述非易失性存储介质中未存储有所述第一数据对应的文件头信息时,根据所述第一数据创建所述第一数据的文件头信息。
优选地,所述方法还包括:
接收第二应用发送的数据获取请求消息;所述数据获取请求消息中携带有待获取的第二数据的标识信息;
根据所述第二数据的标识信息,从所述非易失性存储介质中获取所述第二数据对应的文件头信息,并存储至临时存储介质中;
根据所述第二数据对应的文件头信息及所述第二数据的标识信息,从所述非易失性存储介质中获取所述第二数据,并存储至临时存储介质中;
将所述第二数据发送至所述第二应用。
优选地,所述第一数据为加密数据。
优选地,所述非易失性存储介质为通用闪存存储UFS存储器。
第二方面,本申请实施例提供了一种数据的存储装置,包括:
获取单元,用于获取第一应用待存储的第一数据;
从临时存储介质中获取所述第一数据对应的文件头信息;
处理单元,用于根据所述第一数据更新所述第一数据对应的文件头信息;将所述第一数据及更新后的所述第一数据对应的文件头信息存储至临时存储介质;
在接收到第一应用发送的存储完成消息时,将临时存储介质中存储的第一数据及所述第一数据对应的文件头信息存储至非易失性存储介质中。
优选地,所述获取单元,具体用于获取第一应用待存储的第一数据及文件标识信息;
所述获取单元,还用于根据所述文件标识信息,从临时存储介质中获取所述第一数据对应的文件头信息。
优选地,所述数据的存储装置还包括:
接收单元,用于接收所述第一应用发送的存储请求消息;其中,所述存储请求消息中携带有文件标识信息。
优选地,所述获取单元,具体用于检测所述临时存储介质中是否存储有所述第一数据对应的文件头信息;
若临时存储介质中存储有所述第一数据对应的文件头信息,则从所述临时存储介质中获取所述第一数据对应的文件头信息;
若临时存储介质中未存储有所述第一数据对应的文件头信息,则从所述非易失性存储介质中获取所述第一数据对应的文件头信息。
优选地,所述获取单元,具体用于,在所述非易失性存储介质中未存储有所述第一数据对应的文件头信息时,根据所述第一数据创建所述第一应用的文件头信息。
优选地,所述接收单元,还用于接收第二应用发送的数据获取请求消息;所述数据获取请求消息中携带有待获取的第二数据的标识信息;
所述处理单元,还用于根据所述第二数据的标识信息,从所述非易失性存储介质中获取所述第二数据对应的文件头信息,并存储至临时存储介质中;
根据所述第二数据对应的文件头信息及所述第二数据的标识信息,从所述非易失性存储介质中获取所述第二数据,并存储至临时存储介质中;
将所述第二数据发送至所述第二应用。
第三方面,本申请实施例提供了一种电子设备,包括:
处理器和存储器,所述存储器存储有计算机程序,当所述计算机程序被执行时,使得所述电子设备执行上述第一方面任一项所述的方法。
第四方面,本申请实施例提供了一种存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述第一方面任意一项所述的方法。
采用本申请实施例所提供的方案,在将第一应用待存储的第一数据存储至非易失性存储介质时,可以先获取第一应用待存储的第一数据及第一数据对应的文件头信息,并根据第一数据更新第一数据对应的文件头信息,将第一数据及更新后的第一数据对应的文件头信息存储至临时存储介质。当接收到存储完成消息之后,再将临时存储介质中存储的第一数据及所述第一数据对应的文件头信息存储至非易失性存储介质中。即为,在本申请实施例中,接收到第一数据时,无需每接收一个第一数据从非易失性存储介质中获取第一数据对应的文件头信息,也无需每次根据接收的第一数据更新完第一数据对应的文件头信息后再次将该第一数据对应的文件头信息存储至非易失性存储介质中。而是,在每次根据接收到第一数据时可以直接从临时存储介质中获取第一数据对应的文件头信息,而无需从非易失性存储介质中获取,直至接收到存储完成消息,此时可以将临时存储介质中存储的第一数据及第一数据对应的文件头信息分别存储至非易失性存储介质中。这样一来,在存储过程中,只需在数据的存储装置接收到所有的待存储的第一数据之后,再将更新后的第一数据对应的文件头信息存储至非易失性存储介质,从而在第一数据的存储过程中,减少了从非易失性存储介质中获取第一数据对应的文件头信息的次数,降低了第一数据对应的文件头信息的读取时长,也减少了数据的存储耗时,提高了数据处理的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种数据的存储方法流程示意图;
图2为本申请实施例提供的另一种数据的存储方法流程示意图;
图3为本申请实施例提供的一种文件的文件头信息的示意图;
图4为本申请实施例提供的另一种文件的文件头信息的示意图;
图5为本申请实施例提供的另一种文件的文件头信息的示意图;
图6为本申请实施例提供的另一种数据的存储方法流程示意图;
图7为本申请实施例提供的一种数据的存储装置的结构示意图;
图8为本申请实施例提供的另一种数据的存储装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在对本申请实施例进行具体介绍之前,首先对本申请实施例应用或可能应用的术语进行解释。
富执行环境(Rich Execution Environment)REE:REE是所有移动设备通用的环境,运行通用的操作系统OS(Operating System),例如Android、IOS系统等
可信执行环境(Trusted Execution Environment)TEE:可信执行环境是CPU内的一个安全区域。它运行在一个独立的环境中且与操作系统并行运行。CPU确保TEE中代码和数据的机密性和完整性都得到保护。通过同时使用硬件和软件来保护数据和代码,TEE比操作系统更加安全。在TEE中运行的受信任应用程序可以访问设备主处理器和内存的全部功能,而硬件隔离保护这些组件不受主操作系统中运行的用户安装应用程序的影响。将系统的硬件和软件资源划分为两个执行环境——可信执行环境和普通执行环境。两个环境是安全隔离的,有独立的内部数据通路和计算所需存储空间。普通执行环境的应用程序无法访问TEE,即使在TEE内部,多个应用的运行也是相互独立的,不能无授权而互访。
通用闪存存储(UFS,Universal Flash Storage)是一种不断供电的非易失性存储器,它能在称为数据块(Block)的存储单位中进行删除和改编,允许在操作中被多次擦或写。
重放保护存储块(RPMB,Replay Protect Memory Block):RPMB分区是UFS存储器中的一个安全特性的分区。UFS在写入数据到RPMB分区时,会校验数据的合法性,同时在读数据时,也提供了签名机制,保证读取到的数据是RPMB内部数据,而不是攻击者伪造的数据,防止数据被篡改。
文件系统:文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。
哈希计算:将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希计算,而通过原始数据映射之后得到的二进制值串就是哈希值。通过从哈希值不能反向推导出原始数据。并且哈希计算对输入数据非常敏感,只要修改了原始数据,最后得到的哈希值就不同。哈希计算的执行效率比较高效,针对较长的文本,也能快速地计算出哈希值。
中央处理器(CPU,Central Processing Unit):CPU作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
相关技术中,在将数据写入非易失性存储介质时,应用程序每写入一个数据块,就需要从非易失性存储介质中获取一次文件头信息,并根据该数据块更新该数据块对应的文件头信息,再将该数据块及该数据块对应的文件头信息存储至非易失性存储介质中。若应用程序需要写入多个数据块,则需要从非易失性存储介质中重复获取多次数据块对应的文件头信息,耗时严重,降低了数据处理的效率。
针对上述问题,本申请实施例提供了一种数据的存储方法、装置、设备及存储介质。该数据的存储方法应用于可信执行环境TEE,所述方法包括:获取第一应用待存储的第一数据;从临时存储介质中获取第一数据对应的文件头信息;根据第一数据更新第一数据对应的文件头信息;将第一数据及更新后的第一数据对应的文件头信息存储至临时存储介质;在接收到第一应用发送的存储完成消息时,将临时存储介质中存储的第一数据及第一数据对应的文件头信息存储至非易失性存储介质中。
即为,在本申请实施例中,无需每接收一个第一数据就从非易失性存储介质中获取第一数据对应的文件头信息,也无需每次根据接收的第一数据更新完第一数据对应的文件头信息后再次将该第一数据对应的文件头信息存储至非易失性存储介质中。而是,在每次接收到第一数据时可以直接从临时存储介质中获取第一数据对应的文件头信息,直至接收到存储完成消息,此时可以将临时存储介质中存储的第一数据及第一数据对应的文件头信息分别存储至非易失性存储介质中。这样一来,在存储过程中,只需在数据的存储装置接收到所有的待存储的第一数据之后,再将更新后的第一数据对应的文件头信息存储至非易失性存储介质,从而在第一数据的存储过程中,减少了从非易失性存储介质中获取第一数据对应的文件头信息的次数,降低了第一数据对应的文件头信息的读取时长,减少了数据存储的耗时,提高了数据处理的效率。以下进行详细说明。
参见图1,为本申请实施例提供的一种数据存储流程示意图。在该实施例中以非易失性存储介质为UFS存储器,将数据存储至UFS存储器的重放保护存储块RPMB分区为例进行说明。可理解为,非易失性存储介质除了UFS存储器以外,还可以为EMMC等其它形式的非易失性存储介质。当然,也可以将数据存储至UFS存储器的其他区域,本申请实施例对此不作限制。
步骤S101、获取第一应用待存储的第一数据;
在本申请实施例中,当客户端的第一应用需要将第一数据存储至非易失性存储介质,例如UFS的RPMB分区中时,可以将其待存储的第一数据发送至数据的存储装置。此时,数据的存储装置可以获取第一应用待存储的第一数据。
需要说明的是,在本申请实施例中,数据的存储时以文件的形式存储的。因此,第一应用在向数据的存储装置发送待存储的第一数据时,需要先告知数据的存储装置将第一数据存储至哪个文件中,以便在第一应用读取第一数据时,可以从该文件中读取。即为,第一应用在向数据的存储装置发送第一数据时,需发送文件标识信息。此时,第一应用可以通过两种方式向数据的存储装置发送文件的标识信息。一种方式是直接在发送第一个待存储的第一数据时,将该文件标识信息与第一个待存储的第一数据一起发送至数据的存储装置。另一种方式是第一应用先向数据的存储装置发送存储请求消息,该存储请求消息中携带有文件标识信息。此种方式将文件标识信息与第一数据分开发送。具体如下:
获取第一应用待存储的第一数据包括:获取第一应用待存储的第一数据及文件标识信息。
其中,文件标识信息用于第一应用标识第一数据的存储位置,可以为文件名。也就是说,第一应用需要将第一数据存储至某个文件中,文件标识信息可以为该文件的文件名。数据的存储装置在获取第一应用待存储的第一数据时,可以同时获取文件标识信息。
或者,在获取第一应用待存储的第一数据之前,所述方法还包括:
接收第一应用发送的存储请求消息。
其中,存储请求消息中携带有文件标识信息。此时,数据的存储装置可以在接收到存储请求消息后,解析存储请求消息获取文件标识信息。数据的存储装置在接收到存储请求消息后,可以获知第一应用需要存储数据,从而可以根据获取的文件标识信息获取第一应用对应的文件头信息。
作为一种可能的实施例,上述第一数据为加密数据。即为,第一应用在将第一数据发送至数据的存储装置之前,可以先将第一数据进行加密处理,增加数据的安全性。
步骤S102、从临时存储介质中获取第一数据对应的文件头信息。
其中,第一数据对应的文件头信息用于指示第一数据所在文件的相关信息,至少包含文件名,文件大小,文件中包含的数据块的位置信息;第一数据是第一应用的待存储数据。
需要说明的是,在存储器中数据是文件的形式存储的。在文件系统中,通过文件头信息记录存储的各个文件数据的相关信息,例如,其内包含的文件的文件名,文件大小,每个文件中包含的数据块的个数及位置信息等。因此,在进行数据存储前,需要先获取文件头信息。
在本申请实施例中,由于临时存储介质中可以存储预设时间段的数据,因此在数据的存储装置从RPMB分区读取数据时,也可以存储至该临时存储介质中。而数据的存储装置在RPMB分区读取数据时,也会同时读取该数据对应的文件头信息。因此,在临时存储介质中存储从RPMB分区读取的数据的同时也会存储该数据对应的文件头信息。由于存在在存储第一数据之前,先从RPMB分区中读取该第一数据,并发送至第一应用,由第一应用进行相应处理后,重新存储至RPMB分区的可能。数据的存储装置在存储第一应用待存储的第一数据之前,需要先获取第一数据对应的文件头信息,基于此,数据的存储装置可以从临时存储介质中获取第一数据对应的文件头信息。
进一步地,从临时存储介质中获取第一数据对应的文件头信息包括:
根据文件标识信息,从临时存储介质中获取第一数据对应的文件头信息。
其中,数据的存储装置可以根据文件标识信息,即文件名,从临时存储介质中获取第一数据对应的文件头信息。
需要说明的是,临时存储介质是数据的存储装置用于在预设时间段内存储数据的存储缓存区域,起到暂存数据的作用。预设时间段可以是预先设置的时间,例如可以是数据的存储装置开始运行至运行结束的时间。当然,还可以是其他时间,例如,60s,或是其他时间,本申请对此不作限制。
需要说明的是,临时存储介质可以是寄存区,也可以是缓存,当然也可以是其他可以暂时存储数据的临时存储介质,本申请对此不作限制。
作为一种可能的实施例,由于存在临时存储介质中未存储有第一数据对应的文件头信息的可能,因此,如图2所示,在从临时存储介质获取第一数据对应的文件头信息之前还包括:
步骤S201、检测临时存储介质中是否存储有第一数据对应的文件头信息。
在本申请实施例中,由于存在在存储第一数据之前,先从非易失性存储介质中读取该第一数据,并发送至第一应用,由第一应用进行相应处理后,重新存储至非易失性存储介质的可能。数据的存储装置在存储第一应用待存储的第一数据之前,需要先获取第一数据对应的文件头信息,基于此,数据的存储装置可以先检测临时存储介质中是否存储有第一数据对应的文件头信息。
需要说明的是,根据检测结果的不同,执行的步骤不同。若临时存储介质中存储有第一数据对应的文件头信息,则执行步骤S202;若临时存储介质中未存储有第一数据对应的文件头信息,则执行步骤S203。
步骤S202、若临时存储介质中存储有第一数据对应的文件头信息,则从临时存储介质中获取第一数据对应的文件头信息。
步骤S203、若临时存储介质中未存储有第一数据对应的文件头信息,则从非易失性存储介质中获取第一数据对应的文件头信息。
在本申请实施例中,非易失性存储介质可以为非安全型存储介质,也可以为安全性存储介质。当非易失性存储介质为非安全性存储介质时,可以根据文件头信息及第二数据的标识信息直接从非安全性存储介质中获取第一数据对应的文件头信息;当非易失性存储介质安全存储介质时,为确保获取的第一数据对应的文件头信息在传输过程中没有被篡改,此时可以对从安全存储介质中获取的第一数据对应的文件头信息进行安全认证,安全认证通过后才能确认获取的第一数据对应的文件头信息没有被篡改。例如,安全存储介质可以为UFS的RPMB分区,具体过程如下:
当检测到临时存储介质中未存储有第一数据对应的文件头信息时,说明数据的存储装置需要从RPMB分区中读取第一数据对应的文件头信息。此时数据的存储装置可以生成一个随机数并在生成读取第一数据对应的文件头信息的请求消息时,将该随机数添加至读取第一数据对应的文件头信息的请求消息中,再将读取第一数据对应的文件头信息的请求消息发送至UFS中。当数据的存储装置可以直接与UFS通信时,可以直接将读取第一数据对应的文件头信息的请求消息发送至UFS中。若数据的存储装置无法直接与UFS通信,需要通过富执行环境的文件系统与UFS进行通信,此时,数据的存储装置可以将生成的读取第一数据对应的文件头信息的请求消息发送给富执行环境REE的文件系统,由富执行环境的文件系统将该请求消息发送至UFS。下面以数据的存储装置无法直接与UFS通信,需要通过富执行环境的文件系统与UFS进行通信为例进行说明。UFS接收到读取第一数据对应的文件头信息的请求之后,可以解析读取第一应用对应的文件头的请求消息,并从该请求消息中解析出该随机数。UFS根据请求消息获知需读取RPMB分区中存储的第一数据对应的文件头信息,若RPMB分区中存储有第一数据对应的文件头信息,则读取出第一数据对应的文件头信息,并将读取出的第一数据对应的文件头信息及该随机数进行哈希计算,得到第三消息认证码,并将第三消息认证码、第一数据对应的文件头信息及该随机数打包至一个数据包中发送至富执行环境REE的文件系统;由富执行环境REE的文件系统将该数据包发送至数据的存储装置。数据的存储装置接收到该数据包后,解析数据包,获取到数据包中的第三消息认证码、第一数据对应的文件头信息及该随机数;数据的存储装置首先根据第一数据对应的文件头信息及数据的存储装置存储的该随机数通过哈希计算,得到第四消息认证码,将其计算得出的第四消息认证码与数据包中解析出的第三消息认证码进行比较,确定是否一致。若一致,再检测解析出的数据包中的该随机数与其存储的该随机数是否相同,若相同,则可以确定在数据包的传输过程中并未进行篡改且接收的第一数据对应的文件头信息是其所需数据。此时,数据的存储装置从RPMB分区中获取了第一数据对应的文件头信息。
若第四消息认证码与数据包中解析出的第三消息认证码不一致,则说明数据包在传输过程中被篡改,读取到的第一数据对应的文件头信息并不是RPMB分区中存储的第一数据对应的文件头信息。此时,数据的存储装置需要重新获取第一数据对应的文件头信息。或者,第四消息认证码与数据包中解析出的第三消息认证码一致,但是随机数不同时,则说明接收的数据包中获取的数据并不是其所需数据,此时将该数据包丢弃。
步骤S204、若非易失性存储介质中未存储有第一数据对应的文件头信息,则根据第一数据创建第一数据对应的文件头信息。
在本申请实施例中,当非易失性存储介质为UFS的RPMB分区时,若RPMB分区中未存储有第一数据对应的文件头信息,则可以生成获取失败消息并通过富执行环境REE的文件系统发送至数据的存储装置。数据的存储装置在接收到获取失败消息时,获知RPMB分区中未存储有第一数据对应的文件头信息。此时,数据的存储装置可以根据第一数据创建第一数据对应的文件头信息。
作为一种可能的实现方式,如图3所示,Block1、Block2、Block3及Block4用于存储文件的文件头信息,Block5用于存储文件具体的数据信息。其中,Block1是超级块,用于记录文件系统空闲块列表的位置、文件列表信息的位置;Block2用于存储文件列表信息,记录不同文件的文件信息的块号,即为记录不同文件的文件信息的位置;Block3用于存储文件信息,记录文件名、文件大小、文件数据块信息的位置等信息;Block4用于存储文件数据块信息,记录文件数据的偏移量与存储文件数据的数据块的位置间对应关系。其中,由于空闲块不一定是块号连续的两个数据块,且文件数据可能需要多个数据块来存储时,此时需要将文件数据划分至不同的数据块中进行存储。因此需要记录文件数据的哪部分数据被划分至哪个数据块进行存储了。此时,可以通过文件数据的偏移量来标示出数据在文件中的位置,通过数据块的块号来标示出数据块的位置。因此,需要通过Block4记录每个文件数据的偏移量与存储该偏移量对应的文件数据的数据块的位置间的对应关系。
在文件系统中,由于Block1记录文件系统空闲块列表的位置、文件列表信息的位置,Block2记录不同文件的文件信息的块号,因此Block1与Block2是不同文件共用的存储文件头信息的数据块。也就是说,在同一个文件系统中,每个文件的文件头信息中都包含Block1与Block2。
具体的,如图4所示,在RPMB分区中未存储有第一数据对应的文件头信息时,数据的存储装置可以根据第一数据创建第一数据对应的文件头信息,假设将第一数据对应的文件的文件名设置为第一文件。首先,数据的存储装置在创建第一数据对应的文件头信息时,先将超级块Block1及Block2加载至临时存储介质中。数据的存储装置可以根据Block1获知空闲块列表的位置,并根据空闲块列表的位置确定空闲块列表,其中空闲块列表中记录了空闲块的位置信息。因此,可以从空闲块列表中确定两个空闲数据块Block3、Block4,其中Block3用于存储第一文件的文件名、第一文件的文件大小、第一文件的文件数据块信息的位置信息,Block4用于存储文件数据块信息,记录文件数据的偏移量与存储文件数据的数据块的位置间对应关系。然后在Block2存储的文件列表信息中添加第一文件的文件信息的块号,即为在Block2中添加第一文件的文件信息存储的位置为Block3;在Block3中添加一条记录用于记录第一文件的名称、文件大小及文件数据块信息。此时,添加的记录内容是文件名为第一文件,由于此时还未存储数据,记录的文件的大小为0Kb,第一文件的文件数据块信息存储的位置为Block4。那么此时,第一数据对应的文件头信息创建完成,第一数据对应的文件头信息包括Block1、Block2、Block3、Block4,用来存储和第一文件相关的数据信息。
这样一来,根据上述方法,数据的存储装置可以获取第一数据对应的文件头信息。
步骤S103、根据第一数据更新第一数据对应的文件头信息;将第一数据及更新后的第一数据对应的文件头信息存储至临时存储介质。
具体的,数据的存储装置在获取第一数据对应的文件头信息后,在每次获取了第一数据之后,均需根据获取的该第一数据进行第一数据对应的文件头信息的更新,并在更新完该第一数据对应的文件头信息后,将更新后的第一数据对应的文件头信息及获取的第一数据存储至临时存储介质中。第一数据对应的文件头信息的更新过程具体如下:
数据的存储装置获取了第一数据及第一数据对应的文件头信息,首先数据的存储装置根据Block1中的空闲块列表的位置,可以获取空闲块列表,然后在空闲列表中确定出一个空闲块的位置用来存储第一数据。根据Block1中文件列表信息的位置确定Block2的位置,然后根据Block2中第一文件的文件信息的存储位置,确定Block3的位置;根据第一数据的大小,在Block3中更新文件大小;根据Block3中第一文件的文件数据块信息存储的位置,确定Block4的位置;并根据第一文件的第一数据的偏移量及上述确定的存储第一数据的空闲块的位置,在Block4中更新第一文件的第一数据的偏移量对应的数据块的位置为该空闲块的位置。
需要说明的是,数据的存储装置在每次获取第一数据时,该第一数据对应的偏移量信息,数据大小等信息从第一应用中同时获取。
作为一种可能的实现方式,可以在创建第一数据对应的文件头信息时,同时记录获取的第一数据的相关信息。即为,在获取第一数据时,可以通过Block1确定出第一数据的空闲块的位置。再通过Block1确定出用于记录第一数据偏移量及对应的存储位置的Block4,并在Block4中记录第一数据的偏移量对应的存储位置为该空闲块,再通过Block1确定出用于记录文件名、文件大小及文件数据块信息的位置信息的Block3,并在Block3中记录文件名为第一文件,文件大小为第一数据的大小,文件数据块信息存储位置为Block4;在Block2的文件列表信息中新增第一文件的文件信息的位置,即,第一文件的文件信息的存储位置为Block3。
示例性的,假设RPMB分区中已存储有第一文件,第一文件的文件大小为5Kb,第一应用待存储数据只有一个第一数据,该第一数据的大小为1Kb,需将该第一数据存储至第一文件。此时数据的存储装置接收到第一应用发送的存储请求消息之后,可以获知文件标识信息,即文件名为第一文件。获取第一应用待存储的该第一数据,同时可以获取该第一数据对应的偏移量A、数据大小为1Kb。并且,由于RPMB分区中存储有第一文件,因此也存储有第一文件的文件头信息,数据的存储装置可以根据步骤S201至步骤S203在RPMB分区中获取到第一数据对应的文件头信息,即第一文件的文件头信息。此时,需要根据第一应用待存储的第一数据更新第一数据对应的文件头信息。如图5所示,首先,数据的存储装置根据Block1确定出用来存储该第一数据的空闲块为Block5。然后根据Block1确定出存储文件列表信息的数据块Block2,根据Block2确定出存储第一文件的文件信息的数据块为Block3;在Block3中,根据该第一数据的大小为1Kb,更新文件大小为6Kb,并根据Block3确定出存储第一文件的文件数据块信息的数据块为Block4;在Block4中添加第一文件中该第一数据的偏移量A对应的数据块的位置为Block5的位置。这样一来,第一数据对应的文件头信息更新完成。
作为一种可能的实现方式,第一应用中待存储的第一数据可能只有一个,也可能有多个。当有多个时,每获取第一应用待存储的一个第一数据,都需要获取第一数据对应的文件头信息;根据一个第一数据,更新第一数据对应的文件头信息,并将一个第一数据及更新后的文件头信息存储至临时存储介质中,直至接收到存储完成消息。
具体的,在文件系统中,数据是以数据块的方式进行存储及传输的。因此,当第一应用中包含待存储的多个第一数据时,数据的存储装置在获取多个第一数据时,需要以数据块为单位进行获取的,即为,每次获取第一应用待存储的多个第一数据中的一个第一数据。也就是说,多个第一数据中的每一个第一数据的大小都为一个数据块的大小,存储每个第一数据时都需要占用一个空闲块,因此数据的存储装置每次只能获取第一应用待存储的多个第一数据中的一个第一数据。此时,具体过程如下。
在本申请实施例中,数据的存储装置获取第一应用待存储的第一个第一数据,并按照上述步骤S201至步骤S204获取第一数据对应的文件头信息,根据第一个第一数据更新第一数据对应的文件头信息,具体更新过程参考上述步骤,在此不再赘述。然后将第一个第一数据及更新后的第一数据对应的文件头信息存储至临时存储介质。数据的存储装置获取第一应用待存储的第二个第一数据,由于已经把根据第一个第一数据更新后第一数据对应的文件头信息存储至临时存储介质中,因此数据的同步装置此时可以直接在临时存储介质中获取第一数据对应的文件头信息。再根据第二个第一数据更新第一数据对应的文件头信息,并将第二个第一数据及更新后的第一数据对应的文件头信息存储至临时存储介质中。若此时还有多个第一应用待存储的第一数据,数据的存储装置可以按照上述步骤继续获取第一应用中待存储的一个第一数据,并在临时存储介质中获取第一数据对应的文件头信息,根据该第一数据更新第一数据对应的文件头信息,并将该第一数据及更新后的第一数据对应的文件头信息存储至临时存储介质中,直至接收到存储完成的消息,则说明此时第一应用中所有待存储的第一数据及更新后的第一数据对应的文件头信息均存储至临时存储介质中。
示例性的,假设RPMB分区中存储的第一文件的大小为5Kb,第一应用待存储的数据包括数据B、数据C,数据B与数据C的大小均为1Kb,需将数据B、数据C存储至第一文件。数据的存储装置接收到第一应用发送的存储请求消息时,可以获知文件标识信息,即文件名为第一文件。从第一应用中获取第一应用待存储的数据B,同时可以获取数据B对应的偏移量为D、数据大小为1Kb。然后,数据的存储装置此时可以根据上述步骤步骤S201至S203获取第一数据对应的文件头信息,根据Block1确定存储文件列表信息的数据块Block2,根据文件名为第一文件可以在Block2的文件列表中确定存储第一文件的文件信息的数据块Block3,根据Block3确定存储第一文件的文件数据块信息的数据块Block4,那么第一数据对应的文件头信息对应的数据块为Block1、Block2、Block3、Block4。此时,数据的同步装置根据Block1中的空闲块列表的位置可以确定空闲块列表,在空闲块列表中可以确定存储数据B的空闲块为Block5。此时,可以在Block3中更新文件的文件大小为6Kb;在Block4中可以更新第一文件的数据B的偏移量D对应的数据块的位置为Block5的位置。在第一数据对应的文件头信息更新完成后,数据的存储装置将数据B及更新后的第一数据对应的文件头信息存储至临时存储介质中。然后,数据的存储装置获取第一应用待存储的数据C,同时可以获取数据C对应的偏移量为F、数据大小为1Kb。此时,由于临时存储介质中存储有第一数据对应的文件头信息,因此,数据的存储装置可以直接在临时存储介质中获取第一数据对应的文件头信息。并根据Block1确定存储数据C的空闲块为Block6,此时,可以根据数据C更新第一数据对应的文件头信息。在Block3中更新文件的文件大小为7Kb;在Block4中可以添加第一文件的数据C的偏移量F对应的数据块的位置为Block6的位置。数据的存储装置将数据C及更新后的第一数据对应的文件头信息存储至临时存储介质中。此时,第一应用所有待存储的数据及更新后的文件头信息均存储至临时存储介质中。
步骤S104、在接收到第一应用发送的存储完成消息时,将临时存储介质中存储的第一数据及所述第一数据对应的文件头信息存储至非易失性存储介质中。
在本申请实施例中,当接收到第一数据存储完成的消息时,说明第一应用待存储的第一数据已全部传输至数据的存储装置,而数据的存储装置将接收的第一应用待存储的第一数据全部缓存至临时存储介质中。并且第一数据对应的文件头信息也已存储至临时存储介质中,并且已根据第一应用待存储的第一数据,将第一数据对应的文件头信息作出相应的更新。此时,数据的存储装置可以将临时存储介质中缓存的第一数据及第一数据对应的文件头信息写入至非易失性存储介质,例如写入至UFS的RPMB分区中。
需要说明的是,非易失性存储介质可能是安全存储介质也可能是非安全存储介质。在非易失性存储介质为非安全性存储介质时,数据的存储装置可以直接将临时存储介质中存储的第一数据及第一数据的文件头信息发送至该非易失性存储介质中进行存储。在非易失性存储介质是安全存储介质时,需要对待存储的数据进行安全认证后才能存储。例如,由于RPMB分区具有加密性质,UFS的RPMB分区在存储数据时,就需要通过UFS的安全认证才能将数据写入至RPMB分区。此时需要先将临时存储介质中存储的第一数据及第一数据对应的文件头信息通过UFS的安全认证之后,才能将第一数据及第一数据对应的文件头信息存储至UFS的RPMB分区中,保证了数据的安全性。
作为一种可能的实现方式,在接收到存储完成消息时,将临时存储介质中存储的第一数据及第一数据对应的文件头信息存储至存储器的RPMB分区中包括:
在接收到存储完成消息时,可以按照临时存储介质中存储第一数据的顺序,依次根据临时存储介质中存储的第一数据生成消息认证码后,将生成的消息认证码发送至UFS中,以便UFS对消息认证码进行安全认证并通过安全认证后,将该第一数据存储RPMB分区中。其中,针对临时存储介质中每个第一数据生成消息认证码的方式可以如下:获取存储器的写入次数,根据存储器的写入次数及该第一数据进行哈希计算得到第一消息认证码,将第一消息认证码、该第一数据及存储器的写入次数发送至存储器。
针对临时存储介质中存储的第一数据的文件头信息在存储至UFS的RPMB分区中时,也需进行安全认证,因此需要针对第一数据的文件头信息生成消息认证码。此时,可以重新获取存储器的写入次数,根据重新获取的存储器的写入次数及第一数据对应的文件头信息进行哈希计算得到第二消息认证码,将第二消息认证码、第一数据对应的文件头信息及重新获取的存储器的写入次数发送至存储器。
在本申请实施例中,数据的存储装置在接收到第一数据存储完成消息后,说明第一应用已将其待存储的数据全部发送至数据的存储装置,此时,数据的存储装置可以将其接收的第一应用的全部待存储的数据及第一数据对应的文件头信息存储至存储器的RPMB分区,例如UFS的RPMB分区中,即为将临时存储介质中存储的第一数据存储至UFS的RPMB分区中。由于将待存储的数据存储至UFS的RPMB分区时需执行的安全认证过程是在富执行环境REE中执行的,即,在通用的操作系统中执行。富执行环境REE是一种移动设备通用的环境,即普通执行环境,运行通用的操作系统,不具备安全性能。由于可信执行环境TEE是CPU内的一个安全区域,运行在独立的环境中,并且与富执行环境REE相隔离。因此一些重要的数据,例如指纹数据、人脸数据等需要加密的数据在存储时通常会在可信执行环境TEE中处理,然后再经富执行环境REE存储至存储器的安全分区中,例如UFS存储器的RPMB分区。本申请所提供的数据存储方法应用于可信执行环境TEE,数据的存储装置无法直接将第一数据及第一数据对应的文件头信息传输至存储器的重放保护存储块RPMB分区中。因此需要将临时存储介质中存储的第一数据及第一数据对应的文件头信息先传输至富执行环境REE的文件系统,再由富执行环境REE的文件系统将需要传输的数据发送至存储器中进行存储。
具体的,由于将数据存储至UFS的RPMB分区时需要存储器进行安全认证,因此,数据的存储装置在将待存储的第一数据及第一数据对应的文件头信息传输至富执行环境REE的文件系统之前,需先生成第一消息认证码。并且,存储器的安全认证过程是按照数据块进行的,也就是说在UFS的RPMB分区中每存储一个数据块就需要进行一次安全认证。在本申请实施例中,第一应用与数据的存储装置进行数据传输时,是将数据以数据块为单位进行传输的。因此,数据的存储装置获取的每个第一数据均是一个数据块数据。这样一来,数据的存储装置每次一个第一数据生成第一消息认证码,如果第一应用待存储的第一数据有多个,那么数据的存储装置就需要根据临时存储介质中的每一个第一数据均生成相应的第一消息认证码。同样的,第一数据对应的文件头信息可能只存储在一个数据块中,也可能存储在多个数据块中,假设第一应用的文件头信息只存储在一个数据块,那么数据的存储装置只根据第一数据对应的文件头信息需生成一次第一消息认证码,如果第一数据对应的文件头信息存储在多个数据块中,那么数据的存储装置需要根据第一数据对应的文件头信息对应的多个数据块中的每一个数据块生成相应的第一消息认证码。具体过程如下。
在本申请实施例中,数据的存储装置在接收到第一数据存储完成消息后,针对临时存储介质中的每个第一数据,先获取UFS的写入次数,然后根据UFS的写入次数及该第一数据进行哈希计算,得到第一消息认证码,将第一消息认证码、该第一数据及UFS的写入次数打包至一个数据包中发送至富执行环境REE的文件系统。富执行环境REE的文件系统接收到该数据包之后将该数据包存储至UFS中,UFS接收到该数据包后,解析数据包,获取到数据包中的第一消息认证码、该第一数据及UFS的写入次数;UFS首先根据该第一数据及UFS中存储的写入次数通过哈希计算,得到第五消息认证码,将其计算得出的第五消息认证码与数据包中解析出的第一消息认证码进行比较,确定是否一致。若一致,再检测解析出的数据包中的UFS的写入次数与UFS中存储的写入次数是否相同,若相同,则可以确定在数据包的传输过程中并未进行篡改,第一消息认证码通过,可以将该第一数据存储至PRMB分区中。若第五消息认证码与数据包中解析出的第一消息认证码不一致,则说明数据包在传输过程中被篡改,不能将该第一数据存储至RPMB分区中。若第五消息认证码与数据包中解析出的第一消息认证码一致,但是UFS的写入次数不同,可能存在重放攻击,此时将该数据包丢弃。
需要说明的是,由于存储器的安全认证过程是按照数据块进行的,因此对第一应用待存储的每一个第一数据都执行上述安全认证过程,对第一数据对应的文件头信息中包括的每一个数据块也都执行上述安全认证过程。每一次安全认证过程都要重新获取UFS的写入次数。并且,由于每一个数据块中包含的数据信息不同,那么生成的第一消息认证码也各不相同。
在本申请实施例中,将该第一数据存储至RPMB分区时,UFS可以根据Block1确定文件列表信息Block2,然后根据Block2中的文件列表信息确定存储第一应用的文件信息的数据块Block3,根据Block3可以确定存储第一应用的文件数据块信息的数据块Block4,从Block4中可以获知存储该第一数据对应的数据块的位置,然后将该第一数据存储至该数据块所在位置即可。
在现有技术中,第一应用包含多个待存储的第一数据时,每获取一个第一数据就需要在非易失性存储介质中重新获取第一数据对应的文件头信息,并且在每次根据一个第一数据更新第一数据对应的文件头信息后都需将其存储至非易失性存储介质,耗时严重。而在本申请实施例中,在每次根据接收的第一数据更新完第一数据对应的文件头信息后将获取的第一数据及更新后的第一数据对应的文件头信息先存储至临时存储介质中,这样可以在后续每次接收到第一数据时,可以直接从临时存储介质中获取第一数据对应的文件头信息,而无需从非易失性存储介质中获取,直至接收到存储完成消息,此时可以将临时存储介质中存储的第一数据及第一数据对应的文件头信息分别存储至非易失性存储介质中。这样一来,在存储过程中,只需在数据的存储装置接收到所有的待存储的第一数据之后,再将更新后的第一数据对应的文件头信息存储至非易失性存储介质,从而在第一数据的存储过程中,减少了从非易失性存储介质中获取第一数据对应的文件头信息的次数,当非易失性存储介质为安全存储介质时,可以避免对第一数据对应的文件头信息的重复多次加解密的过程,降低了第一数据对应的文件头信息的读取时长,进而可以在保证安全性的基础上减少了数据的存储耗时,提高了数据处理的效率。
如图6所示为本申请实施例提供的另一种数据的存储方法流程示意图。本方法实施例与上述实施例的主要区别为增加了从非易失性存储介质中获取第二数据信息的过程,参考图6所示,以非易失性存储介质为UFS的RPMB分区为例进行说明,所述方法包括:
步骤S601、接收第二应用发送的数据获取请求消息。
其中,数据获取请求消息中携带有待获取的第二数据的标识信息。
具体的,当第二应用需要获取数据时,可以向数据的存储装置发送数据获取请求消息。并且在数据获取请求消息中携带有第二数据的标识信息,例如所需获取数据的文件名信息。数据的存储装置在接收到数据获取请求消息后,可以解析数据获取请求消息,获取第二数据的标识信息。
步骤S602、从非易失性存储介质中获取第二数据对应的文件头信息,并存储至临时存储介质中。
在本申请实施例中,数据的存储装置在从非易失性存储介质中获取数据之前,需要先从非易失性存储介质中获取文件头信息,以便确定待获取数据所在的位置及大小等信息。获取文件头信息的过程可参考步骤S201至步骤S203,在此不再赘述。
步骤S603、根据第二数据对应的文件头信息及第二数据的标识信息,从非易失性存储介质中获取第二数据,并存储至临时存储介质中。
具体的,数据的存储装置根据文件头信息及第二数据的标识信息可以确定第二数据在非易失性存储介质中的存储位置。当非易失性存储介质为非安全性存储介质时,可以根据文件头信息及第二数据的标识信息直接从非安全性存储介质中获取第二数据;当非易失性存储介质安全存储介质时,为确保获取的第二数据在传输过程中没有被篡改,此时可以对从安全存储介质中获取的第二数据进行安全认证,并在安全认证通过后将第二数据存储至临时存储介质中。例如,安全存储介质可以为UFS的RPMB分区,具体过程如下:
此时,数据的存储装置可以生成一个随机数,并在生成获取第二数据的请求消息时,将该随机数添加至获取第二数据的请求消息中,将生成的获取第二数据的请求消息发送至富执行环境REE的文件系统;由富执行环境REE的文件系统发送至UFS存储器,UFS存储器接收到获取第二数据的请求及该随机数之后,根据请求消息获知需获取RPMB分区中存储的第二数据,并将第二数据中的一个第二数据及该随机数进行哈希计算,得到第三消息认证码,并将第三消息认证码、该第二数据及该随机数打包至一个数据包中发送至富执行环境REE的文件系统;富执行环境REE的文件系统将该数据包发送至数据的存储装置;数据的存储装置接收到该数据包后,解析数据包,获取到数据包中的第三消息认证码、该第二数据及该随机数;数据的存储装置首先根据数据包中的该第二数据及数据的存储装置存储的该随机数通过哈希计算,得到第四消息认证码,将其计算得出的第四消息认证码与数据包中解析出的第三消息认证码进行比较,确定是否一致。若一致,再检测解析出的数据包中的该随机数与数据的存储装置存储的该随机数是否相同,若相同,则可以确定该第二数据在数据包的传输过程中并未进行篡改,第三消息认证码通过,获取到的该第二数据即为RPMB分区中存储的该第二数据。
若第四消息认证码与数据包中解析出的第三消息认证码不一致,则说明数据包在传输过程中被篡改,获取到的该第二数据并不是RPMB分区中存储的该第二数据。或者,第四消息认证码与数据包中解析出的第三消息认证码一致,但是随机数不同时,则说明接收的数据包中获取的数据并不是其所需数据,此时将该数据包丢弃。
其中,若第二应用需要获取多个第二数据,那么此时,每获取一个第二数据都需执行上述认证过程,直至将所有需要获取的第二数据都存储至临时存储介质中。
步骤S604、将第二数据发送至第二应用。
具体的,数据的存储装置在获取到第二数据之后,可以将第二数据发送至第二应用,此时数据获取完成。
步骤S605、接收第二应用发送的存储请求消息。
其中,所述存储请求消息中携带有文件标识信息。此时文件标识信息可以为文件名,即第二文件。也就是说,第二应用需将待存储数据存储至第二文件中。
具体的,在第二应用对第二数据进行相应的处理后,需要将第二数据重新存储至非易失性存储介质中,此时可以向数据的存储装置发送存储请求消息。数据的存储装置接收第二应用发送的存储请求消息。具体可参考上述步骤S101,在此不再赘述。
步骤S606、获取第二应用待存储的第三数据。
其中,第三数据是第二应用的待存储数据,可以是第二应用对上述第二数据进行相应处理后的数据。
步骤S607、从临时存储介质中获取第二数据对应的文件头信息。
具体的可参考上述步骤S102,在此不再赘述。
需要说明的是,由于步骤S601至S603执行完之后,临时存储介质中存储有第二数据对应的文件头信息,那么此时在临时存储介质中可以检测到第二数据对应的文件头信息,可直接从临时存储介质中获取第二数据对应的文件头信息。
步骤S608、根据第三数据更新第二数据对应的文件头信息,将第三数据及更新后的第二数据对应的文件头信息存储至临时存储介质。
具体的可参考上述步骤S103,在此不再赘述。
步骤S609、在接收到存储完成消息时,将临时存储介质中存储的第三数据及更新后的第二数据对应的文件头信息存储至非易失性存储介质中。
具体的可参考步骤S104,在此不再赘述。
以上所述为一个可能的实施例,即,在对数据进行获取之后,其文件头信息已经存储至临时存储介质中,此时假设对该数据进行处理后再将其存储至非易失性存储介质中,当进行获取文件头信息的操作时,数据的存储装置就可以检测到临时存储介质中存储有文件头信息,那么可以直接从临时存储介质中获取文件头信息,就无需从非易失性存储介质中获取文件头信息,这样的话就减少了数据处理的时间,提高了数据处理的效率。
图7为本申请实施例提供的一种数据的存储装置的结构示意图。如图7所示,该装置包括:
获取单元701,用于获取第一应用待存储的第一数据;
从临时存储介质中获取所述第一数据对应的文件头信息;
处理单元702,用于根据所述第一数据更新所述第一数据对应的文件头信息;将所述第一数据及更新后的所述第一数据对应的文件头信息存储至临时存储介质;
在接收到第一应用发送的存储完成消息时,将临时存储介质中存储的第一数据及所述第一数据对应的文件头信息存储至非易失性存储介质中。
在一个可能的实施例中,获取单元701,具体用于,获取第一应用待存储的第一数据及文件标识信息;获取单元701,还用于根据文件标识信息,从临时存储介质中获取第一数据对应的文件头信息。
在一个可能的实施例中,如图8所示,该装置还包括:
接收单元703,用于接收所述第一应用发送的存储请求消息;其中,所述存储请求消息中携带有文件标识信息。
获取单元701,具体用于检测所述临时存储介质中是否存储有所述第一数据对应的文件头信息;
若临时存储介质中存储有所述第一数据对应的文件头信息,则从所述临时存储介质中获取所述第一数据对应的文件头信息;
若临时存储介质中未存储有所述第一数据对应的文件头信息,则从所述非易失性存储介质中获取所述第一数据对应的文件头信息。
在一个可能的实施例中,获取单元701,还用于,在非易失性存储介质中未存储有第一数据对应的文件头信息时,根据第一数据创建第一应用的文件头信息。
在一个可能的实施例中,接收单元703,还用于接收第二应用发送的数据获取请求消息。其中,数据获取请求消息中携带有待获取的第二数据的标识信息。
处理单元702,还用于根据所述第二数据的标识信息,从非易失性存储介质中获取第二数据对应的文件头信息,并存储至临时存储介质中;
根据第二数据对应的文件头信息及第二数据的标识信息,从非易失性存储介质中获取第二数据,并存储至临时存储介质中;
将第二数据发送至第二应用。
与上述实施例相对应,本申请还提供了一种电子设备。图9为本发明实施例提供的一种电子设备的结构示意图,所述电子设备900可以包括:处理器901、存储器902及通信单元903。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,所述通信单元903,用于建立通信信道,从而使所述电子设备可以与其它设备进行通信。接收其他设备发送的用户数据或者向其他设备发送用户数据。
所述处理器901,为电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器901可以仅包括中央处理器(centralprocessing unit,CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
所述存储器902,用于存储处理器901的执行指令,存储器902可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
当存储器902中的执行指令由处理器901执行时,使得电子设备900能够执行图6所示实施例中的部分或全部步骤。
具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的数据的存储方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例和终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
Claims (11)
1.一种数据的存储方法,其特征在于,应用于可信执行环境TEE,所述方法包括:
获取第一应用待存储的第一数据;
从临时存储介质中获取所述第一数据对应的文件头信息;
根据所述第一数据更新所述第一数据对应的文件头信息,将所述第一数据及更新后的所述第一数据对应的文件头信息存储至临时存储介质;
在接收到第一应用发送的存储完成消息时,将临时存储介质中存储的第一数据及所述第一数据对应的文件头信息存储至非易失性存储介质中。
2.根据权利要求1所述的方法,其特征在于,所述获取第一应用待存储的第一数据包括:
获取第一应用待存储的第一数据及文件标识信息;
所述从临时存储介质中获取所述第一数据对应的文件头信息包括:
根据所述文件标识信息,从临时存储介质中获取所述第一数据对应的文件头信息。
3.根据权利要求1所述的方法,其特征在于,在所述获取第一应用待存储的第一数据之前,还包括:
接收所述第一应用发送的存储请求消息;其中,所述存储请求消息中携带有文件标识信息。
4.根据权利要求1所述的方法,其特征在于,所述在所述从临时存储介质中获取所述第一数据对应的文件头信息之前还包括:
检测所述临时存储介质中是否存储有所述第一数据对应的文件头信息;
所述在所述从临时存储介质中获取所述第一数据对应的文件头信息包括:
若临时存储介质中存储有所述第一数据对应的文件头信息,则从所述临时存储介质中获取所述第一数据对应的文件头信息;
若临时存储介质中未存储有所述第一数据对应的文件头信息,则从所述非易失性存储介质中获取所述第一数据对应的文件头信息。
5.根据权利要求4所述的方法,其特征在于,还包括:
在所述非易失性存储介质中未存储有所述第一数据对应的文件头信息时,根据所述第一数据创建所述第一数据的文件头信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第二应用发送的数据获取请求消息;所述数据获取请求消息中携带有待获取的第二数据的标识信息;
根据所述第二数据的标识信息,从所述非易失性存储介质中获取所述第二数据对应的文件头信息,并存储至临时存储介质中;
根据所述第二数据对应的文件头信息及所述第二数据的标识信息,从所述非易失性存储介质中获取所述第二数据,并存储至临时存储介质中;
将所述第二数据发送至所述第二应用。
7.根据权利要求1所述的方法,其特征在于,所述第一数据为加密数据。
8.根据权利要求1所述的方法,其特征在于,所述非易失性存储介质为通用闪存存储UFS存储器。
9.一种数据的存储装置,其特征在于,包括:
获取单元,用于获取第一应用待存储的第一数据;
从临时存储介质中获取所述第一数据对应的文件头信息;
处理单元,用于根据所述第一数据更新所述第一数据对应的文件头信息;
将所述第一数据及更新后的所述第一数据对应的文件头信息存储至临时存储介质;
在接收到第一应用发送的存储完成消息时,将临时存储介质中存储的第一数据及所述第一数据对应的文件头信息存储至非易失性存储介质中。
10.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有计算机程序,当所述计算机程序被执行时,使得所述电子设备执行权利要求1-8任一项所述的方法。
11.一种存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1-8中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111611362.0A CN114297093A (zh) | 2021-12-27 | 2021-12-27 | 一种数据的存储方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111611362.0A CN114297093A (zh) | 2021-12-27 | 2021-12-27 | 一种数据的存储方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114297093A true CN114297093A (zh) | 2022-04-08 |
Family
ID=80969767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111611362.0A Pending CN114297093A (zh) | 2021-12-27 | 2021-12-27 | 一种数据的存储方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297093A (zh) |
-
2021
- 2021-12-27 CN CN202111611362.0A patent/CN114297093A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10229547B2 (en) | In-vehicle gateway device, storage control method, and computer program product | |
CN101971186B (zh) | 信息泄露防止装置和方法及其程序 | |
US8370645B2 (en) | Protection of security parameters in storage devices | |
WO2010134192A1 (ja) | 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法 | |
CN100578473C (zh) | 嵌入式系统和增加嵌入式系统安全性的方法 | |
CN110147329B (zh) | 一种动态检测模拟器的方法、装置及终端 | |
US9152773B2 (en) | Communication apparatus and secure module including function for disabling encrypted communication | |
CN102077204B (zh) | 安全内存管理系统和方法 | |
KR20080013940A (ko) | 전자기기, 갱신 서버장치, 키 갱신장치 | |
JP2009070408A (ja) | 情報処理装置 | |
CN109960903A (zh) | 一种应用加固的方法、装置、电子设备及存储介质 | |
US20080212770A1 (en) | Key Information Generating Method and Device, Key Information Updating Method, Tempering Detecting Method and Device, and Data Structure of Key Information | |
JP2002281019A (ja) | 携帯可能情報記憶媒体およびその認証方法 | |
US9256756B2 (en) | Method of encryption and decryption for shared library in open operating system | |
EP2503482A1 (en) | Electronic device with flash memory component | |
CN111917540A (zh) | 一种数据加解密方法、装置、移动终端和存储介质 | |
CN110659153A (zh) | 纠错码存储器安全性 | |
CN108229190B (zh) | 透明加解密的控制方法、装置、程序、存储介质和电子设备 | |
CN107092838A (zh) | 一种硬盘的安全访问控制方法及一种硬盘 | |
CN112088376A (zh) | 一种文件存储方法、装置及存储介质 | |
CN106529271A (zh) | 一种终端及其绑定校验方法 | |
CN111539042B (zh) | 一种基于核心数据文件可信存储的安全操作方法 | |
WO2016173267A1 (zh) | 一种完整性校验方法和装置 | |
CN107078897A (zh) | 用于失序数据的推定的密码处理 | |
CN107861892B (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 |