CN116049913B - 数据保存方法、装置、电子设备及计算机可读存储介质 - Google Patents

数据保存方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN116049913B
CN116049913B CN202210571545.2A CN202210571545A CN116049913B CN 116049913 B CN116049913 B CN 116049913B CN 202210571545 A CN202210571545 A CN 202210571545A CN 116049913 B CN116049913 B CN 116049913B
Authority
CN
China
Prior art keywords
data
target
tee
stored
storage medium
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.)
Active
Application number
CN202210571545.2A
Other languages
English (en)
Other versions
CN116049913A (zh
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 CN202210571545.2A priority Critical patent/CN116049913B/zh
Publication of CN116049913A publication Critical patent/CN116049913A/zh
Application granted granted Critical
Publication of CN116049913B publication Critical patent/CN116049913B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

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

Abstract

本申请提供一种数据保存方法、装置、电子设备及计算机可读存储介质,涉及终端技术领域,通过在电子设备上设置至少两个可信执行环境TEE系统,当富执行环境REE系统中的客户端应用CA需将数据保存至TEE系统的存储介质中时,将数据分别保存在多个TEE系统的存储介质中,由于多个TEE系统均被攻击的风险较低,因此,可以保证至少一个TEE系统中的数据为正确的,保证数据的准确性。并且当CA需利用TEE系统中的数据进行相关业务操作时,可以从至少一个TEE系统中获取到正确的数据,从而可以保证业务操作的准确性。

Description

数据保存方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及终端技术领域,尤其涉及一种数据保存方法、装置、电子设备及计算机可读存储介质。
背景技术
随着移动终端的发展,移动终端涉及越来越多的重要数据(例如,用户的敏感数据)。为了提高移动终端的安全性,提出了一种可信执行环境(trusted executionenvironment,TEE)。TEE是一个独立的运行环境,其可以与移动终端上的富执行环境(richexecution environment,REE)相隔离,可用来存储重要数据。
在TEE中运行的应用为可信应用(trusted application,TA),在REE中运行的应用为客户端应用(client application,CA)。CA可以通过通道与TA进行通信。例如,当需要将重要数据存储到TEE中时,CA通过通道将重要数据发送至TA,以使TA将重要数据存储在TEE中的相关存储介质中。
然而,发明人发现现有技术中至少存在如下问题:当移动终端被攻击者利用漏洞攻击后,TEE存储的数据可能是被篡改后的错误数据,例如,攻击者对CA与TA之间的通道中的数据进行修改,使得TEE存储的是攻击者修改后的数据,降低了数据准确性。
发明内容
有鉴于此,本申请提供了一种数据保存方法、装置、电子设备及计算机可读存储介质,提高电子设备上的数据准确性。
第一方面,本申请提供一种数据保存方法,应用于电子设备,其中,所述电子设备包括REE系统和至少两个TEE系统;所述REE系统中的应用为CA,各个TEE系统中的应用为TA;所述方法包括:
所述REE系统中的第一CA获取待存储数据,并把所述待存储数据分别发送到所述至少两个TEE系统中的每个TEE系统中的第一目标TA。
所述第一目标TA接收待存储数据,并将接收到的待存储数据保存至所述第一目标TA所在的TEE系统的存储介质。
在本申请实施例中,第一CA在获取到需存储到TEE系统中的待存储数据后,将其分别发送至至少两个TEE系统中的各个TEE系统中的第一目标TA,以供利用第一目标TA将待存储数据保存至其所在的TEE系统的存储介质中,使得该至少两个TEE系统均存储有待存储数据。由于多个TEE系统均被攻击的风险较低,因此,可以使至少一个TEE系统中的存储介质存储的数据是正确的,保证电子设备上的数据的准确性。
在一种可能的设计方式中,上述将接收到的待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中,包括:
第一目标TA可以在确定第一CA合法的情况下,才将所述待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中。
在本申请实施例中,TEE系统中的第一目标TA确定第一CA是否合法,在确定第一CA合法的情况下,才将待存储数据保存到该TEE系统的存储介质中,避免将不合法的CA所发送的数据保存到TEE系统的存储介质,保证TEE系统存储的数据的安全性。
在一种可能的设计方式中,上述确定第一CA合法,包括:
所述第一目标TA利用预设校验方式,对所述第一CA进行合法性校验,得到校验结果;
在所述校验结果指示第一CA合法的情况下,确定所述第一CA合法。
其中,所述第一目标TA采用的预设校验方式与其它第一目标TA采用的预设校验方式均不同、所述第一目标TA采用的预设校验方式与其它第一目标TA采用的预设校验方式均相同、或者,所述第一目标TA采用的预设校验方式与部分其它第一目标TA采用的预设校验方式相同。
在本申请实施例中,各个TEE系统中的第一目标TA对第一CA进行合法性校验是独立进行的,即各个TEE系统中的第一目标TA采用其对应的预设校验方式,确定第一CA是否合法,可以保证数据存储的安全性。
在一种可能的设计方式中,上述将接收到的待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中,包括:
所述第一目标TA可以先利用预设加密算法,对所述待存储数据进行加密,然后将加密后的待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中;
其中,所述第一目标TA采用的预设加密算法与其它第一目标TA采用的预设加密算法均不同、所述第一目标TA采用的预设加密算法与其它第一目标TA采用的预设加密算法均相同、或者所述第一目标TA采用的预设加密算法与部分其它第一目标TA采用的预设加密算法相同。
在本申请实施例中,TEE系统中的第一目标TA在将待存储数据保存至TEE系统的存储介质中时,对待存储数据进行加密,然后将加密后的存储数据保存到该TEE系统的存储介质中,使得该存储介质中存储的为加密的数据,保证数据的安全性。
在一些实施例中,当各个第一目标TA对待存储数据进行加密所采用的预设加密算法不同时,由于攻击者在对不同TEE系统中的加密后的待存储数据进行解密时,也需利用不同的加密算法进行解密,增加了解密的难度,从而可以提高数据安全性,降低被攻击者利用的风险。
在一种可能的设计方式中,所述至少两个TEE系统中的各个所述TEE系统的存储介质的类型均相同、所述至少两个TEE系统中的各个TEE系统的存储介质的类型均不同、所述至少两个TEE系统中的部分TEE系统的存储介质的类型相同。
在本申请实施例中,各个TEE系统存储数据的过程是独立进行的,因此,不同TEE系统中的用于保存待存储数据的存储介质的类型可以相同,也可以不同。当存储介质的类型不同时,若攻击者修改TEE系统中的存储介质中的待存储数据时,需要攻击者分别确定不同TEE系统中的存储了该待存储数据的存储介质,增加了攻击者修改数据的难度,从而提高了数据安全性。当存储介质的类型相同时,可以方便数据的存储。
在一种可能的设计方式中,在电子设备运行的过程中,REE系统中的CA可能会需获取TEE系统中的数据,以供利用该数据进行业务操作,相应的,此过程具体包括:
在接收到第二触发操作的情况下,所述REE系统的第二CA生成数据获取请求,并把所述数据请求分发发送到所述至少两个TEE系统中的每个TEE系统中的第二目标TA;其中,所述数据获取请求用于获取TEE系统中的数据;
所述第二目标TA在接收所述数据获取请求的情况下,从所述第二目标TA所在的TEE系统的存储介质中获取所述数据获取请求对应的目标数据,并将所述目标数据返回至所述第二CA。
所述第二CA根据各个所述第二目标TA返回的目标数据进行相应的业务操作。
在本申请实施例中,当检测到用户输入第二触发操作时,表明第二CA需利用TEE中的数据以进行相应的业务操作,则第二CA先生成相应的数据获取请求。然后,第二CA将数据获取请求发送至各个TEE系统中的第二目标TA,以利用第二目标TA从其所在的TEE系统中获取所需的目标数据。由于多个TEE系统均被攻击的风险较低,即所有TEE中的目标数据均是错误的概率较低,因此,存在至少一个TEE系统中的目标数据是正确的,使得第二CA可以获取到正确的目标数据,从而在基于各个TEE系统中的目标数据进行业务操作时,可以基于正确的目标数据进行相应的业务操作,保证业务操作的准确性。
第二方面,本申请提供一种数据保存装置,应用于电子设备,其中,所述电子设备包括REE系统和至少两个TEE系统;所述REE系统上运行CA,各个所述TEE系统运行有TA;
数据保存装置包括:
数据获取模块,用于运行在所述REE系统的第一CA获取待存储数据,并向所述至少两个TEE系统中的每个TEE系统中的第一目标TA发送所述待存储数据;
数据保存模块,用于所述第一目标TA接收所述待存储数据,并将接收到的所述待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中。
第三方面,本申请提供一种电子设备,包括REE系统和至少两个TEE系统、处理器和存储器;所述存储器用于存储代码指令;所述处理器用于运行所述代码指令,以执行如上述第一方面中任一项所述的数据保存方法。
第四方面,本申请提供一种操作系统,所述操作系统包括REE系统和至少两个TEE系统;所述REE系统上运行有CA,各个所述TEE系统运行有TA;
其中,运行在所述REE系统的第一CA用于获取待存储数据,并向所述至少两个TEE系统中的每个TEE系统中的第一目标TA发送所述待存储数据;
所述第一目标TA用于接收所述待存储数据,并将接收到的所述待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中。
第五方面,本申请提供一种计算机可读存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如上述第一方面中任一项所述的数据保存方法。
第六方面,本申请提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如上述第一方面中任一项所述的数据保存方法。
附图说明
图1为本申请实施例提供的一种应用锁设置界面示意图;
图2为本申请实施例提供的一种数据处理的流程示意图一;
图3为本申请实施例提供的一种应用程序界面跳转对比示意图;
图4为本申请实施例提供的一种电子设备的结构示意图;
图5为本申请实施例提供的一种数据保存方法的应用场景示意图一;
图6为本申请实施例提供的一种数据保存方法的应用场景示意图二;
图7为本申请实施例提供的一种数据保存方法的应用场景示意图三;
图8为本申请实施例提供的一种数据保存方法的流程示意图一;
图9为本申请实施例提供的一种数据处理的流程示意图二;
图10为本申请实施例提供的一种数据保存方法的流程示意图二。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了更好的理解本申请的方案,以下介绍本申请实施例所涉及的术语。
(1)信任区(trustzone):即ARMTM trustzone,为了给电子设备提供一个安全的运行环境,其将电子设备上的处理器(例如,中央处理器(central processing unit,CPU))的工作状态分为了正常世界状态(normal world status,NWS)和安全世界状态(secureworld status,SWS)。由于,正常世界状态内的资源相对于安全世界状态较为丰富,因此,将正常世界状态中的环境称为REE,安全世界状态中的环境称为TEE。
(2)REE操作系统(operating system,OS):在REE中运行的系统,即运行在正常世界状态中的系统。例如,安卓(AndroidTM)、苹果移动设备操作系统(iphone operationsystem,IOSTM)和LinuxTM等操作系统。
(3)TEE OS:在TEE中运行的系统,即运行在安全世界状态中的系统。TEE OS和REEOS相互隔离,运行在REE OS中的CA可以通过运行在TEE OS中的TA获取TEE中的数据。
在一些实现方式中,电子设备上仅存在一个TEE(即TEE OS)。REE(即REE OS)中的CA可以通过通道与TEE中TA进行通信,以将相关数据保存至TEE中,例如,当需要将重要数据存储到TEE中时,CA通过通道将重要数据发送至相应的TA。TA先对CA进行鉴权,以校验CA的合法性。当确定CA合法时,将重要数据存储在TEE中的相关存储介质中。当CA需要从TEE中获取数据时,向相应的TA发送请求,TA在确定CA合法的情况下,获取该请求对应的数据,并将数据返回给CA。
然而,当攻击者通过注入、提权,仿冒等漏洞攻击电子设备时,可能会导致TEE存储的数据为错误的数据,降低了数据准确性。CA在获取TEE中的数据时,由于TEE中存储的该数据是错误的,因此,导致CA获取到的数据是错误的,从而造成CA基于该数据执行的业务操作是错误的,增加了电子设备被攻击者利用的可能性,降低了电子设备的安全性。
示例性地,当上述重要数据为开关类数据,该开关类数据指示存在是或否两种结果的数据,其包括应用锁数据,应用锁数据指示应用程序是否存在应用锁。具体的,开关类数据可以通过标记位(即true或false)表示,相应的,应用锁数据通过应用锁标记位表示。当应用锁对应的应用锁标记位为true时,表明应用程序存在应用锁;当应用锁标记位为false时,表明应用程序不存在应用锁。这里将以重要数据为应用锁标记位为例对上述由于漏洞攻击导致TEE存储的数据,从而造成CA执行错误的业务操作的过程进行描述。
首先,用户在如图1所示的应用锁设置页面上,为电子设备上的应用程序1添加应用锁。然后,如图2所示,电子设备上CA设置应用程序1对应的应用锁状态,即将应用程序1对应的应用锁标记位设置为true。之后,CA在将该应用锁标记位发送至TEE中的TA时,攻击者通过漏洞攻击,将该应用锁标记位修改为false。TA在确定CA合法后,通过加密算法对指示false的应用锁标记位进行加密,并将加密后的应用锁标记位存储至TEE中的存储介质中,从而导致TEE中的存储介质保存的应用锁标记位是错误的。
当攻击者进入应用程序1(例如,点击如图3中的(a)所示的应用程序1的图标)时,如图2所示,CA需确定应用程序1对应的应用锁状态,即需从TEE中获取应用程序1对应的应用锁标记位,以供利用应用锁标记位确定应用程序1是否存在应用锁。TEE中的相关TA在确定CA合法后,先从存储介质中获取该应用锁标记位,并对其进行解密,然后,将解密后的应用锁标记位返回至CA。由于该应用锁标记位为false,CA认为应用程序1未设置有应用锁,则无需显示应用锁密码输入页面(如图3中的(c)所示),也即无需攻击者在应用锁密码输入页面录入用户设置的密码,而可以直接显示应用程序1的主页面(如图3中的(b)所示),使得攻击者可以直接使用应用程序1。
示例性的,攻击者还可以通过仿冒、篡改、提权等漏洞攻击CA,使得CA通过TA的鉴权,即使得TA确定CA是合法的。
因此,针对上述问题,本申请提供一种设置有至少两个TEE(即TEE OS)的电子设备,电子设备上的至少两个TEE彼此之间是隔离的。当CA需要将数据存储至TEE中时,对于每个TEE,CA将数据发送至该TEE中的目标TA,目标TA对CA进行鉴权。在确定CA合法的情况下,将数据存储到该TEE中的存储介质中,从而使得每个TEE都存储了该数据,即使由于漏洞攻击,导致部分TEE中的数据是错误的,也不会影响其它TEE中的数据,也即其它TEE中的数据仍是正确的,可以保证数据准确性。当CA从每个TEE中获取数据时,可以保证获取的数据中存在正确的数据,从而可以使得CA执行的业务操作是准确的,降低了电子设备被攻击者利用的风险,提高了电子设备的安全性。同时由于多个TEE中的数据均被攻击者修改的概率较小,也可以保证数据的安全性。并且,各个TEE中的目标TA对CA鉴权是独立进行的,因此,各个TEE中的目标TA可以采用不同的校验方式对CA进行合法性校验,以确定CA是否合法,提高校验的准确性。
示例性的,本申请实施例中的电子设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及可穿戴设备、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等包括上述TEE OS和REEOS的设备,本申请实施例对该电子设备的具体形态不作特殊限制。
示例性的,图4示出了电子设备400的结构示意图。
电子设备400可以包括处理器410,外部存储器接口420,内部存储器421,通用串行总线(universal serial bus,USB)接口430,天线1,天线2,移动通信模块440,无线通信模块450,显示屏460等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备400的具体限定。在本申请另一些实施例中,电子设备400可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器410可以包括一个或多个处理单元,例如:处理器410可以包括应用处理器(applicationprocessor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备400的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器410中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器410中的存储器为高速缓冲存储器。该存储器可以保存处理器410刚用过或循环使用的指令或数据。如果处理器410需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器410的等待时间,因而提高了系统的效率。
在一些实施例中,基于trustzone技术,将处理器410的工作状态划分为正常世界状态和安全世界状态。正常世界状态用于运行REE OS,安全世界状态用于运行TEE OS。
在一些实施例中,处理器410可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备400的结构限定。在本申请另一些实施例中,电子设备400也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备400的无线通信功能可以通过天线1,天线2,移动通信模块440,无线通信模块450,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备400中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块440可以提供应用在电子设备400上的包括2G/3G/4G/5G等无线通信的解决方案。无线通信模块450可以提供应用在电子设备400上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备400的天线1和移动通信模块440耦合,天线2和无线通信模块450耦合,使得电子设备400可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备400通过GPU,显示屏460,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏460和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器410可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏460用于显示图像,视频等。显示屏460包括显示面板。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备400在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。视频编解码器用于对数字视频压缩或解压缩。NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备400的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口420可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备400的存储能力。外部存储卡通过外部存储器接口420与处理器410通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器421可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器410通过运行存储在内部存储器421的指令,从而执行电子设备400的各种功能应用以及数据处理。内部存储器421可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备400使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器421可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
在一些实施例中,电子设备400还可以包括电源管理模块、传感器模块、音频模块(例如,麦克风、扬声器,受话器)、按键(例如,开机键,音量键)、马达、指示器、1个或多个SIM卡接口等。
在一些实施例中,传感器模块还可以包括压力传感器、触摸传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、环境光传感器、指纹传感器、温度传感器、骨传导传感器等。
本申请通过在电子设备上设置至少两个TEE(即TEE OS),由于所有TEE(例如,各个TEE中的存储介质、CA与各个TEE中的TA通信所使用的通道)均被攻击的风险较低,因此,可以使得至少一个TEE中的存储介质存储的数据为正确的,保证数据的准确性以及安全性。下面将以电子设备为设有两个TEE(即第一TEE和第二TEE)手机为例,并结合几种示例对本申请的技术方案的应用场景进行说明。
在一种场景中,如图5中(a)所示,用户为应用程序1设置应用锁后,REE中的相关CA得到应用程序1对应的应用锁数据,该应用锁数据指示应用程序1存在应用锁。CA通过其与各个TEE中的TA之间的通道,将该应用锁数据保存至各个TEE中,使得第一TEE和第二TEE均存储有应用程序1对应的应用锁数据(如图5中的(b)所示),从而在用户需进入应用程序1时,可以根据两个TEE中的应用程序1对应的应用锁数据综合判断应用程序1是否存在应用锁。
在另一种场景中,如图6中的(a)所示,当用户开启手机查找服务后,相关CA得到查找服务数据,该查找服务数据指示查找服务开启。CA通过其与各个TEE中的TA之间的通道,将查找服务数据保存至各个TEE中(如图6中的(b)所示),从而在需判断查找服务是否开启时,可以利用两个TEE中的查找服务数据综合判断查找服务是否开启。
在又一种场景中,如图7中的(a)所示,当用户输入锁屏密码以开启屏幕锁后,相关CA得到屏幕锁数据,该屏幕锁数据指示屏幕锁开启。CA通过其与各个TEE中的TA之间的通道,将屏幕锁数据保存至各个TEE中(如图7中的(b)所示),从而在用户使用手机时,可以利用两个TEE中的屏幕锁数据综合判断手机的屏幕锁是否开启。
当然,本申请的技术方案还可以应用到其它需要将数据存储至TEE中的场景中,在此,不再对其进行一一赘述。
在本申请实施例中,图5至图7中的第一TEE和第二TEE可以是相同类型的TEE,也可以是不同类型的TEE。其中,TEE的类型包括硬件级隔离类型和软件级(即系统级)隔离类型。一方面,当TEE的类型为硬件级隔离类型时,表明TEE(即TEE OS)所对应的内存、存储内容所利用的存储介质与REE均是通过硬件隔离的;另一方面,REE OS运行在一个虚拟机上,当TEE的类型为软件级隔离类型时,TEE OS运行在另一个虚拟机上。
在一些实施例中,当TEE的类型为硬件级隔离类型时,该TEE可以为可信执行环境(QTEE,即QSEE)。当TEE的类型为软件级隔离类型时,TEE可以为HTEE(Honor TEE)。其中,HTEE运行于矢量虚拟机(tensor virtual machine,TVM)环境下,是系统级隔离的TEE OS。
在本申请实施例中,第一TEE和第二TEE存在各自对应的存储介质,第一TEE对应的存储介质用于存储第一TEE中的数据,即第一TEE中的TA保存的数据;第二TEE对应的存储介质用于存储第二TEE中的数据,即第二TEE中的TA保存的数据。
可选的,存储介质包括嵌入式多媒体卡(embedded Multi-Media Card,eMMC)、通用闪存(universal file store,UFS)系统、重放保护内存块(replay protected memoryBlock,RPMB)和安全存储芯片中的一个或多个。当然,存储介质也可以包括其它能够存储数据的介质,在此,本申请不对其进行限制。
以下,将结合附图对本申请实施例提供的一种数据保存方法进行具体介绍。如图8所示,该方法包括以下步骤:
S801.手机上的REE中的第一CA获取待存储数据。
S802.REE中的第一CA将待存储数据分别发送至第一TEE中的第一TA和第二TEE中的第二TA。其中,第一TA是第一TEE中与第一CA通信的TA,第二TA是第二TEE中与第一CA通信的TA。
在本申请实施例中,待存储数据指示需存储至TEE中的数据,其可以是基于用户输入的第一触发操作得到的,例如,第一触发操作为上述的应用锁设置操作;待存储数据也可以是基于其它情况得到的,例如,待存储数据为在手机运行过程中,采集到的重要数据,在此,不对待存储数据的确定过程进行限制。
在本申请实施例中,将处理待存储数据的CA作为第一CA。由于第一CA无法直接将数据存储TEE中的存储介质中,因此,第一CA通过其与第一TEE中的第一目标TA,即第一TA之间的通道,将待存储数据传输至该第一TEE中的第一TA,以及第一CA通过其与第二TEE中的第一目标TA,即第二TA之间的通道,将待存储数据传输至该第二TEE中的第二TA。
在一些实施例中,第一CA与第一TA之间的通道和第一CA与第二TA之间的通道是两个独立的通道,使得第一CA在将待存储数据分别传输至第一TA和第二TA时,是独立进行的,从而当一个通道中的数据被破坏时,另一个通道中的数据不会受到影响。
在一些实施例中,CA与TA之间的通道实际是指一段内存。相应的,第一CA将待存储数据发送至第一TA实际是第一CA将待存储数据写入到某段内存中,第一TA从该段内存中读取该待存储数据。
其中,第一TA在读取待存储数据时,可以是在第一CA写入的过程中读取的,即第一CA在将待存储数据写入内存的同时,第一TA从该内存中读取待存储数据;也可以是在第一CA将待存储数据全部写入内存后,第一TA才从内存中读取待存储数据。
示例性的,为了提高数据存储效率,第一CA在将待存储数据写入内存的同时,第一TA从该内存中读取待存储数据。为了保证手机处理性能,在第一CA将待存储数据全部写入内存后,第一TA才从内存中读取待存储数据。
S803.第一TEE中的第一TA对第一CA进行合法性校验,并在确定第一CA合法的情况下,将待存储数据保存至第一TEE中的第一存储介质中。
S804.第二TEE中的第二TA对第一CA进行合法性校验,并在确定第一CA合法的情况下,将待存储数据保存至第二TEE中的第二存储介质中。
在一些实施例中,待存储数据包括开关类数据。例如,开关类数据包括应用程序对应的应用锁数据,该应用锁数据指示应用程序是否存在应用锁;又例如,开关类数据包括屏幕锁数据,该屏幕锁数据指示手机屏幕是否存在屏幕锁;再例如,开关类数据包括查找服务数据,该查找服务数据指示手机上的查找服务是否开启。
示例性的,当待存储数据包括应用锁数据时,如图9所示,在用户为电子设备上的应用程序1添加应用锁后,第一CA设置应用程序1对应的应用锁状态,即将应用程序1对应的应用锁标记位设置为true。然后,第一CA将应用锁标记位分别发送至第一TEE中的第一TA以及第二TEE中的第二TA。第一TA在通过预设校验方式确定第一CA合法后,采用第一加密算法对接收到的应用锁标记位进行加密,并将加密后的应用锁标记位存储至第一TEE中的第一存储介质中。并且,第二TA在确定第一CA合法后,采用第二加密算法对接收到的应用锁标记位进行加密,并将加密后的应用锁标记位存储至第二TEE中的第二存储介质中。
以下实施例中,以第一TEE中的第一TA对第一CA进行合法性校验为例,介绍本申请实施例中“第一目标TA对第一CA进行合法性校验”的方法。
其中,第一TA可以对第一CA进行鉴权,即进行合法性校验,以确定第一CA是否合法。在确定第一CA合法的情况下,表明该第一CA是可信任的程序,则第一TEE中的第一TA将该第一CA传输的待存储数据存储第一TEE中的第一存储介质中。
在一些实施例中,第一TA可以通过预设校验方式对第一CA进行合法性校验。其中,预设校验方式包括哈希(Hash)校验方式、路径校验方式、白名单校验方式和权限校验方式中的一个或多个。
示例性的,本申请实施例这里以第一TA基于哈希校验方式对第一CA进行合法性校验为例,介绍第一TA通过预设校验方式对第一CA进行合法性校验的方法。
首先,第一TA可以获取第一CA对应的实际目标代码。其中。第一CA的目标代码可能会因为被修改而发生变化。此时,如果第一CA的目标代码没有被修改,则此处的实际目标代码与第一CA的初始目标代码相同;如果第一CA对应的目标代码被修改了,则此处的实际目标代码与第一CA对应的初始目标代码不同。然后,第一TA可以基于预设哈希算法(即散列算法),计算实际目标代码对应的哈希值,并将该哈希值作为实际哈希值。之后,第一TA查找第一CA对应的预设哈希值,预设哈希值是基于预设哈希算法,通过对初始目标代码进行哈希计算得到的。最后,第一TA将预设哈希值与实际哈希值进行比较。若预设哈希值与实际哈希值相同,表明目标代码未发生改变,第一CA可能未遭受到攻击,则哈希校验方式对应的校验结果指示该第一CA合法。若该预设哈希值与该实际哈希值不同,表明目标代码发生改变,第一CA遭受到攻击,则校验结果指示该第一CA不合法。本申请实施例中,第一TA可以通过判断第一CA的目标代码是被发生变化,来判断该第一CA是否合法。
其中,初始目标代码指示目标代码的初始情况,例如,初始目标代码为第一CA在发布时,目标代码所包括的具体代码。目标代码可以是第一CA对应的全部代码,也可以是特定部分代码(例如,第一CA对应的某个配置文件中的代码),可以根据实际需求进行设置,在此,不对其进行限定。
其中,哈希算法用于将任意长度的数据映射为较短的固定长度的数据,其包括信息摘要(message digest,MD)2算法、MD4算法、MD5和安全散列算法(secure hashalgorithm,SHA)-1算法等。
在该实施例中,计算第一CA对应的预设哈希值所利用的哈希算法与计算第一CA对应的实际哈希值所利用的哈希算法相同。
在一些实施例中,预设哈希值可以存储在预设哈希表中,该预设哈希表包括至少一个CA标识及各个CA标识对应的预设哈希值。相应的,第一TA在获取第一CA对应的预设哈希值时,从预设哈希表中查找第一CA对应的CA标识所对应的预设哈希值。其中,由于TEE中的TA可以直接从REE中获取数据,因此,预设哈希表可以保存在REE中的相关存储介质中,也可以保存在TEE中的相关存储介质中。
当然,预设哈希值也可以存储在其它能够存储数据的位置中,本申请不对其进行限制。
其中,第一CA对应的CA标识表示能够唯一代表该第一CA的标识,例如,第一CA的名称、编号、用户身份证明(user identifition,UID)等。
其中,UID用来识别应用程序的身份,第一CA的UID是第一CA在安装时被分配的。
上述实施例描述了第一TA查找到第一CA对应的预设哈希值的情况。当然,也可能会出现第一TA查找不到第一CA对应的预设哈希值的情况。如果第一TA未查找到第一CA对应的预设哈希值,第一TA可以直接确定哈希校验方式对应的校验结果指示第一CA不合法。
示例性的,本申请实施例这里以第一TA基于路径校验方式对第一CA进行合法性校验为例,介绍第一TA通过预设校验方式对第一CA进行合法性校验的方法。
首先,第一TA可以获取第一CA对应的实际路径,并查找该第一CA对应的预设路径。其中,第一CA的实际路径表示第一CA对应的当前路径,第一CA对应的预设路径为预先设定的第一CA对应的正确路径。第一CA的路径可能会因为被攻击而发生变化。此时,如果第一CA未被攻击,则此处的实际路径与预设路径相同;如果第一CA被攻击了,则此处的实际路径与预设路径不同。然后,第一TA将第一CA对应的实际路径与预设路径进行比较,在该实际路径与该预设路径相同的情况下,路径校验方式对应的校验结果指示该第一CA合法。在该实际路径与该预设路径不相同的情况下,该校验结果指示该第一CA不合法。本申请实施例中,第一TA可以通过判断第一CA的路径是否发生变化,来判断该第一CA是否合法。
其中,路径包括运行路径、安装路径或其它类型的路径。实际路径与预设路径对应的路径类型相同,例如,当第一CA对应的预设路径的类型为运行路径时,第一CA对应的实际路径的类型也为运行路径。
其中,安装路径指示在安装CA时,CA对应的文件所在的磁盘位置。运行路径指示CA运行时的工作路径。
在一些实施例中,预设路径可以存储在预设路径表中,该预设路径表包括至少一个CA标识及各个CA标识对应的预设路径。相应的,第一TA在获取第一CA对应的预设路径时,从预设路径表中查找第一CA对应的CA标识所对应的预设路径。其中,由于TEE中的TA可以直接从REE中获取数据,因此,预设路径表可以保存在REE中的相关存储介质中,也可以保存在TEE中的相关存储介质中。
当然,预设路径也可以存储在其它能够存储数据的位置中,本申请不对其进行限制。
上述实施例描述了第一TA查找到第一CA对应的预设路径的情况。当然,也可能会出现第一TA查找不到第一CA对应的预设路径的情况。如果第一TA未查找到第一CA对应的预设路径,第一TA可以直接确定路径方式对应的校验结果指示第一CA不合法。
示例性的,本申请实施例这里以第一TA基于白名单校验方式对第一CA进行合法性校验为例,介绍第一TA通过预设校验方式对第一CA进行合法性校验的方法。
首先,第一TA可以获取第一CA对应的程序标识。然后,第一TA可以判断第一CA对应的程序标识是否在预设白名单中,该预设白名单包括至少一个允许访问TEE的程序标识。若该第一CA对应的程序标识在预设白名单中,表明该第一CA允许访问TEE,则白名单校验方式对应的校验结果指示该第一CA合法。若该第一CA对应的程序标识未在预设白名单中,表明该第一CA不允许访问TEE,则该校验结果指示该第一CA不合法。本申请实施例中,第一TA可以通过判断第一CA是否属于允许访问TEE的应用程序,来判断第一CA是否合法。
其中,第一CA对应的程序标识可以根据实际需求进行设置,例如,程序标识为程序名称、编号、UID等。
示例性的,本申请实施例这里以第一TA基于权限校验方式对第一CA进行合法性校验为例,介绍第一TA通过预设校验方式对第一CA进行合法性校验的方法。
首先,第一TA可以获取第一CA对应的实际权限,该实际权限指示第一CA当前所具备的权限。然后,第一TA判断该实际权限是否存在目标权限,该目标权限指示能够访问TEE的权限。在该实际权限中存在目标权限的情况下,表明该第一CA具备访问TEE的权限,也即表明能够将该第一CA发送的数据存储至TEE,则权限校验方式对应的校验结果指示该第一CA合法。
在该实际权限中不存在目标权限的情况下,表明该第一CA不具备访问TEE的权限,也即表明不能将该第一CA发送的数据存储至TEE,则权限校验方式对应的校验结果指示该第一CA不合法。本申请实施例中,第一TA可以通过判断第一CA是否具备访问TEE的权限,来判断第一CA是否合法。
上述实施例描述了通过一种校验方式确定第一CA是否合法的情况,当然,第一TA也可以通过多种校验方式确定第一CA是否合法。当第一TA基于多种校验方式对第一CA进行合法性校验时,在每种校验方式对应的校验结果均指示第一CA合法的情况下,第一TA确定该第一CA合法。在存在校验方式对应的校验结果指示第一CA不合法的情况下,确定该第一CA不合法。例如,第一TA分别基于哈希校验方式和路径校验方式对第一CA进行合法性校验,第一TA在确定哈希校验方式对应的校验结果指示第一CA合法,以及路径校验方式对应的校验结果指示第一CA合法的情况下,确定该第一CA合法;又例如,第一TA分别基于哈希校验方式和白名单校验方式对第一CA进行合法性校验,并在确定哈希校验方式对应的校验结果指示第一CA合法,而白名单校验方式对应的校验结果指示第一CA不合法的情况下,确定该第一CA不合法。
需要说明的是,上述几种校验方式仅为一种示例,第一TA也可以采用其它校验方式对第一CA进行合法性校验,只需可以能够确定第一CA是否能够访问TEE或者第一CA是否遭受到攻击即可。
在本申请实施例中,在通过一种校验方式对第一CA进行合法性校验时,可以提高对第一CA合法性校验的效率,以提高数据存储效率时。在通过多种校验方式对第一CA进行合法性校验时,在所有校验方式对应的校验结果均指示第一CA合法的情况下,才将第一CA传输的待存储数据进行存储,可以提高校验的准确性,并提高数据的安全性。
在一些实施例中,不同TEE中的第一目标TA在对第一CA进行合法性校验时,是独立进行的,因此,不同TEE中的第一目标TA在对第一CA进行合法性校验所使用的预设校验方式可以相同也可以不同。为了提高安全性,不同TEE中的第一目标TA在对第一CA进行合法性校验所使用的校验方式不同,也即第一TEE可以采用第一预设校验方式,对第一CA进行合法性校验;第二TEE可以采用第二预设校验方式对第一CA进行合法性校验。其中,第一预设校验方式和第二预设校验方式均包括至少一种预设校验方式;第一预设校验方式和第二预设校验方式存在不同的预设校验方式。举例而言,第一TEE中的第一TA使用哈希校验方式对第一CA进行合法性校验,而第二TEE中的第二TA使用路径校验方式进行合法性校验。
可以理解,当TEE的数量为至少三个时,不同TEE的第一目标TA所利用的校验方式不同表示至少两个TEE所采用的校验方式不同。当校验方式的数量为多个时,两个TEE所采用的校验方式不同表示存在至少一种校验方式是不同的。例如,第一TEE分别采用白名单校验方式和路径校验方式对第一CA进行合法性校验,第二TEE采用分别采用白名单校验方式和哈希校验方式对第一CA进行合法性校验,则确定两个TEE采用的校验方式不同。
在一些实施例中,不同TEE中的第一目标TA在基于相同的预设校验方式进行合法性校验时,校验的具体实现也可以不同,即所利用到的预设信息可以不同,从而可以提高安全性。
例如,在基于哈希校验方式进行合法性校验时,首先,第一TA利用第一预设哈希算法,对实际目标代码进行哈希计算,得到第一实际哈希值,并获取通过该第一预设哈希算法计算得到的预设哈希值(即第一预设哈希值),然后,第一TA利用第一实际哈希值和第一预设哈希值判断第一CA是否合法。而第二TA首先利用第二预设哈希算法,对实际目标代码进行哈希计算,得到第二实际哈希值,并获取通过第二预设哈希算法计算得到的第二预设哈希值,然后,第二TA利用第二预设哈希值和第二实际哈希值判断第一CA是否合法。其中,第一预设哈希算法和第二预设哈希算法为不同的哈希算法。
又例如,第一TA和第二TA在基于白名单校验方式对第一CA进行合法性校验时,各个TEE中的第一目标TA所利用的预设白名单不同。具体的,第一TA获取第一TEE对应的预设白名单(即第一预设白名单),以通过判断第一CA对应的程序标识是否在第一预设白名单中,来判断第一CA是否合法;而第二TA获取第二TEE对应的预设白名单(即第二预设白名单),以通过判断第一CA对应的程序标识是否在第二预设白名单中,来判断第一CA是否合法。
在一些实施例中,为了提高数据安全性,第一TA在将待存储数据保存至第一存储介质时,利用第一加密算法对待存储数据进行加密,并将加密后的待存储数据保存至第一存储介质中。同理,第二TA在将待存储数据保存至第二存储介质时,利用第二加密算法对待存储数据进行加密,并将加密后的待存储数据保存至第二存储介质中。其中,第一加密算法和第二加密算法相同,或者不同。
示例性的,第一加密算法包括对称加密算法和/或非对称加密算法。第二加密算法包括对称加密算法和/或非对称加密算法。其中,对称加密算法对应于一个密钥,该密钥既是加密密钥,又是解密密钥,换言之,该密钥既用于加密,又用于解密。非对称算法对应于一对密钥,分别是公钥和私钥,一般地,公钥用于加密,私钥用于解密。
具体的,第一目标TA(即第一TA和第二TA)在利用对称加密算法进行加密时,利用该对称加密算法对应的加密密钥对待存储数据进行加密。该第一目标TA在利用非对称加密算法进行加密时,利用该非对称加密算法对应的加密密钥(例如,公钥),对待存储数据进行加密。
在一些实施例中,当第一加密算法和第二加密算法不同时,即当不同TEE采用不同的加密密钥对待存储数据进行加密时,由于攻击者在对不同TEE中的加密后的待存储数据进行解密时,也需利用不同的解密密钥进行解密,增加了解密的难度,从而可以提高数据安全性,降低被攻击者利用的风险。
可以理解,当TEE的数量为至少三个时,不同TEE的第一目标TA所采用的预设加密算法不同表示至少两个TEE所采用的预设加密算法不同。
在一些实施例中,由于不同TEE存储数据是独立进行的,因此,不同TEE中的第一目标TA在保存待存储数据时,保存该待存储数据的第一存储介质的类型和保存该待存储数据的第二存储介质的类型可以相同,也可以不同。
示例性的,当不同TEE中的保存待存储数据的存储介质的类型不同时,例如,第一TEE中的第一TA将待存储数据存储至eMMC,而第二TEE中的第二TA将待存储数据存储至UFS系统中,当攻击者修改TEE中的存储介质中的待存储数据时,需要攻击者分别确定不同TEE中的存储了该待存储数据的存储介质,增加了攻击者修改数据的难度,从而提高了数据安全性。
可以理解,当TEE的数量为至少三个时,不同TEE的存储介质的类型不同表示至少两个TEE的存储介质的类型不同。
在本申请实施例中,在手机运行的过程中,不仅需要将数据保存至TEE中,也可能需要获取TEE中的数据,以供利用TEE中的数据进行相应的业务操作,从而实现相应的业务功能,如图10所示,此过程具体为:
S1001.响应于第二触发操作,手机上的REE中的第二CA生成数据获取请求。
S1002.第二CA将数据获取请求分别发送至第一TEE中的第三TA和第二TEE中的第四TA。
在本申请实施例中,第二触发操作指示需利用TEE中的数据的操作。当检测到用户输入第二触发操作时,表明相关CA(即第二CA)需利用TEE中的数据以进行相应的业务操作,则第二CA先生成相应的数据获取请求。然后,第二CA通过其与第一TEE中的第二目标TA(即第三TA)之间的通道,将数据获取请求发送至第三TA,以利用第三TA从第一TEE中获取所需的目标数据;以及第二CA通过其与第一TEE中的第二目标TA(即第四TA)之间的通道,将数据获取请求发送至第四TA,以利用第四TA从第二TEE中获取所需的目标数据。
S1003.第三TA对第二CA进行合法性校验,并在确定第二CA合法的情况下,根据数据获取请求,从第一TEE中的第三存储介质中获取第一目标数据。
S1004.第三TA将第一目标数据返回至第二CA。
S1005.第四TA对第二CA进行合法性校验,并在确定第二CA合法的情况下,根据数据获取请求,从第二TEE中的第四存储介质中获取第二目标数据。
S1006.第四TA将第二目标数据返回至第二CA。
在本申请实施例中,首先,第三TA对第二CA进行鉴权,以确定第二CA是否合法。在确定第二CA合法时,表明该第二CA是可信任的程序,则第三TA从第一TEE中的第三存储介质中获取该数据获取请求对应的数据,并将该数据作为第一目标数据。然后,第三TA通过其与第二CA之间的通道,将该第一目标数据返回至该第二CA。
同理,第四TA先对第二CA进行鉴权,以确定第二CA是否合法。在确定第二CA合法时,第四TA从第二TEE中的第四存储介质中获取该数据获取请求对应的数据,并将该数据作为第二目标数据。然后,第四TA通过其与第二CA之间的通道,将该第二目标数据返回至该第二CA。
其中,第三TA确定第二CA是否合法的过程与上述第一TA或第二TA确定第一CA是否合法的过程类似,以及第四TA确定第二CA是否合法的过程与上述第一TA或第二TA确定第一CA是否合法的过程类型,在此,均不再对其进行赘述。
可以理解,第二CA与第一CA可以是同一个CA,也可以是不同的CA。同理,第一TEE中的第二TA与第一TA可以是同一个TA,也可以是不同的TA;并且第二TEE中的第二TA与第四TA可以是同一个TA,也可以是不同的TA。
S1007、第二CA根据第一目标数据和第二目标数据进行相应的业务操作。
在本申请实施例中,第二CA在得到第三TA返回的第一目标数据以及第四TA返回的第二目标数据后,综合第一目标数据和第二目标数据,以确定正确的目标数据,并根据该正确的目标数据进行相应的业务操作。
在本申请实施例中,由于所有TEE均被攻击的风险较低,即所有TEE中的目标数据均是错误的概率较低,因此,存在至少一个TEE中的目标数据是正确的,使得第二CA可以获取到正确的目标数据,从而在基于所有TEE中的目标数据进行业务操作时,可以基于正确的目标数据进行相应的业务操作,保证业务操作的准确性。
在一些实施例中,第三TA在从第三存储介质中获取到第一目标数据后,当该第一目标数据是经过第一加密算法加密后的数据时,第三TA通过第一加密算法对第一目标数据进行解密,并将解密后的第一目标数据返回至第二CA。同理,当第二目标数据是经过第二加密算法加密后的数据时,第四TA通过第二加密算法对第二目标数据进行解密,并将解密后的第二目标数据返回至第二CA。
在一些实施例中,第二CA在根据第一目标数据和第二目标数据进行业务操作时,在第一目标数据和第二目标数据相同的情况下,可以认为所有TEE中的目标数据均是正确的,则直接利用第一目标数据或第二目标数据进行相应的业务操作。
在另一些实施例中,当目标数据包括开关类数据时,在第一目标数据和第二目标数据不同的情况下,可以通过以下两种方式确定正确的数据。
一种方式为:第二CA直接将指示功能开启的开关数据作为所述正确的目标数据
另一种方式为:首先,第二CA从第一目标数据和第二目标数据中确定优先级高的目标数据,该优先级高的目标数据可以认为正确的目标数据。之后,第二CA根据优先级高的目标数据进行相应的业务操作。
示例性的,当目标数据包括开关类数据时,开关类数据指示的两种结果各自对应的优先级可以预先设定,例如,当开关类数据包括屏幕锁数据时,屏幕锁数据指示是否存在屏幕锁,即包括存在屏幕锁和不存在屏幕锁这两种结果;其中,存在屏幕锁结果对应的优先级高,不存在屏幕锁结果对应的优先级低。
下面将结合几种应用场景对CA基于各个TEE中的目标数据进行相应的业务操作的过程进行阐述。
在一种应用场景中,当第二触发操作为点击应用程序1对应的图标(如图3中的(a)所示)时,如图9所示,第二CA需获取应用程序1对应的应用锁状态,即需确定应用程序1是否存在应用锁,因此,第二CA先生成相应的数据获取请求,该数据获取请求用于获取应用程序1对应的应用锁标记位。然后,第二CA将数据获取请求分别发送至第一TEE中的第三TA以及第二TEE中的第四TA。
第三TA在确定该第二CA合法后,从第一TEE中的第三存储介质中获取数据获取请求对应的第一目标数据,也即应用程序1对应的应用锁标记位,并将该应用锁标记位返回至第二CA。第四TA在确定该第二CA合法后,从第二TEE中的第四存储介质中获取数据获取请求对应的应用程序1所对应的应用锁标记位,并将该应用锁标记位返回至第二CA。当第二CA接收到的两个应用锁标记位不相同时,也即一个应用锁标记位为true,另一个应用锁标记位为false时,表明由于手机遭受攻击(例如,第二CA与一个第二目标TA之间的通道遭受了攻击、存储应用锁标记位的一个存储介质遭受到了攻击等),导致一个TEE中存储的应用程序1对应的应用锁标记位为错误的,则第二CA将优先级高的应用锁标记位,即指示true的应用锁标记位作为正确的数据,此时,第二CA认为该应用程序1存在应用锁,则第二CA控制手机显示解锁界面,以在用户输入正确的解锁密码后,才进入应用程序1,也即显示应用程序1对应的主页面(如图2中的(b)所示)。
当两个应用锁标记位相同时,第二CA根据该应用锁标记位直接进行相应的业务操作,例如,两个应用锁标记位均为true,表明该应用程序1已设置应用锁,在用户使用应用程序1时,需先进行解锁,则第二CA控制手机显示解锁界面(如图3中的(c)所示),以在用户输入正确的密码后,才进入应用程序1,也即显示应用程序1对应的主页面(如图3中的(b)所示)。
在另一种场景中,当手机重启后,手机上的第二CA需判断手机上的查找服务是否开启,则先生成相应的数据获取请求,该数据获取请求用于获取查找服务数据。然后,第二CA将该数据获取请求分别发送至第一TEE中的第三TA以及第二TEE中的第四TA。第三TA在确定第二CA合法后,从第一TEE中的第三存储介质中获取数据获取请求对应的第一目标数据,也即查找服务数据,并将该查找服务数据返回至第二CA。第二TEE中的第四TA在确定该第二CA合法后,从第二TEE中的第四存储介质中获取数据获取请求对应的第二目标数据,也即查找服务数据,并将该查找服务数据返回至第二CA。
当第二CA确定接收到的两个查找服务数据相同时,第二CA直接根据该查找服务数据进行相应的业务操作。例如,当两个查找服务数据均指示查找服务开启时,表明手机上的查找服务是开启的,则相关人员可以远程操作手机(比如,锁定手机屏幕、定位、擦除手机数据等),或者当用户关闭查找服务时,显示相应的验证页面。
当第二CA确定接收到的两个查找服务数据不相同时,即在一个查找服务数据指示查找服务开启,另一个查找服务数据指示查找服务关闭时,表明由于手机遭受攻击,导致一个TEE中的数据是错误的,则将优先级高的查找服务数据作为正确的数据,第二CA认为手机上的查找服务是开启的。此时,如果用户关闭查找服务,则第二CA显示相应的验证页面,以校验用户的身份;或者,如果用户远程操作手机,则手机正常进行响应,以实现手机的远程控制,保证手机安全性,即使手机丢失后,使得用户仍可以通过查找服务操作手机,增加手机被找回的可能性。
需要说明的是,上述手机设有第一TEE和第二TEE这两个TEE仅为一种示例,手机上可以设置有其它数量的TEE,只需TEE的数量大于1即可。
在本申请实施例中,通过在手机上设置多个TEE,由于TEE之间是相互隔离的,CA与不同TEE中的目标TA都有独立的通道,不同TEE中的目标TA对CA合法性校验以及数据传输都是独立进行的,即使某个TEE中的数据被攻击者破坏,换言之,即使某个TEE中的数据是错误的,也不会影响其它TEE中的数据。因此,只要有一个TEE中的数据是未被破坏的,CA便可以从该TEE中获取到正确的数据,从而可以正确进行相应的业务操作,保证操作的准确性,减少被攻击者利用的可能性,进而可以有效保证手机的安全性。
本申请实施例还提供一种计算机可读存储介质,该计算机存储介质包括计算机指令,当计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种数据保存方法,其特征在于,应用于电子设备,其中,所述电子设备包括富执行环境REE系统和至少两个可信执行环境TEE系统;所述REE系统上运行有客户端应用CA,各个所述TEE系统运行有可信应用TA;所述方法包括:
运行在所述REE系统的第一CA获取待存储数据,并向所述至少两个TEE系统中的每个TEE系统中的第一目标TA发送所述待存储数据;
所述第一目标TA接收所述待存储数据,并将接收到的所述待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中。
2.根据权利要求1所述的方法,其特征在于,所述将接收到的所述待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中,包括:
在确定第一CA合法的情况下,所述第一目标TA将所述待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中。
3.根据权利要求2所述的方法,其特征在于,所述确定第一CA合法,包括:
所述第一目标TA采用预设校验方式,对所述第一CA进行合法性校验,得到校验结果;
在所述校验结果指示第一CA合法的情况下,确定所述第一CA合法;
其中,所述第一目标TA采用的预设校验方式与其它第一目标TA采用的预设校验方式均不同、所述第一目标TA采用的预设校验方式与其它第一目标TA采用的预设校验方式均相同、或者,所述第一目标TA采用的预设校验方式与部分其它第一目标TA采用的预设校验方式相同。
4.根据权利要求1所述的方法,其特征在于,所述将接收到的所述待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中,包括:
所述第一目标TA采用预设加密算法,对所述待存储数据进行加密,并将加密后的待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中;
其中,所述第一目标TA采用的预设加密算法与其它第一目标TA采用的预设加密算法均不同、所述第一目标TA采用的预设加密算法与其它第一目标TA采用的预设加密算法均相同、或者所述第一目标TA采用的预设加密算法与部分其它第一目标TA采用的预设加密算法相同。
5.根据权利要求1所述的方法,其特征在于,所述向所述至少两个TEE系统中的每个TEE系统中的第一目标TA发送所述待存储数据,包括:
对于所述至少两个TEE系统中的每个第一目标TA,通过所述第一CA与所述第一目标TA之间的通道,将所述待存储数据发送至所述第一目标TA;
其中,所述第一CA与所述第一目标TA之间的通道与所述第一CA与其它第一目标TA之间的通道均不同。
6.根据权利要求1所述的方法,其特征在于,所述至少两个TEE系统中的各个所述TEE系统的存储介质的类型均相同、所述至少两个TEE系统中的各个TEE系统的存储介质的类型均不同或者所述至少两个TEE系统中的部分TEE系统的存储介质的类型相同。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述待存储数据包括开关数据;其中,所述开关数据指示功能开启或关闭;
所述方法还包括:
响应于第一触发操作,所述第一CA确定开关数据;其中,第一触发操作指示功能开启或关闭设置操作。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
响应于第二触发操作,运行在所述REE系统的第二CA生成数据获取请求,并向所述至少两个TEE系统中的每个TEE系统中的第二目标TA发送所述数据获取请求;其中,所述数据获取请求用于获取TEE系统中的数据;
所述第二目标TA接收所述数据获取请求,从所述第二目标TA所在的TEE系统的存储介质中获取所述数据获取请求对应的目标数据;
所述第二目标TA将所述目标数据返回至所述第二CA;
所述第二CA根据各个所述第二目标TA返回的目标数据进行相应的业务操作。
9.根据权利要求8所述的方法,其特征在于,所述第二目标TA将所述目标数据返回至所述第二CA,包括:
在所述目标数据是经过预设加密算法加密后的数据的情况下,所述第二目标TA采用所述预设加密算法,对所述待存储数据进行解密;
将解密后的目标数据返回至所述第二CA。
10.根据权利要求8所述的方法,其特征在于,所述第二CA根据各个所述第二目标TA返回的目标数据进行相应的业务操作,包括:
在所有所述目标数据均相同的情况下,根据所述目标数据进行相应的业务操作;
在所有所述目标数据中存在不同的目标数据的情况下,从所有所述目标数据确定正确的目标数据,并根据所述正确的目标数据进行相应的业务操作。
11.根据权利要求10所述的方法,其特征在于,所述目标数据指示开关数据;其中,所述开关数据指示功能开启或关闭;
所述从所有所述目标数据确定正确的目标数据,包括:
获取指示功能开启的开关数据对应的第一优先级以及指示功能关闭的开关数据对应的第二优先级;
在所述第一优先级高于第二优先级的情况下,将所述指示功能开启的开关数据作为所述正确的目标数据;
在所述第一优先级低于第二优先级的情况下,将所述指示功能关闭的开关数据作为所述正确的目标数据。
12.一种数据保存装置,其特征在于,应用于包括REE系统和至少两个TEE系统的电子设备;所述装置用于执行如权利要求1-11中任一项所述的方法。
13.一种电子设备,其特征在于,包括REE系统和至少两个TEE系统、处理器和存储器;
所述存储器用于存储代码指令;所述处理器用于运行所述代码指令,以执行如权利要求1-11中任一项所述的方法。
14.一种操作系统,其特征在于,所述操作系统包括REE系统和至少两个TEE系统;所述REE系统上运行有CA,各个所述TEE系统运行有TA;
其中,运行在所述REE系统的第一CA用于获取待存储数据,并向所述至少两个TEE系统中的每个TEE系统中的第一目标TA发送所述待存储数据;
所述第一目标TA用于接收所述待存储数据,并将接收到的所述待存储数据保存至所述第一目标TA所在的TEE系统的存储介质中。
15.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-11中任一项所述的方法。
CN202210571545.2A 2022-05-24 2022-05-24 数据保存方法、装置、电子设备及计算机可读存储介质 Active CN116049913B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210571545.2A CN116049913B (zh) 2022-05-24 2022-05-24 数据保存方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210571545.2A CN116049913B (zh) 2022-05-24 2022-05-24 数据保存方法、装置、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN116049913A CN116049913A (zh) 2023-05-02
CN116049913B true CN116049913B (zh) 2023-11-03

Family

ID=86113878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210571545.2A Active CN116049913B (zh) 2022-05-24 2022-05-24 数据保存方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116049913B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446713A (zh) * 2014-08-13 2016-03-30 阿里巴巴集团控股有限公司 安全存储方法及设备
CN105512576A (zh) * 2015-12-14 2016-04-20 联想(北京)有限公司 一种数据安全存储的方法及电子设备
CN105592071A (zh) * 2015-11-16 2016-05-18 中国银联股份有限公司 一种在设备之间进行授权的方法和装置
CN109960903A (zh) * 2017-12-26 2019-07-02 中移(杭州)信息技术有限公司 一种应用加固的方法、装置、电子设备及存储介质
WO2019148397A1 (zh) * 2018-01-31 2019-08-08 华为技术有限公司 分解敏感数据存储在不同应用环境中
CN111310204A (zh) * 2020-02-10 2020-06-19 北京百度网讯科技有限公司 数据处理的方法及装置
CN111444528A (zh) * 2020-03-31 2020-07-24 海信视像科技股份有限公司 数据安全保护方法、装置及存储介质
EP3786794A1 (en) * 2019-08-30 2021-03-03 Trustonic Limited Trusted execution environment scheduling method
WO2021143168A1 (zh) * 2020-01-19 2021-07-22 华为技术有限公司 可信执行环境操作系统崩溃处理方法及电子设备
CN113645571A (zh) * 2021-07-15 2021-11-12 荣耀终端有限公司 数据传输方法及电子设备
WO2022028289A1 (zh) * 2020-08-07 2022-02-10 百果园技术(新加坡)有限公司 数据加密方法、数据解密方法、装置、终端和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569602B2 (en) * 2014-03-20 2017-02-14 Oracle International Corporation Mechanism for enforcing user-specific and device-specific security constraints in an isolated execution environment on a device
US10180800B2 (en) * 2017-03-02 2019-01-15 Intel Corporation Automated secure data and firmware migration between removable storage devices that supports boot partitions and replay protected memory blocks
US20190095879A1 (en) * 2017-09-26 2019-03-28 Cornell University Blockchain payment channels with trusted execution environments
US11556654B2 (en) * 2019-12-23 2023-01-17 Mediatek Inc. Security schemes for multiple trusted-execution-environments (TEEs) and multiple rich-execution-environments (REEs)
US11343082B2 (en) * 2020-09-28 2022-05-24 Red Hat, Inc. Resource sharing for trusted execution environments

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446713A (zh) * 2014-08-13 2016-03-30 阿里巴巴集团控股有限公司 安全存储方法及设备
CN105592071A (zh) * 2015-11-16 2016-05-18 中国银联股份有限公司 一种在设备之间进行授权的方法和装置
CN105512576A (zh) * 2015-12-14 2016-04-20 联想(北京)有限公司 一种数据安全存储的方法及电子设备
CN109960903A (zh) * 2017-12-26 2019-07-02 中移(杭州)信息技术有限公司 一种应用加固的方法、装置、电子设备及存储介质
WO2019148397A1 (zh) * 2018-01-31 2019-08-08 华为技术有限公司 分解敏感数据存储在不同应用环境中
EP3786794A1 (en) * 2019-08-30 2021-03-03 Trustonic Limited Trusted execution environment scheduling method
WO2021143168A1 (zh) * 2020-01-19 2021-07-22 华为技术有限公司 可信执行环境操作系统崩溃处理方法及电子设备
CN111310204A (zh) * 2020-02-10 2020-06-19 北京百度网讯科技有限公司 数据处理的方法及装置
CN111444528A (zh) * 2020-03-31 2020-07-24 海信视像科技股份有限公司 数据安全保护方法、装置及存储介质
WO2022028289A1 (zh) * 2020-08-07 2022-02-10 百果园技术(新加坡)有限公司 数据加密方法、数据解密方法、装置、终端和存储介质
CN113645571A (zh) * 2021-07-15 2021-11-12 荣耀终端有限公司 数据传输方法及电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于ARM TrustZone的安全存储研究与实现;魏兰;中国优秀硕士学位论文全文数据库 信息科技辑(第3期);I137-284 *
基于TEE的主动可信TPM/TCM设计与实现;董攀;丁滟;江哲;黄辰林;范冠男;;软件学报(第05期);1392-1405 *
移动终端TEE技术进展研究;刘志娟等;信息网络安全;第2018卷(第2期);84-91 *

Also Published As

Publication number Publication date
CN116049913A (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
CN107533609B (zh) 用于对系统中的多个可信执行环境进行控制的系统、设备和方法
US9043615B2 (en) Method and apparatus for a trust processor
US8893295B2 (en) Secure and private location
US9606940B2 (en) Methods and apparatus to utilize a trusted loader in a trusted computing environment
CN111444528A (zh) 数据安全保护方法、装置及存储介质
US20050132226A1 (en) Trusted mobile platform architecture
US20230161918A1 (en) Key management method, key management device, and computing device
US8369526B2 (en) Device, system, and method of securely executing applications
CN111917799A (zh) 基于验证信息、基于隐私数据的验证方法、装置及设备
CN106897595B (zh) 一种移动终端
CN117378173A (zh) 经由安全处理器计算设备的所有权的转移
CN110462620A (zh) 分解敏感数据存储在不同应用环境中
WO2022055802A1 (en) Temporary removal of software programs to secure mobile device
US20230161885A1 (en) Security architecture system, cryptographic operation method for security architecture system, and computing device
CN113168477A (zh) 数据处理的方法、装置和系统芯片
CN113051542A (zh) 二维码处理方法和设备
CN113821841B (zh) 资源管理方法、计算装置、计算设备和可读存储介质
KR20140112399A (ko) 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치
CN112182642B (zh) 隐私数据、可信应用处理方法、系统、装置及设备
CN117610083A (zh) 文件校验方法、装置、电子设备及计算机存储介质
CN116049913B (zh) 数据保存方法、装置、电子设备及计算机可读存储介质
CN103020509B (zh) 一种终端设备加密与解密方法、装置及终端设备
JP5528198B2 (ja) 情報処理装置及びプログラム
CN116049839A (zh) 一种数据传输方法和电子设备
CN115146253A (zh) 一种移动App登录方法、移动设备及系统

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