CN115374483A - 数据安全存储方法及装置、电子设备、介质、芯片 - Google Patents
数据安全存储方法及装置、电子设备、介质、芯片 Download PDFInfo
- Publication number
- CN115374483A CN115374483A CN202211305730.3A CN202211305730A CN115374483A CN 115374483 A CN115374483 A CN 115374483A CN 202211305730 A CN202211305730 A CN 202211305730A CN 115374483 A CN115374483 A CN 115374483A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- storage module
- ciphertext
- module
- 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.)
- Granted
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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本公开涉及计算机安全领域,具体涉及公开了一种数据安全存储方法及装置、电子设备、介质、芯片,该方法包括:在可信执行环境中加密数据操作请求中的明文数据得到数据密文,并将其写入位于普通环境中的中间数据缓冲区,然后调用位于普通环境中的数据存储模块,使其从中间数据缓冲区读取数据密文,并调用文件系统或数据库引擎在数据密文存储区域的目标文件中进行请求的操作,数据密文存储区域包括位于普通环境中的存储区域和位于处理器外部的存储器。该技术方案可以使用普通的无任何访问权限控制、无加密的大容量存储器作为存储介质来存储敏感数据,可以根据需要扩充存储空间,对硬件的要求低,成本低,主要用于敏感数据的安全存储。
Description
技术领域
本公开涉及计算机安全技术领域,具体涉及一种数据安全存储方法及装置、电子设备、介质、芯片。
背景技术
随着互联网移动终端的迅速发展,智能终端在人们生活中应用的越来越广泛,进而关于一些敏感数据的安全存储就成了大家关注的问题。现有的存储方案大都是通过高强度密码算法对敏感数据加密,将加密数据存储在移动操作系统的文件系统上,并利用操作系统的权限控制机制来限制加密数据文件的访问,从而实现敏感数据的安全存储。但是由于传统移动终端操作系统的复杂性和开放性使其无法创造安全的运行环境,操作系统自身以及应用程序很容易遭受恶意攻击。当恶意应用攻击合法应用后,以合法应用的身份访问存储在文件系统上的加密数据,并通过相应解密逻辑获取敏感数据,导致敏感数据遭受窃取。同时部分移动终端设备用户为了获得更好的体验对设备进行刷机,当恶意应用获取移动操作系统的最高权限后,系统中所有对敏感数据的保护将无安全性可言。此外,将敏感数据加密存储在普通文件系统中也存在遭受非法破坏导致拒绝服务攻击的风险。因此传统的解决方案安全性不够高,难以真正有效地解决应用程序敏感数据的安全存储问题。
ARM Trust Zone(信任区域)硬件隔离技术和可信执行环境(TEE,TrustedExecution Environment)概念的提出为解决这个问题带来新的思路。基于ARM Trust Zone技术构建的可信执行环境为应用程序处理敏感数据提供了安全隔离的运行环境和物理环境。现有方案中可以将敏感数据存储在位于可信执行环境的安全存储区域来保证敏感数据的安全性,但是该安全存储区域受限于硬件资源,通常空间较小且难以扩展,能够存储的敏感数据较少。
发明内容
为了解决相关技术中的问题,本公开实施例提供一种数据安全存储方法及装置、电子设备、介质、芯片。
第一方面,本公开实施例中提供了一种数据安全存储方法,适用于支持信任区域Trust Zone技术的处理器,所述处理器包括可信执行环境和普通环境,所述可信执行环境中运行有可信应用程序、安全存储模块、加解密模块;所述普通环境中运行有中间数据缓冲区、数据存储模块、文件系统或数据库引擎,所述方法包括:
所述安全存储模块响应于接收到所述可信应用程序发送的数据操作请求,调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,所述原始明文数据包括文件路径;
所述安全存储模块将所述数据密文写入所述中间数据缓冲区,所述数据密文包括文件路径密文;
所述安全存储模块调用所述数据存储模块执行所述数据操作请求所请求的操作;
所述数据存储模块从所述中间数据缓冲区读取所述数据密文,并调用所述文件系统或数据库引擎在数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,所述目标文件包括所述文件路径密文所对应的文件,所述数据密文存储区域包括位于所述普通环境中的存储区域和位于所述处理器外部的存储器。
在一种可能的实现方式中,若所述数据操作请求为数据写入请求,则原始明文数据还包括待写入的文件数据,所述数据密文还包括第一文件数据密文;
所述调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,包括:
所述数据存储模块调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件。
在一种可能的实现方式中,若所述数据操作请求为数据读取请求,则所述调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,包括:
所述数据存储模块调用所述文件系统或数据库引擎读取所述目标文件中存储的第二文件数据密文到所述中间数据缓冲区中;
所述方法还包括:
所述安全存储模块从所述中间数据缓冲区读取所述第二文件数据密文,并调用所述加解密模块解密所述第二文件数据密文得到文件数据明文;
所述安全存储模块将所述文件数据明文返回所述可信应用程序。
在一种可能的实现方式中,所述方法还包括:
所述数据存储模块调用所述安全存储模块的初始化函数,将所述数据存储模块的局部变量数组传递给所述安全存储模块,其中,所述局部变量数组包括所述中间数据缓冲区的起始位置的地址以及所述数据存储模块中各文件操作函数的地址;
所述安全存储模块获取并存储所述局部变量数组中的地址;
其中,所述安全存储模块基于所述局部变量数组中的相应地址调用所述中间数据缓冲区和所述数据存储模块。
在一种可能的实现方式中,在所述安全存储模块存储所述局部变量数组中的地址之前,所述方法还包括:
所述安全存储模块检查所述局部变量数组中的地址是否均属于所述普通环境中的地址;
若是,则向所述数据存储模块返回初始化成功消息;
若否,则向所述数据存储模块返回初始化失败消息。
在一种可能的实现方式中,所述安全存储模块调用所述数据存储模块执行所述数据操作请求所请求的操作,包括:
所述安全存储模块将所述数据存储模块中目标文件操作函数的地址最低位清零,调用所述目标文件操作函数执行所述数据操作请求所请求的操作,所述目标文件操作函数为所述数据操作请求所请求的操作对应的文件操作函数。
在一种可能的实现方式中,所述调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,包括:
所述安全存储模块将所述可信应用程序的唯一标识和所述文件路径发送给所述加解密模块;
所述加解密模块使用所述可信应用程序的唯一标识和所述文件路径对安全存储密钥进行分散,得到所述原始明文数据对应的文件加密密钥;
所述加解密模块使用所述文件加密密钥对所述原始明文数据进行加密,得到数据密文。
在一种可能的实现方式中,所述数据操作请求还包括文件操作类型,所述中间数据缓冲区的数据存储结构包括文件路径密文区域、文件数据密文区域和文件操作类型区域。
在一种可能的实现方式中,在所述数据存储模块调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件之后,所述方法还包括:
所述数据存储模块将所述文件系统或数据库引擎的写入结果记录到所述中间数据缓冲区。
第二方面,本公开实施例中提供了一种数据安全存储装置,适用于支持信任区域Trust Zone技术的处理器,包括位于可信执行环境中的可信应用程序、安全存储模块、加解密模块;位于普通环境中的中间数据缓冲区、数据存储模块、文件系统或数据库引擎,其中:
所述安全存储模块,被配置为响应于接收到所述可信应用程序发送的数据操作请求,调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,将所述数据密文写入所述中间数据缓冲区,调用所述数据存储模块执行所述数据操作请求所请求的操作,所述原始明文数据包括文件路径,所述数据密文包括文件路径密文;
所述数据存储模块,被配置为从所述中间数据缓冲区读取所述数据密文,并调用所述文件系统或数据库引擎在数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,所述目标文件包括所述文件路径密文所对应的文件,所述数据密文存储区域包括位于所述普通环境中的存储区域和位于所述处理器外部的存储器。
在一种可能的实现方式中,若所述数据操作请求为数据写入请求,则原始明文数据还包括待写入的文件数据,所述数据密文还包括第一文件数据密文;
所述数据存储模块中调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作的部分被配置为:
调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件。
在一种可能的实现方式中,若所述数据操作请求为数据读取请求,则所述数据存储模块中调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作的部分被配置为:
调用所述文件系统或数据库引擎读取所述目标文件中存储的第二文件数据密文到所述中间数据缓冲区中;
所述安全存储模块,被配置为从所述中间数据缓冲区读取所述第二文件数据密文,并调用所述加解密模块解密所述第二文件数据密文得到文件数据明文;将所述文件数据明文返回所述可信应用程序。
在一种可能的实现方式中,所述数据存储模块,被配置为调用所述安全存储模块的初始化函数,将所述数据存储模块的局部变量数组传递给所述安全存储模块,其中,所述局部变量数组包括所述中间数据缓冲区的起始位置的地址以及所述数据存储模块中各文件操作函数的地址;
所述安全存储模块,被配置为获取并存储所述局部变量数组中的地址;
其中,所述安全存储模块基于所述局部变量数组中的相应地址调用所述中间数据缓冲区和所述数据存储模块。
在一种可能的实现方式中,所述安全存储模块,被配置为检查所述局部变量数组中的地址是否均属于所述普通环境中的地址;
若是,则向所述数据存储模块返回初始化成功消息;
若否,则向所述数据存储模块返回初始化失败消息。
在一种可能的实现方式中,所述安全存储模块中调用所述数据存储模块执行所述数据操作请求所请求的操作的部分被配置为:
将所述数据存储模块中目标文件操作函数的地址最低位清零,调用所述目标文件操作函数执行所述数据操作请求所请求的操作,所述目标文件操作函数为所述数据操作请求所请求的操作对应的文件操作函数。
在一种可能的实现方式中,所述安全存储模块中调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文被配置为:
将所述可信应用程序的唯一标识和所述文件路径发送给所述加解密模块,调用所述加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文;
所述加解密模块,被配置为使用所述可信应用程序的唯一标识和所述文件路径对安全存储密钥进行分散,得到所述原始明文数据对应的文件加密密钥;使用所述文件加密密钥对所述原始明文数据进行加密,得到数据密文。
在一种可能的实现方式中,所述数据操作请求还包括文件操作类型,所述中间数据缓冲区的数据存储结构包括文件路径密文区域、文件数据密文区域和文件操作类型区域。
在一种可能的实现方式中,所述数据存储模块,被配置为在调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件之后,将所述文件系统或数据库引擎的写入结果记录到所述中间数据缓冲区。
第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面中任一项所述的方法。
第四方面,本公开实施例中提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面中任一项所述的方法。
第五方面,本公开实施例中提供了一种芯片,所述芯片包括如第二方面中任一项所述的数据安全存储装置。
根据本公开实施例提供的技术方案,可以由位于可信执行环境中的可信应用程序发起数据操作请求,由位于可信执行环境中的安全存储模块调用可信执行环境中的加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,并将所述数据密文写入位于普通环境中的中间数据缓冲区,然后由位于普通环境中的数据存储模块从所述中间数据缓冲区读取所述数据密文,并调用普通环境中的文件系统或数据库引擎在位于所述普通环境中的存储区域和位于所述处理器外部的存储器的目标文件中进行所述数据操作请求所请求的操作,这样,将对文件数据的加解密过程放置在可信执行环境中执行的,位于普通环境中的数据存储模块可以从数据密文存储区域的目标文件中读取或写入已在可信执行环境中加密后的文件数据密文,如此保证文件数据的安全性,该数据密文存储区域可以位于所述普通环境中的存储区域和位于所述处理器外部的存储器等非可信执行环境中,因而可以使用普通的无任何访问权限控制、无加密的大容量Flash存储器作为存储介质,对硬件的要求低,成本低。而且数据存储模块位于普通环境中,也进一步减少了可信执行环境中运行代码的数量,增强了整体的安全性。
另外,本实施方案中的各步骤的执行或调用都可以由底层代码实现,可以在可信执行环境和普通环境都没有操作系统的环境下工作,对软件环境的要求低,同时基于Cortex-M系列的处理器芯片的特性,可信执行环境和普通环境之间代码的相互调用不涉及中断和远程调用等,使用函数调用可以直接完成,资源开销低,执行速度快。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中。
图1示出根据本公开的实施例的数据安全存储方法的流程图。
图2示出根据本公开的实施例的中间数据缓冲区的数据结构示意图。
图3示出根据本公开的实施例的数据安全存储装置的结构框图。
图4示出根据本公开的实施例的电子设备的结构框图。
图5示出适于用来实现本公开实施例方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
上文提及,现有方案中可以将敏感数据存储在位于可信执行环境的安全存储区域来保证敏感数据的安全性,但是该安全存储区域受限于硬件资源,通常空间较小且难以扩展,能够存储的敏感数据较少。
为了解决上述问题,本公开提供了一种数据安全存储方法,可以将加密后的密文数据存储在非可信环境(内部普通或外部存储器),因而可以使用普通的无任何访问权限控制、无加密的大容量存储器作为存储介质来存储敏感数据,可以根据需要扩充存储空间,对硬件的要求低,成本低。
图1示出根据本公开的实施例的数据安全存储方法的流程图。如图1所示,所述数据安全存储方法包括以下步骤S101-S104:
在步骤S101中,所述安全存储模块响应于接收到所述可信应用程序发送的数据操作请求,调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,所述原始明文数据包括文件路径;
在步骤S102中,所述安全存储模块将所述数据密文写入所述中间数据缓冲区,所述数据密文包括文件路径密文;
在步骤S103中,所述安全存储模块调用所述数据存储模块执行所述数据操作请求所请求的操作;
在步骤S104中,所述数据存储模块从所述中间数据缓冲区读取所述数据密文,并调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,所述目标文件包括所述文件路径密文所对应的文件,所述数据密文存储区域包括位于所述普通环境中的存储区域和位于所述处理器外部的存储器。
在一种可能的实施方式中,该数据安全存储方法适用于可执行数据安全存储的Cortex-M(一种微控制器)系列的处理器芯片。该处理器芯片包括可信执行环境和普通环境,所述可信执行环境中运行有可信应用程序、安全存储模块、加解密模块;所述普通环境中运行有中间数据缓冲区、数据存储模块、文件系统或数据库引擎。
在一种可能的实施方式中,位于可信执行环境中的可信应用程序会发起数据操作请求,该数据操作请求中携带有数据请求类型和原始明文数据,该原始明文数据包括文件路径,该文件路径用于指示要进行数据操作的目标文件的位置,该数据请求类型指的是请求进行数据操作的操作类型,比如说可以是读操作或写操作等等类型,在数据请求类型为写操作时,该原始明文数据还包括待写入的文件数据。
在一种可能的实施方式中,所述安全存储模块接收到所述可信应用程序发送的数据操作请求时,可以调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,比如说对该文件路径加密后就可以得到文件路径密文。
在一种可能的实施方式中,根据Cortex-M系列的处理器芯片的特性,位于普通环境(即非安全区)的数据缓冲区可被位于可信执行环境(即安全区)的代码直接读写,故该安全存储模块可以直接将所述数据密文写入所述中间数据缓冲区。
在一种可能的实施方式中,根据Cortex-M系列的处理器芯片的特性,位于普通环境(即非安全区)的函数可以被位于可信执行环境(即安全区)的代码直接调用,故所述安全存储模块可以调用所述数据存储模块中的操作函数执行所述数据操作请求所请求的操作。
在一种可能的实施方式中,所述数据存储模块被调用后,可以从所述中间数据缓冲区读取所述数据密文,该数据密文包括文件路径密文,该数据存储模块中获取文件路径密文后就可以基于各文件路径密文与各实际文件路径之间的对应关系,得到该文件路径密文对应的实际文件路径,此处,从文件路径密文映射到实际文件路径需要一个编码过程,编码方法包括但不限于使用哈希算法或直接将密文的二进制数据转换为十六进制字符串等等。这样,数据存储模块就可以调用所述文件系统或数据库引擎在所述文件路径密文对应目标文件中进行所述数据操作请求所请求的操作,比如从该目标文件中读取文件数据密文或向该目标文件中写入文件数据密文等等。该目标文件所在的区域数据密文存储区域可以是位于所述普通环境中的存储区域,也可以是位于所述处理器外部的存储器,在此并不做限制,在该目标文件中操作的数据可以是文件数据密文。
本实施方式中,对文件数据的加解密过程是位于可信执行环境中的加解密模块执行的,位于普通环境中的数据存储模块可以从数据密文存储区域的目标文件中读取或写入已在可信执行环境中加密后的文件数据密文,如此保证文件数据的安全性,该数据密文存储区域可以位于所述普通环境中的存储区域和位于所述处理器外部的存储器等非可信执行环境中,因而可以使用普通的无任何访问权限控制、无加密的大容量Flash存储器作为存储介质,对硬件的要求低,成本低。而且数据存储模块位于普通环境中,也进一步减少了可信执行环境中运行代码的数量,增强了整体的安全性。
另外,本实施方案中的各步骤的执行或调用都可以由底层代码实现,可以在可信执行环境和普通环境都没有操作系统的环境下工作,对软件环境的要求低,同时基于Cortex-M系列的处理器芯片的特性,可信执行环境和普通环境之间代码的相互调用不涉及中断和远程调用等,使用函数调用可以直接完成,资源开销低,执行速度快。
在一种可能的实施方式中,若所述数据操作请求为数据写入请求,则原始明文数据还包括待写入的文件数据,所述数据密文还包括第一文件数据密文;
所述调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,包括:
所述数据存储模块调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件。
在该实施方式中,该可信应用程序发起的数据操作请求为数据写入请求,该数据写入请求可以请求在文件路径所指示的地址处写入该文件数据,此时,该数据写入请求中携带的原始明文数据还包括待写入的文件数据。该安全存储模块调用加解密模块对所述数据操作请求中的原始明文数据进行加密时,可以分别对该原始明文数据中的文件路径进行加密得到文件路径密文,对该待写入的文件数据进行加密,得到第一文件数据密文。
在该实施方式中,该安全存储模块从加解密模块得到数据密文(包括文件路径密文和第一文件数据密文)后,可以将所述数据密文写入所述中间数据缓冲区,然后调用所述数据存储模块执行该数据写入请求所请求的写入操作,此时,该数据存储模块从所述中间数据缓冲区读取所述数据密文,并调用所述文件系统或数据库引擎在文件路径密文所对应的目标文件中该第一文件数据密文,如此就完成数据写入流程。
本实施方式写入文件数据时,可以由位于可信执行环境中的加解密模块对待写入的文件数据进行加密后,再写入位于普通环境或外部存储器的目标文件,保证该文件数据的写入安全性,而且可以使用普通的无任何访问权限控制、无加密的大容量Flash存储器作为存储该文件数据密文的存储介质,对硬件的要求低,成本低,可以根据需要扩充存储空间。
在一种可能的实施方式中,若所述数据操作请求为数据读取请求,则所述调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,包括:
所述数据存储模块调用所述文件系统或数据库引擎读取所述目标文件中存储的第二文件数据密文到所述中间数据缓冲区中;
所述方法还包括:
所述安全存储模块从所述中间数据缓冲区读取所述第二文件数据密文,并调用所述加解密模块解密所述第二文件数据密文得到文件数据明文;
所述安全存储模块将所述文件数据明文返回所述可信应用程序。
在该实施方式中,该可信应用程序发起的数据操作请求为数据读取请求,该数据读取请求可以请求在文件路径所指示的地址处读取文件数据,此时,该安全存储模块调用加解密模块对所述数据操作请求中的原始明文数据进行加密时,可以分别对该原始明文数据中的文件路径进行加密得到文件路径密文。
在该实施方式中,该安全存储模块从加解密模块得到数据密文(包括文件路径密文)后,可以将所述数据密文写入所述中间数据缓冲区,然后调用所述数据存储模块执行该数据读取请求所请求的读取操作,此时,该数据存储模块可以从所述中间数据缓冲区读取所述数据密文,并调用所述文件系统或数据库引擎在文件路径密文所对应的目标文件中读取该第二文件数据密文,然后,将该第二文件数据密文存储到所述中间数据缓冲区中。
在该实施方式中,根据Cortex-M系列的处理器芯片的特性,位于普通环境(即非安全区)的数据缓冲区可被位于可信执行环境(即安全区)的代码直接读写,故所述安全存储模块可以直接从所述中间数据缓冲区读取所述第二文件数据密文,然后,该安全存储模块就可以调用所述加解密模块对该第二文件数据密文进行解密,得到文件数据明文,所述安全存储模块将所述文件数据明文返回所述可信应用程序,如此就完成了数据读取流程。
本实施方式读取文件数据时,可以由位于普通环境中的数据存储模块读取从位于普通环境或外部存储器的目标文件中读取文件数据密文到中间数据缓冲区,然后由位于可信执行环境中的安全存储模块读取并调用可信执行环境中的加解密模块进行解密,保证了文件数据的读取安全性。
在一种可能的实施方式中,所述方法还包括:
所述数据存储模块调用所述安全存储模块的初始化函数,将所述数据存储模块的局部变量数组传递给所述安全存储模块,其中,所述局部变量数组包括所述中间数据缓冲区的起始位置的地址以及所述数据存储模块中各文件操作函数的地址;
所述安全存储模块读取并存储所述局部变量数组中的地址;
其中,所述安全存储模块基于所述局部变量数组中的相应地址调用所述中间数据缓冲区和所述数据存储模块。
在该实施方式中,根据Cortex-M系列的处理器芯片的特性,该安全存储模块调用数据存储模块执行相关操作需要拥有被调用的相关函数的地址。因此,在系统上电初始化阶段,该数据存储模块可以先调用安全存储模块中的初始化函数进行一系列初始化操作,来获取相关地址。
在该实施方式中,该数据存储模块可以将该中间数据缓冲区的起始位置的地址放置于局部变量数组中,同时,将其自身的“创建文件”、“删除文件”、“打开文件”、“关闭文件”、“读取文件”和“写入文件”等各文件操作函数的地址也放置于局部变量数组中。该数据存储模块可以调用该安全存储模块的初始化函数,该初始化函数可以以Trust Zone forCortex-M中Non-Secure Callable(非安全可调用)函数的形式被直接调用,该初始化函数所传参数为局部变量数组中的地址,即所述中间数据缓冲区的起始位置的地址以及所述数据存储模块中各文件操作函数的地址。所述安全存储模块的初始化模块被调用后,就可以获取并存储所述局部变量数组中的地址,这样,该安全存储模块就可以基于这些地址调用中间数据缓冲区和所述数据存储模块,比如说,可以基于该中间数据缓冲区的起始位置的地址,读写该中间数据缓冲区的数据,可以基于该“读取文件”函数的地址,调用该数据存储模块中的读取函数来执行数据读取操作,可以基于该“写入文件”函数的地址,调用该数据存储模块中的写入函数来执行数据写入操作;等等。
在一种可能的实施方式中,在所述安全存储模块存储所述局部变量数组中的地址之前,所述方法还包括:
所述安全存储模块检查所述局部变量数组中的地址是否均属于所述普通环境中的地址;
若是,则向所述数据存储模块返回初始化成功消息;
若否,则向所述数据存储模块返回初始化失败消息。
在该实施方式中,该中间数据缓冲区和所述数据存储模块是位于普通环境中,故该安全存储模块可以检查所述局部变量数组中的地址是否均属于所述普通环境中的地址,如果属于,则说明初始化成功,可以将该局部变量数组中的地址保存在可信执行环境的局部变量中,向数据存储模块返回初始化成功消息;如果不属于,则说明初始化失败,可以向数据存储模块返回初始化失败消息,数据存储模块可以重新进行初始化,再次调用安全存储模块的初始化函数。
在一种可能的实施方式中,所述安全存储模块调用所述数据存储模块执行所述数据操作请求所请求的操作,包括:
所述安全存储模块将所述数据存储模块中目标文件操作函数的地址最低位清零,调用所述目标文件操作函数执行所述数据操作请求所请求的操作,所述目标文件操作函数为所述数据操作请求所请求的操作对应的文件操作函数。
在该实施方式中,位于普通环境中的函数可被可信执行环境中的代码直接调用,只需要将函数地址的最低位(LSB)清零,故,安全存储模块在调用数据存储模块中的目标文件操作函数时,可以将该数据存储模块中目标文件操作函数的地址最低位清零后作为Non-Secure函数直接进行调用,所述目标文件操作函数为所述数据操作请求所请求的操作对应的文件操作函数。比如说在写数据时,目标文件操作函数为写入文件函数,此时,该安全存储模块可以将写入文件函数的地址最低位清零,如此就可以调用该写入文件函数进行数据写入操作。
在一种可能的实施方式中,所述调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,包括:
所述安全存储模块将所述可信应用程序的唯一标识和所述文件路径发送给所述加解密模块;
所述加解密模块使用所述可信应用程序的唯一标识和所述文件路径对安全存储密钥进行分散,得到所述原始明文数据对应的文件加密密钥;
所述加解密模块使用所述文件加密密钥对所述原始明文数据进行加密,得到数据密文。
在该实施方式中,该安全存储模块可以将所述可信应用程序的唯一标识和所述文件路径传递给所述加解密模块,并调用该加解密模块的密钥初始化函数,该加解密模块的密钥初始化函数可以基于密钥分散算法,使用可信应用程序的唯一标识和文件路径对预设的安全存储密钥进行分散,得到本次数据操作请求所请求操作的文件对应的文件加密密钥,这样,在该数据操作请求为数据写入请求时,安全存储模块将文件路径或文件数据传递给数据加解密模块后,就可以调用数据加密函数,使用该文件加密密钥对文件路径加密得到文件路径密文,对文件数据加密得到文件数据密文。在该数据操作请求为数据读取请求时,该安全存储模块会从中间数据缓冲区读取第二文件数据密文,此时,该安全存储模块会将该第二文件数据密文传递给数据加解密模块,并调用数据解密函数,使用该文件加密密钥对该第二文件数据密文进行解密,得到文件数据明文。
本实施方式使用可信应用程序的唯一标识和文件路径来获取文件加密密钥,使得不同文件路径下的文件都对应有不同的加密密钥,方案简单且安全。
在一种可能的实施方式中,所述数据操作请求还包括文件操作类型,所述中间数据缓冲区的数据存储结构包括文件路径密文区域、文件数据密文区域和文件操作类型区域。
示例的,图2示出根据本公开的实施例的中间数据缓冲区的数据结构示意图。如图2所示,该中间数据缓冲区的数据存储结构包括文件路径密文区域201、文件数据密文区域202和文件操作类型区域203,在数据写入流程中,该安全存储模块在将数据密文写入所述中间数据缓冲区时,可以将该数据密文中的文件路径密文填入该中间数据缓冲区的文件路径密文区域201,将文件数据密文填入该中间数据缓冲区的文件数据密文区域202,同时将可信应用程序要进行的文件操作类型填入该文件操作类型区域203。
在一种可能的实施方式中,在所述数据存储模块调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件之后,所述方法还包括:
所述数据存储模块将所述文件系统或数据库引擎的写入结果记录到所述中间数据缓冲区。
在该实施方式中,如果数据存储模块调用所述文件系统或数据库引擎将所述第一文件数据密文成功写入到所述目标文件,则写入结果为写入成功,如果该文件系统或数据库引擎没有将所述第一文件数据密文成功写入到所述目标文件,则可以重新尝试将所述第一文件数据密文成功写入到所述目标文件,如果写入次数超过预设次数比如说10次仍未成功写入,则确定写入结果为写入失败。所述数据存储模块可以将所述文件系统或数据库引擎的写入结果记录到所述中间数据缓冲区,这样,在安全存储模块接收到请求读取某文件路径密文对应的文件数据密文的数据读取请求时,若该安全存储模块从该中间数据缓冲区读取到该文件数据密文的写入结果为写入成功时,可以调用该数据存储模块进行数据读取操作,若该安全存储模块从该中间数据缓冲区读取到该文件数据密文的写入结果为写入失败时,就可以结束读取流程,不必再调用该数据存储模块进行数据读取操作。
本公开还提供了一种数据安全存储装置,图3示出根据本公开的实施例的数据安全存储装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图3所示,所述数据安全存储装置适用于支持信任区域Trust Zone技术的处理器,包括位于可信执行环境中的可信应用程序301、安全存储模块302、加解密模块303;位于普通环境中的中间数据缓冲区304、数据存储模块305、文件系统或数据库引擎306,其中:
所述安全存储模块302,被配置为响应于接收到所述可信应用程序301发送的数据操作请求,调用加解密模块303对所述数据操作请求中的原始明文数据进行加密得到数据密文,将所述数据密文写入所述中间数据缓冲区304,调用所述数据存储模块305执行所述数据操作请求所请求的操作,所述原始明文数据包括文件路径,所述数据密文包括文件路径密文;
所述数据存储模块305,被配置为从所述中间数据缓冲区304读取所述数据密文,并调用所述文件系统或数据库引擎306在数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,所述目标文件包括所述文件路径密文所对应的文件,所述数据密文存储区域包括位于所述普通环境中的存储区域307和位于所述处理器外部的存储器308。
在一种可能的实现方式中,若所述数据操作请求为数据写入请求,则原始明文数据还包括待写入的文件数据,所述数据密文还包括第一文件数据密文;
所述数据存储模块305中调用所述文件系统或数据库引擎306在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作的部分被配置为:
调用所述文件系统或数据库引擎306将所述第一文件数据密文写入到所述目标文件。
在一种可能的实现方式中,若所述数据操作请求为数据读取请求,则所述数据存储模块305中调用所述文件系统或数据库引擎306在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作的部分被配置为:
调用所述文件系统或数据库引擎306读取所述目标文件中存储的第二文件数据密文到所述中间数据缓冲区304中;
所述安全存储模块302,被配置为从所述中间数据缓冲区304读取所述第二文件数据密文,并调用所述加解密模块303解密所述第二文件数据密文得到文件数据明文;将所述文件数据明文返回所述可信应用程序。
在一种可能的实现方式中,所述数据存储模块305,被配置为调用所述安全存储模块302的初始化函数,将所述数据存储模块305的局部变量数组传递给所述安全存储模块302,其中,所述局部变量数组包括所述中间数据缓冲区304的起始位置的地址以及所述数据存储模块305中各文件操作函数的地址;
所述安全存储模块302,被配置为获取并存储所述局部变量数组中的地址;
其中,所述安全存储模块302基于所述局部变量数组中的相应地址调用所述中间数据缓冲区304和所述数据存储模块305。
在一种可能的实现方式中,所述安全存储模块302,被配置为检查所述局部变量数组中的地址是否均属于所述普通环境中的地址;
若是,则向所述数据存储模块305返回初始化成功消息;
若否,则向所述数据存储模块305返回初始化失败消息。
在一种可能的实现方式中,所述安全存储模块302中调用所述数据存储模块305执行所述数据操作请求所请求的操作的部分被配置为:
将所述数据存储模块305中目标文件操作函数的地址最低位清零,调用所述目标文件操作函数执行所述数据操作请求所请求的操作,所述目标文件操作函数为所述数据操作请求所请求的操作对应的文件操作函数。
在一种可能的实现方式中,所述安全存储模块302中调用加解密模块303对所述数据操作请求中的原始明文数据进行加密得到数据密文被配置为:
将所述可信应用程序301的唯一标识和所述文件路径发送给所述加解密模块303,调用所述加解密模块303对所述数据操作请求中的原始明文数据进行加密得到数据密文;
所述加解密模块303,被配置为使用所述可信应用程序301的唯一标识和所述文件路径对安全存储密钥进行分散,得到所述原始明文数据对应的文件加密密钥;使用所述文件加密密钥对所述原始明文数据进行加密,得到数据密文。
在一种可能的实现方式中,所述数据操作请求还包括文件操作类型,所述中间数据缓冲区304的数据存储结构包括文件路径密文区域、文件数据密文区域和文件操作类型区域。
在一种可能的实现方式中,所述数据存储模块305,被配置为在调用所述文件系统或数据库引擎306将所述第一文件数据密文写入到所述目标文件之后,将所述文件系统或数据库引擎306的写入结果记录到所述中间数据缓冲区304。
本装置实施方式中提及的技术术语和技术特征与上述方法实施方式中提及的相同或相似,对于本装置中涉及的技术术语和技术特征的解释和说明可参考上述方法实施方式的解释的说明,此处不再赘述。
本公开还公开了一种电子设备,图4示出根据本公开的实施例的电子设备的结构框图。
如图4所示,所述电子设备400包括存储器401和处理器402,其中,存储器401用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器402执行以实现根据本公开的实施例的方法。
本公开实施例还提供一种芯片,所述芯片包括上述数据安全存储装置,所述芯片可以是任意一种可以实现上述数据安全存储装置的芯片,所述装置可以通过软件、硬件或者两者的结合实现成为芯片的部分或者全部。示例的,该芯片可以是Cortex-M系列的处理器芯片。
图5示出适于用来实现本公开实施例方法的计算机系统的结构示意图。
如图5所示,计算机系统500包括处理单元501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行上述实施例中的各种处理。在RAM503中,还存储有计算机系统500操作所需的各种程序和数据。处理单元501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。其中,所述处理单元501可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括计算机指令,该计算机指令被处理器执行时实现上文所述的方法步骤。在这样的实施例中,该计算机程序产品可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (21)
1.一种数据安全存储方法,其特征在于,适用于支持信任区域Trust Zone技术的处理器,所述处理器包括可信执行环境和普通环境,所述可信执行环境中运行有可信应用程序、安全存储模块、加解密模块;所述普通环境中运行有中间数据缓冲区、数据存储模块、文件系统或数据库引擎,所述方法包括:
所述安全存储模块响应于接收到所述可信应用程序发送的数据操作请求,调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,所述原始明文数据包括文件路径;
所述安全存储模块将所述数据密文写入所述中间数据缓冲区,所述数据密文包括文件路径密文;
所述安全存储模块调用所述数据存储模块执行所述数据操作请求所请求的操作;
所述数据存储模块从所述中间数据缓冲区读取所述数据密文,并调用所述文件系统或数据库引擎在数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,所述目标文件包括所述文件路径密文所对应的文件,所述数据密文存储区域包括位于所述普通环境中的存储区域和位于所述处理器外部的存储器。
2.根据权利要求1所述的数据安全存储方法,其特征在于,若所述数据操作请求为数据写入请求,则原始明文数据还包括待写入的文件数据,所述数据密文还包括第一文件数据密文;
所述调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,包括:
所述数据存储模块调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件。
3.根据权利要求1所述的数据安全存储方法,其特征在于,若所述数据操作请求为数据读取请求,则所述调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,包括:
所述数据存储模块调用所述文件系统或数据库引擎读取所述目标文件中存储的第二文件数据密文到所述中间数据缓冲区中;
所述方法还包括:
所述安全存储模块从所述中间数据缓冲区读取所述第二文件数据密文,并调用所述加解密模块解密所述第二文件数据密文得到文件数据明文;
所述安全存储模块将所述文件数据明文返回所述可信应用程序。
4.根据权利要求1所述的数据安全存储方法,其特征在于,所述方法还包括:
所述数据存储模块调用所述安全存储模块的初始化函数,将所述数据存储模块的局部变量数组传递给所述安全存储模块,其中,所述局部变量数组包括所述中间数据缓冲区的起始位置的地址以及所述数据存储模块中各文件操作函数的地址;
所述安全存储模块获取并存储所述局部变量数组中的地址;
其中,所述安全存储模块基于所述局部变量数组中的相应地址调用所述中间数据缓冲区和所述数据存储模块。
5.根据权利要求4所述的数据安全存储方法,其特征在于,在所述安全存储模块存储所述局部变量数组中的地址之前,所述方法还包括:
所述安全存储模块检查所述局部变量数组中的地址是否均属于所述普通环境中的地址;
若是,则向所述数据存储模块返回初始化成功消息;
若否,则向所述数据存储模块返回初始化失败消息。
6.根据权利要求4所述的数据安全存储方法,其特征在于,所述安全存储模块调用所述数据存储模块执行所述数据操作请求所请求的操作,包括:
所述安全存储模块将所述数据存储模块中目标文件操作函数的地址最低位清零,调用所述目标文件操作函数执行所述数据操作请求所请求的操作,所述目标文件操作函数为所述数据操作请求所请求的操作对应的文件操作函数。
7.根据权利要求1所述的数据安全存储方法,其特征在于,所述调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,包括:
所述安全存储模块将所述可信应用程序的唯一标识和所述文件路径发送给所述加解密模块;
所述加解密模块使用所述可信应用程序的唯一标识和所述文件路径对安全存储密钥进行分散,得到所述原始明文数据对应的文件加密密钥;
所述加解密模块使用所述文件加密密钥对所述原始明文数据进行加密,得到数据密文。
8.根据权利要求1所述的数据安全存储方法,其特征在于,所述数据操作请求还包括文件操作类型,所述中间数据缓冲区的数据存储结构包括文件路径密文区域、文件数据密文区域和文件操作类型区域。
9.根据权利要求2所述的数据安全存储方法,其特征在于,在所述数据存储模块调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件之后,所述方法还包括:
所述数据存储模块将所述文件系统或数据库引擎的写入结果记录到所述中间数据缓冲区。
10.一种数据安全存储装置,其特征在于,适用于支持信任区域Trust Zone技术的处理器,包括位于可信执行环境中的可信应用程序、安全存储模块、加解密模块;位于普通环境中的中间数据缓冲区、数据存储模块、文件系统或数据库引擎,其中:
所述安全存储模块,被配置为响应于接收到所述可信应用程序发送的数据操作请求,调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文,将所述数据密文写入所述中间数据缓冲区,调用所述数据存储模块执行所述数据操作请求所请求的操作,所述原始明文数据包括文件路径,所述数据密文包括文件路径密文;
所述数据存储模块,被配置为从所述中间数据缓冲区读取所述数据密文,并调用所述文件系统或数据库引擎在数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作,所述目标文件包括所述文件路径密文所对应的文件,所述数据密文存储区域包括位于所述普通环境中的存储区域和位于所述处理器外部的存储器。
11.根据权利要求10所述的数据安全存储装置,其特征在于,若所述数据操作请求为数据写入请求,则原始明文数据还包括待写入的文件数据,所述数据密文还包括第一文件数据密文;
所述数据存储模块中调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作的部分被配置为:
调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件。
12.根据权利要求10所述的数据安全存储装置,其特征在于,若所述数据操作请求为数据读取请求,则所述数据存储模块中调用所述文件系统或数据库引擎在所述数据密文存储区域的目标文件中进行所述数据操作请求所请求的操作的部分被配置为:
调用所述文件系统或数据库引擎读取所述目标文件中存储的第二文件数据密文到所述中间数据缓冲区中;
所述安全存储模块,被配置为从所述中间数据缓冲区读取所述第二文件数据密文,并调用所述加解密模块解密所述第二文件数据密文得到文件数据明文;将所述文件数据明文返回所述可信应用程序。
13.根据权利要求10所述的数据安全存储装置,其特征在于,
所述数据存储模块,被配置为调用所述安全存储模块的初始化函数,将所述数据存储模块的局部变量数组传递给所述安全存储模块,其中,所述局部变量数组包括所述中间数据缓冲区的起始位置的地址以及所述数据存储模块中各文件操作函数的地址;
所述安全存储模块,被配置为获取并存储所述局部变量数组中的地址;
其中,所述安全存储模块基于所述局部变量数组中的相应地址调用所述中间数据缓冲区和所述数据存储模块。
14.根据权利要求13所述的数据安全存储装置,其特征在于,
所述安全存储模块,被配置为检查所述局部变量数组中的地址是否均属于所述普通环境中的地址;
若是,则向所述数据存储模块返回初始化成功消息;
若否,则向所述数据存储模块返回初始化失败消息。
15.根据权利要求13所述的数据安全存储装置,其特征在于,所述安全存储模块中调用所述数据存储模块执行所述数据操作请求所请求的操作的部分被配置为:
将所述数据存储模块中目标文件操作函数的地址最低位清零,调用所述目标文件操作函数执行所述数据操作请求所请求的操作,所述目标文件操作函数为所述数据操作请求所请求的操作对应的文件操作函数。
16.根据权利要求10所述的数据安全存储装置,其特征在于,所述安全存储模块中调用加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文被配置为:
将所述可信应用程序的唯一标识和所述文件路径发送给所述加解密模块,调用所述加解密模块对所述数据操作请求中的原始明文数据进行加密得到数据密文;
所述加解密模块,被配置为使用所述可信应用程序的唯一标识和所述文件路径对安全存储密钥进行分散,得到所述原始明文数据对应的文件加密密钥;使用所述文件加密密钥对所述原始明文数据进行加密,得到数据密文。
17.根据权利要求10所述的数据安全存储装置,其特征在于,所述数据操作请求还包括文件操作类型,所述中间数据缓冲区的数据存储结构包括文件路径密文区域、文件数据密文区域和文件操作类型区域。
18.根据权利要求11所述的数据安全存储装置,其特征在于,
所述数据存储模块,被配置为在调用所述文件系统或数据库引擎将所述第一文件数据密文写入到所述目标文件之后,将所述文件系统或数据库引擎的写入结果记录到所述中间数据缓冲区。
19.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1至9任一项所述的数据安全存储方法。
20.一种可读存储介质,其特征在于,其上存储有计算机指令,该计算机指令被处理器执行时实现权利要求1至9任一项所述的方法步骤。
21.一种芯片,其特征在于,所述芯片包括如权利要求10至18任一项所述的数据安全存储装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211305730.3A CN115374483B (zh) | 2022-10-24 | 2022-10-24 | 数据安全存储方法及装置、电子设备、介质、芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211305730.3A CN115374483B (zh) | 2022-10-24 | 2022-10-24 | 数据安全存储方法及装置、电子设备、介质、芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115374483A true CN115374483A (zh) | 2022-11-22 |
CN115374483B CN115374483B (zh) | 2023-01-20 |
Family
ID=84073945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211305730.3A Active CN115374483B (zh) | 2022-10-24 | 2022-10-24 | 数据安全存储方法及装置、电子设备、介质、芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115374483B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116933275A (zh) * | 2023-09-18 | 2023-10-24 | 北京密码云芯科技有限公司 | 数据防泄漏方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297611A (zh) * | 2021-02-08 | 2021-08-24 | 阿里云计算有限公司 | 数据处理、加密存储、读取方法、设备及存储介质 |
US20210334381A1 (en) * | 2020-04-28 | 2021-10-28 | Realtek Semiconductor Corp. | Method and electronic device capable of securely storing and loading firmware |
CN114637743A (zh) * | 2022-02-17 | 2022-06-17 | 阿里巴巴(中国)有限公司 | 数据库的操作方法、系统、存储介质以及计算机终端 |
CN114780981A (zh) * | 2022-05-11 | 2022-07-22 | 珠海全志科技股份有限公司 | 安全数据的存储方法、计算机装置及计算机可读存储介质 |
-
2022
- 2022-10-24 CN CN202211305730.3A patent/CN115374483B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210334381A1 (en) * | 2020-04-28 | 2021-10-28 | Realtek Semiconductor Corp. | Method and electronic device capable of securely storing and loading firmware |
CN113297611A (zh) * | 2021-02-08 | 2021-08-24 | 阿里云计算有限公司 | 数据处理、加密存储、读取方法、设备及存储介质 |
CN114637743A (zh) * | 2022-02-17 | 2022-06-17 | 阿里巴巴(中国)有限公司 | 数据库的操作方法、系统、存储介质以及计算机终端 |
CN114780981A (zh) * | 2022-05-11 | 2022-07-22 | 珠海全志科技股份有限公司 | 安全数据的存储方法、计算机装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
何卫国等: "一种Flash安全存储控制器的设计与实现", 《通信技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116933275A (zh) * | 2023-09-18 | 2023-10-24 | 北京密码云芯科技有限公司 | 数据防泄漏方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115374483B (zh) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980794B (zh) | 基于TrustZone的文件加解密方法、装置及终端设备 | |
US9098712B2 (en) | Encrypting operating system | |
EP1761837B1 (en) | System and method for secure inter-platform and intra-platform communications | |
JP4673890B2 (ja) | オンラインサービスを用いてデバイスに直接証明秘密鍵を転送する方法 | |
WO2021164166A1 (zh) | 一种业务数据保护方法、装置、设备及可读存储介质 | |
CN106997439A (zh) | 基于TrustZone的数据加解密方法、装置及终端设备 | |
JP2009518742A (ja) | マイクロコントローラにおけるデータの安全な取扱いのための方法および装置 | |
KR20030082485A (ko) | 대칭 키 암호화에 기초한 데이터의 저장 및 검색 | |
CN106992851B (zh) | 基于TrustZone的数据库文件口令加解密方法、装置及终端设备 | |
KR20030082484A (ko) | 공개 키 암호화에 기초한 데이터의 저장 및 검색 | |
US20240031129A1 (en) | Data encryption method, data decryption method, terminal, and storage medium | |
JPH0936851A (ja) | スマート・カードからのプライベート鍵操作をホスト・ベースの暗号サービスと透過的に統合するシステム及び方法 | |
CN108810017B (zh) | 业务处理安全验证方法及装置 | |
US20220366030A1 (en) | Password Management Method and Related Apparatus | |
CN104618096A (zh) | 保护密钥授权数据的方法、设备和tpm密钥管理中心 | |
US20040139317A1 (en) | Methods for improved security of software applications | |
CN115374483B (zh) | 数据安全存储方法及装置、电子设备、介质、芯片 | |
US20090150680A1 (en) | Data Security in Mobile Devices | |
US20200242235A1 (en) | Virus immune computer system and method | |
US10635826B2 (en) | System and method for securing data in a storage medium | |
US9135449B2 (en) | Apparatus and method for managing USIM data using mobile trusted module | |
CN113672973B (zh) | 基于可信执行环境的risc-v架构的嵌入式设备的数据库系统 | |
CN117157623A (zh) | 结合容器化应用程序使用时保护秘密的系统和方法 | |
CN108449753B (zh) | 一种手机设备读取可信计算环境中的数据的方法 | |
CN116226870B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |