CN117668932A - 数据存储方法和电子设备 - Google Patents

数据存储方法和电子设备 Download PDF

Info

Publication number
CN117668932A
CN117668932A CN202211048230.6A CN202211048230A CN117668932A CN 117668932 A CN117668932 A CN 117668932A CN 202211048230 A CN202211048230 A CN 202211048230A CN 117668932 A CN117668932 A CN 117668932A
Authority
CN
China
Prior art keywords
data
rpmb
tee
fingerprint
storage area
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
Application number
CN202211048230.6A
Other languages
English (en)
Inventor
李忠月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211048230.6A priority Critical patent/CN117668932A/zh
Publication of CN117668932A publication Critical patent/CN117668932A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例适用于数据处理领域,提供一种数据存储方法和电子设备,该方法应用于包括至少两个TEE和RPMB的电子设备中,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE与第一存储区域中存着相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,第一存储区域基于相同的第一安全密钥存储待存储数据,提高了多TEE框架中向RPMB写入数据的安全性。

Description

数据存储方法和电子设备
技术领域
本申请涉及数据处理领域,并且更具体地,涉及一种数据存储方法和电子设备。
背景技术
重放保护内存块(Replay Protected Memory Block,RPMB)通常是指存储器中一个单独的物理分区,常常用来存储密钥等敏感数据。其中,存储器可以包括通用文件存储器(Universal Flash Storage,UFS),和嵌入式多媒体存储卡(Embedded Multi Media Card,eMMC)。
随着终端技术的不断进步,多可信执行环境(Trustedexecution environment,TEE)架构成为了一种常见的架构。通常,RPMB需要使用安全密钥(Secure Key)对TEE发送的待存储数据进行认证,并在认证通过的情况下存储待存储数据。Secure Key只能存储在一个TEE中,在终端设备采用多TEE框架的情况下,未存储Secure Key的TEE需要通过调用存储有Secure Key的TEE中的Secure Key,对数据进行认证计算得到第一认证数据,以使RPMB根据第一认证数据确定是否存储待存储数据。然而,未存储Secure Key的TEE在调用SecureKey的过程中,可能出现安全密钥泄露的情况,存在安全隐患。
基于此,如何提高多TEE框架中各TEE向RPMB写入数据的安全性成为了一个亟待解决的问题。
发明内容
本申请提供了一种数据存储方法,能够提高多TEE框架中各TEE向RPMB写入数据的安全性。
第一方面,提供了一种数据存储方法,该方法应用于电子设备中,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,其中,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,第一TEE与第一存储区域中存储第一安全密钥,第一安全密钥用于第一存储区域和第一TA对待存储数据进行认证计算,待存储数据是指向第一存储区域写入的数据,该方法包括:
第一TA向第一存储区域发送第一数据包,第一数据包中包括待存储数据和第一认证数据,第一认证数据为第一TA采用第一安全密钥对待存储数据进行认证计算后得到的数据;
第一存储区域基于第一安全密钥存储待存储数据。
本申请的实施例中,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存着与第一TEE中相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,第一存储区域基于相同的第一安全密钥存储待存储数据。这样使得第一TEE在向与之对应的第一存储区域存储待存储数据时,采用的第一安全密钥是存储在第一TEE的安全密钥,无需从其他TEE中调用安全密钥,进而避免了从其他TEE中调用安全密钥而可能出现的安全密钥泄露的情况,提高了多TEE框架中向RPMB写入数据的安全性。进一步地,采用本申请实施例提供的数据存储方法,各个TEE在向RPMB写入数据的过程中,无需相互调用安全密钥,减少了由于调用安全密钥导致的数据交互,简化了向RPMB写入数据的流程。
结合第一方面,在第一方面的某些实现方式中,至少两个TEE还包括第二TEE,RPMB包括第二存储区域,第二TEE与第二存储区域对应;第二TEE与第二存储区域中存储第二安全密钥,第二安全密钥与第一安全密钥不同。
应理解,存储设备支持multiple RPMB region的功能,不同的RPMB分区可以写入不同的安全密钥。对应的,不同的TEE之中也可以存储不同的安全密钥。
示例性的,在第一TEE是指TEE-0,对应的,第一存储区域是指RPMB region0,第一安全密钥是指secure key0的情况下,第二TEE可以是指TEE-1,对应的第二存储区域可以是指RPMB region0,第二安全密钥是指secure key1,通常secure key0与secure key1不同。
本申请的实施例中,至少两个第一TEE中包括第一TEE和第二TEE,第一TEE与第一存储区域对应,第二TEE与第二存储区域对应,第一存储区域和第一TEE中存储第一安全密钥,第二TEE和第二存储区域中存储第二安全密钥,其中,第一安全密钥和第二安全密钥不同,这样使得第二TEE在向第二存储区域写入数据时,即使出现了误将数据发送给第一存储区域的情况,由于第一安全密钥和第二安全密钥不同,第一存储区域采用第一安全密钥对写入数据校验,不会校验通过,因此第一存储区域无法存储第二TEE发送的数据,也即是提高了各个TEE向RPMB分区写入数据的针对性。进一步地,由于第一TEE和第二TEE中存储的安全密钥不同,也即是在向第一存储区域写入数据时采用的安全密钥,与,向第二存储区域写入数据时采用的安全密钥不同,这样使得RPMB每个PRMB分区写入数据采用的是不同的安全密钥,进一步地提高了写入RPMB的数据的安全性。
结合第一方面,在第一方面的某些实现方式中,电子设备还包括内核kernel,kernel包括Hypervisor模块,第一TA向第一存储区域发送第一数据包,包括:第一TA向Hypervisor模块发送第一数据包;Hypervisor模块向第一存储区域发送第一数据包。
应理解,Hypervisor模块具有访问电子设备器上包括磁盘和内存在内的所有物理设备的功能。服务器启动后,Hypervisor模块会加载所有虚拟机客户端的操作系统(包括TEE-0、TEE-1和存储设备),为虚拟机分配内存、磁盘和网络。这样使得Hypervisor模块可以为第一TEE和存储设备直接分配数据接口,使得TEE-0和存储设备之间、TEE-1和存储设备之间可以传输数据。
结合第一方面,在第一方面的某些实现方式中,第一数据包中包括第一参数,第一参数用于指示第一存储区域;Hypervisor模块向第一存储区域发送第一数据包,包括:Hypervisor模块基于第一参数确定第一存储区域;Hypervisor模块向第一存储区域发送第一数据包。
其中,第一参数可以是指SECURITY PROTOCOL SPECIFIC参数,SECURITY PROTOCOLSPECIFIC参数用于指示第一数据包发送到的RPMB分区的标识。
本申请的实施例中,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存着与第一TEE中相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据、第一参数和第一认证数据得到的第一数据包发送给Hypervisor模块,Hypervisor模块基于第一参数确定第一数据包的接收对象是第一存储区域,然后向第一存储区域发送第一数据包,第一存储区域基于相同的第一安全密钥存储待存储数据。这样使得Hypervisor模块能够准确地将第一数据包发送给第一存储对象,在采用独立的安全密钥对写入第一存储区域的数据进行认证的基础上,进一步地提高了向第一存储区域写入数据的准确性。
结合第一方面,在第一方面的某些实现方式中,kernel还包括ATF模块,第一TA向Hypervisor模块发送第一数据包,包括:第一TA向ATF模块发送第一数据包;ATF模块向Hypervisor模块发送第一数据包。
本申请的实施例中,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存着与第一TEE中相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,向第一存储区域发送给第一数据包的过程,可以通过ATF模块向第一存储区域发送,通常,通过ATF模块向RPMB发送数据是预先设置的进程,因此无需用户设置向RPMB发送数据的进程,提高了向第一TEE向第一存储区域写入数据的便捷性。
结合第一方面,在第一方面的某些实现方式中,kernel还包括第一TEE tz驱动模块,Hypervisor模块向第一存储区域发送第一数据包,包括:Hypervisor模块向第一TEE tz驱动模块发送第一数据包;第一TEE tz驱动模块向第一存储区域发送第一数据包。
结合第一方面,在第一方面的某些实现方式中,kernel还包括存储设备驱动模块,第一TEE tz驱动模块向第一存储区域发送第一数据包,包括:第一TEE tz驱动模块向存储设备驱动模块发送第一数据包;存储设备驱动模块向第一存储区域发送第一数据包。
应理解,TEE-1tz驱动模块是kernel中的模块。在TEE-1tz驱动模块是kernel中的模块的情况下,Hypervisor模块可以按照预先设置的进程向RPMB region1发送第一数据包。
本申请的实施例中,Hypervisor模块向第一存储区域发送第一数据包时,利用了kernel中的第一TEE tz驱动模块,这样使得在向第一存储区域发送第一数据包时,可以利用预先设置的进程发送,无需用户设定向第一存储区域发送第一数据包的进程,提高了向第一存储区域写入数据的便捷性。
结合第一方面,在第一方面的某些实现方式中,第一存储区域基于第一安全密钥存储待存储数据,包括:第一存储区域采用第一安全密钥对第一数据包中的待存储数据进行认证计算,得到第二认证数据;在第一认证数据和第二认证数据匹配的情况下,第一存储区域存储待存储数据。
应理解,第一认证数据是采用第一安全密钥对待存储数据进行认证计算得到的,第二认证数据也是采用相同的第一安全密钥对待存储数据进行认证计算得到的。也即是说,在第一安全密钥相同、待存储数据相同,同时认证计算的计算方式相同的情况下,第一认证数据和第二认证数据是分别采用相同的安全密钥对相同的数据进行了相同的计算得到的,第一认证数据和第二认证数据也相同。
本申请的实施例中提供的数据存储方法,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存着与第一TEE中相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,第一存储区域采用相同的第一安全密钥对第一数据包中的待存储数据进行相同的认证计算,得到第二认证数据,并在第一认证数据和第二认证数据匹配的情况下,存储待存储数据,基于相同的第一安全密钥存储待存储数据。这样使得存入第一存储区域的数据均是第一存储区域通过独立的安全密钥进行校验通过的数据,能够有效地避免未知来源的数据对存储在第一存储区域中的数据进行攻击,提高了存储在第一存储区域中数据的安全性。
结合第一方面,在第一方面的某些实现方式中,电子设备还包括富执行环境REE和第一器件,REE中运行第一客户端应用程序CA,该方法还包括:接收第一操作,第一操作用于指示获取待存储数据;响应于第一操作,第一CA向第一TA发送第一请求,第一请求用于指示第一TA获取待存储数据;响应于第一请求,第一TA指示第一器件采集第一数据;第一TA基于第一数据得到待存储数据。
结合第一方面,在第一方面的某些实现方式中,第一器件包括指纹传感器。
结合第一方面,在第一方面的某些实现方式中,第一器件包括摄像头。
结合第一方面,在第一方面的某些实现方式中,第一TA包括人脸TA和第一RPMB服务模块,第一RPMB服务模块中存储所述第一安全密钥,待存储数据为人脸识别数据,第一TA向Hypervisor模块发送第一数据包,包括:人脸TA指示摄像头采集人脸识别数据;人脸TA向第一RPMB服务模块发送人脸识别数据,第一RPMB服务模块基于人脸识别数据生成第一数据包;第一RPMB服务模块向Hypervisor模块发送第一数据包。
结合第一方面,在第一方面的某些实现方式中,电子设备还包括富执行环境REE和摄像头,REE中运行人脸客户端应用程序CA,人脸TA指示摄像头采集人脸识别数据之前,该方法还包括:人脸CA检测到人脸识别注册操作,人脸识别注册操作用于指示获取人脸识别数据;响应于人脸识别注册操作,人脸CA向人脸TA发送人脸识别注册请求,人脸识别注册请求用于指示人脸TA获取人脸识别数据;上述人脸TA指示摄像头采集人脸识别数据,包括:响应于人脸识别注册请求,人脸TA指示摄像头采集人脸识别数据。
结合第一方面,在第一方面的某些实现方式中,第一TA包括指纹TA和第二RPMB服务模块,第二RPMB服务模块中存储所述第一安全密钥,待存储数据为指纹数据,第一TA向Hypervisor模块发送第一数据包,包括:指纹TA指示指纹传感器采集指纹数据;指纹TA向第二RPMB服务模块发送指纹数据,第二RPMB服务模块基于指纹数据生成第一数据包;第二RPMB服务模块向Hypervisor模块发送第一数据包。
结合第一方面,在第一方面的某些实现方式中,电子设备还包括富执行环境REE和指纹传感器,REE中运行指纹客户端应用程序CA,指纹TA指示指纹传感器采集指纹数据之前,该方法还包括:指纹CA检测到指纹注册操作,指纹注册操作用于指示获取指纹数据;响应于指纹注册操作,指纹CA向指纹TA发送指纹注册请求,指纹注册请求用于指示指纹TA获取指纹数据;上述指纹TA指示指纹传感器采集指纹数据,包括:响应于指纹注册请求,指纹TA指示指纹传感器采集指纹数据。
结合第一方面,在第一方面的某些实现方式中,kernel还包括ATF模块,第二RPMB服务模块向Hypervisor模块发送第一数据包,包括:第二RPMB服务模块向ATF模块发送第一数据包;ATF模块向Hypervisor模块发送第一数据包。
本申请的实施例中,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有指纹TA和第二RPMB服务模块,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存有与第一TEE中相同的第一安全密钥,指纹TA采集指纹数据,并将指纹数据发送给第二RPMB服务模块,第二RPMB服务模块采用第一安全密钥对指纹数据进行认证计算,得到第一认证数据,然后将根据指纹数据和第一认证数据得到的第一数据包发送给第一存储区域,在向第一存储区域发送给第一数据包的过程,可以通过ATF模块向第一存储区域发送,通常,通过ATF模块向RPMB发送数据是预先设置的进程,因此无需用户设置如何向RPMB发送数据,提高了向第一TEE向第一存储区域写入数据的便捷性。
结合第一方面,在第一方面的某些实现方式中,上述认证计算包括哈希HMAC计算。
在本申请的实施例中,第二TA采用安全密钥通过哈希运算对待存储数据进行认证计算,得到第一认证数据,由于哈希运算是目前被广泛应用的,且经受了多种形式攻击的加密算法,使得通过哈希运算得到的第一认证数据是更加可靠的加密数据,提高了得到第一认证数据的安全性。
第二方面,提供了一种数据存储装置,包括用于执行第一方面中任一种方法的单元。该装置可以是服务器,也可以是终端设备,还可以是终端设备内的芯片。该装置可以包括获取单元和处理单元。
当该装置是终端设备时,该处理单元可以是处理器,该输入单元可以是通信接口;该终端设备还可以包括存储器,该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该终端设备执行第一方面中的任一种方法。
当该装置是终端设备内的芯片时,该处理单元可以是芯片内部的处理单元,该输入单元可以是输出接口、管脚或电路等;该芯片还可以包括存储器,该存储器可以是该芯片内的存储器(例如,寄存器、缓存等),也可以是位于该芯片外部的存储器(例如,只读存储器、随机存取存储器等);该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该芯片执行第一方面中的任一种方法。
在一种可能的实现方式中,存储器用于存储计算机程序代码;处理器,处理器执行该存储器所存储的计算机程序代码,当该存储器存储的计算机程序代码被执行时,该处理器用于控制执行:第一TA向第一存储区域发送第一数据包,第一数据包中包括待存储数据和第一认证数据,第一认证数据为第一TA采用第一安全密钥对待存储数据进行认证计算后得到的数据;第一存储区域基于第一安全密钥存储待存储数据。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被数据存储装置运行时,使得该数据存储装置执行第一方面中的任一种数据存储方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被数据存储装置运行时,使得该数据存储装置执行第一方面中的任一种装置方法。
在本申请的实施例中,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存着与第一TEE中相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,第一存储区域基于相同的第一安全密钥存储待存储数据。这样使得第一TEE在向与之对应的第一存储区域存储待存储数据时,采用的第一安全密钥是存储在第一TEE的安全密钥,无需从其他TEE中调用安全密钥,进而避免了从其他TEE中调用安全密钥而可能出现的安全密钥泄露的情况,提高了多TEE框架中向RPMB写入数据的安全性。进一步地,采用本申请实施例提供的数据存储方法,各个TEE在向RPMB写入数据的过程中,无需相互调用安全密钥,减少了由于调用安全密钥导致的数据交互,简化了向RPMB写入数据的流程。
附图说明
图1是一种RPMB写入数据的流程示意图;
图2是一种多个RPMB分区的逻辑地址的示意图;
图3是一种适用于本申请的电子设备的硬件系统的示意图;
图4是一种适用于本申请的电子设备的软件系统的示意图;
图5是本申请实施例提供的一种应用场景的示意图;
图6是本申请实施例提供的一种数据存储的电子设备的示意图;
图7是本申请实施例提供的一种数据存储方法的流程示意图;
图8是本申请实施例提供的另一种数据存储的电子设备的示意图;
图9是本申请实施例提供的另一种数据存储方法的流程示意图;
图10是本申请实施例提供的一种数据存储方法的数据流向的示意图;
图11是本申请实施例提供的一种写入请求的数据格式的示意图;
图12是本申请实施例提供的一种第一数据包的数据格式的示意图;
图13是本申请实施例提供的另一种数据存储方法的流程示意图;
图14是本申请实施例提供的另一种数据存储方法的数据流向的示意图;
图15是本申请提供的一种电子设备的示意图;
图16是本申请提供的一种数据存储的电子设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者更多个该特征。
为了便于理解,示例地给出部分与本申请实施例相关概念的说明以供参考。
1、RPMB
RPMB是指存储器中中一个独立的物理分区,通常用于存储有防止非法篡改需求的数据,例如手机上指纹支付相关的公钥、序列号等。通常,RPMB会对写入操作进行鉴权,但是读取操作并不需要鉴权。
应理解,在生产电子设备的过程中,会为每一个电子设备生成一个唯一的安全密钥,并将该安全密钥烧写到电子设备的存储器中OTP区域中。其中,OTP区域是指只能烧写一次的区域。同时电子设备的主机Host会在安全的执行环境(例如,TEE)中存储该安全密钥。Host在向RPMB写入数据时,RPMB可以采用该安全密钥进行鉴权。
示例性的,以主机Host(TEE中的可信应用程序TA)向设备Device(例如,UFS)写入数据为例进行说明。
如图1所示,Host发送读取计数值Write Cnt请求和一个随机数给Device,以获取Device中的计数值Write Cnt。Device在接收到读取计数值Write Cnt请求之后,采用安全密钥对计数值Write Cnt和随机数进行HMAC计算后生成第一MAC,然后Device将Write Cnt、随机数和第一MAC填充到RPMB数据包对应区域,生成RPMB数据包,并将RPMB数据包发送给Host。Host在接收到RPMB数据包时,采用安全密钥对RPMB数据包中的Write Cnt和随机数进行HMAC计算,得到第二MAC,对比第一MAC和第二MAC的数值是否一致,并在第一MAC和第二MAC数值一致的情况下,对比Host发送给Device的随机数和RPMB数据包中的随机数是否一致,并在Host发送给Device的随机数和RPMB数据包中的随机数一致的情况下,确定RPMB数据包中的Write Cnt可信。
进一步地,Host采用安全密钥对待存储数据的目的地址、待存储数据和Write Cnt进行HMAC计算,得到第三MAC,并将第三MAC填充到RPMB数据包中的MAC区域,得到更新后的RPMB数据包,然后将更新后的RPMB数据包发送给Device。Device接收到的更新后的RPMB数据包,使用安全密钥对待存储数据的目的地址、待存储数据和Write Cnt进行HMAC计算后得到第四MAC,将第四MAC与第三MAC进行比较,在第四MAC和第三MAC一致的情况下,对比更新后的RPMB数据包中的Write Cnt和Device中的Write Cnt是否一致,并在更新后的RPMB数据包中的Write Cnt和Device中的Write Cnt一致的情况下,将更新后的RPMB数据包中的待存储数据存储到待存储数据对应的目的地址中,并且将Device中的Write Cnt进行加1操作,得到更新后的Write Cnt。
在一种可能的情况下,RPMB是指UFS中的一个区域,基于UFS 3.0以上的协议JESD220E文档中的描述,存储设备支持多RPMB区域(multiple RPMB region)的功能。在存储设备支持multiple RPMB region功能的情况下,RPMB中的每个区域均有独立的认证密钥、计数器和结果存储器,且RPMB中每个区域的逻辑地址的起始值为0。
其中,每个RPMB中的区域的逻辑地址的起始地址为0。示例性的,如图2所示,RPMBregion0的物理地址的起始值为0x00000000,RPMB region0的逻辑地址的起始值为0x00000000,region0的区域大小为12M bit。与RPMB region0邻接的RPMB region1的物理地址的起始值为0x00800000,但RPMB region1的逻辑地址的起始值仍为0x00000000,RPMBregion1的区域大小为4M bit。
2、可信执行环境(Trusted execution environment,TEE)
TEE是指终端设备中一个独立的安全运行环境,通常是指和富执行环境(Richexecution environment,REE)逻辑隔离的运行环境。TEE上定义了严格的保护措施,能够抵御常规REE侧易操守的软件攻击。因此TEE通常用于处理安全级别高的任务。
3、富执行环境(Rich execution environment,REE)
REE通常是指终端设备上通用的运行环境,是不具备特定安全功能的运行环境。例如,Andorid系统、IOS系统均属于REE。
TEE和REE之间相互隔离,通常REE无法直接访问TEE的硬件和软件资源,只能通过授权的应用程序编程接口进行交互。
4、可信应用程序(Trusted Application,TA)
TA通常是指在TEE上运行的应用程序。能够为运行在TEE之外的应用程序提供安全服务。
5、客户端应用程序(Client Application,CA)
CA通常是指在REE上运行的应用程序。
6、Hypervisor
运行在基础物理服务器和操作系统之间的中间软件层,通过Hypervisor可以访问电子设备器上包括磁盘和内存在内的所有物理设备。Hypervisor协调硬件资源访问,各个虚拟机之间的防护。服务器启动后,Hypervisor会加载所有虚拟机客户端的操作系统,为虚拟机分配内存、磁盘和网络等。基于Hypervisor的机制,电子设备可以支持多个TEE同时运行。
7、ATF
ATF(Trusted Firmware)是一针对/>芯片给出的底层的开源固件代码。固件将整个系统分成四种运行等级,分别为:EL0、EL1、EL2和EL3。其中,应用程序的运行等级为EL0,驱动的运行等级为EL1,Hypervisor模块的运行等级为EL2,ATF模块的运行等级为EL3。
目前,在终端设备采用多TEE架构的情况下,每个TEE均需要向RPMB中写入数据。应理解,RPMB需要使用安全密钥(Secure Key)对TEE发送的待存储数据进行认证,并在认证通过的情况下存储待存储数据。由于RPMB需要通过同一个Secure Key对待存储数据进行认证,无论该Secure Key存储在哪一个TEE中,其他TEE均需要使用该Secure Key进行认证计算,均需要与存储有该Secure Key的TEE之间进行数据交互。在数据交互的过程中,可能出现安全密钥泄露的情况,存在安全隐患。本申请实施例提供的数据存储方法旨在提高多TEE框架中各TEE向RPMB写入数据的安全性。
本申请实施例提供的数据存储方法,可以应用于电子设备。可选的,电子设备包括终端设备,终端设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobilephone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
示例性的,图3示出了电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
示例性地,在本申请的实施例中,处理器110可以用于执行本申请实施例提供的数据存储方法;例如,第一可信应用程序TA向第二可信应用程序发送第一数据包,第一数据包中包括待存储数据,待存储数据是指向RPMB写入的数据,第一TA是指运行在第一TEE上的可信应用程序,第二TA是指运行在第二TEE中的可信应用程序;第二TA采用安全密钥对第一数据包中的待存储数据进行认证计算,得到第一认证数据;第二TA根据第一认证数据和待存储数据,生成第二数据包;第二TA向RPMB发送第二数据包;RPMB基于第二数据包存储待存储数据。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
可选地,电子设备中的存储器(也称存储设备)包括eMMC和通用文件存储器(Universal File Store,UFS)。其中,存储器中的RPMB通常用于存储有保密需求的数据,在向RPMB中写入数据时,需要通过预先存储的安全密钥进行认证计算,得到认证数据。RPMB用其上存储的安全密钥对写入数据进行校验,在校验通过后,再将校验通过的数据存储在RPMB上。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
需要说明的是,本申请实施例提到的任一电子设备可以包括电子设备100中更多或者更少的模块。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图4是本申请实施例的电子设备100的软件结构框图。
电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图4所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,Wi-Fi驱动等。
需要说明的是,本申请实施例提到的电子设备可以包括上述电子设备中更多或者更少的模块。
下面结合附图对本申请实施例提供的应用场景进行说明。
随着终端技术的不断发展,多TEE架构成为了一种常见的架构。示例性的,如图5所示,终端设备中包括三个TEE和存储设备,分别为TEE-0、TEE-1、TEE-2和UFS。其中,UFS中的RPMB包括三个RPMB分区,分别为RPMB region0、RPMB region1和RPMB region2。TEE-0对应的RPMB分区为RPMB region0,TEE-1对应的RPMB分区为RPMB region1,TEE-2对应的RPMB分区为RPMB region2。TEE-0写入RPMB的数据被存储在RPMB region0,TEE-1写入RPMB的数据被存储在RPMB region1,TEE-2写入RPMB的数据被存储在RPMB region2。
其中,TEE-0和RPMB region0中分别存储相同的secure key0,TEE-1和RPMBregion1中分别存储相同的secure key1,TEE-2和RPMB region2中分别存储相同的securekey2。
下面以TEE-0(第一TEE)为例对如何存储写入RPMB分区的数据进行说明。在TEE-0向RPMB region0(第一存储区域)写入数据时,TEE-0采用secure key0(第一安全密钥)对待存储数据进行认证计算,生成向RPMB region0发送的数据包。RPMB region0接收到TEE-0发送的数据包之后,采用secure key0对该数据包进行校验,并在校验通过的情况下,存储数据包中的待存储数据。
应理解,TEE-1和TEE-2写入数据的过程与上述TEE-0写入数据的过程类似,此处不再赘述。
由于各个TEE可以采用其上存储的安全密钥向对应的RPMB分区写入数据,因此避免了各个TEE之间的相互调用安全密钥的情况,避免了相互调用安全密钥的过程中可能出现的安全密钥泄露的情况。
应理解,上述为对应用场景的举例说明,并不对本申请的应用场景作任何限定。
下面结合图6至图12对本申请实施例提供的数据存储方法进行详细描述。
本申请实施例所提供的数据存储方法可以应用在包括至少两个TEE的电子设备中。示例性的,如图6所示,电子设备包括TEE-0、TEE-1和TEE-2,电子设备中的存储设备包括三个RPMB分区,分别为RPMB region0、RPMB region1和RPMB region2,其中,TEE-0和RPMBregion0中分别存储相同的secure key0,TEE-1和RPMB region1中分别存储相同的securekey1,TEE-2和RPMB region2中分别存储相同的第三安全密钥。在TEE-0(相当于第一TEE)中运行的第一TA根据待存储数据生成第一数据包,并将第一数据包发送给在RPMB region0(相当于第一存储区域),RPMB region0对第一数据包进行校验,并在校验通过之后存储第一数据包中的待存储数据。应理解,第一TEE也可以是指TEE-1,对应的,第一存储区域可以是指RPMB region1,第一安全密钥可以是指secure key1。第一TEE还可以是指TEE-2,对应的,第一存储区域可以是指RPMB region2,第一安全密钥可以是指secure key2。本申请实施例对此不作限制。
可选地,在第一TEE也是指TEE-0,对应的,第一存储区域是指RPMB region0,第一安全密钥是指secure key0的情况下,第二TEE可以是指TEE-1,对应的第二存储区域可以是指RPMB region0,第二安全密钥是指secure key1,通常secure key0与secure key1不同。
为了便于理解,图7至图12所示实施例以第一TEE是指TEE-0,对应的,第一存储区域是指RPMB region0,第一安全密钥是指secure key0为例进行说明。图13和图14所示的实施例以第一TEE是指TEE-1,对应的,第一存储区域是指RPMB region1,第一安全密钥是指secure key1为例进行说明。
下面结合图7对应用在图6所示的电子设备的数据存储方法进行详细描述。
图7为本申请一个实施例中提供的数据存储方法的流程示意图,如图7所示,该方法应用于如图6所示的电子设备中。该方法包括:
S101、第一TA向第一存储区域(即RPMB region0)发送第一数据包。
其中,第一数据包中包括待存储数据和第一认证数据,待存储数据是指向RPMBregion0写入的数据,第一认证数据是指采用secure key0(相当于第一安全密钥)对待存储数据进行认证计算得到的数据。第一TA是指运行在TEE-0(相当于第一TEE)上的可信应用程序,RPMB region0(相当于第一存储区域)是指存储设备上与TEE-0对应的RPMB分区。
应理解,基于UFS 3.0以上协议,存储设备支持multiple RPMB region的功能。在存储设备支持multiple RPMB region功能的情况下,存储设备可以分为多个RPMB分区。其中每个RPMB分区均有其独立的认证密钥、计数器和结果存储器。这样使得每个RPMB分区均能使用其独立的认证密钥来校验待存储数据。
应理解,在生产电子设备过程中,会向电子设备中的存储器中烧写安全密钥,同时,将该安全密钥写入TEE中,以使TEE在向RPMB写入数据时,可以采用安全密钥对待存储数据进行认证计算,得到认证数据,进而使得RPMB在存储数据时,可以通过对认证数据的校验,确保写入数据的安全性。由于本申请实施例中的电子设备中包括多个RPMB分区,对应的,每个RPMB分区均有不同的安全密钥。也即是说,在向电子设备中的存储设备中烧写安全密钥的过程,是向存储设备中每个RPMB分区烧写对应的安全密钥,并将对应的安全密钥烧写到对应的TEE中。
在一种可能的情况下,在向TEE和存储设备中烧写安全密钥的过程,可以是直接按照预先设置好的路径烧写安全密钥,无需额外的应用程序发起烧写安全密钥的进程。
在一种可能的情况下,在向TEE和存储设备中烧写安全密钥的过程,可以是在生产线上的控制程序的调用下,按照预设的路径烧写安全密钥。
应理解,存储设备支持multiple RPMB region的功能,不同的RPMB分区可以写入不同的安全密钥。
示例性的,TEE-0对应的RPMB分区为RPMB region0,RPMB region0的安全密钥为secure key0,则在生产电子设备的过程中,向RPMB region0中烧写secure key0,同时将secure key0写入TEE-0中。
示例性的,TEE-1对应的RPMB分区为RPMB region1,RPMB region1的安全密钥为secure key1,则在生产电子设备的过程中,向RPMB region1中烧写secure key1,同时将secure key1写入TEE-1中。
示例性的,TEE-2对应的RPMB分区为RPMB region2,RPMB region2的安全密钥为secure key2,则在生产电子设备的过程中,向RPMB region2中烧写secure key2,同时将secure key2写入TEE-2中。
可选地,在第一TEE是指TEE-0,对应的,第一存储区域是指RPMB region0,第一安全密钥是指secure key0的情况下,第二TEE可以是指TEE-1,对应的第二存储区域可以是指RPMB region0,第二安全密钥是指secure key1,通常secure key0与secure key1不同。
这样相当于不同的RPMB中存储的用于认证写入数据的安全密钥均不相同,使得不同的RPMB分区可以采用不同的安全密钥对写入RPMB的数据进行认证。
本申请的实施例中,至少两个第一TEE中包括第一TEE和第二TEE,第一TEE与第一存储区域对应,第二TEE与第二存储区域对应,第一存储区域和第一TEE中存储第一安全密钥,第二TEE和第二存储区域中存储第二安全密钥,其中,第一安全密钥和第二安全密钥不同,这样使得第二TEE在向第二存储区域写入数据时,即使出现了误将数据发送给第一存储区域的情况,由于第一安全密钥和第二安全密钥不同,第一存储区域采用第一安全密钥对写入数据校验,不会校验通过,因此第一存储区域无法存储第二TEE发送的数据,也即是提高了各个TEE向RPMB分区写入数据的针对性。进一步地,由于第一TEE和第二TEE中存储的安全密钥不同,也即是在向第一存储区域写入数据时采用的安全密钥,与,向第二存储区域写入数据时采用的安全密钥不同,这样使得RPMB每个PRMB分区写入数据采用的是不同的安全密钥,进一步地提高了写入RPMB的数据的安全性。
其中,待存储数据可以是指TEE-0上的第一TA采集得到的数据。
示例性的,TEE-0中的第一TA是需要指纹数据进行加解密的应用程序。待存储数据可以是指第一TA通过指纹采集器采集得到的指纹数据。
示例性的,TEE-0中的第一TA是需要声音数据进行加解密的应用程序。待存储数据可以是指第一TA通过麦克风采集得到的声音数据。
示例性的,TEE-0中的第一TA是需要字符密码进行加解密的应用程序。待存储数据可以是指第一TA通过接收用户在显示屏上的点击操作得到的字符数据。
示例性的,TEE-0中的第一TA是需要眼纹数据进行加解密的应用程序。待存储数据可以是指第一TA通过摄像头采集得到的眼纹数据。
示例性的,TEE-0中的第一TA是需要人脸进行加解密的应用程序。待存储数据可以是指第一TA通过摄像头采集得到的人脸数据。
示例性的,第一TA也可以是向CA提供安全服务的应用程序,待存储数据可以是指CA向第一TA发送的密码数据,包括且不限于上述指纹数据、声音数据、字符数据、眼纹数据和人脸数据。
第一TA在获得了待存储数据之后,可以采用存储在TEE-0中的secure key0对待存储数据进行认证计算,得到第一认证数据。然后将第一认证数据和待存储数据进行组包,得到第一数据包,再将第一数据包发送给TEE-0对应的RPMB分区,也即是RPMB region0。
可选地,认证计算可以是指哈希计算。哈希计算可以是通过哈希运算消息认证码(Hash-based Message Authentication Code,HMAC)对数据进行计算的计算方法,是一种基于Hash函数和密钥进行消息认证的方法。HMAC是当前许多安全协议所选用的提供认证服务的方式,应用十分广泛,例如,在互联网安全协议(Internet Protocol Security,IPSec)和其他网络协议(例如SSL)中,HMAC都有广泛应用,并且经受住了多种形式攻击的考验。基于此,HMAC也可以被称为现有的Internet安全标准。
示例性的,第一TA可以采用secure key0通过哈希计算对待存储数据进行计算,得到第一认证数据。
在本申请的实施例中,第一TA采用secure key0通过哈希计算对待存储数据进行认证计算,得到第一认证数据,由于哈希运算是目前被广泛应用的,且经受了多种形式攻击的加密算法,使得通过哈希计算得到的第一认证数据是更加可靠的加密数据,提高了得到第一认证数据的安全性。
示例性的,第一TA还可以采用secure key0通过密码块链接消息验证码(CipherBlock Chaining-Message Authentication Code,CMAC)对待存储数据进行计算,得到第一认证数据。
应理解,第一TA可以按照预设的数据格式,将第一认证数据和待存储数据进行组包,得到第一数据包。
示例性的,第一TA可以将第一认证数据放在待存储数据之前,将第一认证数据和待存储数据进行组包,得到第一数据包。
示例性的,第一TA可以将第一认证数据放在待存储数据之后,将待存储数据和第一认证数据进行组包,得到第一数据包。
在一种可能的情况下,第一TA可以将第一认证数据、待存储数据及写入请求进行组包,得到第一数据包,然后向存储设备中的与第一TA对应的RPMB region0(也即是第一存储区域)发送第一数据包。
S102、第一存储区域(即RPMB region0)基于secure key0存储待存储数据。
RPMB region0在接收到第一数据包之后,可以先对第一数据包进行拆包,得到待存储数据和第一认证数据。RPMB region0可以基于存储在RPMB region0中的secure key0对第一认证数据进行校验,并在校验通过的情况下,存储第一数据包中的待存储数据。
本申请的实施例中,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存着与第一TEE中相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,第一存储区域基于相同的第一安全密钥存储待存储数据。这样使得第一TEE在向与之对应的第一存储区域存储待存储数据时,采用的第一安全密钥是存储在第一TEE的安全密钥,无需从其他TEE中调用安全密钥,进而避免了从其他TEE中调用安全密钥而可能出现的安全密钥泄露的情况,提高了多TEE框架中向RPMB写入数据的安全性。进一步地,采用本申请实施例提供的数据存储方法,各个TEE在向RPMB写入数据的过程中,无需相互调用安全密钥,减少了由于调用安全密钥导致的数据交互,简化了向RPMB写入数据的流程。
在一种可能的情况下,待存储数据可以是用于加解密所需的数据,这些数据对安全等级要求较高,通常存储在RPMB中。
示例性的,待存储数据可以是人脸识别数据,也即是摄像头采集的数据。运行在安卓Android系统中有加密需求的应用程序,例如支付宝(指纹CA),在接收到用户发起的人脸识别注册请求的情况下,向第一TEE中的人脸TA(也即是第一TA)发送人脸识别注册请求,人脸TA基于人脸识别注册请求,调用摄像头,采集人脸识别数据,并将采集的人脸识别数据发送给人脸TA。然后,人脸TA可以将采集到的人脸识别数据通过kernel中的Hypervisor模块发送对应的RPMB分区(也即是第一存储区域)存储。
本申请实施例所提供的数据存储方法可以应用在如图8所示的电子设备中。示例性的,如图8所示,电子设备包括TEE-0、TEE-1、内核kernel和存储设备。其中,存储设备中包括两个RPMB分区,分别为RPMB region0和RPMB region1。应理解,Kernel是指操作系统中的核心组件,是计算机物理硬件与其上运行的进程之间的主要接口。Kernel中可以包括多个模块。示例性的,如图8所示,kernel中包括Hypervisor模块、TEE-0tz驱动模块、TEE-1tz驱动模块和存储设备驱动模块。TEE-0对应的RPMB分区是RPMB region0,TEE-1对应的RPMB分区是RPMB region1。TEE-0和RPMB region0中分别存储着相同的安全密钥,即secure key0,TEE-1和RPMB region1中分别存储着相同的安全密钥,即secure key1。应理解,securekey0和secure key1通常不同。TEE-0中运行着指纹TA和第一RPMB服务模块,其中,第一RPMB服务模块中存储有secure key0。TEE-1中运行着人脸TA和第二RPMB服务模块,其中,第二RPMB服务模块中存储有secure key1。指纹TA可以通过Hypervisor模块将第一数据包发送给RPMB region0。人脸TA可以通过Hypervisor模块将第一数据包发送给RPMB region1。可选地,电子设备还包括ATF模块。
应理解,电子设备可以分为四种运行等级,分别为EL0、EL1、EL2和EL3。其中,应用程序的运行等级为EL0,也即是说,Android系统中有加密需求的应用程序(指纹CA)、指纹TA、第一RPMB服务模块、人脸TA和第二RPMB服务模块的运行等级为EL0。TEE-0tz驱动模块、TEE-1tz驱动模块和存储设备驱动模块的运行等级为EL1。Hypervisor模块的运行等级为EL2。ATF模块的运行等级为EL3。存储设备和指纹传感器在硬件层。
其中,Hypervisor模块具有访问电子设备器上包括磁盘和内存在内的所有物理设备的功能。服务器启动后,Hypervisor模块会加载所有虚拟机客户端的操作系统(包括TEE-0、TEE-1和存储设备),为虚拟机分配内存、磁盘和网络。这样使得Hypervisor模块可以为第一TEE和存储设备直接分配数据接口,使得TEE-0和存储设备之间、TEE-1和存储设备之间可以传输数据。
应理解,第一TEE可以是指TEE-0,也可以是指TEE-1,本申请实施例对此不作限制。
在第一TEE是指TEE-0的情况下,对应的,第一存储区域可以是指RPMB region0,第一安全密钥可以是指secure key0,第一TA可以包括指纹TA和第一RPMB服务模块。
在第一TEE是指TEE-1的情况下,对应的,第一存储区域可以是指RPMB region1,第一安全密钥可以是指secure key1,第一TA可以包括人脸TA和第二RPMB服务模块。
下面结合图9至图11对图8所示的电子设备的数据存储方法进行详细描述。
图9为本申请一个实施例中提供的数据存储方法的流程示意图,该方法应用于图8所示的电子设备,用于说明人脸TA如何向对应的RPMB region0写入数据的具体过程。为了便于理解,以图10所示的数据流向图来辅助说明图9所示的实施例。如图9和图10所示,该方法包括:
S201、运行在安卓系统(REE)中的人脸CA检测到人脸识别注册操作(相当于第一操作)。
其中,人脸识别注册操作可以用于指示获取人脸识别数据。
S202、人脸CA响应于人脸识别注册操作,向kernel中TEE-0tz驱动模块(相当于第一TEE tz驱动模块)发送人脸识别注册请求。
S203、TEE-0tz驱动模块向Hypervisor模块发送人脸识别注册请求。
S204、Hypervisor模块向TEE-0中的人脸TA发送人脸识别注册请求。
应理解,第一TA是指运行在第一TEE中的应用程序,其可以是指一个TA,也可以是指多个TA。示例性的,如图8所示,第一TA可以包括人脸TA和第一RPMB服务模块。
S205、人脸TA响应于人脸识别注册请求,调用安全摄像头,采集人脸识别数据(待存储数据)。
S206、人脸TA将人脸识别数据及向RPMB region0存储人脸识别数据的请求,发送给TEE-0中的第一RPMB服务模块。
示例性的,人脸TA可以以图11所示的格式,向第一RPMB服务模块发送人脸识别数据及向RPMB region0存储人脸识别数据的请求。如图10所示,包括、RPMB写入cmd id、RPMBdata的数据量和RPMB data。其中,RPMB data可以是人脸识别数据。
S207、第一RPMB服务模块采用secure key0对人脸识别数据进行认证计算,得到第一认证数据。
可选地,认证计算可以是指哈希计算。哈希计算可以是通过哈希运算消息认证码(Hash-based Message Authentication Code,HMAC)对数据进行计算的计算方法,是一种基于Hash函数和密钥进行消息认证的方法。
示例性的,第一RPMB服务模块可以采用第一安全密钥通过HMAC对待存储数据进行认证计算。其中,HMAC是当前许多安全协议所选用的提供认证服务的方式,应用十分广泛,例如,在互联网安全协议(Internet Protocol Security,IPSec)和其他网络协议(例如SSL)中,HMAC都有广泛应用,并且经受住了多种形式攻击的考验。基于此,HMAC也可以被称为现有的Internet安全标准。
本申请的实施例中,第一TA采用第一安全密钥通过哈希运算对待存储数据进行认证计算,得到第一认证数据,由于哈希运算是目前被广泛应用的,且经受了多种形式攻击的加密算法,使得通过哈希运算得到的第一认证数据是更加可靠的加密数据,提高了得到第一认证数据的安全性。
示例性的,第一RPMB服务模块还可以采用第一安全密钥通过密码块链接消息验证码(Cipher Block Chaining-Message Authentication Code,CMAC)对待存储数据进行计算,得到第一认证数据。
S208、第一RPMB代理服务模块对第一认证数据和人脸识别数据进行组包,得到第一数据包。
可选地,所生成的第一数据包还包括随机数、计数值、人脸识别数据的存储地址、对人脸识别数据的操作结果及写入cmd id。
其中,随机数可以是指通过随机数生成器生成的硬件随机数,电子设备通过硬件随机数进行加密。由于每个RPMB分区中均存在独立的计数器,因此,计数值可以是指第一存储区域中的计数器当前时刻的计数值。人脸识别数据的存储地址可以是指人脸识别数据在RPMB region0中的存储地址。
示例性的,第一数据包的数据格式可以如图12所示,包括MAC、RPMB data、随机数、Write counter、存储地址(Address)、对人脸识别数据的操作结果及写入cmd id。其中,MAC可以是指第一认证数据,RPMB data可以是人脸识别数据,存储地址可以是人脸识别数据在RPMB region0的存储地址。
S209、第一RPMB代理服务模块向Hypervisor模块发送第一数据包。
S210、Hypervisor模块向kernel中的TEE-0tz驱动模块发送第一数据包。
可选地,第一数据包中还包括SECURITY PROTOCOL SPECIFIC参数(相当于第一参数)。SECURITY PROTOCOL SPECIFIC参数用于指示第一数据包发送到的RPMB分区的标识。
应理解,Hypervisor模块接收到第一数据包之后,可以根据SECURITY PROTOCOLSPECIFIC参数确定出接收第一数据包的目标RPMB分区,也即是第一存储区域。然后Hypervisor模块可以建立向第一存储区域发送第一数据包的数据通道,也即是下述S211至S212所示的步骤。
本申请的实施例中,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存着与第一TEE中相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据、第一参数和第一认证数据得到的第一数据包发送给Hypervisor模块,Hypervisor模块基于第一参数确定第一数据包的接收对象是第一存储区域,然后向第一存储区域发送第一数据包,第一存储区域基于相同的第一安全密钥存储待存储数据。这样使得Hypervisor模块能够准确地将第一数据包发送给第一存储对象,在采用独立的安全密钥对写入第一存储区域的数据进行认证的基础上,进一步地提高了向第一存储区域写入数据的准确性。
S211、TEE-0tz驱动模块向存储设备驱动模块发送第一数据包。
示例性的,存储设备驱动模块是指eMMC驱动模块。
示例性的,存储设备驱动模块是指UFS驱动模块。
S212、存储设备驱动模块向RPMB region0发送第一数据包。
S213、RPMB region0(相当于第一存储区域)采用secure key0对第一数据包中的待存储数据进行认证计算,得到第二认证数据。
S214、RPMB region0在第一认证数据和第二认证数据匹配的情况下,存储待存储数据。
应理解,第一认证数据是采用第一安全密钥对待存储数据进行认证计算得到的,第二认证数据也是采用相同的第一安全密钥对待存储数据进行认证计算得到的。也即是说,在第一安全密钥相同、待存储数据相同,同时认证计算的计算方式相同的情况下,第一认证数据和第二认证数据是分别采用相同的安全密钥对相同的数据进行了相同的计算得到的,第一认证数据和第二认证数据也相同。
应理解,得到第一认证数据和第二认证数据的过程中,需要分别对待存储数据进行认证计算,考虑到认证计算中出现的误差,则可以在第一认证数据和第二认证数据相同的部分超过预设阈值时,认为第一认证数据和第二认证数据匹配。在确定第一认证数据和第二认证数据匹配的情况下,第一存储区域可以将待存储数据存储。
本申请的实施例中提供的数据存储方法,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存着与第一TEE中相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,第一存储区域采用相同的第一安全密钥对第一数据包中的待存储数据进行相同的认证计算,得到第二认证数据,并在第一认证数据和第二认证数据匹配的情况下,存储待存储数据,基于相同的第一安全密钥存储待存储数据。这样使得存入第一存储区域的数据均是第一存储区域通过独立的安全密钥进行校验通过的数据,能够有效地避免未知来源的数据对存储在第一存储区域中的数据进行攻击,提高了存储在第一存储区域中数据的安全性。
在一种可能的情况下,待存储数据可以是指纹传感器采集的数据。运行在安卓Android系统中有加密需求的应用程序,例如支付宝(指纹CA),在接收到用户发起的指纹注册请求的情况下,向第一TEE中的指纹TA(也即是第一TA)发送指纹注册请求,指纹TA基于指纹注册请求,调用指纹传感器,采集指纹数据,并将采集的指纹数据发送给指纹TA。然后,指纹TA可以将采集到的指纹数据通过kernel中的Hypervisor模块发送对应的RPMB分区(也即是第一存储区域)存储。
图13为本申请一个实施例中提供的数据存储方法的流程示意图,该方法应用于图8所示的电子设备,用于说明指纹TA如何向对应的RPMB region1写入数据的具体过程。为了便于理解,以图14所示的数据流向图来辅助说明图13所示的实施例。
应理解,人脸TA和指纹TA分别向对应的RPMB分区写入数据的过程,可以是响应同一操作进行的,也可以是响应不同操作进行,本申请实施例对此不作限制。
如图13和图14所示,该方法包括:
S301、运行在安卓系统(REE)中的指纹CA检测到指纹注册操作(相当于第一操作)。
其中,指纹注册操作可以用于指示获取指纹数据。
应理解,指纹注册请求中可以包括VM id,VM id用于指示指纹注册请求的接收对象,也即是TEE-1中的指纹TA。
S302、指纹CA响应于指纹注册操作,向kernel中TEE-1tz驱动模块发送指纹注册请求。
S303、第一TEE tz驱动模块向Hypervisor模块发送指纹注册请求。
S304、Hypervisor模块向ATF模块发送指纹注册请求。
Hypervisor模块基于指纹注册请求中的VM id,确定接收指纹注册请求的接收对象是TEE-1中的指纹TA,然后建立向指纹TA发送指纹注册请求的数据通道。
在一些可能的情况下,Hypervisor模块与第一TEE中运行的第一TA之间的数据交互必须通过ATF模块。也即是说,Hypervisor模块向指纹TA发送的指纹注册请求需要通过ATF模块。
在一些可能的情况下,Hypervisor模块可以直接与第一TEE中运行的第一TA之间进行数据交互,不需要通过ATF模块。也即是说,Hypervisor模块向指纹TA发送的指纹注册请求无需通过ATF模块。
可选地,Hypervisor模块可以向ATF模块发送指纹注册请求。
S305、ATF模块向TEE-1中的指纹TA发送指纹注册请求。
应理解,在图13所示的实施例中,第一TEE是指TEE-1。
应理解,第一TA是指运行在第一TEE中的应用程序,其可以是指一个TA,也可以是指多个TA。在本申请的实施例中,如图8所示,第一TA是指运行在TEE-1中的指纹TA和第二RPMB服务。
S306、指纹TA响应于指纹注册请求,指示指纹传感器采集指纹数据(待存储数据)。
S307、指纹TA将指纹数据和存储到RPMB region1的请求发送给TEE-1中的第二RPMB服务模块。
示例性的,指纹TA可以以图10所示的格式,向第二RPMB服务模块发送指纹数据及向RPMB region1存储指纹数据的请求。
S308、第二RPMB服务模块采用secure key1对指纹数据进行认证计算,得到第一认证数据。
应理解,在第一TEE为TEE-1的情况下,第一安全密钥是指secure key1。第二RPMB服务模块可以采用secure key1对指纹数据进行认证计算,得到第一认证数据。
S309、第二RPMB代理服务模块对第一认证数据和指纹数据进行组包,得到第一数据包。
可选地,所生成的第一数据包还包括随机数、计数值、指纹数据的存储地址、对指纹数据的操作结果及写入cmd id。
其中,随机数可以是指通过随机数生成器生成的硬件随机数,电子设备通过硬件随机数进行加密。由于每个RPMB分区中均存在独立的计数器,因此,计数值可以是指第一存储区域中的计数器当前时刻的计数值。指纹数据的存储地址可以是指指纹数据在第一存储区域中的存储地址。
示例性的,第一数据包的数据格式可以如图11所示,包括MAC、RPMB data、随机数、Write counter、Address、对指纹数据的操作结果及写入cmd id。其中,MAC可以是指第一认证数据,RPMB data可以是指纹数据,存储地址可以是指纹数据在RPMB region1的存储地址。
S310、第二RPMB代理服务模块向ATF模块发送第一数据包。
S311、ATF模块向Hypervisor模块发送第一数据包。
S312、Hypervisor模块向kernel中TEE-1tz驱动模块(相当于第一TEE tz驱动模块)发送第一数据包。
应理解,TEE-1tz驱动模块是kernel中的模块。在TEE-1tz驱动模块是kernel中的模块的情况下,Hypervisor模块可以按照预先设置的进程向RPMB region1发送第一数据包。
本申请的实施例中,Hypervisor模块向第一存储区域发送第一数据包时,利用了kernel中的第一TEE tz驱动模块,这样使得在向第一存储区域发送第一数据包时,可以利用预先设置的进程发送,无需用户设定向第一存储区域发送第一数据包的进程,提高了向第一存储区域写入数据的便捷性。
S313、TEE-1tz驱动模块向存储设备驱动模块发送第一数据包。
示例性的,存储设备驱动模块是指eMMC驱动模块。
示例性的,存储设备驱动模块是指UFS驱动模块。
其中,TEE-1tz驱动模块可以直接向存储设备驱动模块发送第一数据包,也可以通过其他模块向存储设备驱动模块转发第一数据包。
可选地,REE中还运行着TEE-1RPMB驱动模块(图中未示出),TEE-1tz驱动模块向存储设备驱动模块发送第一数据包可以是通过TEE-1RPMB驱动模块转发给存储设备驱动模块。
示例性的,S313“TEE-1tz驱动模块向存储设备驱动模块发送第一数据包”一种可能的实现方式,包括:
步骤一、TEE-1tz驱动模块向TEE-1RPMB驱动模块转发送第一数据包。
步骤二、TEE-1RPMB驱动模块转向存储设备驱动模块发送第一数据包。
S314、存储设备驱动模块向第一存储区域发送第一数据包。
S315、RPMB region1(相当于第一存储区域)采用secure key1对第一数据包中的待存储数据进行认证计算,得到第二认证数据。
S316、RPMB region1在第一认证数据和第二认证数据匹配的情况下,存储待存储数据。
本申请的实施例中,电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,其中,第一TEE中存储第一安全密钥,第一存储区域中存着与第一TEE中相同的第一安全密钥,第一TA采用第一安全密钥对待存储数据进行认证计算,得到第一认证数据,然后将根据待存储数据和第一认证数据得到的第一数据包发送给第一存储区域,向第一存储区域发送给第一数据包的过程,可以通过ATF模块向第一存储区域发送,通常,通过ATF模块向RPMB发送数据是预先设置的进程,因此无需用户设置向RPMB发送数据的进程,提高了向第一TEE向第一存储区域写入数据的便捷性。
应该理解的是,虽然上述实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图15为本申请实施例提供的电子设备的一种结构示意图。
应理解,电子设备可以执行图6至图14所示的数据存储方法;电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,其中,至少两个TEE中的一个TEE与RPMB中的一个存储区域一一对应,至少两个TEE包括第一TEE,第一TEE中运行有第一可信应用程序TA,RPMB包括第一存储区域,第一TEE与第一存储区域对应,第一TEE与第一存储区域中存储第一安全密钥,第一安全密钥用于第一存储区域和第一TA对待存储数据进行认证计算,待存储数据是指向第一存储区域写入的数据,电子设备还包括:获取单元610和处理单元620。
其中,处理单元620用于控制第一TA向第一存储区域发送第一数据包,第一数据包中包括待存储数据和第一认证数据,第一认证数据为第一TA采用第一安全密钥对待存储数据进行认证计算后得到的数据;第一存储区域基于第一安全密钥存储待存储数据。
可选地,作为一个实施例,至少两个TEE还包括第二TEE,RPMB包括第二存储区域,第二TEE与第二存储区域对应;第二TEE与第二存储区域中存储第二安全密钥,第二安全密钥与第一安全密钥不同。
可选地,作为一个实施例,电子设备还包括内核kernel,kernel包括Hypervisor模块,处理单元620用于控制第一TA向Hypervisor模块发送第一数据包;Hypervisor模块向第一存储区域发送第一数据包。
可选地,作为一个实施例,第一数据包中包括第一参数,第一参数用于指示第一存储区域;Hypervisor模块向第一存储区域发送第一数据包,处理单元620用于控制Hypervisor模块基于第一参数确定第一存储区域;Hypervisor模块向第一存储区域发送第一数据包。
可选地,作为一个实施例,kernel还包括ATF模块,处理单元620用于控制第一TA向ATF模块发送第一数据包;ATF模块向Hypervisor模块发送第一数据包。
可选地,作为一个实施例,kernel还包括第一TEE tz驱动模块,处理单元620用于控制Hypervisor模块向第一TEE tz驱动模块发送第一数据包;第一TEE tz驱动模块向第一存储区域发送第一数据包。
可选地,作为一个实施例,kernel还包括存储设备驱动模块,处理单元620用于控制第一TEE tz驱动模块向存储设备驱动模块发送第一数据包;存储设备驱动模块向第一存储区域发送第一数据包。
可选地,作为一个实施例,处理单元620用于控制第一存储区域采用第一安全密钥对第一数据包中的待存储数据进行认证计算,得到第二认证数据;在第一认证数据和第二认证数据匹配的情况下,第一存储区域存储待存储数据。
可选地,作为一个实施例,电子设备还包括富执行环境REE和第一器件,REE中运行第一客户端应用程序CA,处理单元620用于控制接收第一操作,第一操作用于指示获取待存储数据;响应于第一操作,第一CA向第一TA发送第一请求,第一请求用于指示第一TA获取待存储数据;响应于第一请求,第一TA指示第一器件采集第一数据;第一TA基于第一数据得到待存储数据。
可选地,作为一个实施例,第一器件包括指纹传感器。
可选地,作为一个实施例,第一器件包括摄像头。
可选地,作为一个实施例,第一TA包括人脸TA和第一RPMB服务模块,待存储数据为人脸识别数据,处理单元620用于控制人脸TA指示摄像头采集人脸识别数据;人脸TA向第一RPMB服务模块发送人脸识别数据;第一RPMB服务模块基于人脸识别数据生成第一数据包;第一RPMB服务模块向Hypervisor模块发送第一数据包。
可选地,作为一个实施例,电子设备还包括富执行环境REE和摄像头,REE中运行人脸客户端应用程序CA,人脸TA指示摄像头采集人脸识别数据之前,处理单元620用于控制人脸CA检测到人脸识别注册操作,人脸识别注册操作用于指示获取人脸识别数据;响应于人脸识别注册操作,人脸CA向人脸TA发送人脸识别注册请求,人脸识别注册请求用于指示人脸TA获取人脸识别数据;响应于人脸识别注册请求,人脸TA指示摄像头采集人脸识别数据。
可选地,作为一个实施例,第一TA包括指纹TA和第二RPMB服务模块,待存储数据为指纹数据,处理单元620用于控制指纹TA指示指纹传感器采集指纹数据;指纹TA向第二RPMB服务模块发送指纹数据;第二RPMB服务模块基于指纹数据生成第一数据包;第二RPMB服务模块向Hypervisor模块发送第一数据包。
可选地,作为一个实施例,电子设备还包括富执行环境REE和指纹传感器,REE中运行指纹客户端应用程序CA,指纹TA指示指纹传感器采集指纹数据之前,处理单元620用于控制指纹CA检测到指纹注册操作,指纹注册操作用于指示获取指纹数据;响应于指纹注册操作,指纹CA向指纹TA发送指纹注册请求,指纹注册请求用于指示指纹TA获取指纹数据;响应于指纹注册请求,指纹TA指示指纹传感器采集指纹数据。
可选地,作为一个实施例,kernel还包括ATF模块,处理单元620用于控制第二RPMB服务模块向ATF模块发送第一数据包;ATF模块向Hypervisor模块发送第一数据包。
可选地,作为一个实施例,认证计算包括哈希HMAC计算。
本实施例提供的电子设备,用于执行上述实施例的数据存储方法,技术原理和技术效果相似,此处不再赘述。
需要说明的是,上述数据电子设备以功能单元的形式体现。这里的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。
可以理解的是,为了实现上述功能,电子设备包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。需要说明的是,本申请实施例中模块的名称是示意性的,实际实现时对模块的名称不做限定。
例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
因此,在本申请的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
图16示出了本申请提供的一种电子设备的结构示意图。图16中的虚线表示该单元或该模块为可选的。电子设备700可用于实现上述方法实施例中描述的数据存储方法。
电子设备700包括一个或多个处理器701,该一个或多个处理器701可支持电子设备700实现方法实施例中的数据存储方法。处理器701可以是通用处理器或者专用处理器。例如,处理器701可以是中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件,如分立门、晶体管逻辑器件或分立硬件组件。
处理器701可以用于对电子设备700进行控制,执行软件程序,处理软件程序的数据。电子设备700还可以包括通信单元705,用以实现信号的输入(接收)和输出(发送)。
例如,电子设备700可以是芯片,通信单元705可以是该芯片的输入和/或输出电路,或者,通信单元705可以是该芯片的通信接口,该芯片可以作为终端设备或其它电子设备的组成部分。
又例如,电子设备700可以是终端设备,通信单元705可以是该终端设备的收发器,或者,通信单元705可以是该终端设备的收发电路。
电子设备700中可以包括一个或多个存储器702,其上存有程序704,程序704可被处理器701运行,生成指令703,使得处理器701根据指令703执行上述方法实施例中描述的阻抗匹配方法。
可选地,存储器702中还可以存储有数据。可选地,处理器701还可以读取存储器702中存储的数据,该数据可以与程序704存储在相同的存储地址,该数据也可以与程序704存储在不同的存储地址。
处理器701和存储器702可以单独设置,也可以集成在一起;例如,集成在终端设备的系统级芯片(system on chip,SOC)上。
示例性地,存储器702可以用于存储本申请实施例中提供的数据存储方法的相关程序704,处理器701可以用于在进行数据存储时调用存储器702中存储的数据存储方法的相关程序704,执行本申请实施例的数据存储方法;包括:第一TA向第一存储区域发送第一数据包,第一数据包中包括待存储数据和第一认证数据,第一认证数据为第一TA采用第一安全密钥对待存储数据进行认证计算后得到的数据;第一存储区域基于第一安全密钥存储待存储数据。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器701执行时实现本申请中任一方法实施例所述的数据存储方法。
该计算机程序产品可以存储在存储器702中,例如是程序704,程序704经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器701执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的数据存储方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
该计算机可读存储介质例如是存储器702。存储器702可以是易失性存储器或非易失性存储器,或者,存储器702可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmableROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamicRAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (20)

1.一种数据存储方法,其特征在于,所述方法应用于电子设备,所述电子设备包括至少两个可信执行环境TEE和重放保护内存块RPMB,其中,所述至少两个TEE中的一个TEE与所述RPMB中的一个存储区域一一对应,所述至少两个TEE包括第一TEE,所述第一TEE中运行有第一可信应用程序TA,所述RPMB包括第一存储区域,所述第一TEE与所述第一存储区域对应,所述第一TEE与所述第一存储区域中存储第一安全密钥,所述第一安全密钥用于所述第一存储区域和所述第一TA对待存储数据进行认证计算,所述待存储数据是指向所述第一存储区域写入的数据,所述方法包括:
所述第一TA向所述第一存储区域发送第一数据包,所述第一数据包中包括所述待存储数据和第一认证数据,所述第一认证数据为所述第一TA采用所述第一安全密钥对所述待存储数据进行所述认证计算后得到的数据;
所述第一存储区域基于所述第一安全密钥存储所述待存储数据。
2.根据权利要求1所述的方法,其特征在于,所述至少两个TEE包括第二TEE,所述RPMB包括第二存储区域,所述第二TEE与所述第二存储区域对应;所述第二TEE与所述第二存储区域中存储第二安全密钥,所述第二安全密钥与所述第一安全密钥不同。
3.根据权利要求1或2所述的方法,其特征在于,所述电子设备还包括内核kernel,所述kernel包括Hypervisor模块,所述第一TA向所述第一存储区域发送第一数据包,包括:
所述第一TA向Hypervisor模块发送所述第一数据包;
所述Hypervisor模块向所述第一存储区域发送所述第一数据包。
4.根据权利要求3所述的方法,其特征在于,所述第一数据包中包括第一参数,所述第一参数用于指示所述第一存储区域;所述Hypervisor模块向所述第一存储区域发送所述第一数据包,包括:
所述Hypervisor模块基于所述第一参数确定所述第一存储区域;
所述Hypervisor模块向所述第一存储区域发送所述第一数据包。
5.根据权利要求4所述的方法,其特征在于,所述kernel还包括ATF模块,所述第一TA向Hypervisor模块发送所述第一数据包,包括:
所述第一TA向所述ATF模块发送所述第一数据包;
所述ATF模块向所述Hypervisor模块发送所述第一数据包。
6.根据权利要求3至5任一项所述的方法,其特征在于,所述kernel还包括第一TEE tz驱动模块,所述Hypervisor模块向所述第一存储区域发送所述第一数据包,包括:
所述Hypervisor模块向所述第一TEE tz驱动模块发送所述第一数据包;
所述第一TEE tz驱动模块向所述第一存储区域发送所述第一数据包。
7.根据权利要求6所述的方法,其特征在于,所述kernel还包括存储设备驱动模块,所述第一TEE tz驱动模块向所述第一存储区域发送所述第一数据包,包括:
所述第一TEE tz驱动模块向所述存储设备驱动模块发送所述第一数据包;
所述存储设备驱动模块向所述第一存储区域发送所述第一数据包。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述第一存储区域基于所述第一安全密钥存储所述待存储数据,包括:
所述第一存储区域采用所述第一安全密钥对所述第一数据包中的所述待存储数据进行所述认证计算,得到第二认证数据;
在所述第一认证数据和所述第二认证数据匹配的情况下,所述第一存储区域存储所述待存储数据。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述电子设备还包括富执行环境REE和第一器件,所述REE中运行第一客户端应用程序CA,所述方法还包括:
接收第一操作,所述第一操作用于指示获取所述待存储数据;
响应于所述第一操作,所述第一CA向所述第一TA发送第一请求,所述第一请求用于指示所述第一TA获取所述待存储数据;
响应于所述第一请求,所述第一TA指示所述第一器件采集第一数据;
所述第一TA基于所述第一数据得到所述待存储数据。
10.根据权利要求9所述的方法,其特征在于,所述第一器件包括指纹传感器。
11.根据权利要求9所述的方法,其特征在于,所述第一器件包括摄像头。
12.根据权利要求3所述的方法,其特征在于,所述第一TA包括人脸TA和第一RPMB服务模块,所述第一RPMB服务模块中存储所述第一安全密钥,所述待存储数据为人脸识别数据,所述第一TA向Hypervisor模块发送所述第一数据包,包括:
所述人脸TA指示摄像头采集人脸识别数据;
所述人脸TA向所述第一RPMB服务模块发送所述人脸识别数据;
所述第一RPMB服务模块基于所述人脸识别数据生成所述第一数据包;
所述第一RPMB服务模块向所述Hypervisor模块发送所述第一数据包。
13.根据权利要求12所述的方法,其特征在于,所述电子设备还包括富执行环境REE和所述摄像头,所述REE中运行人脸客户端应用程序CA,所述人脸TA指示摄像头采集人脸识别数据之前,所述方法还包括:
所述人脸CA检测到人脸识别注册操作,所述人脸识别注册操作用于指示获取所述人脸识别数据;
响应于所述人脸识别注册操作,所述人脸CA向所述人脸TA发送人脸识别注册请求,所述人脸识别注册请求用于指示所述人脸TA获取人脸识别数据;
所述人脸TA指示摄像头采集人脸识别数据,包括:
响应于所述人脸识别注册请求,所述人脸TA指示所述摄像头采集所述人脸识别数据。
14.根据权利要求3所述的方法,其特征在于,所述第一TA包括指纹TA和第二RPMB服务模块,所述第二RPMB服务模块中存储所述第一安全密钥,所述待存储数据为指纹数据,所述第一TA向Hypervisor模块发送所述第一数据包,包括:
所述指纹TA指示指纹传感器采集指纹数据;
所述指纹TA向所述第二RPMB服务模块发送所述指纹数据;
所述第二RPMB服务模块基于所述指纹数据生成所述第一数据包;
所述第二RPMB服务模块向所述Hypervisor模块发送所述第一数据包。
15.根据权利要求14所述的方法,其特征在于,所述电子设备还包括富执行环境REE和所述指纹传感器,所述REE中运行指纹客户端应用程序CA,所述指纹TA指示指纹传感器采集指纹数据之前,所述方法还包括:
所述指纹CA检测到指纹注册操作,所述指纹注册操作用于指示获取所述指纹数据;
响应于所述指纹注册操作,所述指纹CA向所述指纹TA发送指纹注册请求,所述指纹注册请求用于指示所述指纹TA获取指纹数据;
所述指纹TA指示指纹传感器采集指纹数据,包括:
响应于所述指纹注册请求,所述指纹TA指示所述指纹传感器采集所述指纹数据。
16.根据权利要求14所述的方法,其特征在于,所述kernel还包括ATF模块,所述第二RPMB服务模块向所述Hypervisor模块发送所述第一数据包,包括:
所述第二RPMB服务模块向所述ATF模块发送所述第一数据包;
所述ATF模块向所述Hypervisor模块发送所述第一数据包。
17.根据权利要求1至16中任一项所述的方法,其特征在于,所述认证计算包括哈希HMAC计算。
18.一种芯片,其特征在于,包括处理器,当所述处理器执行指令时,所述处理器执行如权利要求1至17中任一项所述的方法。
19.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于与存储器耦合,并读取存储器中的指令,并根据所述指令使得所述电子设备执行如权利要求1至17中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行权利要求1至17中任一项所述的方法。
CN202211048230.6A 2022-08-30 2022-08-30 数据存储方法和电子设备 Pending CN117668932A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211048230.6A CN117668932A (zh) 2022-08-30 2022-08-30 数据存储方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211048230.6A CN117668932A (zh) 2022-08-30 2022-08-30 数据存储方法和电子设备

Publications (1)

Publication Number Publication Date
CN117668932A true CN117668932A (zh) 2024-03-08

Family

ID=90079475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211048230.6A Pending CN117668932A (zh) 2022-08-30 2022-08-30 数据存储方法和电子设备

Country Status (1)

Country Link
CN (1) CN117668932A (zh)

Similar Documents

Publication Publication Date Title
WO2020192447A1 (zh) 一种文件访问权限认证方法及电子设备
WO2020143414A1 (zh) 无线网络接入方法、装置、设备及系统
US9544770B2 (en) User authentication in a mobile environment
JP2022547872A (ja) 顔画像送信方法、値転送方法、装置および電子機器
KR20190117485A (ko) 서비스 데이터 처리 방법 및 디바이스, 및 서비스 처리 방법 및 디바이스
EP4024311A1 (en) Method and apparatus for authenticating biometric payment device, computer device and storage medium
CN112073421B (zh) 通信处理方法、装置、终端及存储介质
CN110752929B (zh) 应用程序的处理方法及相关产品
EP4152198A1 (en) Method and apparatus for storing ciphertext
CN113821835A (zh) 密钥管理方法、密钥管理装置和计算设备
US20210034763A1 (en) Splitting Sensitive Data and Storing Split Sensitive Data in Different Application Environments
US20240095408A1 (en) Data protection method and system, medium, and electronic device
CN117668933A (zh) 数据存储方法和电子设备
CN117492636A (zh) 数据存储方法和电子设备
WO2020187008A1 (zh) 服务调用控制方法、服务调用方法、装置及终端
CN114692119A (zh) 校验应用的方法和电子设备
CN115544586B (zh) 用户数据的安全存储方法、电子设备及存储介质
CN113468606A (zh) 一种应用程序的访问方法及电子设备
CN115379043B (zh) 一种跨设备的文本接续的方法和电子设备
CN117668932A (zh) 数据存储方法和电子设备
CN117492635A (zh) 数据存储方法和电子设备
CN116049812B (zh) 访问硬件资源的方法和电子设备
CN117492634A (zh) 数据存储方法和电子设备
CN113850633B (zh) 信息推送方法和装置
WO2024046418A1 (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