有效
数据安全存储方法及装置、电子设备、介质、芯片
王喆、李德建、王慧、张喆、杨宇宁
北京智芯微电子科技有限公司
摘要
本公开涉及计算机安全领域,具体涉及公开了一种数据安全存储方法及装置、电子设备、介质、芯片,该方法包括:在可信执行环境中加密数据操作请求中的明文数据得到数据密文,并将其写入位于普通环境中的中间数据缓冲区,然后调用位于普通环境中的数据存储模块,使其从中间数据缓冲区读取数据密文,并调用文件系统或数据库引擎在数据密文存储区域的目标文件中进行请求的操作,数据密文存储区域包括位于普通环境中的存储区域和位于处理器外部的存储器。该技术方案可以使用普通的无任何访问权限控制、无加密的大容量存储器作为存储介质来存储敏感数据,可以根据需要扩充存储空间,对硬件的要求低,成本低,主要用于敏感数据的安全存储。
1.一种数据安全存储方法,其特征在于,适用于支持信任区域Trust Zone技术的处理器,所述处理器包括可信执行环境和普通环境,所述可信执行环境中运行有可信应用程序、安全存储模块、加解密模块;所述普通环境中运行有中间数据缓冲区、数据存储模块、文件系统或数据库引擎,所述方法包括:所述安全存储模块响应于接收到所述可信应用程序发送的数据操作请求,调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,所述原始明文数据包括文件路径;所述安全存储模块将所述数据密文写入所述中间数据缓冲区,所述数据密文包括文件路径密文;所述安全存储模块调用所述数据存储模块执行所述数据操作请求所请求的操作;所述数据存储模块从所述中间数据缓冲区读取所述数据密文,并调用所述文件系统或数据库引擎在数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,所述目标文件包括所述文件路径密文所对应的文件,所述数据密文存储区域包括位于所述普通环境中的存储区域和位于所述处理器外部的存储器;所述安全存储模块调用所述数据存储模块执行所述数据操作请求所请求的操作,包括:所述安全存储模块将所述数据存储模块中目标文件操作函数的地址最低位清零,调用所述目标文件操作函数执行所述数据操作请求所请求的操作,所述目标文件操作函数为所述数据操作请求所请求的操作对应的文件操作函数。
2.根据权利要求1所述的数据安全存储方法,其特征在于,若所述数据操作请求为数据写入请求,则原始明文数据还包括待写入的文件数据,所述数据密文还包括第一文件数据密文;所述调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,包括:所述数据存储模块调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件。
3.根据权利要求1所述的数据安全存储方法,其特征在于,若所述数据操作请求为数据读取请求,则所述调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,包括:所述数据存储模块调用所述文件系统或数据库引擎读取所述目标文件中存储的第二文件数据密文到所述中间数据缓冲区中;所述方法还包括:所述安全存储模块从所述中间数据缓冲区读取所述第二文件数据密文,并调用所述加解密模块解密所述第二文件数据密文得到文件数据明文;所述安全存储模块将所述文件数据明文返回所述可信应用程序。
4.根据权利要求1所述的数据安全存储方法,其特征在于,所述方法还包括:所述数据存储模块调用所述安全存储模块的初始化函数,将所述数据存储模块的局部变量数组传递给所述安全存储模块,其中,所述局部变量数组包括所述中间数据缓冲区的起始位置的地址以及所述数据存储模块中各文件操作函数的地址;所述安全存储模块获取并存储所述局部变量数组中的地址;其中,所述安全存储模块基于所述局部变量数组中的相应地址调用所述中间数据缓冲区和所述数据存储模块。
5.根据权利要求4所述的数据安全存储方法,其特征在于,在所述安全存储模块存储所述局部变量数组中的地址之前,所述方法还包括:所述安全存储模块检查所述局部变量数组中的地址是否均属于所述普通环境中的地址;若是,则向所述数据存储模块返回初始化成功消息;若否,则向所述数据存储模块返回初始化失败消息。
6.根据权利要求1所述的数据安全存储方法,其特征在于,所述调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,包括:所述安全存储模块将所述可信应用程序的唯一标识和所述文件路径发送给所述加解密模块;所述加解密模块使用所述可信应用程序的唯一标识和所述文件路径对安全存储密钥进行分散,得到所述原始明文数据对应的文件加密密钥;所述加解密模块使用所述文件加密密钥对所述原始明文数据进行加密,得到数据密文。
7.根据权利要求1所述的数据安全存储方法,其特征在于,所述数据操作请求还包括文件操作类型,所述中间数据缓冲区的数据存储结构包括文件路径密文区域、文件数据密文区域和文件操作类型区域。
8.根据权利要求2所述的数据安全存储方法,其特征在于,在所述数据存储模块调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件之后,所述方法还包括:所述数据存储模块将所述文件系统或数据库引擎的写入结果记录到所述中间数据缓冲区。
9.一种数据安全存储装置,其特征在于,适用于支持信任区域Trust Zone技术的处理器,包括位于可信执行环境中的可信应用程序、安全存储模块、加解密模块;位于普通环境中的中间数据缓冲区、数据存储模块、文件系统或数据库引擎,其中:所述安全存储模块,被配置为响应于接收到所述可信应用程序发送的数据操作请求,调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,将所述数据密文写入所述中间数据缓冲区,调用所述数据存储模块执行所述数据操作请求所请求的操作,所述原始明文数据包括文件路径,所述数据密文包括文件路径密文;所述数据存储模块,被配置为从所述中间数据缓冲区读取所述数据密文,并调用所述文件系统或数据库引擎在数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,所述目标文件包括所述文件路径密文所对应的文件,所述数据密文存储区域包括位于所述普通环境中的存储区域和位于所述处理器外部的存储器;所述安全存储模块中调用所述数据存储模块执行所述数据操作请求所请求的操作的部分被配置为:将所述数据存储模块中目标文件操作函数的地址最低位清零,调用所述目标文件操作函数执行所述数据操作请求所请求的操作,所述目标文件操作函数为所述数据操作请求所请求的操作对应的文件操作函数。
10.根据权利要求9所述的数据安全存储装置,其特征在于,若所述数据操作请求为数据写入请求,则原始明文数据还包括待写入的文件数据,所述数据密文还包括第一文件数据密文;所述数据存储模块中调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作的部分被配置为:调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件。
11.根据权利要求9所述的数据安全存储装置,其特征在于,若所述数据操作请求为数据读取请求,则所述数据存储模块中调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作的部分被配置为:调用所述文件系统或数据库引擎读取所述目标文件中存储的第二文件数据密文到所述中间数据缓冲区中;所述安全存储模块,被配置为从所述中间数据缓冲区读取所述第二文件数据密文,并调用所述加解密模块解密所述第二文件数据密文得到文件数据明文;将所述文件数据明文返回所述可信应用程序。
12.根据权利要求9所述的数据安全存储装置,其特征在于,所述数据存储模块,被配置为调用所述安全存储模块的初始化函数,将所述数据存储模块的局部变量数组传递给所述安全存储模块,其中,所述局部变量数组包括所述中间数据缓冲区的起始位置的地址以及所述数据存储模块中各文件操作函数的地址;所述安全存储模块,被配置为获取并存储所述局部变量数组中的地址;其中,所述安全存储模块基于所述局部变量数组中的相应地址调用所述中间数据缓冲区和所述数据存储模块。
13.根据权利要求12所述的数据安全存储装置,其特征在于,所述安全存储模块,被配置为检查所述局部变量数组中的地址是否均属于所述普通环境中的地址;若是,则向所述数据存储模块返回初始化成功消息;若否,则向所述数据存储模块返回初始化失败消息。
14.根据权利要求9所述的数据安全存储装置,其特征在于,所述安全存储模块中调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文被配置为:将所述可信应用程序的唯一标识和所述文件路径发送给所述加解密模块,调用所述加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文;所述加解密模块,被配置为使用所述可信应用程序的唯一标识和所述文件路径对安全存储密钥进行分散,得到所述原始明文数据对应的文件加密密钥;使用所述文件加密密钥对所述原始明文数据进行加密,得到数据密文。
15.根据权利要求9所述的数据安全存储装置,其特征在于,所述数据操作请求还包括文件操作类型,所述中间数据缓冲区的数据存储结构包括文件路径密文区域、文件数据密文区域和文件操作类型区域。
16.根据权利要求10所述的数据安全存储装置,其特征在于,所述数据存储模块,被配置为在调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件之后,将所述文件系统或数据库引擎的写入结果记录到所述中间数据缓冲区。
17.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1至8任一项所述的数据安全存储方法。
18.一种可读存储介质,其特征在于,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求1至8任一项所述的方法步骤。
19.一种芯片,其特征在于,所述芯片包括如权利要求9至16任一项所述的数据安全存储装置。



