数据处理的方法以及计算设备

文档序号:169037 发布日期:2021-10-29 浏览:26次 >En<

阅读说明:本技术 数据处理的方法以及计算设备 (Data processing method and computing device ) 是由 彭琨 于 2020-06-12 设计创作,主要内容包括:本申请提供了一种数据处理的方法以及计算设备,该方法包括:可信执行环境TEE中的多个可信应用TA分别获取第一用户的多个数据片段,所述多个数据片段组成所述第一用户的数据;所述多个TA中的每个TA对各自获取的数据片段做处理,得到各自的结果;所述多个TA分别反馈各自的结果,所述多个TA反馈的结果用于确定所述第一用户的数据对应的结果。本申请的技术方案可以在TEE中进一步保证数据的安全隔离。(The application provides a data processing method and computing equipment, wherein the method comprises the following steps: a plurality of Trusted Applications (TA) in a Trusted Execution Environment (TEE) respectively acquire a plurality of data fragments of a first user, wherein the data fragments form data of the first user; each TA in the plurality of TAs processes the data fragment acquired by the TA to obtain a respective result; and the plurality of TAs respectively feed back respective results, and the results fed back by the plurality of TAs are used for determining the result corresponding to the data of the first user. The technical scheme of the application can further ensure the safety isolation of the data in the TEE.)

数据处理的方法以及计算设备

技术领域

本申请涉及数据处理技术领域,更具体地,涉及一种数据处理的方法以及计算设备。

背景技术

移动设备上部署有系统,该系统包含丰富执行环境(rich executionenvironment,REE)以及可信执行环境(trusted execution environment,TEE)。TEE是在该移动设备(例如,智能手机、平板电脑、智能电视等)内一个独立的隔离的安全运行环境,该环境与REE逻辑隔离。TEE为代码和数据的执行提供了一个更安全的空间,并保证用户的敏感信息(例如,用户的代码和数据)的机密性和安全性。

为了防止不同的TA之间互相随意读取和访问数据,相关的技术方案中,对TA在内存中的数据进行加密。这样,一方面,为了实现对内存中不同的TA数据进行加密,需要多个软硬件协同完成,增加了实现的复杂性,降低了内存和中央处理器(central processingunit,CPU)的利用率。另一方面,即使内存加密了,当数据被调入CPU参与计算的时候还是要先还原成明文,仍然有安全风险,因此,上述相关的技术方案中TEE的数据隔离不完全可靠,一旦隔离失败明文数据就泄露了。

因此,如何在TEE中进一步保证数据的安全隔离成为亟需要解决的问题。

发明内容

本申请提供一种数据处理的方法以及计算设备,可以在TEE中进一步保证数据的安全隔离。

第一方面,提供了一种数据处理的方法,包括:可信执行环境TEE中的多个可信应用TA分别获取第一用户的多个数据片段,所述多个数据片段组成所述第一用户的数据;所述多个TA中的每个TA对各自获取的数据片段做处理,得到各自的结果;所述多个TA分别反馈各自的结果,所述多个TA反馈的结果用于确定所述第一用户的数据对应的结果。

上述技术方案中,用户将自己的任务数据随机分成多个片段,并分别主动分享给多个TA,在TEE环境下运行这些多个TA。该多个TA分布式的计算后,将它们各自的结果进行反馈,以便于根据它们各自的计算结果拼合成自己的数据对应的结果。攻击者即使攻破了TEE的保护窃取了一个TA在内存中的数据,也只是获取到了用户的任务数据的其中一个随机片段,而无法获取用户的任务数据。这样,一方面,通过在TEE中处理碎片化的明文数据,在某个TA的内存暴露后仍然可以保护内存中的数据,简洁高效的同时还可以加强隐私保护的效果。另一方面,多个TA进行分布式的计算还可以提高计算效率。

在一种可能的实现方式中,TEE中的TA1获取第一用户的第一数据片段,并对第一数据片段做处理,得到第一结果;TEE中的TA2获取第一用户的第二数据片段,并对第二数据片段做处理,得到第二结果;TEE中的TA1和TA2分别反馈各自的第一结果和第二结果,该第一结果和第二结果用于确定所述第一用户的数据对应的结果。

在另一种可能的实现方式中,所述多个TA分别通过加密通道获取各自的密文;所述多个TA分别对各自的密文解密,得到各自的数据片段。

上述技术方案中,用户通过客户端将数据导入TEE环境之前对该数据进行加密,可以增强数据的安全性,加强隐私保护的效果。

在另一种可能的实现方式中,所述多个TA分别将各自的加密的结果,通过加密通道反馈给所述第一用户的客户端。

上述技术方案中,多个TA可以将各自的加密结果反馈给用户的客户端,并由用户的客户端对多个TA的加密结果解密,并根据解密后各自的结果得到第一用户的数据对应的结果。这样,多个TA在将结果反馈给用户的过程中,可以增强数据的安全性,加强隐私保护的效果。

在另一种可能的实现方式中,所述多个TA分别将各自的结果反馈给第一TA;所述第一TA根据所述多个TA反馈的结果确定所述第一用户的数据对应的结果。

上述技术方案中,如果一个用户的客户端的计算功能或安全性能有限,可以由TEE环境中的一个TA完成上述用户的客户端的任务。由于TEE的环境较安全,因此,在TEE的环境中确定所述第一用户的数据对应的结果,使得数据的安全性提高。

在另一种可能的实现方式中,在所述多个TA包括所述第一TA时,所述多个TA中除了所述第一TA的其它TA将各自的结果通过TEE通道反馈给第一TA。

在另一种可能的实现方式中,在所述多个TA包括所述第一TA时,该第一TA通过本地获取该第一TA的结果。

在另一种可能的实现方式中,所述方法还包括:改变所述多个TA的标识ID。

上述技术方案中,增加了混淆机制,可以改变一个用户的多个TA的标识ID,在一个用户的所有TA内存都被攻破,该用户的所有数据片段都被泄露的情况下,还可以进行多种保护,使得攻击者无法判断哪些TA属于同一用户,这样,进一步的增加了数据的安全性。

在另一种可能的实现方式中,所述方法还包括:同时改变用于处理所述第一用户的多个数据片段的所述多个TA的标识ID和用于处理第二用户的多个数据片段的多个TA的标识ID。

上述技术方案中,增加了混淆机制,可以同时改变多个用户的多个TA的标识ID,在一个用户的所有TA内存都被攻破,该用户的所有数据片段都被泄露的情况下,还可以进行多种保护,使得攻击者无法判断哪些TA属于同一用户,这样,进一步的增加了数据的安全性。

第二方面,提供了一种数据处理的系统,包括:客户端和可信执行环境TEE中的多个可信应用TA,

所述多个TA分别从所述客户端获取所述第一用户的多个数据片段,所述多个数据片段组成所述第一用户的数据;

所述多个TA中的每个TA对各自获取的数据片段做处理,得到各自的结果;

所述多个TA分别反馈各自的结果,所述多个TA反馈的结果用于确定所述第一用户的数据对应的结果。

在一种可能的实现方式中,所述多个TA具体用于:分别通过加密通道从所述客户端获取各自的密文;分别对各自的密文解密,得到各自的数据片段。

在另一种可能的实现方式中,所述多个TA具体用于:分别将各自的加密的结果,通过加密通道反馈给所述客户端;所述客户端具体用于:根据解密后所述多个TA各自的结果确定所述第一用户的数据对应的结果。

在另一种可能的实现方式中,所述多个TA具体用于:分别将各自的结果反馈给第一TA;所述第一TA用于根据所述多个TA反馈的结果确定所述第一用户的数据对应的结果。

在另一种可能的实现方式中,在所述多个TA包括所述第一TA时,所述多个TA中除了所述第一TA的其它TA将各自的结果通过TEE通道反馈给第一TA。

在另一种可能的实现方式中,所述系统还包括:操作系统,用于改变所述多个TA的标识ID。

在另一种可能的实现方式中,所述操作系统还用于:同时改变用于处理所述第一用户的多个数据片段的所述多个TA的标识ID和用于处理第二用户的多个数据片段的多个TA的标识ID。

在另一种可能的实现方式中,所述客户端还用于将所述第一用户的数据拆分成所述多个数据片段。

在上述第一方面中对相关内容的扩展、限定、解释、说明和效果也适用于第三方面中相同的内容。

第三方面,提供了一种可信应用TA,所述TA为可信执行环境TEE中的多个可信应用TA中的一个,所述TA包括:获取模块,处理模块,反馈模块,

获取模块,用于获取第一用户的多个数据片段中的一个数据片段,所述多个数据片段组成所述第一用户的数据;

处理模块,用于对获取的所述一个数据片段做处理,得到结果;

反馈模块,用于反馈结果,所述结果用于确定所述第一用户的数据对应的结果。

在一种可能的实现方式中,所述获取模块具体用于:通过加密通道获取密文;

所述处理模块还用于:对所述密文解密,得到所述一个数据片段。

在另一种可能的实现方式中,所述反馈模块具体用于:将加密的所述结果通过加密通道反馈给所述第一用户的客户端。

在另一种可能的实现方式中,所述反馈模块具体用于:将所述结果反馈给第一TA,所述第一TA用于根据所述多个TA反馈的结果确定所述第一用户的数据对应的结果。

在上述第一方面中对相关内容的扩展、限定、解释、说明和效果也适用于第三方面中相同的内容。

第四方面,提供了一种计算设备,包括:处理器和存储器,所述处理器运行所述存储器中的指令,使得所述计算设备执行如上述第一方面或第一方面的任意一种可能的实现方式中所执行的方法步骤。

第五方面,提供了一种计算设备,包括处理器和存储器;所述处理器运行所述存储器中的指令,使得所述计算设备部署如上述第三方面或第三方面的任意一种可能的实现方式中的TA。

第六方面,提供了一种计算机可读存储介质,包括指令;所述指令用于实现如第一方面或第一方面的任意一种可能的实现方式中所执行的方法步骤。

第七方面,提供了一种计算机可读存储介质,包括指令;所述指令用于实现如上述第三方面或第三方面的任意一种可能的实现方式中的TA。

可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。

第八方面,提供一种芯片,该芯片获取指令并执行该指令来实现上述第一方面以及第一方面的任意一种实现方式中数据处理的方法。

可选地,作为一种实现方式,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述第一方面以及第一方面的任意一种实现方式中数据处理的方法。

可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于执行第一方面以及第一方面中的任意一种实现方式中数据处理的方法。

第九方面,提供一种芯片,该芯片获取指令并执行该指令来实现上述第三方面或第三方面的任意一种可能的实现方式中的TA。

可选地,作为一种实现方式,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,实现上述第三方面或第三方面的任意一种可能的实现方式中的TA。

可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于实现第三方面或第三方面的任意一种可能的实现方式中的TA。

附图说明

图1是适用于本申请实施例的一种可能的系统架构示意图。

图2是本申请实施例提供的一种计算设备200的架构示意图。

图3是本申请实施例提供的一种数据处理的方法的示意性流程图。

图4是本申请实施例提供的另一种数据处理的方法的示意性流程图。

图5是本申请实施例提供的一种数据拆分过程的示意性框图。

图6是本申请实施例提供的一种多个TA分别上报中间计算结果的示意性框图。

图7是本申请实施例提供的一种多个子TA之间进行通信的示意性框图。

图8是本申请实施例提供的TA 800的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的各实施例中,“第一”、“第二”、“第三”、“第四”等仅是为了指代不同的对象,并不表示对指代的对象有其它限定。

由于本申请实施例涉及大量的专业术语,为了便于理解,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。

1、可信执行环境(trusted execution environment,TEE)

移动设备上部署有系统,该系统包含丰富执行环境(rich executionenvironment,REE)以及可信执行环境(trusted execution environment,TEE)。TEE是在该移动设备(例如,智能手机、平板电脑、智能电视等)内一个独立的隔离的安全运行环境,该环境与REE逻辑隔离。由于TEE提供了一个与REE隔离的环境保存用户的敏感信息(例如,用户的代码和数据),TEE可以直接获取REE的信息,而REE不能获取TEE的信息,因此,TEE为代码和数据的执行提供了一个更安全的空间,并保证用户的敏感信息(例如,用户的代码和数据)的机密性和安全性。

可选地,该移动设备可以是台式机、笔记本、手机、平板电脑、智能手表、智能手环等,本申请不做具体限定。

在TEE上运行的应用叫做可信应用(trusted application,TA),TEE在处理器(例如,中央处理器(central processing unit,CPU))和内存中划分出独立的可信区,并在处理器和内存中隔离不同的TA,防止不同的TA之间互相随意读取和访问数据。在TEE中运行的TA可以访问设备主处理器和内存的全部功能,而硬件隔离保护这些组件不会受到主操作系统中运行的用户安装应用程序的影响。

2、软件防卫指令集扩展(software guard extension,SGX)

SGX是Intel架构新的扩展,在原有架构上增加了一组新的指令集和内存访问机制,这些扩展允许应用程序实现一个被称为飞地(enclave)的容器。为了防止不同的TA之间互相随意读取和访问数据,可以通过基本输入输出系统(basic input output system,BIOS)在应用程序的地址空间中划分出独立的被保护的区域,该区域作为enclave使用。enclave内的数据是经过加密的,内核和超级监督者(hypervisor)都无法查看。因此,SGX不仅可以将不同TA的数据在内存中分区隔离,还可以将内存enclave中的数据加密。这样,开发者可以把应用程序划分到enclave中或者内存中可执行的保护区域,即使在受攻击的平台中也能提高安全性。使用这种新的应用层可信执行环境,开发者能够启用身份和记录隐私、安全浏览和数字管理保护(digital management protection,DRM)或者任何需要安全存储机密或者保护数据的高保障安全应用场景中。

SGX的实现需要处理器、内存管理部件、BIOS、驱动程序、运行时环境等软硬件协同完成。

3、飞地(enclave)

将合法软件的安全操作封装在一个enclave中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问enclave。也就是说,一旦软件和数据位于enclave中,即便操作系统或虚拟机管理器程度(virtual machine manager,VMM)也无法影响enclave里面的代码和数据。

4、安全多方计算(secure multi-party computation,SMC)

SMC作为密码学的一个子领域,允许多个数据所有者在互不信任的情况下进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息。

SMC是解决一组互不信任的参与方之间保护隐私的协同计算问题,SMC要确保输入的独立性、计算的正确性、去中心化等特征,同时不泄露各输入值给参与计算的其他成员。主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题,同时要求每个参与主体除了计算结果外不能得到其他实体任何的输入信息。

SMC中的多个参与方各自持有私密数据,需要在不泄露各自数据的前提下计算出这些数据的一个函数(比如,百万富翁问题中的大小比较函数),于是它们进行一个分布式计算。各个模型预测控制(model predictive control,MPC)节点根据计算逻辑,在本地完成数据提取、计算,并将输出计算结果路由到指定节点,从而多方节点完成协同计算任务,输出唯一性结果。整个过程各方数据全部在本地计算,并不提供原始数据给其他节点,在保证数据隐私的情况下,将中间计算结果反馈到整个计算任务系统,从而各方得到正确的最终结果。

5、门限秘密分享(threshold secret sharing,TSS)

TSS的目的是不依赖于对单一主体(秘密持有者)的信任,将信任分散化灵活化,以降低秘密滥用和泄露的风险,同时加强秘密的强健容错性。通常采用的是t-out-of-n门限,即一个秘密由n个持有人分享,他们中的任意t个可以恢复秘密,但少于t个持有人则掌握不了秘密的任何信息。

6、任务

在本申请中是一个泛指的概念,计算机需要实现的事情都可以称之为任务,例如进程、线程、子线程、客户端应用(client application,CA)、可信应用(trustedapplication,TA)、某种服务等。

下面结合图1,对适用于本申请实施例的系统架构进行详细描述。

图1是适用于本申请实施例的一种可能的系统架构示意图。

如图1所示,硬件层的高级精简指令集计算机(advanced RISC machine,ARM)引入了安全扩展(security extension),其将片上系统(system on a chip)的硬件资源和软件资源划分为安全世界(secure world)和非安全世界(non-secure world)。

所有需要保密的操作在secure world(如指纹识别、密码处理、数据加解密、安全认证等)。其余操作在non-secure world执行(如用户操作系统、各种应用程序等)。secureworld和non-secure world之间通过一个名为监视器(monitor)的模块进行转换。

当CPU运行在secure world的时候,它可以访问所有的硬件资源,但当CPU运行在normal world的时候,它只能访问normal world的资源。

可选地,non-secure world也可以称为正常模式(normal world)。

在non-secure world中,正常操作系统(normal OS)可以包括但不限于:Linux,安卓(Android),normal OS也可以称为丰富操作系统(rich OS)。normal OS上运行的应用叫正常应用(normal applications,normal Apps)。

在secure world中,安全操作系统(secure operating system,secure OS)可以包括但不限于:开源可移植可信执行环境操作系统(open-source portable trustedexecution environment OS,OP-TEE OS)等。secure world是一种可信执行环境TEE,该环境可以保证不被常规操作系统干扰的计算,因此称为“可信”。TEE是一个与rich OS并行运行的独立执行环境,为rich OS环境提供安全服务。TEE独立于rich OS和其上的应用,来访问硬件和软件安全资源。secure OS上运行的应用叫TA。

安全计算和可信计算的核心技术是数据隔离,即保护用户的数据不被其它实体(包括管理员等超级用户)所访问。虽然全密文计算也可以通过全流程全环境加密保护数据隐私,却有实现代价太高的弊端。所以数据隔离仍然是更广泛更实际的数据保护手段。

在TEE中,为了避免不同的TA之间互相随意读取和访问数据,需要对内存中不同的TA数据进行加密。这样,一方面,为了实现对内存中不同的TA数据进行加密,需要多个软硬件协同完成,增加了实现的复杂性,降低了内存和CPU的利用率。另一方面,即使内存加密了,比如在SGX中,当数据被调入CPU参与计算的时候还是要先还原成明文,仍然有安全风险,因此,TEE的数据隔离不完全可靠,一旦隔离失败明文数据就泄露了。

有鉴于此,本申请提出了一种数据处理的方法,在TEE中进一步防止TA随意读取和访问其他TA的数据,在保证数据安全隔离的同时还可以降低实现的复杂度,提高内存和CPU的利用率。

例如图1所示的系统架构中,CPU在其他控制机制(例如,secure OS、hypervisor)的配合下,给予某个任务多TA支持。也就是说,secure OS上运行的多个TA(例如,TA1、TA2、TA3)为一个任务或一个用户进行分布式地计算。具体的,在CPU、secure OS,有时还有hypervisor的必要支持和配合下,由TEE中的多个TA分别实现上述多个子任务。如图1所示的架构,TEE中的多个TA分布式地运用各个数据片段的明文计算可以视作ARM security的一个功能扩展。

本申请实施例提供的数据处理的方法可应用于计算设备,计算设备也可以被称为计算机系统,包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括处理单元、内存和内存控制单元等硬件,随后对该硬件的功能和结构进行详细说明。该操作系统是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用程序。并且,可选地,该计算机系统是智能手机等手持设备,或个人计算机等终端设备,本申请并未特别限定,只要能够通过本申请实施例提供的方法即可。本申请实施例提供数据处理的方法的执行主体可以是计算机系统,或者,是计算机系统中能够调用程序并执行程序的功能模块。

下面结合图2,对本申请实施例提供的一种计算设备进行详细描述。

图2是本申请实施例提供的一种计算设备200的架构示意图。该计算设备200可以是服务器或者计算机或者其他具有计算能力的设备。图2所示的计算设备200包括:至少一个处理器110和内存120。

处理器110执行内存120中的指令,使得计算设备200实现本申请提供的数据处理的方法,例如实现由TA执行的步骤。或者,处理器110执行内存120中的指令,使得计算设备200实现本申请提供的TA,例如实现TA包括的各功能模块。

可选地,计算设备200还包括系统总线,其中,处理器110和内存120分别与系统总线连接。处理器110能够通过系统总线访问内存120,例如,处理器110能够通过系统总线在内存120中进行数据读写或代码执行。该系统总线是快捷外设部件互连标准(peripheralcomponent interconnect express,PCI)总线或扩展工业标准结构(extended industrystandard architecture,EISA)总线等。所述系统总线分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

一种可能的实现方式,处理器110的功能主要是解释计算机程序的指令(或者说,代码)以及处理计算机软件中的数据。其中,该计算机程序的指令以及计算机软件中的数据能够保存在内存120或者缓存116中。

可选地,处理器110可能是集成电路芯片,具有信号的处理能力。作为示例而非限定,处理器110是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其中,通用处理器是微处理器等。例如,该处理器110是中央处理单元(central processing unit,CPU)。

可选地,每个处理器110包括至少一个处理单元112和内存控制单元114。

可选地,处理单元112也称为核心(core)或内核,是处理器最重要的组成部分。处理单元112是由单晶硅以一定的生产工艺制造出来的,处理器所有的计算、接受命令、存储命令、处理数据都由核心执行。处理单元分别独立地运行程序指令,利用并行计算的能力加快程序的运行速度。各种处理单元都具有固定的逻辑结构,例如,处理单元包括例如,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元。

一种实现举例,内存控制单元114用于控制内存120与处理单元112之间的数据交互。具体地说,内存控制单元114从处理单元112接收内存访问请求,并基于该内存访问请求控制针对内存的访问。作为示例而非限定,内存控制单元是内存管理单元(memorymanagement unit,MMU)等器件。

一种实现举例,各内存控制单元114通过系统总线进行针对内存120的寻址。并且在系统总线中配置仲裁器(图中未示出),该仲裁器负责处理和协调多个处理单元112的竞争访问。

一种实现举例,处理单元112和内存控制单元114通过芯片内部的连接线,例如地址线,通信连接,从而实现处理单元112和内存控制单元114之间的通信。

可选地,每个处理器110还包括缓存116,其中,缓存是数据交换的缓冲区(称作cache)。当处理单元112要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助处理单元112更快地运行。

内存(memory)120能够为计算设备100中的进程提供运行空间,例如,内存120中保存用于生成进程的计算机程序(具体地说,是程序的代码)。计算机程序被处理器运行而生成进程后,处理器在内存120中为该进程分配对应的存储空间。进一步的,上述存储空间进一步包括文本段、初始化数据段、位初始化数据段、栈段、堆段等等。内存120在上述进程对应的存储空间中保存进程运行期间产生的数据,例如,中间数据,或过程数据等等。

可选地,内存也称为内存储器,其作用是用于暂时存放处理器110中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,处理器110就会把需要运算的数据调到内存中进行运算,当运算完成后处理单元112再将结果传送出来。

作为示例而非限定,内存120是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DRRAM)。应注意,本文描述的系统和方法的内存120旨在包括但不限于这些和任意其它适合类型的存储器。

以上列举的计算设备200的结构仅为示例性说明,本申请并未限定于此,本申请实施例的计算设备200包括现有技术中计算机系统中的各种硬件,例如,计算设备200还包括除内存120以外的其他存储器,例如,磁盘存储器等。本领域的技术人员应当理解,计算设备200还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,上述计算设备200还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,上述计算设备200也可仅仅包括实现本申请实施例所必须的器件,而不必包括图2中所示的全部器件。

下面结合图3,对本申请实施例提供的数据处理的方法进行详细的介绍。该方法可以由图2所示的计算设备200执行,以实现本申请提供的数据处理的方法,例如实现由TA以及客户端执行的步骤。

图3是本申请实施例提供的一种数据处理的方法的示意性流程图。如图3所示,该方法可以包括步骤310-330,下面分别对步骤310-330进行详细描述。

步骤310:可信执行环境TEE中的多个可信应用TA分别从客户端获取第一用户的多个数据片段。

TEE中运行的多个TA可以分别从客户端获取第一用户的多个数据片段,该多个数据片段可以组成所述第一用户的数据。

作为示例,客户端可以第一用户的数据拆分成随机的多个数据片段,并分别传输给所述TEE中运行的多个TA。

一种可能的实现中,该多个TA可以分别通过加密通道从客户端处获取各自的密文,并分别对各自的密文解密,得到各自的数据片段。

步骤320:多个TA中的每个TA对各自获取的数据片段做处理,得到各自的结果。

多个TA中的每个TA可以在从客户端获取到各自的数据片段后,分别对各自的数据片段做处理,并分别得到各自的处理结果。

可选地,每个TA对各自的数据片段做处理的过程也可以理解为每个TA执行各自的计算任务,并分别得到计算结果。

多个TA中的每个TA所执行的计算任务可以相同,或者也可以不同,本申请对此不做具体限定。

上述TA执行的计算任务可以有多种,本申请不做具体限定。下面列举两个例子来说明TA执行计算任务的具体实现过程。

一个示例,假设用户的数据为一个密钥,要用该密钥去解密数据。如果该密钥丢失的话,不仅破坏本次的秘密计算,还会影响到过去和以后用同样密钥加密的数据。因此,可以将该密钥分成多个随机片段,它们的和是一个完整的密钥。每个TA拿到一个随机片段后,根据该随机片段做一部分的解密,并分别得到各自的解密结果。最后各自的解密结果汇集到一起可以得到解密后的明文。

另一个示例,在金融服务中,一个用户缴纳一个电子货币作为押金。该电子货币不能随便让人看到并把它拿走,但是还需要验证它是一个真实有效的货币。可以假设用户的一个数据为该电子货币,并可以将该电子货币拆分成多个随机片段,它们的和是一个完整的电子货。每个TA拿到一个随机片段后,根据该随机片段做一部分的验证,并分别得到各自的验证结果。最后各自的验证结果汇集到一起可以判断该电子货币的有效性。必要时,该多个TA还可以共同恢复电子货币用于支付罚款等。

步骤330:多个TA分别反馈各自的结果。

多个TA在得到各自的结果后,可以分别反馈各自的结果。其中,多个TA反馈的结果可以用于确定第一用户的数据对应的结果。作为示例,可以对多个TA反馈的结果进行拼凑,得到所述第一用户的数据对应的结果。下面会结合具体的例子进行说明,此处暂不详述。

多个TA分别反馈各自的结果的具体实现方式有多种,下面对两种可能的实现方式进行详细描述。

一种可能的实现方式中,所述多个TA可以分别将各自的加密的结果,通过加密通道反馈给客户端。客户端可以对多个TA各自的加密的结果进行解密后,得到多个TA各自的结果,并基于该多个TA各自的结果确定第一用户的数据对应的结果。

另一种可能的实现方式中,所述多个TA可以分别将各自的结果反馈给第一TA,并由第一TA根据多个TA反馈的结果确定第一用户的数据对应的结果。

在这种实现方式中,在多个TA包括第一TA时,多个TA中除了第一TA的其它TA将各自的结果通过TEE通道反馈给第一TA,第一TA可以通过本地获取其自己的结果。

上述技术方案中,用户将自己的任务数据随机分成多个片段,并分别主动分享给多个TA,在TEE环境下运行这些多个TA。该多个TA分布式的计算后,将它们各自的结果进行反馈,以便于根据它们各自的计算结果拼合成自己的数据对应的结果。攻击者即使攻破了TEE的保护窃取了一个TA在内存中的数据,也只是获取到了用户的任务数据的其中一个随机片段,而无法获取用户的任务数据。这样,一方面,通过在TEE中处理碎片化的明文数据,在某个TA的内存暴露后仍然可以保护内存中的数据,简洁高效的同时还可以加强隐私保护的效果。另一方面,多个TA进行分布式的计算还可以提高计算效率。

下面结合图4中具体的例子,对数据处理的方法的一种具体实现方式进行描述。应理解,图4的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于图4的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。

图4是本申请实施例提供的另一种数据处理的方法的示意性流程图。如图4所示,该方法可以包括步骤410-430,下面分别对步骤410-430进行详细描述。

步骤410:用户通过客户端将自己的一个数据分成多份,并分别分给每个TA一个数据片段。

假设某用户需要计算一个复杂函数f(x),其中x是一个长度较大的输入而f()计算量很大。该用户算力不足,需要借助外部算力,同时要保护自己的私密数据x。

可选地,用户的秘密数据也可以理解为用户的数据或一个任务的数据。

用户可以通过客户端将自己的一个数据随机分成多个数据片段,并通过加密通道将加密的数据片段通过其控制的TA传输至TEE环境。

一种实现方式,以图5为例。用户可以通过客户端将每一个数据拆分为多个随机的数据片段,并通过加密通道传输至TEE中的多个TA。例如图5中,用户可以通过客户端将一个数据拆分为随机的3个数据片段,并分别通过密通道传输至TEE中的TA1、TA2、TA3。

用户的数据可以是存储在硬盘上,或者是存储在云服务器上,该数据的数据在导入TEE环境之前,其安全性不能得到保障。因此,用户在通过客户端将数据从硬盘上或者云服务器上导入TEE环境之前,需要对该数据进行加密。

各个TA在计算过程中可能会和用户或其他TA之间进行信息或计算结果的交互,为了避免不必要的TA之间的通信或用户干预,最优选的数据拆分方案是各个TA收到数据片段后不需要彼此交换信息就能计算出各自的结果。

同时,为了数据的安全,拆分出的数据片段具有随机性,每个单独片段不泄露原始数据的任何信息。比如,私密数据x通过选择随机数x1拆分成x=x1+x2,或x=x1*x2。作为示例,可以根据SMC的方法进行数据的拆分,具体的请参考上文中对SMC的描述,此处暂不详述。

步骤420:每个TA获得数据片段后分布式地完成计算任务。

每个TA可以各自从客户端获得一份加密的数据片段,在TEE内各个TA在数据片段解密后,分时占用CPU分布式地完成各自的计算任务,得到中间计算结果。在数据导入TEE环境之后,由于TEE环境可以实现对数据的保护,因此,在TEE环境中不需要对数据片段进行加密。

一种实现方式,以三个TA为例。在步骤410中,用户通过客户端将私密数据x随机拆分为x1、x2、x3,将三个对应的分布式计算函数f1(x1)、f2(x2)、f3(x3)。并将三个对应的分布式计算函数分别实例化为TA1、TA2、TA3。也就是说,将TA1、TA2、TA3可以根据输入信息x1、x2、x3分布式地实现f1(x1)、f2(x2)、f3(x3)的计算任务。

基于多方计算的算法分解和数据拆分技术支持,一个计算任务在软件上就已经被拆分为多个子任务。在CPU、操作系统(operating system,OS)、有时还有超级监督者(hypervisor)的必要支持与配合下,由TEE中的多个TA分别实现上述多个子任务。这样,就可以依赖TEE对程序可靠性和数据隐私隔离的支持进行安全计算。

步骤430:根据TEE中的各个TA的中间计算结果得到最终计算结果。

TEE中的各个TA可以根据各自得到的数据片段计算得到中间计算结果f1(x1)、f2(x2)、f3(x3),并可以根据多个中间计算结果得到最终计算结果。具体的实现方式有多种,下面对几种可能的实现方式进行详细描述。

一种可能的实现方式中,参见图6,每一个TA对得到的中间计算结果加密后,通过加密通道将加密的中间计算结果反馈给用户的客户端,并由用户的客户端对多个中间计算结果解密后综合得出最终计算结果。作为一个示例,用户的客户端通过一个简单的拼合函数F()得到最终计算结果f(x)。例如,最终计算结果f(x)=F(f1(x1),f2(x2),f3(x3))。

另一种可能的实现方式中,如果用户客户端的计算功能或安全性能有限,也可以在TEE中专门设立一个TA,并通过该TA完成上述用户的任务,根据多个中间计算结果综合得出最终计算结果。具体的,其他的TA(例如,TA1、TA2、TA3)可以将得到的中间计算结果f1(x1)、f2(x2)、f3(x3)通过TEE内部通道传输至TA,并由该TA根据中间计算结果得出最终计算结果f(x)。作为一个示例,该TA通过一个简单的拼合函数F()得到最终计算结果f(x)。例如,最终计算结果f(x)=F(f1(x1),f2(x2),f3(x3))。

可选地,在一些实施例中,各个TA在分布式地计算过程中,需要与用户或者其他TA进行信息交互或交换。当各个TA之间的通信(例如,交换必要的中间计算结果)过多的时候,它们可能时常需要挂起等待用户(或他控制的信息交换TA)在各个TA间收集和传送中间计算结果。这时,为了避免无谓的挂起等待,可以考虑在时间轴上将各TA进一步拆分为几个轮次的子TA,它们在轮间通过用户的中心控制交互信息。

作为示例,参见图7,可以将每个TA拆分为3个子TA。例如,TA1拆分为TA1-1、TA1-2、TA1-3;TA2拆分为TA2-1、TA2-2、TA2-3;TA3拆分为TA3-1、TA3-2、TA3-3。每个子TA之间可以通过TEE的内部通道进行通信(例如,交换必要的中间计算结果)。这样,以TA2为例,如果TA2需要获取TA1的中间计算结果,并根据TA1的中间计算结果计算TA2的中间计算结果。如果TA1-1已经得到了TA1的中间计算结果,此时,TA2可以直接从TA1-1处获取TA1的中间计算结果,而不需要等待TA1全部执行完之后再获取TA1的中间计算结果,避免了无谓的挂起等待。

可选地,在一些实施例中,如果因为TEE失效造成一个用户的所有TA内存都被攻破,该用户的所有数据片段就都泄露了。为了进行多种保护,增加安全韧性,可以增加混淆机制,计算设备中的OS可以打散多个TA的标识(identification,ID)。在用户的所有数据片段都泄露之后,攻击者无法判断哪些TA属于同一用户,这样,也就无法利用它们的数据片段去恢复原始数据。

一种可能的实现方式中,OS可以改变执行一个用户的数据任务的多个TA的标识(identification,ID),使得旁观者(例如其它TA的所有者)获取到一个用户的所有TA在内存中的数据后,根据改变后多个TA的ID,无法去恢复原始数据。

另一种可能的实现方式中,OS可以同时改变多个用户的多个TA的ID。作为一个示例,OS可以打散多个用户的多个TA的ID,使得旁观者(例如其它TA的所有者)获取到一个用户的所有TA在内存中的数据后,根据改变后多个TA的ID,无法去拼凑出一个用户的原始数据。

假设有三个用户,用户1、用户2,每个用户通过四个TA进行分布式地对各自获取的数据片段做处理。其中,用户1对应的TA分别为TA1、TA2、TA3、TA4,其TA的标识分别为1、2、3、4;用户2对应的TA分别为TA5、TA6、TA7、TA8,其TA的标识分别为5、6、7、8。用户1和用户2的八个TA的ID依次为:1,2,3,4,5,6,7,8。OS可以重置上述TA1-TA6对应的标识,并保存改变后的TA的标识和改变前的TA的标识之间的对应关系。例如,将用户1和用户2的八个TA的ID改变为:1,4,5,7,2,3,6,8。

这样,旁观者(例如其它TA的所有者)即使获得了一个用户的所有TA的数据片段,也无法根据这些数据片段去恢复出原始数据。例如,旁观者获得了用户1的TA1、TA2、TA3、TA4在内存中的数据,而TA1、TA2、TA3、TA4的ID分别为:1,4,5,7,旁观者无法根据ID分别为:1,4,5,7的多个TA是属于一个用户的,也就无法利用他们的数据片段去恢复出原始的数据。

在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

上文结合图1至图7,详细描述了数据处理的方法,下面将结合图8,详细描述本申请的装置实施例。

图8是本申请实施例提供的TA 800的示意性框图。

TA 800能够执行图3至图4所示的数据处理的方法中TA所执行的各个步骤,为了避免重复,此处不再详述。TA 800包括:获取模块810,处理模块820,反馈模块830,

获取模块810,用于获取第一用户的多个数据片段中的一个数据片段,所述多个数据片段组成所述第一用户的数据;

处理模块820,用于对获取的一个数据片段做处理,得到结果;

反馈模块830,用于反馈结果,所述结果用于确定所述第一用户的数据对应的结果。

可选地,所述获取模块810具体用于:通过加密通道获取密文;

所述处理模块还用于:对密文解密,得到该一个数据片段。

可选地,所述反馈模块830具体用于:将加密的结果通过加密通道反馈给所述客户端。

可选地,所述反馈模块830具体用于:将结果反馈给第一TA,所述第一TA用于根据多个TA反馈的结果确定所述第一用户的数据对应的结果。

这里的TA 800可以以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。

例如,“模块”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。

因此,在本申请的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例还提供一种芯片,该芯片获取指令并执行该指令来实现上述数据处理的方法,或者该指令用于实现上述的TA。

可选地,作为一种实现方式,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述数据处理的方法。

可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于执行上述数据处理的方法。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有指令,该指令用于上述方法实施例中的数据处理的方法,或者该指令用于实现上述的TA。

本申请实施例还提供一种包含指令的计算机程序产品,该指令用于实现上述方法实施例中的数据处理的方法,或者该指令用于实现上述的TA。

一种实现举例,处理器可以为中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

一种实现举例,存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasablePROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。

本申请中,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:应用漏洞检测方法、装置、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类