CN113704211A - 数据查询方法及装置、电子设备、存储介质 - Google Patents
数据查询方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN113704211A CN113704211A CN202111249508.1A CN202111249508A CN113704211A CN 113704211 A CN113704211 A CN 113704211A CN 202111249508 A CN202111249508 A CN 202111249508A CN 113704211 A CN113704211 A CN 113704211A
- Authority
- CN
- China
- Prior art keywords
- query
- party
- execution environment
- trusted execution
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本说明书提供一种数据查询方法及装置、电子设备、存储介质。该方法应用于被查询方,被查询方部署有第一可信执行环境,被查询方的隐私数据存储于区别于第一可信执行环境的外界存储环境中;包括:将数据查询请求读入第一可信执行环境内以读取隐私查询条件;在第一可信执行环境内对隐私查询条件进行模糊处理得到模糊查询条件,根据模糊查询条件向外界存储环境发起数据查询操作,以使得外界存储环境响应于数据查询操作以返回相应的模糊查询结果;在第一可信执行环境内根据隐私查询条件对模糊查询结果进行求精,得到针对数据查询请求的精确查询结果,并向查询方返回精确查询结果,以由查询方将精确查询结果读入部署的第二可信执行环境内进行处理。
Description
技术领域
本说明书一个或多个实施例涉及通讯技术领域,尤其涉及一种数据查询方法及装置、电子设备、存储介质。
背景技术
在相关技术中,可由多方参与来共同完成某些业务,该过程需要多方提供自身的隐私数据,比如,多方安全计算,多方数据融合协作等。在上述场景中,由于涉及到隐私数据的共享,那么应当保障数据安全和不泄露用户隐私。比如,在数据融合协作场景下,应当保证在不泄漏各方隐私数据的情况下,获得所需要的协作数据。
除此之外,还需要规定各方的数据访问行为,使得数据访问操作可控、可审计,以进一步提高数据的安全性。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种数据查询方法及装置、电子设备、存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种数据查询方法,应用于被查询方,所述被查询方部署有第一可信执行环境,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;所述方法包括:
响应于查询方发起的数据查询请求,将所述数据查询请求读入所述第一可信执行环境内以读取所述数据查询请求中包含的隐私查询条件;
在所述第一可信执行环境内对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,根据所述模糊查询条件向所述外界存储环境发起数据查询操作,以使得所述外界存储环境响应于所述数据查询操作以返回相应的模糊查询结果;
在所述第一可信执行环境内根据所述隐私查询条件对所述模糊查询结果进行求精,得到针对所述数据查询请求的精确查询结果,并向所述查询方返回所述精确查询结果,以由所述查询方将所述精确查询结果读入部署的第二可信执行环境内进行处理。
可选的,所述在所述第一可信执行环境内对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,包括:
在所述第一可信执行环境内对所述隐私查询条件进行近似查询处理或不可察觉查询处理以得到所述模糊查询条件。
可选的,所述被查询方部署的第一可信执行环境内维护有用于响应所述数据查询请求的被查询方协作代码;所述查询方部署的第二可信执行环境内维护有用于发起所述数据查询请求的查询方协作代码,所述方法还包括:
向所述查询方发送针对所述第一可信执行环境的第一远程证明报告,以由所述查询方在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,将所述第一可信执行环境维护的被查询方协作代码和与所述被查询方预先协商的被查询方协作代码进行比较得到第一比较结果;
获取针对所述第二可信执行环境的第二远程证明报告,在根据所述第二远程证明报告确定所述第二可信执行环境可信的情况下,将所述第二可信执行环境维护的查询方协作代码和与所述查询方预先协商的查询方协作代码进行比较得到第二比较结果;
其中,所述第一比较结果为一致被作为所述查询方发起所述数据查询请求的前提条件,所述第二比较结果为一致被作为所述被查询方响应所述数据查询请求的前提条件。
可选的,被查询方协作代码中包含风控策略代码;所述方法还包括:
在接收到所述数据查询请求后,通过执行所述风控策略代码对所述隐私查询条件进行风控校验,以在校验通过的情况下响应所述数据查询请求。
根据本说明书一个或多个实施例的第二方面,提出了一种数据查询方法,应用于查询方;所述方法包括:
向被查询方发起包含隐私查询条件的数据查询请求,以由所述被查询方响应于所述数据查询请求,将所述数据查询请求读入所部署的第一可信执行环境内读取出所述隐私查询条件,并对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;
接收所述被查询方返回的针对所述数据查询请求的精确查询结果,并将所述精确查询结果读入部署的第二可信执行环境内进行处理,所述精确查询结果由所述被查询方在所述第一可信执行环境内根据所述隐私查询条件对模糊查询结果进行求精得到,所述模糊查询结果由所述外界存储环境响应于所述被查询方根据所述模糊查询条件发起的数据查询操作得到。
可选的,所述被查询方部署的第一可信执行环境内维护有用于响应所述数据查询请求的被查询方协作代码;所述查询方部署的第二可信执行环境内维护有用于发起所述数据查询请求的查询方协作代码,所述方法还包括:
获取针对所述第一可信执行环境的第一远程证明报告,在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,将所述第一可信执行环境维护的被查询方协作代码和与所述被查询方预先协商的被查询方协作代码进行比较得到第一比较结果;
向所述被查询方发送针对所述第二可信执行环境的第二远程证明报告,以由所述被查询方在根据所述第二远程证明报告确定所述第二可信执行环境可信的情况下,将所述第二可信执行环境维护的查询方协作代码和与所述查询方预先协商的查询方协作代码进行比较得到第二比较结果;
其中,所述第一比较结果为一致被作为所述查询方发起所述数据查询请求的前提条件,所述第二比较结果为一致被作为所述被查询方响应所述数据查询请求的前提条件。
根据本说明书一个或多个实施例的第三方面,提出了一种数据查询装置,应用于被查询方,所述被查询方部署有第一可信执行环境,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;所述装置包括:
响应单元,响应于查询方发起的数据查询请求,将所述数据查询请求读入所述第一可信执行环境内以读取所述数据查询请求中包含的隐私查询条件;
查询单元,在所述第一可信执行环境内对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,根据所述模糊查询条件向所述外界存储环境发起数据查询操作,以使得所述外界存储环境响应于所述数据查询操作以返回相应的模糊查询结果;
返回单元,在所述第一可信执行环境内根据所述隐私查询条件对所述模糊查询结果进行求精,得到针对所述数据查询请求的精确查询结果,并向所述查询方返回所述精确查询结果,以由所述查询方将所述精确查询结果读入部署的第二可信执行环境内进行处理。
可选的,所述查询单元具体用于:
在所述第一可信执行环境内对所述隐私查询条件进行近似查询处理或不可察觉查询处理以得到所述模糊查询条件。
可选的,所述被查询方部署的第一可信执行环境内维护有用于响应所述数据查询请求的被查询方协作代码;所述查询方部署的第二可信执行环境内维护有用于发起所述数据查询请求的查询方协作代码,所述响应单元还用于:
向所述查询方发送针对所述第一可信执行环境的第一远程证明报告,以由所述查询方在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,将所述第一可信执行环境维护的被查询方协作代码和与所述被查询方预先协商的被查询方协作代码进行比较得到第一比较结果;
获取针对所述第二可信执行环境的第二远程证明报告,在根据所述第二远程证明报告确定所述第二可信执行环境可信的情况下,将所述第二可信执行环境维护的查询方协作代码和与所述查询方预先协商的查询方协作代码进行比较得到第二比较结果;
其中,所述第一比较结果为一致被作为所述查询方发起所述数据查询请求的前提条件,所述第二比较结果为一致被作为所述被查询方响应所述数据查询请求的前提条件。
可选的,被查询方协作代码中包含风控策略代码;所述响应单元还用于:
在接收到所述数据查询请求后,通过执行所述风控策略代码对所述隐私查询条件进行风控校验,以在校验通过的情况下响应所述数据查询请求。
根据本说明书一个或多个实施例的第四方面,提出了一种数据查询装置,应用于查询方;所述装置包括:
查询发起单元,向被查询方发起包含隐私查询条件的数据查询请求,以由所述被查询方响应于所述数据查询请求,将所述数据查询请求读入所部署的第一可信执行环境内读取出所述隐私查询条件,并对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;
结果接收单元,接收所述被查询方返回的针对所述数据查询请求的精确查询结果,并将所述精确查询结果读入部署的第二可信执行环境内进行处理,所述精确查询结果由所述被查询方在所述第一可信执行环境内根据所述隐私查询条件对模糊查询结果进行求精得到,所述模糊查询结果由所述外界存储环境响应于所述被查询方根据所述模糊查询条件发起的数据查询操作得到。
可选的,所述被查询方部署的第一可信执行环境内维护有用于响应所述数据查询请求的被查询方协作代码;所述查询方部署的第二可信执行环境内维护有用于发起所述数据查询请求的查询方协作代码,所述查询发起单元还用于:
获取针对所述第一可信执行环境的第一远程证明报告,在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,将所述第一可信执行环境维护的被查询方协作代码和与所述被查询方预先协商的被查询方协作代码进行比较得到第一比较结果;
向所述被查询方发送针对所述第二可信执行环境的第二远程证明报告,以由所述被查询方在根据所述第二远程证明报告确定所述第二可信执行环境可信的情况下,将所述第二可信执行环境维护的查询方协作代码和与所述查询方预先协商的查询方协作代码进行比较得到第二比较结果;
其中,所述第一比较结果为一致被作为所述查询方发起所述数据查询请求的前提条件,所述第二比较结果为一致被作为所述被查询方响应所述数据查询请求的前提条件。
根据本说明书一个或多个实施例的第五方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一实施例中所述的方法。
根据本说明书一个或多个实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述实施例中任一所述方法的步骤。
在本说明书的技术方案中,查询方和被查询方均部署有可信执行环境,使得查询方查询隐私数据、被查询方响应查询操作、查询方处理隐私数据等操作均可以在各自的可信执行环境内执行,从而可防止隐私数据泄露,以及执行上述操作的过程中暴露隐私数据的信息(比如,可通过上述操作反推隐私数据的内容)。
由于可信执行环境的存储空间有限,可将被查询方的隐私数据存储至其他的外界存储环境中,以节约可信执行环境的空间,降低成本。在该场景下,被查询方在响应数据访问操作时,先对隐私查询条件进行模糊处理以将隐私查询条件暴露的隐私透出(即模糊化),再向外界存储环境发起数据查询操作得到模糊查询结果并读入可信执行环境内,然后在可信执行环境内对模糊查询结果求精,从而获得所需要的隐私数据。由于进行了模糊处理,模糊后的查询条件并不会暴露隐私数据的信息,获得的模糊查询结果也比实际所需的精确查询结果的数据量更大(即精确查询结果隐藏于模糊查询结果中)。因此,在可信执行环境外执行的数据查询操作并不会暴露隐私数据,从而可在上述场景下,在不泄漏数据隐私的同时,获取精确的查询结果。
进一步的,查询方执行的上述操作均通过执行查询方协作代码来完成,被查询方执行的上述操作均通过执行被查询方协作代码来完成,而查询方协作代码和被查询方协作代码均维护于相应的可信执行环境中。在发起数据查询操作之前,通过相互远程证明的方式来保证查询方和被查询方部署的可信执行环境可信,并且通过进一步比较其中维护的协作代码和预先协商的协作代码是否一致,可保证整个数据查询过程按照预先协商的方式(通过预先协商协作代码来定义)来进行,从而规定数据访问行为,使得数据访问变得可控、可审计。
附图说明
图1是一示例性实施例提供的一种数据查询方法的流程图。
图2是一示例性实施例提供的另一种数据查询方法的流程图。
图3是一示例性实施例提供的一种数据查询方法的交互图。
图4是一示例性实施例提供的一种设备的结构示意图。
图5是一示例性实施例提供的一种数据查询装置的框图。
图6是一示例性实施例提供的另一种数据查询装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
请参见图1,图1是一示例性实施例提供的一种数据查询方法的流程图。如图1所示,该方法应用于被查询方,可以包括以下步骤:
步骤102,响应于查询方发起的数据查询请求,将所述数据查询请求读入所述第一可信执行环境内以读取所述数据查询请求中包含的隐私查询条件。
在本实施例中,为了保护隐私数据的安全,可将隐私数据读入TEE(TrustedExecution Environment, 可信执行环境)中进行维护。TEE是基于 CPU 硬件的安全扩展,且与外部完全隔离的可信执行环境。TEE最早是由Global Platform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,比如软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的IntelSGX(Software Guard Extensions, 软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(Platform Security Processor,平台安全处理器)等。TEE可以起到硬件中的黑箱作用,对于在TEE中执行的代码和数据,操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失。因此,通过在设备上部署TEE,可以在性能损失相对较小的前提下很大程度上满足多方数据融合及协作场景下的隐私需求。
以Intel SGX(以下简称SGX)技术为例。隐私数据的查询方和被查询方可以分别基于SGX技术创建属于自身的enclave(围圈或飞地),以作为在整个数据查询过程用于执行相应操作的TEE。其中,查询方和被查询方可分别利用各自的CPU中新增的处理器指令,在内存中可以分配一部分区域 EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),以用于驻留上述的enclave。上述EPC对应的内存区域被CPU内部的内存加密引擎MEE(MemoryEncryption Engine)加密,该内存区域中的内容(enclave中的代码和数据)只有在CPU内核中才能够被解密,且用于加解密的密钥只有在EPC启动时生成并存储在CPU中。可见,enclave的安全边界只包含其自身和CPU,无论是特权或非特权软件都无法访问enclave,即便是操作系统管理员和VMM(virtual machine monitor,虚拟机监视器;或称为,Hypervisor)也无法影响enclave中的代码和数据,因而具有极高的安全性,并且在上述安全性保障的前提下,CPU能够在enclave中对明文形式的数据进行处理,具有极高的运算效率,从而兼顾了数据安全性和计算效率。
基于TEE的上述特点,被查询方部署第一可信执行环境(以下简称为第一TEE),查询方部署第二可信执行环境(以下简称为第二TEE),以保证整个数据查询过程中隐私数据的安全性。基于查询方和被查询方均部署有可信执行环境,使得查询方发起查询隐私数据、被查询方响应查询操作、查询方处理隐私数据等操作均可以在各自的可信执行环境内执行,从而防止隐私数据泄露,以及执行上述操作的过程中暴露隐私数据的信息(比如,可通过上述操作反推隐私数据的内容)。
可信执行环境的存储空间有限,为了节约可信执行环境的空间以及降低成本,可将被查询方的隐私数据存储至其他的外界存储环境中。比如,存储于被查询方的普通存储空间内,或者存储于其他数据库服务器内。换言之,可将上述外界存储环境理解为TEE外环境,即被查询方的隐私数据存储于区别于第一可信执行环境的外界存储环境中。
然而,在数据融合及协作场景下,往往需要以隐私数据作为主键或者为查询条件去访问其他数据源来获取更多的数据项。比如,在被查询方将查询条件读入TEE后,由于隐私数据并未维护于TEE中,而TEE中的查询条件属于查询方和被查询方的隐私数据,被查询方需要向TEE外访问自身的隐私数据。而在访问TEE外数据的过程中,该查询条件存在暴露的风险。
针对上述问题,本说明书的数据查询方案中被查询方在响应数据访问操作(即接收到查询方发起的数据查询操作)时,先在TEE内对隐私查询条件进行模糊处理以将隐私查询条件暴露的隐私透出(即模糊化),再向TEE外的外界存储环境发起数据查询操作得到模糊查询结果并读入可信执行环境内,然后在TEE内对模糊查询结果求精,从而获得符合隐私查询条件(即与隐私查询条件精确匹配)的隐私数据。由于已将隐私查询条件模糊化,比如泛化了查询范围,降低了查询精度等等,模糊后的查询条件并不会暴露隐私查询条件的信息,也即不会暴露隐私数据的信息,获得的模糊查询结果也比实际所需的精确查询结果的数据量更大(即精确查询结果隐藏于模糊查询结果中)。因此,上述在TEE外执行的数据查询操作(即数据访问操作)并不会暴露隐私数据,从而可在上述应用场景下,在不泄漏数据隐私的同时,获取精确的查询结果。
步骤104,在所述第一可信执行环境内对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,根据所述模糊查询条件向所述外界存储环境发起数据查询操作,以使得所述外界存储环境响应于所述数据查询操作以返回相应的模糊查询结果。
在本实施例中,上述模糊查询的方式,对查询条件进行了必要的放宽处理,并生成新的查询条件,使得查询结果里包含满足未模糊前查询条件的记录,但从查询结果中很难反推出查询条件。可见,模糊处理旨在降低向TEE外访问数据时TEE外环境所返回数据与隐私查询条件的匹配精度,比如返回的模糊查询结果中只有一部分符合隐私查询条件的要求,从而避免符合隐私查询条件要求的数据(即精确查询结果)单独暴露在TEE外。换言之,即精确查询结果隐藏于模糊查询结果中,使得精确查询结果无法被TEE外的作恶方轻易筛选出来。
作为一示例性实施例,被查询方可采用近似查询处理或者不可察觉查询处理来完成对隐私查询条件的模糊化,即被查询方在第一TEE内对隐私查询条件进行近似查询处理或不可察觉查询处理以得到模糊查询条件。
近似查询处理(Approximate Query Processing)是针对SQL聚集查询结果进行估计的技术。近似查询处理使用SQL函数为可接受近似的探索性查询提供实时响应。举一个简单的例子,假设需要查询数据库中表A的某一列a的均值,如果数据库所存放数据的数量十分庞大,要完成完整查询,则需要花费较长的时间。而采用近似查询技术,则可以以采样的方式,对均值的结果进行估计,以一定的精度损失,快速的获取对精确值的估计。当然,还可以采用不可察觉查询处理来实现模糊处理,本说明书并不对此进行限制。而对于近似查询处理和不可察觉查询处理的具体实施细节,可参考相关技术中的记载,本说明书不再赘述。
步骤106,在所述第一可信执行环境内根据所述隐私查询条件对所述模糊查询结果进行求精,得到针对所述数据查询请求的精确查询结果,并向所述查询方返回所述精确查询结果,以由所述查询方将所述精确查询结果读入部署的第二可信执行环境内进行处理。
在本实施例中,还需保证查询方和被查询方的操作按照预期进行。对此,双方可预先协商查询方和被查询方各自的操作规范得到数据协作逻辑,并根据该数据协作逻辑开发相应的协作代码,即双方通过运行协作代码来按照规范实施各自的操作。具体而言,双方协商查询方协作逻辑和被查询方协作逻辑,这些逻辑定义了整个数据查询过程中规范的操作,然后开发得到相应的查询方协作代码和被查询方协作代码。也即,查询方协作代码可指示(即查询方通过运行该代码)查询方按照查询方协作逻辑执行整个数据查询过程中,查询方侧按照规范应当执行的操作,被查询方协作代码可指示(即被查询方通过运行该代码)被查询方按照被查询方协作逻辑执行整个数据查询过程中,被查询方侧按照规范应当执行的操作。
同理,为了保证数据安全,查询方将查询方协作代码维护在自身的第二TEE内,被查询方将被查询方协作代码维护在自身的第一TEE内。基于上述开发以及维护协作代码的方式,被查询方部署的第一TEE内维护有用于响应数据查询请求的被查询方协作代码,查询方部署的第二TEE内维护有用于发起数据查询请求的查询方协作代码。
进一步的,对于双方的协作代码,可以通过相互远程证明的方式确保其可靠可控。具体而言,远程证明报告由认证服务器对设备针对自身的TEE产生的自荐信息进行验证后生成。被查询方可获取对应于自身TEE(即第一TEE)的第一远程证明报告,并发送至查询方以由查询方验证第一TEE是否可信;查询方可获取对应于自身TEE(即第二TEE)的第二远程证明报告,并发送至被查询方以由被查询方验证第二TEE是否可信。
在验证TEE可信后,还需进一步验证其中维护的协作代码是否可信,即只有在TEE可信以及其中维护的代码无误的情况下,才能保证双方按照预期执行相应的操作,从而使得整个数据查询过程可控。本说明书正是将上述通过相互发送远程证明报告以验证各自TEE以及协作代码是否可信的方式称为相互远程证明。以被查询方的角度来看,被查询方在整个数据查询过程中执行的操作包括响应数据查询请求以执行上述步骤102-106的操作,因此被查询方可向查询方发送针对第一TEE的第一远程证明报告,以由查询方在根据第一远程证明报告确定第一TEE可信的情况下,将第一TEE维护的被查询方协作代码和与被查询方预先协商的被查询方协作代码(比如维护在本地)进行比较得到第一比较结果。其中,当第一TEE维护的被查询方协作代码和双方预先协商的被查询方协作代码一致时,查询方可判定被查询方会按照预期执行相应的操作,即第一比较结果为一致被作为查询方发起数据查询请求的前提条件。
除此之外,被查询方可获取针对第二TEE的第二远程证明报告(比如由查询方提供),在根据第二远程证明报告确定第二TEE可信的情况下,将第二TEE维护的查询方协作代码和与查询方预先协商的查询方协作代码(比如维护在本地)进行比较得到第二比较结果。其中,当第二TEE维护的查询方协作代码和双方预先协商的查询方协作代码一致时,被查询方可判定查询方会按照预期执行相应的操作,即第二比较结果为一致被作为被查询方响应数据查询请求的前提条件。
由此可见,查询方执行的上述操作均通过执行查询方协作代码来完成,被查询方执行的上述操作均通过执行被查询方协作代码来完成,而查询方协作代码和被查询方协作代码均维护于相应的TEE中。在发起数据查询操作之前,通过相互远程证明的方式来保证查询方和被查询方部署的TEE可信,并且通过进一步比较其中维护的协作代码和预先协商的协作代码是否一致,可保证整个数据查询过程按照预先协商的方式(通过预先协商协作代码来定义)来进行,从而规定数据访问行为,使得数据访问变得可控、可审计。
比如,双方可在每次发起数据查询(访问)之前,均进行相互远程证明,在相互远程证明通过后再发起数据查询操作。当然,也可设定一时间周期,在每个时间周期内只有首次发起数据查询时需要进行相互远程证明的操作。而在实际应用中,比如数据融合及协作的场景,通常双方都需要向对方提供自身的隐私数据,比如A作为查询方,B作为被查询方,也可以B作为查询方,A作为被查询方。因此,在开发统一的协作代码,该代码中包含查询方协作代码和被查询方协作代码,并且将该统一的协作代码部署于数据融合及协作业务中的每个参与方侧,使得各个参与方在向其他方查询数据时,可相互远程证明双方的协作代码。
在本实施例中,可通过在被查询方协作代码中定义风控策略代码来保证查询方实施数据查询操作的规范性。具体而言,被查询方协作代码中包含风控策略代码,该风控策略代码中可制定允许和/或禁止查询方执行的操作,比如可对隐私查询条件进行限制。当然,该风控策略代码规定的操作规范的具体内容可根据实际情况灵活设定,比如限制查询的数据量,查询的频率,查询的内容等等,本说明书并不对此进行限制。因此,被查询方在接收到数据查询请求后,可通过执行风控策略代码对隐私查询条件进行风控校验,以在校验通过的情况下响应数据查询请求。
类似的,本说明书还提供查询方侧的数据查询方案。请参见图2,图2是一示例性实施例提供的另一种数据查询方法的流程图。如图2所示,该方法应用于查询方,可以包括以下步骤:
步骤202,向被查询方发起包含隐私查询条件的数据查询请求,以由所述被查询方响应于所述数据查询请求,将所述数据查询请求读入所部署的第一可信执行环境内读取出所述隐私查询条件,并对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中。
步骤204,接收所述被查询方返回的针对所述数据查询请求的精确查询结果,并将所述精确查询结果读入部署的第二可信执行环境内进行处理,所述精确查询结果由所述被查询方在所述第一可信执行环境内根据所述隐私查询条件对模糊查询结果进行求精得到,所述模糊查询结果由所述外界存储环境响应于所述被查询方根据所述模糊查询条件发起的数据查询操作得到。
如前所述,所述被查询方部署的第一可信执行环境内维护有用于响应所述数据查询请求的被查询方协作代码;所述查询方部署的第二可信执行环境内维护有用于发起所述数据查询请求的查询方协作代码。那么,可获取针对所述第一可信执行环境的第一远程证明报告,在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,将所述第一可信执行环境维护的被查询方协作代码和与所述被查询方预先协商的被查询方协作代码进行比较得到第一比较结果;
向所述被查询方发送针对所述第二可信执行环境的第二远程证明报告,以由所述被查询方在根据所述第二远程证明报告确定所述第二可信执行环境可信的情况下,将所述第二可信执行环境维护的查询方协作代码和与所述查询方预先协商的查询方协作代码进行比较得到第二比较结果;
其中,所述第一比较结果为一致被作为所述查询方发起所述数据查询请求的前提条件,所述第二比较结果为一致被作为所述被查询方响应所述数据查询请求的前提条件。
需要说明的是,在被查询方侧实施例中所涉及的描述同样可以适用于查询方侧的实施例,本说明书不再对此进行赘述。
为了便于理解,下面结合图3对查询方和被查询方之间的交互过程进行详细说明。请参见图3,图3是一示例性实施例提供的一种数据查询方法的交互图。如图3所示,该交互过程可以包括以下步骤:
步骤302,协作方A与协作方B之间进行相互远程证明。
在本实施例中,以协作方A作为查询方以及协作方B作为被查询方为例进行说明。其中,协作方A和协作方B预先协商得到了协作代码,并且双方均在各自的TEE内维护该协作代码。在发起数据查询之前,双方可以互相发起挑战,并接收对方返回的远程证明报告。远程证明报告产生于针对各个协作方上的TEE的远程证明过程。远程证明报告由认证服务器对各个协作方产生的自荐信息进行验证后生成,该自荐信息与各个协作方上创建的TEE相关。各个协作方通过产生与TEE相关的自荐信息,并由认证服务器对该自荐信息进行验证后产生远程证明报告,使得远程证明报告可以用于表明各个协作方上的TEE可信任。
以Intel SGX技术为例,TEE为各个协作方上创建的用于实现数据查询的enclave,远程证明过程还涉及到各个协作方上另一个特殊的enclave,即quoting enclave(简称QE),QE是由英特尔提供并签名的架构型enclave(Architectural Enclave)。上述enclave首先需要生成一用于本地认证的REPORT(报告)结构,并由QE基于该REPORT结构验证该enclave是否与自身处于同一平台上,而后由QE将该REPORT结构封装为一结构体quote(即自荐信息),并使用EPID(enhanced privacy identification) 密钥进行签名。EPID密钥不仅代表协作方这一平台,还代表各个协作方的底层硬件的可信度,还可以绑定处理器固件的版本等信息,并且只有QE才能访问到EPID密钥,以用于对上述的结构体quote进行签名。在SGX技术中,上述的认证服务器可以为英特尔公司提供的IAS(Intel AttestationService)服务器,各个协作方向IAS服务器发送经过签名的上述结构体quote,使得IAS服务器可以对签名进行验证,并向各个协作方返回相应的远程证明报告。其中一个协作方在获得另一协作方的远程证明报告之后,可以根据该远程证明报告来验证对方是否可信,具体指验证该各个协作方上部署的TEE是否可信,并在确定TEE可信的情况下进一步验证其中维护的协作代码是否与预先协商的一致。
具体而言,各个协作方在创建自身的TEE后,产生用于实现远程证明的自荐信息,该自荐信息可以用于锚定和固化TEE的信息,使得最终得到的包含该自荐信息的远程证明报告可以用于表征TEE的状态,并用于验证该TEE是否可信。例如,自荐信息中可以包含待检验哈希值,该待检验哈希值为TEE中预设信息的哈希值,比如该预设信息可以包括TEE内部署的所有代码、该TEE的开发者的公钥等。以Intel SGX技术为例,对应于TEE内部署的所有代码所生成的哈希值为MREnclave,对应于TEE的开发者的公钥所生成的哈希值为MRSigner,即待检验哈希值可以包括MREnclave和MRSigner。
仍以Intel SGX技术为例。如前所述,协作方向IAS服务器发送经过签名的结构体quote后,由IAS服务器根据所维护的公钥集合进行签名验证,并向各个协作方返回远程证明报告(即AVR报告),该远程证明报告中包含:结构体quote和签名验证结果,并且IAS服务器采用自身持有的私钥对该远程证明报告进行签名。
相应地,任一协作方在获取到其他协作方提供的远程证明报告后,可以首先根据IAS服务器的公钥对该远程证明报告进行签名验证,如果验证通过则表明该远程证明报告确实由IAS服务器生成,且在数据传输过程中未被篡改或丢失数据。协作方可以通过任意途径获得IAS服务器的公钥,譬如远程证明报告被提供至协作方时,还可以关联提供IAS的证书链,使得协作方可以从该证书链中提取IAS服务器的公钥。然后,协作方可以从远程证明报告中提取结构体quote和签名验证结果。协作方可以首先查看签名验证结果,如果签名验证结果为通过验证,表明各个协作方的CPU持有由Intel提供的私钥,因而TEE建立在可靠的硬件平台上,可以继续执行其他验证操作;如果签名验证结果为未通过验证,该协作方可以判定对方不可靠,无需继续其他验证操作。然后,协作方可以从结构体quote内提取上述的哈希值MREnclave和MRSigner,即待检验MREnclave和待检验MRSigner;同时,协作方预先获得了TEE的上述预设信息的标准哈希值,比如为MREnclave和MRSigner的可信值(以下称之为可信MREnclave和可信MRSigner),并将待检验MREnclave与可信MREnclave进行比较、将待检验MRSigner与可信MRSigner进行比较。那么,协作方可以将“待检验MREnclave与可信MREnclave一致,且待检验MRSigner与可信MRSigner一致”作为确认TEE可信的前提条件;换言之,如果待检验MREnclave与可信MREnclave不一致,或者待检验MRSigner与可信MRSigner不一致,协作方就判定对方的TEE不可信,而如果协作方设定的所有前提条件都被满足,就可以确认对方的TEE可信。此外,协作方对于签名验证结果进行验证的操作,与针对待检验MREnclave和待检验MRSigner进行验证的操作之间,并不存在必然的先后顺序,两者之间可以完全独立。
在验证TEE可信后,还需进一步验证其中维护的协作代码是否可信,即只有在对方TEE可信以及其中维护的代码无误的情况下,才能判断对方可信,保证双方按照预期执行相应的操作,从而使得整个数据查询过程可控。
比如,协作方B可将针对自身TEE的远程证明报告和该TEE内维护的协作代码关联发送至协作方A,协作方A本地维护有预先与协作方B协商得到的标准协作代码。在远程证明报告验证通过后,协作方A将协作方B提供的协作代码(此时作为待校验协作代码)与本地维护的标准协作代码进行比较,以确认两者是否一致。协作方B验证协作方A是否可信的方式与此类似,在此不再赘述。
步骤304,在相互远程证明通过之后,协作方A创建数据查询请求。
步骤306,协作方A向协作方B发送数据查询请求。
步骤308,协作方B将数据查询请求读入自身的TEE内,生成模糊查询条件。
在本实施例中,协作方A创建的数据查询请求中包含隐私查询条件,即响应该数据查询请求的协作方B应当返回与隐私查询条件相匹配的查询结果。与此同时,TEE的空间有限,以SGX为例,SGX1.0 的enclave可用内存空间为128M,程序可用空间为93M。因此,为了节约TEE的空间以及降低成本,可将协作方B的隐私数据存储至TEE外数据库中。
然而,在数据融合及协作场景下,往往需要以隐私数据作为主键或者为查询条件去访问其他数据源来获取更多的数据项。比如,在协作方B将查询条件读入TEE后,由于隐私数据并未维护于TEE中,而TEE中的查询条件属于隐私数据,协作方B需要向TEE外访问自身的隐私数据。而在访问TEE外数据的过程中,该查询条件存在暴露的风险。例如,在TEE外查询条件被监控、窃取、嗅探等等。又如,假如以手机号作为查询条件,即便计算手机号的MD5(Message-Digest Algorithm,信息摘要算法)值,那么在出TEE访问数据时,该MD5值一旦被窃取,则可以通过穷举的方式反推出对应的手机号。
对此,协作方B先在自身的TEE内对隐私查询条件进行模糊处理以将隐私查询条件暴露的隐私模糊化,再向TEE外数据库发起数据查询操作得到模糊查询结果并读入TEE内,然后在TEE内对模糊查询结果求精,从而获得符合隐私查询条件(即与隐私查询条件精确匹配)的隐私数据。由于已将隐私查询条件模糊化,比如泛化了查询范围,降低了查询精度等等,模糊后的查询条件并不会暴露隐私查询条件的信息,也即不会暴露隐私数据的信息,获得的模糊查询结果也比实际所需的精确查询结果的数据量更大(即精确查询结果隐藏于模糊查询结果中)。因此,上述在TEE外执行的数据查询操作(即数据访问操作)并不会暴露隐私数据,从而可在上述应用场景下,在不泄漏数据隐私的同时,获取精确的查询结果。
比如,假设需要查询指定手机号的用户信息,那么隐私查询条件为指定的手机号,可将该隐私查询条件模糊化为包括该指定手机号和其他至少一个手机号。那么,在从TEE外数据库获取到模糊查询条件的模糊查询结果后,在TEE内将模糊查询结果求精,即从中筛选出与该指定手机号对应的用户信息作为精确查询结果。
又如,假设需要查询取值大于50的参数,那么隐私查询条件为取值大于50,可将该隐私查询条件模糊化为取值大于80。那么,在从TEE外数据库获取到模糊查询条件的模糊查询结果(即取值大于80的参数)后,在TEE内将模糊查询结果求精,即从中筛选出取值大于50的参数作为精确查询结果。
步骤310,协作方B向TEE外数据库发起数据查询操作。
步骤312,协作方B接收TEE外数据库返回的模糊查询结果。
步骤314,协作方B在TEE内对模糊查询结果求精。
步骤316,协作方B向协作方A返回精确查询结果。
步骤318,协作方A将精确查询结果读入TEE内进行处理。
类似的,协作方A在TEE内对获取到的精确查询结果进行处理,以保护数据隐私。
由此可见,在上述数据查询过程中,双方的数据协作逻辑可以通过相互远程证明的方式确保其可靠可控。同时,涉及到对方数据的处理均在TEE内加以保护,确保对方数据无法被偷窥、嗅探,并且采用模糊查询的方式对出TEE外的数据进行了有效隐藏。
与上述方法实施例相对应,本说明书还提供了相应的装置实施例。
图4是一示例性实施例提供的一种设备的示意结构图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图5,数据查询装置可以应用于如图4所示的设备中,以实现本说明书的技术方案。其中,该装置数据查询装置应用于被查询方,所述被查询方部署有第一可信执行环境,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;可以包括:
响应单元51,响应于查询方发起的数据查询请求,将所述数据查询请求读入所述第一可信执行环境内以读取所述数据查询请求中包含的隐私查询条件;
查询单元52,在所述第一可信执行环境内对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,根据所述模糊查询条件向所述外界存储环境发起数据查询操作,以使得所述外界存储环境响应于所述数据查询操作以返回相应的模糊查询结果;
返回单元53,在所述第一可信执行环境内根据所述隐私查询条件对所述模糊查询结果进行求精,得到针对所述数据查询请求的精确查询结果,并向所述查询方返回所述精确查询结果,以由所述查询方将所述精确查询结果读入部署的第二可信执行环境内进行处理。
可选的,所述查询单元52具体用于:
在所述第一可信执行环境内对所述隐私查询条件进行近似查询处理或不可察觉查询处理以得到所述模糊查询条件。
可选的,所述被查询方部署的第一可信执行环境内维护有用于响应所述数据查询请求的被查询方协作代码;所述查询方部署的第二可信执行环境内维护有用于发起所述数据查询请求的查询方协作代码,所述响应单元51还用于:
向所述查询方发送针对所述第一可信执行环境的第一远程证明报告,以由所述查询方在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,将所述第一可信执行环境维护的被查询方协作代码和与所述被查询方预先协商的被查询方协作代码进行比较得到第一比较结果;
获取针对所述第二可信执行环境的第二远程证明报告,在根据所述第二远程证明报告确定所述第二可信执行环境可信的情况下,将所述第二可信执行环境维护的查询方协作代码和与所述查询方预先协商的查询方协作代码进行比较得到第二比较结果;
其中,所述第一比较结果为一致被作为所述查询方发起所述数据查询请求的前提条件,所述第二比较结果为一致被作为所述被查询方响应所述数据查询请求的前提条件。
可选的,被查询方协作代码中包含风控策略代码;所述响应单元51还用于:
在接收到所述数据查询请求后,通过执行所述风控策略代码对所述隐私查询条件进行风控校验,以在校验通过的情况下响应所述数据查询请求。
请参考图6,数据查询装置可以应用于如图4所示的设备中,以实现本说明书的技术方案。其中,该装置数据查询装置应用于查询方,可以包括:
查询发起单元61,向被查询方发起包含隐私查询条件的数据查询请求,以由所述被查询方响应于所述数据查询请求,将所述数据查询请求读入所部署的第一可信执行环境内读取出所述隐私查询条件,并对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;
结果接收单元62,接收所述被查询方返回的针对所述数据查询请求的精确查询结果,并将所述精确查询结果读入部署的第二可信执行环境内进行处理,所述精确查询结果由所述被查询方在所述第一可信执行环境内根据所述隐私查询条件对模糊查询结果进行求精得到,所述模糊查询结果由所述外界存储环境响应于所述被查询方根据所述模糊查询条件发起的数据查询操作得到。
可选的,所述被查询方部署的第一可信执行环境内维护有用于响应所述数据查询请求的被查询方协作代码;所述查询方部署的第二可信执行环境内维护有用于发起所述数据查询请求的查询方协作代码,所述查询发起单元61还用于:
获取针对所述第一可信执行环境的第一远程证明报告,在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,将所述第一可信执行环境维护的被查询方协作代码和与所述被查询方预先协商的被查询方协作代码进行比较得到第一比较结果;
向所述被查询方发送针对所述第二可信执行环境的第二远程证明报告,以由所述被查询方在根据所述第二远程证明报告确定所述第二可信执行环境可信的情况下,将所述第二可信执行环境维护的查询方协作代码和与所述查询方预先协商的查询方协作代码进行比较得到第二比较结果;
其中,所述第一比较结果为一致被作为所述查询方发起所述数据查询请求的前提条件,所述第二比较结果为一致被作为所述被查询方响应所述数据查询请求的前提条件。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种数据查询方法,其特征在于,应用于被查询方,所述被查询方部署有第一可信执行环境,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;所述方法包括:
响应于查询方发起的数据查询请求,将所述数据查询请求读入所述第一可信执行环境内以读取所述数据查询请求中包含的隐私查询条件;
在所述第一可信执行环境内对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,根据所述模糊查询条件向所述外界存储环境发起数据查询操作,以使得所述外界存储环境响应于所述数据查询操作以返回相应的模糊查询结果;
在所述第一可信执行环境内根据所述隐私查询条件对所述模糊查询结果进行求精,得到针对所述数据查询请求的精确查询结果,并向所述查询方返回所述精确查询结果,以由所述查询方将所述精确查询结果读入部署的第二可信执行环境内进行处理。
2.根据权利要求1所述的方法,其特征在于,所述在所述第一可信执行环境内对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,包括:
在所述第一可信执行环境内对所述隐私查询条件进行近似查询处理或不可察觉查询处理以得到所述模糊查询条件。
3.根据权利要求1所述的方法,其特征在于,所述被查询方部署的第一可信执行环境内维护有用于响应所述数据查询请求的被查询方协作代码;所述查询方部署的第二可信执行环境内维护有用于发起所述数据查询请求的查询方协作代码,所述方法还包括:
向所述查询方发送针对所述第一可信执行环境的第一远程证明报告,以由所述查询方在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,将所述第一可信执行环境维护的被查询方协作代码和与所述被查询方预先协商的被查询方协作代码进行比较得到第一比较结果;
获取针对所述第二可信执行环境的第二远程证明报告,在根据所述第二远程证明报告确定所述第二可信执行环境可信的情况下,将所述第二可信执行环境维护的查询方协作代码和与所述查询方预先协商的查询方协作代码进行比较得到第二比较结果;
其中,所述第一比较结果为一致被作为所述查询方发起所述数据查询请求的前提条件,所述第二比较结果为一致被作为所述被查询方响应所述数据查询请求的前提条件。
4.根据权利要求3所述的方法,其特征在于,被查询方协作代码中包含风控策略代码;所述方法还包括:
在接收到所述数据查询请求后,通过执行所述风控策略代码对所述隐私查询条件进行风控校验,以在校验通过的情况下响应所述数据查询请求。
5.一种数据查询方法,其特征在于,应用于查询方;所述方法包括:
向被查询方发起包含隐私查询条件的数据查询请求,以由所述被查询方响应于所述数据查询请求,将所述数据查询请求读入所部署的第一可信执行环境内读取出所述隐私查询条件,并对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;
接收所述被查询方返回的针对所述数据查询请求的精确查询结果,并将所述精确查询结果读入部署的第二可信执行环境内进行处理,所述精确查询结果由所述被查询方在所述第一可信执行环境内根据所述隐私查询条件对模糊查询结果进行求精得到,所述模糊查询结果由所述外界存储环境响应于所述被查询方根据所述模糊查询条件发起的数据查询操作得到。
6.根据权利要求5所述的方法,其特征在于,所述被查询方部署的第一可信执行环境内维护有用于响应所述数据查询请求的被查询方协作代码;所述查询方部署的第二可信执行环境内维护有用于发起所述数据查询请求的查询方协作代码,所述方法还包括:
获取针对所述第一可信执行环境的第一远程证明报告,在根据所述第一远程证明报告确定所述第一可信执行环境可信的情况下,将所述第一可信执行环境维护的被查询方协作代码和与所述被查询方预先协商的被查询方协作代码进行比较得到第一比较结果;
向所述被查询方发送针对所述第二可信执行环境的第二远程证明报告,以由所述被查询方在根据所述第二远程证明报告确定所述第二可信执行环境可信的情况下,将所述第二可信执行环境维护的查询方协作代码和与所述查询方预先协商的查询方协作代码进行比较得到第二比较结果;
其中,所述第一比较结果为一致被作为所述查询方发起所述数据查询请求的前提条件,所述第二比较结果为一致被作为所述被查询方响应所述数据查询请求的前提条件。
7.一种数据查询装置,其特征在于,应用于被查询方,所述被查询方部署有第一可信执行环境,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;所述装置包括:
响应单元,响应于查询方发起的数据查询请求,将所述数据查询请求读入所述第一可信执行环境内以读取所述数据查询请求中包含的隐私查询条件;
查询单元,在所述第一可信执行环境内对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,根据所述模糊查询条件向所述外界存储环境发起数据查询操作,以使得所述外界存储环境响应于所述数据查询操作以返回相应的模糊查询结果;
返回单元,在所述第一可信执行环境内根据所述隐私查询条件对所述模糊查询结果进行求精,得到针对所述数据查询请求的精确查询结果,并向所述查询方返回所述精确查询结果,以由所述查询方将所述精确查询结果读入部署的第二可信执行环境内进行处理。
8.一种数据查询装置,其特征在于,应用于查询方;所述装置包括:
查询发起单元,向被查询方发起包含隐私查询条件的数据查询请求,以由所述被查询方响应于所述数据查询请求,将所述数据查询请求读入所部署的第一可信执行环境内读取出所述隐私查询条件,并对所述隐私查询条件进行模糊处理得到相应的模糊查询条件,所述被查询方的隐私数据存储于区别于所述第一可信执行环境的外界存储环境中;
结果接收单元,接收所述被查询方返回的针对所述数据查询请求的精确查询结果,并将所述精确查询结果读入部署的第二可信执行环境内进行处理,所述精确查询结果由所述被查询方在所述第一可信执行环境内根据所述隐私查询条件对模糊查询结果进行求精得到,所述模糊查询结果由所述外界存储环境响应于所述被查询方根据所述模糊查询条件发起的数据查询操作得到。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111249508.1A CN113704211B (zh) | 2021-10-26 | 2021-10-26 | 数据查询方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111249508.1A CN113704211B (zh) | 2021-10-26 | 2021-10-26 | 数据查询方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704211A true CN113704211A (zh) | 2021-11-26 |
CN113704211B CN113704211B (zh) | 2022-02-18 |
Family
ID=78646906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111249508.1A Active CN113704211B (zh) | 2021-10-26 | 2021-10-26 | 数据查询方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704211B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934112A (zh) * | 2023-03-10 | 2023-04-07 | 德萱(天津)科技发展有限公司 | 一种基于驱动属性的多种类软件协作处理方法 |
WO2024001038A1 (zh) * | 2022-06-29 | 2024-01-04 | 蚂蚁区块链科技 (上海) 有限公司 | 检测隐私数据泄漏的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140026221A1 (en) * | 2012-07-17 | 2014-01-23 | Oracle International Corporation | Defense against search engine tracking |
CN106776904A (zh) * | 2016-11-30 | 2017-05-31 | 中南大学 | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 |
CN108345804A (zh) * | 2018-03-22 | 2018-07-31 | 北京可信华泰信息技术有限公司 | 一种可信计算环境中的存储方法和装置 |
US20190065775A1 (en) * | 2017-08-25 | 2019-02-28 | Immuta, Inc. | Calculating differentially private queries using local sensitivity on time variant databases |
-
2021
- 2021-10-26 CN CN202111249508.1A patent/CN113704211B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140026221A1 (en) * | 2012-07-17 | 2014-01-23 | Oracle International Corporation | Defense against search engine tracking |
CN106776904A (zh) * | 2016-11-30 | 2017-05-31 | 中南大学 | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 |
US20190065775A1 (en) * | 2017-08-25 | 2019-02-28 | Immuta, Inc. | Calculating differentially private queries using local sensitivity on time variant databases |
CN108345804A (zh) * | 2018-03-22 | 2018-07-31 | 北京可信华泰信息技术有限公司 | 一种可信计算环境中的存储方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024001038A1 (zh) * | 2022-06-29 | 2024-01-04 | 蚂蚁区块链科技 (上海) 有限公司 | 检测隐私数据泄漏的方法 |
CN115934112A (zh) * | 2023-03-10 | 2023-04-07 | 德萱(天津)科技发展有限公司 | 一种基于驱动属性的多种类软件协作处理方法 |
CN115934112B (zh) * | 2023-03-10 | 2023-05-12 | 德萱(天津)科技发展有限公司 | 一种基于驱动属性的多种类软件协作处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113704211B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475849B (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
CN110580262B (zh) | 基于智能合约的隐私数据查询方法及装置 | |
CN110580413B (zh) | 基于链下授权的隐私数据查询方法及装置 | |
CN110580412B (zh) | 基于链代码的权限查询配置方法及装置 | |
CN111475850B (zh) | 基于智能合约的隐私数据查询方法及装置 | |
EP3440822B1 (en) | Identity based behavior measurement architecture | |
US20210314164A1 (en) | Block content editing methods and apparatuses | |
US8369526B2 (en) | Device, system, and method of securely executing applications | |
CN113343234B (zh) | 对代码安全性进行可信检查的方法及装置 | |
CN111770199B (zh) | 一种信息共享方法、装置及设备 | |
CN113704211B (zh) | 数据查询方法及装置、电子设备、存储介质 | |
CN110222531A (zh) | 一种访问数据库的方法、系统及设备 | |
CN113221166A (zh) | 一种获取区块链数据的方法、装置、电子设备及存储介质 | |
Ashraf et al. | A Survey on Data Security in Cloud Computing Using Blockchain: Challenges, Existing-State-Of-The-Art Methods, And Future Directions | |
Tedeschi et al. | Information security and threats in mobile appliances | |
CN113129017A (zh) | 一种信息共享方法、装置及设备 | |
CN113901498B (zh) | 一种数据共享方法、装置、设备及存储介质 | |
CN110457959B (zh) | 一种基于Trust应用的信息传输方法及装置 | |
CN111046440B (zh) | 一种安全区域内容的篡改验证方法及系统 | |
He et al. | {EnclavePDP}: A General Framework to Verify Data Integrity in Cloud Using Intel {SGX} | |
Hosseinzadeh et al. | Obfuscation and diversification for securing cloud computing | |
Abdullah et al. | Sealed computation: a mechanism to support privacy-aware trustworthy cloud service | |
Verma | A security analysis of smartphones | |
US20220327222A1 (en) | Method and system for securing neural network models | |
CN117828663A (zh) | 日志脱敏方法、装置、可读存储介质及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |