CN114584306A - 一种数据处理方法和相关装置 - Google Patents
一种数据处理方法和相关装置 Download PDFInfo
- Publication number
- CN114584306A CN114584306A CN202210481239.XA CN202210481239A CN114584306A CN 114584306 A CN114584306 A CN 114584306A CN 202210481239 A CN202210481239 A CN 202210481239A CN 114584306 A CN114584306 A CN 114584306A
- Authority
- CN
- China
- Prior art keywords
- key
- data
- result
- task
- request
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开一种数据处理方法和相关装置,由具有分布式计算框架的计算机设备执行,分布式计算框架包括的密钥管理服务模块、调度器和执行器运行在可信执行环境。在接收到计算任务请求后,密钥管理服务模块接收调度器发送的包括初始口令的第一密钥请求,以及接收执行器发送的包括初始口令的第二密钥请求。密钥管理服务模块分别响应于第一密钥请求和第二密钥请求,根据产生的密封密钥和初始口令进行消息认证码生成操作得到安全密钥,并向调度器和执行器返回安全密钥,以便调度器和执行器根据安全密钥建立RPC连接。基于RPC连接,执行器执行目标计算任务得到任务结果数据。本申请可以保证会话安全,进而保护了待处理数据的安全,降低了安全隐患。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据处理方法和相关装置。
背景技术
分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分配给许多计算节点进行处理,最后把这些计算结果综合起来得到最终的结果。分布式计算框架即实现分布式计算的框架。
在分布式计算框架中,调度器(driver)负责将计算任务拆分发送到各个执行器(Executor),执行器负责执行具体的计算任务。而调度器和执行器之间的通信是基于远程过程调用(Remote Procedure Call,RPC)实现的。目前的RPC安全保护措施通过在调度器和执行器之间共享用户输入的口令(secret),调度器和执行器之间使用共享的secret来建立RPC会话密钥,后续进一步使用协商出的RPC会话密钥来保护会话的安全。
然而上述安全保护措施存在安全隐患,即上述安全保护措施是在信任主机的前提下,认为secret在磁盘保存、网络传递、内存使用过程中是安全的,不会被窃密,进而认为基于secret协商的RPC会话密钥是安全,再进一步认为会话是安全的。在安全形势日益严峻的当下,信任主机这个假设的基石已经不复存在。当主机沦陷,secret将会在磁盘保存、网络传递、内存使用等各个环节暴露,会进一步威胁RPC会话的安全,进而使得计算任务执行过程中传递的用户数据将不再受到保护。
发明内容
为了解决上述技术问题,本申请提供了一种数据处理方法和相关装置,即使主机沦陷,基于安全密钥建立的RPC连接也可以保证会话安全,进而保护了目标计算任务所使用的待处理数据的安全,大大降低了安全隐患。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供一种数据处理方法,所述方法由具有分布式计算框架的计算机设备执行,所述分布式计算框架包括密钥管理服务模块、调度器和执行器,所述密钥管理服务模块、调度器和执行器运行在可信执行环境中,所述方法包括:
在接收到数据使用方设备发送的计算任务请求后,通过所述密钥管理服务模块接收所述调度器发送的第一密钥请求,以及通过所述密钥管理服务模块接收所述执行器发送的第二密钥请求,所述第一密钥请求和所述第二密钥请求中包括初始口令;
通过所述密钥管理服务模块响应于所述第一密钥请求,根据所述密钥管理服务模块产生的密封密钥和所述初始口令进行消息认证码生成操作得到安全密钥,以及通过所述密钥管理服务模块响应于所述第二密钥请求,根据所述密封密钥和所述初始口令进行消息认证码生成操作得到所述安全密钥;
通过所述密钥管理服务模块向所述调度器和所述执行器返回所述安全密钥,以便所述调度器和所述执行器根据所述安全密钥建立远程过程调用RPC连接;
基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据。
一方面,本申请实施例提供数据处理装置,所述装置部署在具有分布式计算框架的计算机设备上,所述分布式计算框架包括密钥管理服务模块、调度器和执行器,所述密钥管理服务模块、调度器和执行器运行在可信执行环境中,所述装置包括接收单元、生成单元、返回单元和执行单元:
所述接收单元,用于在接收到数据使用方设备发送的计算任务请求后,通过所述密钥管理服务模块接收所述调度器发送的第一密钥请求,以及通过所述密钥管理服务模块接收所述执行器发送的第二密钥请求,所述第一密钥请求和所述第二密钥请求中包括初始口令;
所述生成单元,用于通过所述密钥管理服务模块响应于所述第一密钥请求,根据所述密钥管理服务模块产生的密封密钥和所述初始口令进行消息认证码生成操作得到安全密钥,以及通过所述密钥管理服务模块响应于所述第二密钥请求,根据所述密封密钥和所述初始口令进行消息认证码生成操作得到所述安全密钥;
所述返回单元,用于通过所述密钥管理服务模块向所述调度器和所述执行器返回所述安全密钥,以便所述调度器和所述执行器根据所述安全密钥建立远程过程调用RPC连接;
所述执行单元,用于基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据。
一方面,本申请实施例提供一种数据处理方法,所述方法由具有分布式计算框架的计算机设备执行,所述分布式计算框架部署在可信执行环境中,所述方法包括:
接收数据使用方设备发送的计算任务请求,所述计算任务请求中包括待处理加密数据的存放路径;
响应于所述计算任务请求,在所述可信执行环境中获取数据加密密钥,以及根据所述存放路径从存储***中获取所述待处理加密数据;
根据所述数据加密密钥,对所述待处理加密数据进行解密得到待处理数据;
根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据。
一方面,本申请实施例提供一种数据处理装置,所述装置部署在具有分布式计算框架的计算机设备执行,所述分布式计算框架部署在可信执行环境中,所述装置包括接收单元、获取单元、解密单元和执行单元:
所述接收单元,用于接收数据使用方设备发送的计算任务请求,所述计算任务请求中包括待处理加密数据的存放路径;
所述获取单元,用于响应于所述计算任务请求,在所述可信执行环境中获取数据加密密钥,以及根据所述存放路径从存储***中获取所述待处理加密数据;
所述解密单元,用于根据所述数据加密密钥,对所述待处理加密数据进行解密得到待处理数据;
所述执行单元,用于根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据。
一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行前述任一方面所述的方法。
一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述任一方面所述的方法。
一方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一方面所述的方法。
由上述技术方案可以看出,本申请提供的方法由具有分布式计算框架的计算机设备执行,分布式计算框架包括密钥管理服务模块、调度器和执行器,将分布式计算框架与可信执行环境相结合,从而将密钥管理服务模块、调度器和执行器运行在可信执行环境中。这样,在接收到计算任务请求后,通过密钥管理服务模块接收调度器发送的包括初始口令的第一密钥请求,以及接收执行器发送的包括初始口令的第二密钥请求。为了提高建立的RPC连接的安全性,通过密钥管理服务模块响应于第一密钥请求,根据密钥管理服务模块产生的密封密钥和初始口令进行消息认证码生成操作得到安全密钥,以及通过密钥管理服务模块响应于第二密钥请求,根据密封密钥和初始口令进行消息认证码生成操作得到安全密钥。由于密封密钥是可信执行环境产生的,并且生成安全密钥的过程是在可信执行环境中进行的,外界无法获取到安全密钥,从而实现将不安全的初始口令转换为安全密钥。然后密钥管理服务模块向调度器和执行器返回安全密钥,以便调度器和执行器根据安全密钥建立RPC连接,基于RPC连接,通过执行器执行针对计算任务请求的目标计算任务得到任务结果数据。由于安全密钥是在可信执行环境产生的,无法被外界获取、是安全的,目标计算任务也是在可信执行环境中进行的,故即使主机沦陷,基于安全密钥建立的RPC连接也可以保证会话安全,进而保护了目标计算任务所使用的待处理数据的安全,大大降低了安全隐患。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术成员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的一种数据处理方法的应用场景架构图;
图3为本申请实施例提供的一种数据处理方法的流程图;
图4为本申请实施例提供的一种数据处理方法的架构流程图;
图5为本申请实施例提供的一种密钥请求过程的流程图;
图6为本申请实施例提供的另一种数据处理方法的流程图;
图7a为本申请实施例提供的一种数据处理方法的信令交互图;
图7b为本申请实施例提供的另一种数据处理方法的架构流程图;
图8为本申请实施例提供的一种数据处理装置的结构图;
图9为本申请实施例提供的另一种数据处理装置的结构图;
图10为本申请实施例提供的一种终端的结构图;
图11为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
如图1所示,目前分布式计算框架中的RPC安全保护措施为通过在调度器(Driver)和执行器(Executor)之间共享用户输入的口令(secret),Driver和Executor两两之间使用共享的secret来建立RPC会话密钥,后续进一步使用协商出的会话密钥来保护会话的安全。其中,图1中包括两个执行器,分别是执行器1和执行器2。
分布式计算框架的安全威胁模型为信任主机、不信任网络。认为secret在磁盘保存、网络传递、内存使用过程中是安全的,不会被窃密,进而认为基于secret协商的会话密钥是安全,再进一步认为会话是安全的。在安全形势日益严峻的当下,信任主机这个假设的基石已经不复存在。当主机沦陷,secret将会在磁盘保存、网络传递、内存使用等各个环节暴露,进一步威胁分布式计算框架中RPC会话的安全,RPC计算过程中传递的数据将不再受到保护。
为了解决上述技术问题,本申请实施例提供一种数据处理方法,该方法将分布式计算框架与可信执行环境(Trusted Execution Environment,TEE)相结合,从而将分布式计算框架中能够接触到数据的密钥管理服务模块、调度器和执行器运行在可信执行环境中,从而实现将不安全的初始口令转换为安全密钥,这样基于安全密钥建立的RPC连接也可以保证会话安全,进而保护了目标计算任务所使用的待处理数据的安全,大大降低了安全隐患。
在本申请实施例中,可信计算是以硬件为基础保护计算过程安全、保障数据隐私和完整性的技术;与外部有内存隔离和内存加密机制,即外部包括操作***也没有可信计算域内存空间的访问权限;具有远程证明机制,用于向远端证明可信计算环境的可靠性、其中运行逻辑的完整性。使用可信计算达到的效果是,可信计算域内的数据、程序逻辑无法被外部篡改,在没有主动输出的情况下无法被外部环境获取。执行可信计算的环境可以称为可信执行环境(即TEE),基于 TEE 实现的应用程序可以称为TEE 应用。其中,可以信计算可以采用英特尔软件保护扩展(Intel Software Guard eXtensions,Intel SGX )方案、处理器可信任区域(Acorn RISC Machine TrustZone,ARM TrustZone)方案等。
分布式计算框架可以是任一种分布式计算框架,例如可以是Hadoop、Storm、Samza、Spark、Flink等大数据的分布式计算框架。本申请实施例可以将上述任一种分布式计算框架与任一种可信计算自由组合,实现基于可信计算的分布式计算,以满足不同架构下的各类大数据计算平台对数据的隐私性、合规性需求。
如图2所示,图2示出了一种数据处理方法的应用场景架构图。在该应用场景中可以包括数据使用方设备201和具有分布式计算框架的计算机设备202,分布式计算框架包括密钥管理服务模块2021、调度器2022和执行器2023,将分布式计算框架与可信执行环境相结合,从而将密钥管理服务模块、调度器和执行器运行在可信执行环境中,实现将分布式计算框架运行在TEE中,表示为×× on TEE,其中,××表示分布式计算框架的名称,若分布式计算框架为Spark,则表示为Spark on TEE。本申请实施例将主要以分布式计算框架是Spark为例进行介绍。
数据使用方设备201可以是终端,具有分布式计算框架的计算机设备202可以是服务器或终端。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
数据使用方设备201可以向具有分布式计算框架的计算机设备202发送计算任务请求,具有分布式计算框架的计算机设备202在接收到计算任务请求后,通过密钥管理服务模块2021接收调度器2022发送的包括初始口令的第一密钥请求,以及接收执行器2023发送的包括初始口令的第二密钥请求。第一密钥请求和第二密钥请求用于向密钥管理服务模块2021请求安全密钥,以便建立安全的RPC连接,方便后续基于RPC连接执行针对计算任务请求的目标计算任务,进而保证执行目标计算任务过程中所涉及数据(例如待处理数据)的安全性。
初始口令(secret)是预先配置的、用于建立RPC连接的共享口令,由于初始口令是共享的,可以被外界获取,是不安全的。因此为了提高建立的RPC连接的安全性,密钥管理服务模块2021可以响应于第一密钥请求,根据密钥管理服务模块2021产生的密封密钥(seal_key)和初始口令进行消息认证码生成操作得到安全密钥,以及通过密钥管理服务模块响应于第二密钥请求,根据密封密钥和初始口令进行消息认证码生成操作得到安全密钥(sec_secret)。其中,消息认证码生成操作的目的是将不安全的secret转换为安全的sec_secret,消息认证码生成操作可以是哈希运算消息认证码(Hash-based MessageAuthentication Code,HMAC)的方法,HMAC是一种使用单向散列函数来构造消息认证码的方法,其中HMAC中的H就是Hash的意思。
由于seal_key是可信执行环境产生的,并且生成sec_secret的过程是在可信执行环境中进行的,外界无法获取到安全密钥,从而实现将不安全的初始口令转换为安全密钥。
然后密钥管理服务模块2021向调度器2022和执行器2023返回安全密钥,以便调度器2022和执行器2023根据安全密钥建立RPC连接,进而基于RPC连接,通过执行器2023执行针对计算任务请求的目标计算任务得到任务结果数据。
由于安全密钥是在TEE中产生的,无法被外界获取、是安全的,目标计算任务也是在可信执行环境中进行的,故即使主机沦陷,基于安全密钥建立的RPC连接也可以保证会话安全,进而保护了目标计算任务所使用的待处理数据的安全,大大降低了安全隐患。
需要说明的是,本申请实施例可以应用于各种分布式计算场景中,主要涉及云技术领域,例如涉及云技术领域中的云计算、云安全等。
云计算(cloud computing)是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing )、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常检测,获取互联网中木马、恶意程序的最新信息,并发送到服务器进行自动分析和处理,再把病毒和木马的解决方案分发到每一个终端。
云安全主要研究方向包括:1. 云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机***安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2. 安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3. 云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
接下来,将以分布式计算框架是Spark为例、结合附图对本申请实施例提供的数据处理方法进行详细介绍。参见图3,图3示出了一种数据处理方法的流程图,所述方法包括:
S301、在接收到数据使用方设备发送的计算任务请求后,通过所述密钥管理服务模块接收所述调度器发送的第一密钥请求,以及通过所述密钥管理服务模块接收所述执行器发送的第二密钥请求。
需要说明的是,本申请实施例提供的方法由具有分布式计算框架的计算机设备执行,分布式计算框架包括密钥管理服务模块(Key Server)、调度器(Driver)和执行器(Executor),Key Server、Driver和Executor运行在可信执行环境(TEE)中,参见图4所示。
当数据使用方需要使用某个数据方的待处理数据,通过分布式计算框架执行计算任务时,数据使用方可以通过数据使用方设备发起计算任务请求(例如图4中步骤5所示)。例如数据方是管理婚姻登记的机构,数据使用方是保险机构,用户在向保险机构申请保险时,保险机构可能需要了解用户的婚姻状况等,而用户的婚姻状况可以由管理婚姻登记的机构提供。在这种情况下,保险机构可以作为数据使用方,管理婚姻登记的机构可以作为数据方。
需要说明的是,本申请实施例中涉及到的用户的相关数据(例如待处理数据)的获取是经过用户授权允许的。
其中,计算任务请求可以是通过提交模块提交至具有分布式计算框架的计算机设备的,当分布式计算框架为Spark时,提交模块可以表示为Spark-TEE-submit模块,Spark-TEE-submit模块是在Spark组件Spark -submit上二次开发而来,新增功能为参数封装;接收到计算任务请求的可以是Spark中的管理模块(Master)。
需要说明的是,在数据使用方设备发送计算任务请求之前,为了保证数据使用方设备和调度器是数据方授权的合法设备,数据使用方设备还可以向数据方设备请求授权(例如图4中步骤3所示),具体的,数据使用方设备获取Driver的度量信息M (M可公布),并且数据使用方设备构造数据方设备的数据描述信息(P),P可以由下面信息组成,例如数据方信息、存放路径(path)、第三公钥(res_pubkey)、任务模型的数据包的第一哈希(hash)值等。数据使用方设备将M和P进行拼接构造授权数据(M | P)向数据方设备发起授权请求。数据方设备接收到授权请求后,可以使用第二私钥(y)对 M | P 进行签名得到第四签名(sig4),将{第四签名(sig4),encode_dkey}返回给数据使用方设备,从而完成数据方设备对数据使用方设备和Driver的授权。
在接收到计算任务请求后,通过管理模块启动调度器(例如图4中步骤6所示),并拉起执行器,以建立RPC连接。密钥管理服务模块接收调度器发送的第一密钥请求,并且密钥管理服务模块接收执行器发送的第二密钥请求,第一密钥请求和第二密钥请求中包括初始口令,即调度器以初始口令为参数发起第一密钥请求,执行器以初始口令为参数发起第二密钥请求,第一密钥请求和第二密钥请求用于请求安全密钥。需要说明的是,在一种可能的情况下,调度器和执行器分别具有对应的防护模块(Guard),调度器和执行器可以分别由对应的Guard代理向密钥管理服务模块请求安全密钥(例如图4中步骤7所示)。
需要说明的是,为了保证调度器、执行器、密钥管理服务模块均为可信的,且运行在TEE中,调度器或执行器可以分别与密钥管理服务模块进行远程证明验证,在验证通过以后,向密钥管理服务模块请求安全密钥。
基于此,在一种可能的实现方式中,可以通过调度器向密钥管理服务模块发起远程证明验证得到第一验证结果,以及通过执行器向密钥管理服务模块发起远程证明验证得到第二验证结果。若第一验证结果和第二验证结果都指示验证通过,执行通过密钥管理服务模块接收调度器发送的第一密钥请求,以及通过密钥管理服务模块接收执行器发送的第二密钥请求的步骤,以便后续获取到一致的安全密钥。假如第一验证结果或第二验证结果至少一个指示远程证明验证不通过,则不能够获取到一致的sec_secret,后续的RPC认证过程会通不过,进而不能建立RPC连接。
远程证明是可信执行环境向第三方(例如调度器或执行器)证明自身所运行环境硬件合法性的方法。一般在第三方发起挑战后,可行执行环境发送包含自身代码逻辑的哈希度量在内的信息集合,并对其签名,再返回给第三方进行身份验证。如果验证成功,则远程证明完成。
通过调度器或执行器分别与密钥管理服务模块进行远程证明验证,可以保证调度器、执行器、密钥管理服务模块均为可信的,且运行在TEE中,进而保证后续RPC会话的安全,保证RPC计算过程中传递的数据的安全。
S302、通过所述密钥管理服务模块响应于所述第一密钥请求,根据所述密钥管理服务模块产生的密封密钥和所述初始口令进行消息认证码生成操作得到安全密钥,以及通过所述密钥管理服务模块响应于所述第二密钥请求,根据所述密封密钥和所述初始口令进行消息认证码生成操作得到所述安全密钥。
密钥管理服务模块接收到第一密钥请求以后,根据密钥管理服务模块产生的密封密钥和初始口令进行消息认证码生成操作得到安全密钥。密钥管理服务模块接收到第二密钥请求以后,根据密钥管理服务模块产生的密封密钥和初始口令进行消息认证码生成操作得到上述安全密钥。
其中,消息认证码生成操作可以为HMAC操作,HMAC操作以密封密钥(seal_key)和初始口令(secret)为参数,利用seal_key将secret转换为sec_secret。由于seal_key为TEE中产生的key,即中央处理器(Central Processing Unit,CPU)本地封存的key,无法被外界获取,因此生成的sec_secret是安全的。
通过上述方法可以将不安全的secret转换为安全的sec_secret,sec_secret只能在Executor,Driver和Key Server中被获取,且转换过程在TEE中执行,外界无法获取到sec_secret的值,从而保障了后续RPC会话的安全。
S303、通过所述密钥管理服务模块向所述调度器和所述执行器返回所述安全密钥,以便所述调度器和所述执行器根据所述安全密钥建立远程过程调用RPC连接。
密钥管理服务模块生成安全密钥后,可以向调度器和执行器返回安全密钥,调度器和执行器接收到安全密钥后,可以根据安全密钥建立远程过程调用RPC连接。
由于Driver 和 Executor 建立RPC连接时可以调用generateKey函数,generateKey函数中包括原来配置的secret,故当Driver 和 Executor接收到sec_secret后,可以将generateKey函数中原有的secret替换为sec_secret,从而执行原有的RPC连接建立过程。分布式计算框架例如Spark配置需要使能RPC认证和加密才能够开启RPC加密的功能。
S304、基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据。
在完成RPC连接的建立后,调度器和执行器之间可以基于RPC连接进行RPC会话,使得执行器执行针对计算任务请求的目标计算任务,得到任务结果数据。
需要说明的是,目标计算任务的执行需要使用数据方的待处理数据,而待处理数据通常保存在存储***中,因此在执行目标计算任务时,需要从存储***中获取待处理数据。在这种情况下,计算任务请求中可以包括待处理数据的存放路径,以便执行器根据该执行路径从存储***中获取待处理数据,并根据待处理数据执行目标计算任务。
可以理解的是,为了保证待处理数据的安全性,可以对待处理数据进行加密保存,即利用数据加密密钥对待处理数据进行加密得到待处理加密数据(例如图4中步骤2所示),从而将待处理加密数据保存在存储***中(例如图4中步骤4所示)。在这种情况下,计算任务请求中可以包括待处理加密数据的存放路径,S304的实现方式可以是基于RPC连接,通过执行器从调度器获取数据加密密钥(Dkey)和存放路径(path),数据加密密钥是基于密钥管理服务模块获取的,然后根据存放路径,通过执行器获取待处理加密数据(例如图4中步骤8所示),进而根据数据加密密钥,通过执行器对待处理加密数据进行解密得到待处理数据,以便根据待处理数据,通过执行器执行目标计算任务得到任务结果数据(例如图4中步骤9所示)。
在一种可能的实现方式中,待处理加密数据可以复用hadoop分布式存储***或者pulsal流式传输***的数据上传工具来传递。
需要说明的是,由于数据方可以包括多个,因此,为了保证获取的待处理数据为特定的数据方的待处理数据,且获取的Dkey能够解密特定的数据方的待处理加密数据,计算任务请求中还可以包括数据方的标识信息,例如数字、符号等等,假设标识信息用数字1、2、3……表示,此时存放路径可以表示为path[i],数据加密密钥表示为Dkey[i],其中,i的取值为数据方的标识信息,例如为多个数据方的其中一个数据方的下标,后续提高的i具有类似的物理含义。
通过对待处理数据的加密保存,使得待处理数据在保存及传输到执行器的过程中为加密后的待处理加密数据,保证了待处理数据的安全性。
在本申请实施例中,数据加密密钥可以有不同的生成方式,根据数据加密密钥生成方式的不同,基于RPC连接,通过执行器从调度器获取数据加密密钥的方式可以有所不同。在一种可能的实现方式中,数据加密密钥(Dkey)可以是第一私钥(x),第一私钥(x)是密钥管理服务模块生成的,待处理加密数据是利用第一公钥(X)对待处理数据进行加密得到的,第一公钥(X)和第一私钥(x)构成第一密钥对(x,X)。在这种情况下,基于RPC连接,通过执行器从调度器获取数据加密密钥的方式可以是通过调度器从密钥管理服务模块中获取第一私钥,基于RPC连接,通过调度器将第一私钥发送至执行器。此时,调度器可以通过防护模块从密钥管理服务模块请求第一私钥。
在上述方法中,利用第一密钥对中的第一公钥对待处理数据进行加密得到待处理加密数据,利用第一私钥对待处理加密数据进行解密,即待处理加密数据是利用非对称加密算法(例如SM2算法,一种国密非对称加密算法)进行加密得到的,并且第一私钥是保存在TEE中,外界无法获取,实现待处理数据“可用而不可见”形式的计算,从而提高待处理数据的安全性。
在另一种可能的实现方式中,为了在保护待处理数据安全性的情况下,提高加密效率,数据加密密钥(Dkey)可以是数据方对应的数据方设备生成的、用于对称加密算法的密钥,例如数据方设备采用随机数生成算法生成随机数,用作对称加密算法的数据加密密钥,数据方设备使用数据加密密钥及对称加密算法对待处理数据进行加密生成待处理加密数据。然后使用第一公钥(X)对数据加密密钥进行加密得到数据加密密钥的密文(encode_dkey),经过上述步骤,待处理数据由Dkey保护,Dkey由第一公钥(X)对应的第一私钥(x)进行保护,而第一私钥(x)又在密钥管理服务模块中,因此只有密钥管理服务模块(KeyServer)或者得到密钥管理服务模块(Key Server)信任的应用才能够解开待处理加密数据。
在这种情况下,计算任务请求中可以包括数据加密密钥的密文,数据加密密钥的密文是利用第一公钥对数据加密密钥进行加密得到的,此时基于RPC连接,通过执行器从调度器获取数据加密密钥的方式可以是通过调度器(Driver)从密钥管理服务模块(KeyServer)中获取第一私钥(x),第一公钥(X)和第一私钥(x)构成第一密钥对(x,X),然后根据第一私钥,通过调度器(Driver)对数据加密密钥的密文(encode_dkey)进行解密,得到数据加密密钥(Dkey),进而基于RPC连接,通过调度器(Driver)向执行器(Executor)发送数据加密密钥(Dkey)。此时,调度器可以通过防护模块从密钥管理服务模块请求第一私钥。
通过上述方法可以采用对称加密算法对待处理数据进行加密,从而提高待处理数据的加密速率。另外,待处理数据由Dkey保护,Dkey由第一公钥(X)对应的第一私钥(x)进行保护,而第一私钥(x)又在密钥管理服务模块中,因此只有密钥管理服务模块(Key Server)或者得到密钥管理服务模块(Key Server)信任的应用才能够解开待处理加密数据,外界无法获取x,进而无法解密待处理解密数据,提高待处理加密数据的安全性。
在一种可能的实现方式中,通过调度器(Driver)从密钥管理服务模块(KeyServer)中获取第一私钥(x)之前,Driver发起对Key Server的远程证明,从而确保Driver和Key Server均为可信的,且运行在TEE中。远程证明通过以后,Driver向Key Server发起请求以获取第一私钥(x)。
在一些情况下,Driver向Key Server发起请求以获取第一私钥(x)的同时,还可以获取签名私钥(w)、Driver的验签证书certA,以便Driver将 {存放路径path[i],Dkey [i],签名私钥w,Driver的验签证书certA } 作为参数传递给任务模型的数据包。
由上述技术方案可以看出,本申请提供的方法由具有分布式计算框架的计算机设备执行,分布式计算框架包括密钥管理服务模块、调度器和执行器,将分布式计算框架与可信执行环境相结合,从而将密钥管理服务模块、调度器和执行器运行在可信执行环境中。这样,在接收到计算任务请求后,通过密钥管理服务模块接收调度器发送的包括初始口令的第一密钥请求,以及接收执行器发送的包括初始口令的第二密钥请求。为了提高建立的RPC连接的安全性,通过密钥管理服务模块响应于第一密钥请求,根据密钥管理服务模块产生的密封密钥和初始口令进行消息认证码生成操作得到安全密钥,以及通过密钥管理服务模块响应于第二密钥请求,根据密封密钥和初始口令进行消息认证码生成操作得到安全密钥。由于密封密钥是可信执行环境产生的,并且生成安全密钥的过程是在可信执行环境中进行的,外界无法获取到安全密钥,从而实现将不安全的初始口令转换为安全密钥。然后密钥管理服务模块向调度器和执行器返回安全密钥,以便调度器和执行器根据安全密钥建立RPC连接,基于RPC连接,通过执行器执行针对计算任务请求的目标计算任务得到任务结果数据。由于安全密钥是在可信执行环境产生的,无法被外界获取、是安全的,目标计算任务也是在可信执行环境中进行的,故即使主机沦陷,基于安全密钥建立的RPC连接也可以保证会话安全,进而保护了目标计算任务所使用的待处理数据的安全,大大降低了安全隐患。
本申请实施例中,分布式计算框架基于 TEE 保护计算过程完整性和机密性,实现数据“可用不可见”形式的隐私计算,实现了可用性与隐私保护兼顾,即数据方只需信任物理机器 CPU (处于TEE中)的前提下,将待处理数据放到已验证的确定性算法中进行运算,计算过程对于 CPU 以外的硬件和软件处于保密状态。另外,在分布式计算框架的基础上引入TEE对运行效率几乎没有影响,性能损耗低。
在一种可能的实现方式中,S304的一种实现方式可以是基于RPC连接,通过执行器按照任务模型的指示执行目标计算任务得到任务结果数据。其中,任务模型可以用于指示目标计算任务如何进行拆分,从而指示执行器如何执行目标计算任务。任务模型可以是由数据使用方指定,并以数据包的形式传入执行器的,数据包可以是jar包(是Java中所特有一种压缩文档)。
在一种情况下,任务模型的数据包可能被非法用户篡改,从而影响目标计算任务的执行,甚至威胁待处理数据的安全。在这种情况下,计算任务请求中还可以包括任务模型的数据包的第一哈希(hash)值,在基于RPC连接,通过执行器按照任务模型的指示执行目标计算任务得到任务结果数据之前,还可以通过调度器计算任务模型的数据包的第二哈希值,调度器将第一哈希值与第二哈希值进行比对得到比对结果,若比对结果指示第一哈希值与第二哈希值一致,则说明任务模型的数据包未被篡改,从而执行基于RPC连接,通过执行器按照任务模型的指示执行目标计算任务得到任务结果数据的步骤。若比对结果指示第一哈希值与第二哈希值不一致,则说明任务模型的数据包未被篡改,不再执行后续步骤。
通过上述方法验证任务模型的数据包是否与预期一致,进而可以保证任务模型的数据包不会被篡改,从而避免对目标计算任务的执行的影响,保证待处理数据的安全。
在一种可能的实现方式中,计算任务请求中还可以包括第二公钥(Y)和第四签名(sig4),第四签名是利用第二私钥(y)对授权数据(M | P)进行签名得到的,第二公钥(Y)和第二私钥(y)构成第二密钥对(y,Y),其中,第二密钥对(y,Y)是数据方设备生成的。授权数据包括调度器的度量信息(M)和数据方设备的数据描述信息(P),其中度量信息是证明 TEE及其源码对应关系的凭据。在这种情况下,基于RPC连接,通过执行器执行针对计算任务请求的目标计算任务,得到任务结果数据之前,还可以通过调度器使用第二公钥对第四签名进行校验,若校验通过,执行基于RPC连接,通过执行器执行针对计算任务请求的目标计算任务,得到任务结果数据的步骤。
通过上述方法,可以对数据方设备对数据使用方设备的授权进行验证,从而保证数据使用方设备和调度器是数据方设备授权的合法设备,保证待处理数据的使用安全。
在一种可能的实现方式中,计算任务请求中还包括第三公钥(res_pubkey),则本申请实施例还可以基于RPC连接,通过执行器从调度器获取第三公钥(res_pubkey),进而根据第三公钥(res_pubkey),通过执行器对结果加密密钥(sKey)进行加密,得到结果加密密钥的密文(sKey_file),并根据结果加密密钥,通过执行器对任务结果数据(res_data)进行加密得到加密结果数据。其中, sKey可以是Executor随机生成的,以便对任务结果数据(res_data)通过对称加密算法进行加密。sKey_file的路径由任务模型指定,加密结果数据的路径res_path由任务模型指定。例如可以将加密结果数据存储到存储***(例如图4中步骤10所示)。
在这种情况下,任务结果数据(res_data)由sKey保护,sKey由第三公钥(res_pubkey)对应的第三私钥(res_privatekey)保护,而第三私钥(res_privatekey)又在结果使用方设备中,因此只有结果使用方设备才能够解开加密结果数据,提高安全性。
在一种可能的实现方式中,计算任务请求中还可以包括数据描述信息(P)中的其他信息,例如数据方信息,另外,前述提到的存放路径(path)、第三公钥(res_pubkey)、任务模型的数据包的第一哈希(hash)值也可以属于数据描述信息(P)。
在一种可能的实现方式中,计算任务请求中还可以包括第四签名(sig4),需要说明的是,若数据方包括多个,则不同数据方对应的数据加密密钥的密文可以用encode_dkey[i]表示,第二公钥可以用Y[i]表示,第四签名可以用sig4[i]表示,存放路径可以用path[i]表示,其中path[i]需要和encode_dkey[i]、Y[i]的顺序对应起来。
数据描述信息(P)、第二公钥(Y)、数据加密密钥的密文(encode_dkey)、第四签名(sig4)可以由Spark-TEE-submit模块进行参数封装,将其包括在计算任务请求中。
需要说明的是,在通过前述方法执行目标计算任务得到任务结果数据后,结果使用方可能需要使用任务结果数据,通常情况下,结果使用方与数据使用方可以相同,也可以不同,本申请实施例对此不做限定。在结果使用方需要使用任务结果数据时,结果使用方可以通过对应的结果使用方设备向具有分布式计算框架的计算机设备发送结果请求,具有分布式计算框架的计算机设备在接收到结果请求后,通过执行器响应于结果请求,向结果使用方设备返回结果响应数据,结果响应数据中包括结果加密密钥的密文(sKey_file)和加密结果数据,以便结果使用方设备利用第三私钥(res_privatekey)对加密密钥的密文(sKey_file)进行解密得到结果加密密钥(sKey),使用结果加密密钥(sKey)对加密结果数据进行解密得到任务结果数据(res_data),第三公钥(res_pubkey)和第三私钥(res_privatekey)构成第三密钥对。
在一些可能的实现方式中,基于RPC连接,通过执行器从调度器获取签名私钥(w),签名私钥(w)是调度器向密钥管理服务模块请求得到的。执行器在得到加密结果数据后,还可以使用签名私钥(w)对结果加密密钥的密文(sKey_file)进行签名得到第二签名,以及使用签名私钥(w)对加密结果数据进行签名得到第三签名。在这种情况下,结果响应数据中还包括第二签名和第三签名,以便结果使用方设备基于第二签名和第三签名分别进行签名验证,并在签名验证通过后,执行利用第三私钥(res_privatekey)对加密密钥的密文(sKey_file)进行解密得到结果加密密钥(sKey),使用结果加密密钥(sKey)对加密结果数据进行解密得到任务结果数据(res_data)的步骤。
通过上述签名验证,可以保证加密结果数据是由可信的Executor返回的,进而保证安全性。
在一种可能的实现方式中,结果响应数据中还包括Driver的验签证书certA,以便结果使用者设备可以使用Key Server证书certK验证Driver的验签证书certA,验证通过了则进行上述签名验证。从而在保证Driver可信、且位于TEE中时,再进行下一步处理步骤,保证了安全性的同时,避免了不必要的处理步骤。
在上述方法中,第一密钥对在保护待处理数据的安全性过程中起到了非常重要的作用。而第一密钥对可以通过数据方设备的密钥请求过程获取,接下来将对数据方设备的密钥请求过程进行介绍。参见图5,所述方法包括:
S501、接收数据方设备发送的加密公钥请求,加密公钥请求中包括数据方设备生成的第二公钥。
数据方设备使用国密非对称加密算法(例如SM2算法)随机生成自己的第二密钥对(y,Y),其中y为第二私钥,Y为第二公钥。然后,数据方设备向密钥管理服务模块发送包括第二公钥的加密公钥请求(例如图4中步骤1所示),以向密钥管理服务模块请求第一公钥(X)。
S502、根据第二公钥,通过密钥管理服务模块查询密钥数据库。
S503、若查询到与第二公钥对应的第一密钥对,通过密钥管理服务模块向数据方设备返回加密公钥响应消息,加密公钥响应消息中包括第一密钥对中的第一公钥。
密钥管理服务模块接收到加密公钥请求后,可以以第二公钥(Y)为键值查询密钥数据库中是否存在对应的密钥对,例如第一密钥对。若存在,则通过密钥管理服务模块向数据方设备返回加密公钥响应消息,加密公钥响应消息中包括第一密钥对中的第一公钥,以使数据方设备获取到用于加密的第一公钥(X)。若不存在,则创建一对第一密钥对。
在一种可能的实现方式中,加密公钥请求中还包括第一签名(sig1),第一签名(sig1)是通过第二私钥(y)对第二公钥(Y)进行签名得到的,第二私钥(y)和第二公钥(Y)构成第二密钥对(y,Y)。这样,在根据第二公钥,通过密钥管理服务模块查询密钥数据库之前,还可以通过密钥管理服务模块使用第二公钥对第一签名进行校验,若校验通过,执行根据第二公钥,通过密钥管理服务模块查询密钥数据库的步骤。
在一种可能的实现方式中,为了保证密钥管理服务模块为可信的,且运行在TEE中,数据方设备可以事先预置Key Server可对外公开的证书certK,用于后续数据方设备验证Key Server的签名以及发起远程证明。
数据方设备用certK 对Key Server发起远程证明验证Key Server的合法性。数据方设备向Key Server发起远程证明请求,Key Server返回请求响应,请求响应里面包含KeyServer所执行代码的度量信息,数据方设备可以使用从certK里面解析出来的度量信息与请求响应返回的度量信息进行比对。若比对一致,则远程证明通过,数据方设备可以信任Key Server为合法的并继续执行后续流程。
在一种可能的实现方式中,公钥响应消息中还可以包括Key Server对第一公钥(X)的第四签名(sig4),从而将第四签名(sig4)也返回给数据方设备。
数据方设备在接收到公钥响应消息后,可以从certK里面解析出证书公钥(Z),并使用Z验证sig4是X的合法签名,从而信任上一步从Key Server返回的第一公钥(X)确实是从可信的Key Server返回的。
本申请实施例将分布式计算框架与TEE相结合,建立更加安全的RPC连接,并且采用更加安全的方式保护待处理数据,从而满足场景需求,即在大数据计算场景中有效的保障待处理数据的隐私安全,满足业务合规性需求。
本申请实施例还提供了一种数据处理方法,该方法由具有分布式计算框架的计算机设备执行,分布式计算框架部署在可信执行环境中,参见图6,所述方法包括:
S601、接收数据使用方设备发送的计算任务请求,所述计算任务请求中包括待处理加密数据的存放路径。
当数据使用方需要使用某个数据方的待处理数据,通过分布式计算框架执行计算任务时,数据使用方可以通过数据使用方设备发起计算任务请求。
S602、响应于所述计算任务请求,在所述可信执行环境中获取数据加密密钥,以及根据所述存放路径从存储***中获取所述待处理加密数据。
在本申请实施例中,数据加密密钥可以有不同的生成方式,根据数据加密密钥生成方式的不同,故在可信执行环境中获取数据加密密钥的方式也有所不同。在一种可能的实现方式中,数据加密密钥可以是第一私钥,第一私钥可以存储在可信执行环境中,例如存储在密钥管理服务模块中。待处理加密数据可以是利用第一公钥对待处理数据进行加密得到的,第一公钥和第一私钥构成第一密钥对。此时,可以直接从可信执行环境中获取第一私钥。
在上述方法中,利用第一密钥对中的第一公钥对待处理数据进行加密得到待处理加密数据,利用第一私钥对待处理加密数据进行解密,即待处理加密数据是利用非对称加密算法进行加密得到的,并且第一私钥是保存在TEE中,外界无法获取,实现待处理数据“可用而不可见”形式的计算,从而提高待处理数据的安全性。
在另一种可能的实现方式中,为了在保护待处理数据安全性的情况下,提高加密效率,数据加密密钥(Dkey)可以是数据方对应的数据方设备生成的、用于对称加密算法的密钥,例如数据方设备采用随机数生成算法生成随机数,用作对称加密算法的数据加密密钥,数据方设备使用数据加密密钥及对称加密算法对待处理数据进行加密生成待处理加密数据。然后使用第一公钥(X)对数据加密密钥进行加密得到数据加密密钥的密文(encode_dkey),经过上述步骤,待处理数据由Dkey保护,Dkey由第一公钥(X)对应的第一私钥(x)进行保护,而第一私钥(x)又在TEE中,例如TEE中的密钥管理服务模块中,因此只有密钥管理服务模块或密钥管理服务模块信任的应用才能够解开待处理加密数据。
在这种情况下,计算任务请求中包括数据加密密钥的密文,数据加密密钥的密文可以是利用第一公钥对数据加密密钥进行加密得到的,此时在可信执行环境中获取数据加密密钥的方式可以是获取存储在可信执行环境中的第一私钥,第一公钥和所述第一私钥构成第一密钥对。进而根据第一私钥,对数据加密密钥的密文进行解密,得到所述数据加密密钥。
通过上述方法可以采用对称加密算法对待处理数据进行加密,从而提高待处理数据的加密速率。另外,待处理数据由Dkey保护,Dkey由第一公钥(X)对应的第一私钥(x)进行保护,而第一私钥(x)又在TEE中,外界无法获取x,进而无法解密待处理解密数据,提高待处理加密数据的安全性。
在上述方法中,第一密钥对在保护待处理数据的安全性过程中起到了非常重要的作用。而第一密钥对可以通过数据方设备的密钥请求过程获取,接下来将对数据方设备的密钥请求过程进行介绍。具体的,具有分布式计算框架的计算机设备可以接收数据方设备发送的加密公钥请求,加密公钥请求中包括数据方设备生成的第二公钥,然后根据第二公钥查询密钥数据库,若查询到与第二公钥对应的第一密钥对,向数据方设备返回加密公钥响应消息,加密公钥响应消息中包括所述第一密钥对中的第一公钥。
在一种可能的实现方式中,加密公钥请求中还包括第一签名,第一签名是通过第二私钥对所述第二公钥进行签名得到的,第二公钥和所述第二私钥构成第二密钥对,这样,在根据第二公钥查询密钥数据库之前,还可以使用第二公钥对所述第一签名进行校验,若校验通过,执行根据第二公钥查询密钥数据库的步骤。
上述步骤的具体实现方式以参见图5对应的实施例的介绍,此处不再赘述。
S603、根据所述数据加密密钥,对所述待处理加密数据进行解密得到待处理数据。
S604、根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据。
在一种可能的实现方式中,S604的一种实现方式可以是根据待处理数据,按照任务模型的指示执行目标计算任务得到所述任务结果数据。其中,任务模型可以用于指示目标计算任务如何进行拆分,从而指示执行器如何执行目标计算任务。任务模型可以是由数据使用方指定,并以数据包的形式传入执行器的,数据包可以是jar包(是Java中所特有一种压缩文档)。
在一种情况下,任务模型的数据包可能被非法用户篡改,从而影响目标计算任务的执行,甚至威胁待处理数据的安全。在这种情况下,计算任务请求中还可以包括任务模型的数据包的第一哈希值,在根据待处理数据,按照任务模型的指示执行目标计算任务得到所述任务结果数据之前,还可以计算任务模型的数据包的第二哈希值,将第一哈希值与第二哈希值进行比对得到比对结果,若所述比对结果指示所述第一哈希值与所述第二哈希值一致,则说明任务模型的数据包未被篡改,从而执行根据所述待处理数据,按照任务模型的指示执行所述目标计算任务得到任务结果数据的步骤。
通过上述方法验证任务模型的数据包是否与预期一致,进而可以保证任务模型的数据包不会被篡改,从而避免对目标计算任务的执行的影响,保证待处理数据的安全。
在一种可能的实现方式中,计算任务请求中还可以包括第二公钥和第四签名,第四签名是利用第二私钥对授权数据进行签名得到的,第二公钥和第二私钥构成第二密钥对,授权数据是数据使用方设备向数据方设备请求授权生成的,授权数据包括从可信执行环境获取的度量信息和数据方设备的数据描述信息。在这种情况下,根据待处理数据,执行针对计算任务请求的目标计算任务得到任务结果数据之前,还可以使用第二公钥对所述第四签名进行校验,若校验通过,执行根据待处理数据,执行针对计算任务请求的目标计算任务得到任务结果数据的步骤。
上述步骤具体可以参见图3对应实施例中的相关介绍,此处不再赘述。
在本申请实施例中,由于数据加密密钥是在TEE中获取的,外界无法获取,从而体现将分布式计算框架与TEE有机结合,可以保证用户数据(例如待处理数据)的安全性。
在一种可能的实现方式中,计算任务请求中还包括第三公钥,则本申请实施例还可以 从计算任务请求中获取所述第三公钥,根据第三公钥,对结果加密密钥进行加密,得到结果加密密钥的密文,以及根据结果加密密钥,对任务结果数据进行加密得到加密结果数据,进而将加密结果数据存储到存储***中。具体可以参见对3对应的实施例中对任务结果数据进行处理的相关内容,此处不再赘述。
需要说明的是,在通过前述方法执行目标计算任务得到任务结果数据后,结果使用方可能需要使用任务结果数据,通常情况下,结果使用方与数据使用方可以相同,也可以不同,本申请实施例对此不做限定。在结果使用方需要使用任务结果数据时,结果使用方可以通过对应的结果使用方设备向具有分布式计算框架的计算机设备发送结果请求,具有分布式计算框架的计算机设备在接收到结果请求后,响应于结果请求,向结果使用方设备返回结果响应数据。结果响应数据中包括结果加密密钥的密文和加密结果数据,以便结果使用方设备利用第三私钥对加密密钥的密文进行解密得到结果加密密钥,使用结果加密密钥对加密结果数据进行解密得到任务结果数据,第三公钥和第三私钥构成第三密钥对。
在一些可能的实现方式中,在得到加密结果数据后,还可以使用可信执行环境中的签名私钥对结果加密密钥的密文进行签名得到第二签名,以及使用签名私钥对加密结果数据进行签名得到第三签名。在这种情况下,结果响应数据中还包括第二签名和第三签名,以便结果使用方设备基于第二签名和第三签名分别进行签名验证,并在签名验证通过后,执行利用第二私钥对加密密钥的密文进行解密得到结果加密密钥,使用结果加密密钥对加密结果数据进行解密得到任务结果数据的步骤。上述对本申请实施例提供的数据处理方法进行了详细介绍。基于上述介绍,本申请实施例还提供了一种数据处理方法。该方法以分布式计算框架是Spark为例,Spark包括的Key Server、Driver和Executor运行在TEE中,形成Spark on TEE平台。本申请实施例将从数据方设备、数据使用方设备、Spark on TEE平台(相当于前述实施例的计算机设备)和存储***之间进行交互的角度对数据处理方法进行介绍。参见图7a,图7a示出了一种数据处理方法的信令交互图,所述方法包括:
S701、数据方设备向Spark on TEE平台发送加密公钥请求。
S702、Spark on TEE平台响应于加密公钥请求,查询密钥数据库得到第一密钥对。
S703、Spark on TEE平台向数据方设备返回第一密钥对中的第一公钥。
其中,S701-S703的具体实现过程可以参见S501-S503的介绍,此处不再赘述。
S701-S703的过程可以称为请求第一公钥的过程,参见图7b中步骤1所示。
S704、数据方设备使用数据加密密钥加密待处理数据得到待处理加密数据,并使用第一公钥加密数据加密密钥得到数据加密密钥的密文。
S704的过程可以称为加密过程,参见图7b中步骤2所示。
S705、数据使用方设备向数据方设备发起授权请求。
S706、数据方设备将第四签名和数据加密密钥的密文返回给数据使用方设备。
S705-S706的过程可以称为数据使用方请求授权的过程,参见图7b中步骤3所示。其中,S705- S706的具体实现方式可以参见图3对应的实施例中关于请求授权的介绍,此处不再赘述。
S707、数据方设备将待处理加密数据传入存储***。
其中,S707可以参见图7b中步骤4所示。本申请实施例对S707与S705- S706的执行顺序不做限定,即可以先执行S707,再执行S705- S706,也可以先执行S705- S706,再执行S707。
S708、数据使用方设备向Spark on TEE平台发起计算任务请求。
其中,S708可以参见图7b中步骤5所示。
S709、Spark on TEE平台向存储***发起数据获取请求。
S710、存储***向Spark on TEE平台输入待处理加密数据。
其中,S709-S710为请求待处理加密数据的过程,可以参见图7b中步骤6所示。
S711、Spark on TEE对待处理加密数据进行解密并执行目标计算任务,得到任务结果数据。
S712、Spark on TEE平台将任务结果数据进行加密得到加密结果数据。
其中,S711- S712可以参见图7b中步骤7所示。
需要说明的是,上述S708- S712的具体实现方式可以参见图3对应的实施例中的相关介绍,此处不再赘述。
S713、Spark on TEE平台将加密结果数据存放在存储***。
其中,S713可以参见图7b中步骤8所示。
需要说明的是,上述S713的具体实现方式可以参见前述实施例中的相关介绍,此处不再赘述。
需要说明的是,本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
基于图3对应实施例提供的数据处理方法,本申请实施例还提供一种数据处理装置800。参见图8,所述数据处理装置800部署在具有分布式计算框架的计算机设备上,所述分布式计算框架包括密钥管理服务模块、调度器和执行器,所述密钥管理服务模块、调度器和执行器运行在可信执行环境中,所述数据处理装置800包括接收单元801、生成单元802、返回单元803和执行单元804:
所述接收单元801,用于在接收到数据使用方设备发送的计算任务请求后,通过所述密钥管理服务模块接收所述调度器发送的第一密钥请求,以及通过所述密钥管理服务模块接收所述执行器发送的第二密钥请求,所述第一密钥请求和所述第二密钥请求中包括初始口令;
所述生成单元802,用于通过所述密钥管理服务模块响应于所述第一密钥请求,根据所述密钥管理服务模块产生的密封密钥和所述初始口令进行消息认证码生成操作得到安全密钥,以及通过所述密钥管理服务模块响应于所述第二密钥请求,根据所述密封密钥和所述初始口令进行消息认证码生成操作得到所述安全密钥;
所述返回单元803,用于通过所述密钥管理服务模块向所述调度器和所述执行器返回所述安全密钥,以便所述调度器和所述执行器根据所述安全密钥建立远程过程调用RPC连接;
所述执行单元804,用于基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据。
在一种可能的实现方式中,所述装置还包括验证单元:
所述验证单元,用于通过所述调度器向所述密钥管理服务模块发起远程证明验证得到第一验证结果,以及通过所述执行器向所述密钥管理服务模块发起远程证明验证得到第二验证结果;
若所述第一验证结果和所述第二验证结果都指示验证通过,触发所述接收单元801执行所述通过所述密钥管理服务模块接收所述调度器发送的第一密钥请求,以及通过所述密钥管理服务模块接收所述执行器发送的第二密钥请求的步骤。
在一种可能的实现方式中,所述计算任务请求中包括待处理加密数据的存放路径,所述执行单元804,具体用于:
基于所述RPC连接,通过所述执行器从所述调度器获取数据加密密钥和所述存放路径,所述数据加密密钥是基于所述密钥管理服务模块获取的;
根据所述存放路径,通过所述执行器获取所述待处理加密数据;
根据所述数据加密密钥,通过所述执行器对所述待处理加密数据进行解密得到待处理数据;
根据所述待处理数据,通过所述执行器执行所述目标计算任务得到所述任务结果数据。
在一种可能的实现方式中,所述计算任务请求中包括数据加密密钥的密文,所述数据加密密钥的密文是利用第一公钥对所述数据加密密钥进行加密得到的,所述执行单元804,具体用于:
通过所述调度器从所述密钥管理服务模块中获取第一私钥,所述第一公钥和所述第一私钥构成第一密钥对;
根据所述第一私钥,通过所述调度器对所述数据加密密钥的密文进行解密,得到所述数据加密密钥;
基于所述RPC连接,通过所述调度器向所述执行器发送所述数据加密密钥。
在一种可能的实现方式中,所述数据加密密钥是第一私钥,所述第一私钥是所述密钥管理服务模块生成的,所述待处理加密数据是利用所述第一公钥对所述待处理数据进行加密得到的,所述第一公钥和所述第一私钥构成第一密钥对,所述执行单元804,具体用于:
通过所述调度器从所述密钥管理服务模块中获取第一私钥;
基于所述RPC连接,通过所述调度器将所述第一私钥发送至所述执行器。
在一种可能的实现方式中,所述装置还包括查询单元:
所述接收单元801,还用于接收数据方设备发送的加密公钥请求,所述加密公钥请求中包括所述数据方设备生成的第二公钥;
所述查询单元,用于根据所述第二公钥,通过所述密钥管理服务模块查询密钥数据库;
若所述查询单元查询到与所述第二公钥对应的所述第一密钥对,所述返回单元803,还用于通过所述密钥管理服务模块向所述数据方设备返回加密公钥响应消息,所述加密公钥响应消息中包括所述第一密钥对中的第一公钥。
在一种可能的实现方式中,所述加密公钥请求中还包括第一签名,所述第一签名是通过第二私钥对所述第二公钥进行签名得到的,所述第二公钥和所述第二私钥构成第二密钥对,所述装置还包括校验单元:
所述校验单元,用于通过所述密钥管理服务模块使用所述第二公钥对所述第一签名进行校验;
若校验通过,触发所述查询单元执行所述根据所述第二公钥,通过所述密钥管理服务模块查询密钥数据库的步骤。
在一种可能的实现方式中,所述计算任务请求中还包括第三公钥,所述装置还包括获取单元和加密单元:
所述获取单元,用于基于所述RPC连接,通过所述执行器从所述调度器获取所述第三公钥;
所述加密单元,用于根据所述第三公钥,通过所述执行器对结果加密密钥进行加密,得到结果加密密钥的密文;根据所述结果加密密钥,通过所述执行器对所述任务结果数据进行加密得到加密结果数据。
在一种可能的实现方式中,所述接收单元801,还用于接收结果使用方设备发送的结果请求;
所述返回单元803,还用于通过所述执行器响应于所述结果请求,向所述结果使用方设备返回结果响应数据,所述结果响应数据中包括所述结果加密密钥的密文和所述加密结果数据,以便所述结果使用方设备利用第三私钥对所述加密密钥的密文进行解密得到所述结果加密密钥,使用所述结果加密密钥对所述加密结果数据进行解密得到所述任务结果数据,所述第三公钥和所述第三私钥构成第三密钥对。
在一种可能的实现方式中,所述装置还包括获取单元和签名单元:
所述获取单元,用于基于所述RPC连接,通过所述执行器从所述调度器获取签名私钥,所述签名私钥是所述调度器向所述密钥管理服务模块请求得到的;
所述签名单元,用于通过所述执行器使用所述签名私钥对所述结果加密密钥的密文进行签名得到第二签名,以及通过所述执行器使用所述签名私钥对所述加密结果数据进行签名得到第三签名;
所述结果响应数据中还包括所述第二签名和所述第三签名,以便所述结果使用方设备基于所述第二签名和所述第三签名分别进行签名验证,并在签名验证通过后,执行利用第二私钥对所述加密密钥的密文进行解密得到所述结果加密密钥,使用所述结果加密密钥对所述加密结果数据进行解密得到所述任务结果数据的步骤。
在一种可能的实现方式中,所述执行单元804,具体用于:
基于所述RPC连接,通过所述执行器按照任务模型的指示执行所述目标计算任务得到所述任务结果数据。
在一种可能的实现方式中,所述计算任务请求中还包括所述任务模型的数据包的第一哈希值,所述装置还包括计算单元和比对单元:
所述计算单元,用于在所述执行单元804基于所述RPC连接,通过所述执行器按照任务模型的指示执行所述目标计算任务得到所述任务结果数据之前,通过所述调度器计算所述任务模型的数据包的第二哈希值;
所述比对单元,用于将所述第一哈希值与所述第二哈希值进行比对得到比对结果;
若所述比对结果指示所述第一哈希值与所述第二哈希值一致,则触发所述执行单元804执行所述基于所述RPC连接,通过所述执行器按照任务模型的指示执行所述目标计算任务得到所述任务结果数据的步骤。
在一种可能的实现方式中,所述计算任务请求中还包括第二公钥和第四签名,所述第四签名是利用第二私钥对授权数据进行签名得到的,所述第二公钥和所述第二私钥构成第二密钥对,所述授权数据是数据使用方设备向数据方设备请求授权生成的,所述授权数据包括所述调度器的度量信息和所述数据方设备的数据描述信息,所述装置还包括校验单元:
所述校验单元,用于通过所述调度器使用所述第二公钥对所述第四签名进行校验;
若校验通过,触发所述执行单元804执行所述基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据的步骤。
由上述技术方案可以看出,本申请提供的方法由具有分布式计算框架的计算机设备执行,分布式计算框架包括密钥管理服务模块、调度器和执行器,将分布式计算框架与可信执行环境相结合,从而将密钥管理服务模块、调度器和执行器运行在可信执行环境中。这样,在接收到计算任务请求后,通过密钥管理服务模块接收调度器发送的包括初始口令的第一密钥请求,以及接收执行器发送的包括初始口令的第二密钥请求。为了提高建立的RPC连接的安全性,通过密钥管理服务模块响应于第一密钥请求,根据密钥管理服务模块产生的密封密钥和初始口令进行消息认证码生成操作得到安全密钥,以及通过密钥管理服务模块响应于第二密钥请求,根据密封密钥和初始口令进行消息认证码生成操作得到安全密钥。由于密封密钥是可信执行环境产生的,并且生成安全密钥的过程是在可信执行环境中进行的,外界无法获取到安全密钥,从而实现将不安全的初始口令转换为安全密钥。然后密钥管理服务模块向调度器和执行器返回安全密钥,以便调度器和执行器根据安全密钥建立RPC连接,基于RPC连接,通过执行器执行针对计算任务请求的目标计算任务得到任务结果数据。由于安全密钥是在可信执行环境产生的,无法被外界获取、是安全的,目标计算任务也是在可信执行环境中进行的,故即使主机沦陷,基于安全密钥建立的RPC连接也可以保证会话安全,进而保护了目标计算任务所使用的待处理数据的安全,大大降低了安全隐患。
基于图6对应实施例提供的数据处理方法,本申请实施例还提供一种数据处理装置900,所述数据处理装置900部署在具有分布式计算框架的计算机设备执行,所述分布式计算框架部署在可信执行环境中,所述数据处理装置900包括接收单元901、获取单元902、解密单元903和执行单元904:
所述接收单元901,用于接收数据使用方设备发送的计算任务请求,所述计算任务请求中包括待处理加密数据的存放路径;
所述获取单元902,用于响应于所述计算任务请求,在所述可信执行环境中获取数据加密密钥,以及根据所述存放路径从存储***中获取所述待处理加密数据;
所述解密单元903,用于根据所述数据加密密钥,对所述待处理加密数据进行解密得到待处理数据;
所述执行单元904,用于根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据。
在一种可能的实现方式中,所述计算任务请求中包括数据加密密钥的密文,所述数据加密密钥的密文是利用第一公钥对所述数据加密密钥进行加密得到的,所述获取单元902,具体用于:
获取存储在所述可信执行环境中的第一私钥,所述第一公钥和所述第一私钥构成第一密钥对;
根据所述第一私钥,对所述数据加密密钥的密文进行解密,得到所述数据加密密钥。
在一种可能的实现方式中,所述数据加密密钥是第一私钥,所述第一私钥存储在所述可信执行环境中,所述待处理加密数据是利用所述第一公钥对所述待处理数据进行加密得到的,所述第一公钥和所述第一私钥构成第一密钥对。
在一种可能的实现方式中,所述装置还包括查询单元和返回单元:
所述接收单元901,还用于接收数据方设备发送的加密公钥请求,所述加密公钥请求中包括所述数据方设备生成的第二公钥;
所述查询单元,用于根据所述第二公钥查询密钥数据库;
所述返回单元,用于若查询到与所述第二公钥对应的所述第一密钥对,向所述数据方设备返回加密公钥响应消息,所述加密公钥响应消息中包括所述第一密钥对中的第一公钥。
在一种可能的实现方式中,所述加密公钥请求中还包括第一签名,所述第一签名是通过第二私钥对所述第二公钥进行签名得到的,所述第二公钥和所述第二私钥构成第二密钥对,所述装置还包括校验单元:
所述校验单元,用于使用所述第二公钥对所述第一签名进行校验;
若校验通过,触发所述查询单元执行所述根据所述第二公钥查询密钥数据库的步骤。
在一种可能的实现方式中,所述计算任务请求中还包括第三公钥,所述装置还包括加密单元和存储单元:
所述获取单元902,还用于从所述计算任务请求中获取所述第三公钥;
所述加密单元,用于根据所述第三公钥,对结果加密密钥进行加密,得到结果加密密钥的密文;根据所述结果加密密钥,对所述任务结果数据进行加密得到加密结果数据;
所述存储单元,用于将所述加密结果数据存储到所述存储***中。
在一种可能的实现方式中,所述装置还包括返回单元:
所述接收单元901,具体用于接收结果使用方设备发送的结果请求;
所述返回单元,用于响应于所述结果请求,向所述结果使用方设备返回结果响应数据,所述结果响应数据中包括所述结果加密密钥的密文和所述加密结果数据,以便所述结果使用方设备利用第三私钥对所述加密密钥的密文进行解密得到所述结果加密密钥,使用所述结果加密密钥对所述加密结果数据进行解密得到所述任务结果数据,所述第三公钥和所述第三私钥构成第三密钥对。
在一种可能的实现方式中,所述装置还包括签名单元:
所述获取单元902,还用于在所述可信执行环境中获取签名私钥;
所述签名单元,用于使用所述签名私钥对所述结果加密密钥的密文进行签名得到第二签名,以及使用所述签名私钥对所述加密结果数据进行签名得到第三签名;
所述结果响应数据中还包括所述第二签名和所述第三签名,以便所述结果使用方设备基于所述第二签名和所述第三签名分别进行签名验证,并在签名验证通过后,执行利用第二私钥对所述加密密钥的密文进行解密得到所述结果加密密钥,使用所述结果加密密钥对所述加密结果数据进行解密得到所述任务结果数据的步骤。
在一种可能的实现方式中,所述执行单元904,具体用于:
根据所述待处理数据,按照任务模型的指示执行所述目标计算任务得到所述任务结果数据。
在一种可能的实现方式中,所述计算任务请求中还包括所述任务模型的数据包的第一哈希值,所述装置还包括计算单元和比对单元:
所述计算单元,用于计算所述任务模型的数据包的第二哈希值;
所述比对单元,用于将所述第一哈希值与所述第二哈希值进行比对得到比对结果;
若所述比对结果指示所述第一哈希值与所述第二哈希值一致,则触发所述执行单元904执行所述根据所述待处理数据,按照任务模型的指示执行所述目标计算任务得到所述任务结果数据的步骤。
在一种可能的实现方式中,所述计算任务请求中还包括第二公钥和第四签名,所述第四签名是利用第二私钥对授权数据进行签名得到的,所述第二公钥和所述第二私钥构成第二密钥对,所述授权数据是数据使用方设备向数据方设备请求授权生成的,所述授权数据包括从所述可信执行环境获取的度量信息和所述数据方设备的数据描述信息,所述装置还包括校验单元:
所述校验单元,用于使用所述第二公钥对所述第四签名进行校验;
若校验通过,触发所述执行单元904执行所述根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据的步骤。本申请实施例还提供了一种计算机设备,该计算机设备可以执行数据处理方法。该计算机设备例如可以是终端,以终端为智能手机为例:
图10示出的是与本申请实施例提供的智能手机的部分结构的框图。参考图10,智能手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(英文缩写:WiFi)模块1070、处理器1080、以及电源1090等部件。输入单元1030可包括触控面板1031以及其他输入设备1032,显示单元1040可包括显示面板1041,音频电路1060可以包括扬声器1061和传声器1062。可以理解的是,图10中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器1080是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行智能手机的各种功能和处理数据。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
在本实施例中,由智能手机中的处理器1080执行的步骤可以基于图10所示的结构实现。
本申请实施例还提供一种服务器,请参见图11所示,图11为本申请实施例提供的服务器1100的结构图,服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(Central Processing Units,简称CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作***1141,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
在本实施例中,服务器1100中的中央处理器1122可以执行以下步骤:
在接收到数据使用方设备发送的计算任务请求后,通过所述密钥管理服务模块接收所述调度器发送的第一密钥请求,以及通过所述密钥管理服务模块接收所述执行器发送的第二密钥请求,所述第一密钥请求和所述第二密钥请求中包括初始口令;
通过所述密钥管理服务模块响应于所述第一密钥请求,根据所述密钥管理服务模块产生的密封密钥和所述初始口令进行消息认证码生成操作得到安全密钥,以及通过所述密钥管理服务模块响应于所述第二密钥请求,根据所述密封密钥和所述初始口令进行消息认证码生成操作得到所述安全密钥;
通过所述密钥管理服务模块向所述调度器和所述执行器返回所述安全密钥,以便所述调度器和所述执行器根据所述安全密钥建立远程过程调用RPC连接;
基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据。
或者,
接收数据使用方设备发送的计算任务请求,所述计算任务请求中包括待处理加密数据的存放路径;
响应于所述计算任务请求,在所述可信执行环境中获取数据加密密钥,以及根据所述存放路径从存储***中获取所述待处理加密数据;
根据所述数据加密密钥,对所述待处理加密数据进行解密得到待处理数据;
根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述各个实施例所述的数据处理方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (29)
1.一种数据处理方法,其特征在于,所述方法由具有分布式计算框架的计算机设备执行,所述分布式计算框架包括密钥管理服务模块、调度器和执行器,所述密钥管理服务模块、调度器和执行器运行在可信执行环境中,所述方法包括:
在接收到数据使用方设备发送的计算任务请求后,通过所述密钥管理服务模块接收所述调度器发送的第一密钥请求,以及通过所述密钥管理服务模块接收所述执行器发送的第二密钥请求,所述第一密钥请求和所述第二密钥请求中包括初始口令;
通过所述密钥管理服务模块响应于所述第一密钥请求,根据所述密钥管理服务模块产生的密封密钥和所述初始口令进行消息认证码生成操作得到安全密钥,以及通过所述密钥管理服务模块响应于所述第二密钥请求,根据所述密封密钥和所述初始口令进行消息认证码生成操作得到所述安全密钥;
通过所述密钥管理服务模块向所述调度器和所述执行器返回所述安全密钥,以便所述调度器和所述执行器根据所述安全密钥建立远程过程调用RPC连接;
基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述调度器向所述密钥管理服务模块发起远程证明验证得到第一验证结果,以及通过所述执行器向所述密钥管理服务模块发起远程证明验证得到第二验证结果;
若所述第一验证结果和所述第二验证结果都指示验证通过,执行所述通过所述密钥管理服务模块接收所述调度器发送的第一密钥请求,以及通过所述密钥管理服务模块接收所述执行器发送的第二密钥请求的步骤。
3.根据权利要求1所述的方法,其特征在于,所述计算任务请求中包括待处理加密数据的存放路径,所述基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据,包括:
基于所述RPC连接,通过所述执行器从所述调度器获取数据加密密钥和所述存放路径,所述数据加密密钥是基于所述密钥管理服务模块获取的;
根据所述存放路径,通过所述执行器获取所述待处理加密数据;
根据所述数据加密密钥,通过所述执行器对所述待处理加密数据进行解密得到待处理数据;
根据所述待处理数据,通过所述执行器执行所述目标计算任务得到所述任务结果数据。
4.根据权利要求3所述的方法,其特征在于,所述计算任务请求中包括数据加密密钥的密文,所述数据加密密钥的密文是利用第一公钥对所述数据加密密钥进行加密得到的,基于所述RPC连接,通过所述执行器从所述调度器获取数据加密密钥,包括:
通过所述调度器从所述密钥管理服务模块中获取第一私钥,所述第一公钥和所述第一私钥构成第一密钥对;
根据所述第一私钥,通过所述调度器对所述数据加密密钥的密文进行解密,得到所述数据加密密钥;
基于所述RPC连接,通过所述调度器向所述执行器发送所述数据加密密钥。
5.根据权利要求3所述的方法,其特征在于,所述数据加密密钥是第一私钥,所述第一私钥是所述密钥管理服务模块生成的,所述待处理加密数据是利用所述第一公钥对所述待处理数据进行加密得到的,所述第一公钥和所述第一私钥构成第一密钥对,基于所述RPC连接,通过所述执行器从所述调度器获取数据加密密钥,包括:
通过所述调度器从所述密钥管理服务模块中获取第一私钥;
基于所述RPC连接,通过所述调度器将所述第一私钥发送至所述执行器。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
接收数据方设备发送的加密公钥请求,所述加密公钥请求中包括所述数据方设备生成的第二公钥;
根据所述第二公钥,通过所述密钥管理服务模块查询密钥数据库;
若查询到与所述第二公钥对应的所述第一密钥对,通过所述密钥管理服务模块向所述数据方设备返回加密公钥响应消息,所述加密公钥响应消息中包括所述第一密钥对中的第一公钥。
7.根据权利要求6所述的方法,其特征在于,所述加密公钥请求中还包括第一签名,所述第一签名是通过第二私钥对所述第二公钥进行签名得到的,所述第二公钥和所述第二私钥构成第二密钥对,所述根据所述第二公钥,通过所述密钥管理服务模块查询密钥数据库之前,所述方法还包括:
通过所述密钥管理服务模块使用所述第二公钥对所述第一签名进行校验;
若校验通过,执行所述根据所述第二公钥,通过所述密钥管理服务模块查询密钥数据库的步骤。
8.根据权利要求1所述的方法,其特征在于,所述计算任务请求中还包括第三公钥,所述方法还包括:
基于所述RPC连接,通过所述执行器从所述调度器获取所述第三公钥;
根据所述第三公钥,通过所述执行器对结果加密密钥进行加密,得到结果加密密钥的密文;
根据所述结果加密密钥,通过所述执行器对所述任务结果数据进行加密得到加密结果数据。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收结果使用方设备发送的结果请求;
通过所述执行器响应于所述结果请求,向所述结果使用方设备返回结果响应数据,所述结果响应数据中包括所述结果加密密钥的密文和所述加密结果数据,以便所述结果使用方设备利用第三私钥对所述加密密钥的密文进行解密得到所述结果加密密钥,使用所述结果加密密钥对所述加密结果数据进行解密得到所述任务结果数据,所述第三公钥和所述第三私钥构成第三密钥对。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
基于所述RPC连接,通过所述执行器从所述调度器获取签名私钥,所述签名私钥是所述调度器向所述密钥管理服务模块请求得到的;
通过所述执行器使用所述签名私钥对所述结果加密密钥的密文进行签名得到第二签名,以及通过所述执行器使用所述签名私钥对所述加密结果数据进行签名得到第三签名;
所述结果响应数据中还包括所述第二签名和所述第三签名,以便所述结果使用方设备基于所述第二签名和所述第三签名分别进行签名验证,并在签名验证通过后,执行利用第二私钥对所述加密密钥的密文进行解密得到所述结果加密密钥,使用所述结果加密密钥对所述加密结果数据进行解密得到所述任务结果数据的步骤。
11.根据权利要求1-5任一项所述的方法,其特征在于,所述基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据,包括:
基于所述RPC连接,通过所述执行器按照任务模型的指示执行所述目标计算任务得到所述任务结果数据。
12.根据权利要求11所述的方法,其特征在于,所述计算任务请求中还包括所述任务模型的数据包的第一哈希值,在基于所述RPC连接,通过所述执行器按照任务模型的指示执行所述目标计算任务得到所述任务结果数据之前,所述方法还包括:
通过所述调度器计算所述任务模型的数据包的第二哈希值;
将所述第一哈希值与所述第二哈希值进行比对得到比对结果;
若所述比对结果指示所述第一哈希值与所述第二哈希值一致,则执行所述基于所述RPC连接,通过所述执行器按照任务模型的指示执行所述目标计算任务得到所述任务结果数据的步骤。
13.根据权利要求1-5任一项所述的方法,其特征在于,所述计算任务请求中还包括第二公钥和第四签名,所述第四签名是利用第二私钥对授权数据进行签名得到的,所述第二公钥和所述第二私钥构成第二密钥对,所述授权数据是数据使用方设备向数据方设备请求授权生成的,所述授权数据包括所述调度器的度量信息和所述数据方设备的数据描述信息,所述基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据之前,所述方法还包括:
通过所述调度器使用所述第二公钥对所述第四签名进行校验;
若校验通过,执行所述基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据的步骤。
14.一种数据处理装置,其特征在于,所述装置部署在具有分布式计算框架的计算机设备上,所述分布式计算框架包括密钥管理服务模块、调度器和执行器,所述密钥管理服务模块、调度器和执行器运行在可信执行环境中,所述装置包括接收单元、生成单元、返回单元和执行单元:
所述接收单元,用于在接收到数据使用方设备发送的计算任务请求后,通过所述密钥管理服务模块接收所述调度器发送的第一密钥请求,以及通过所述密钥管理服务模块接收所述执行器发送的第二密钥请求,所述第一密钥请求和所述第二密钥请求中包括初始口令;
所述生成单元,用于通过所述密钥管理服务模块响应于所述第一密钥请求,根据所述密钥管理服务模块产生的密封密钥和所述初始口令进行消息认证码生成操作得到安全密钥,以及通过所述密钥管理服务模块响应于所述第二密钥请求,根据所述密封密钥和所述初始口令进行消息认证码生成操作得到所述安全密钥;
所述返回单元,用于通过所述密钥管理服务模块向所述调度器和所述执行器返回所述安全密钥,以便所述调度器和所述执行器根据所述安全密钥建立远程过程调用RPC连接;
所述执行单元,用于基于所述RPC连接,通过所述执行器执行针对所述计算任务请求的目标计算任务,得到任务结果数据。
15.一种数据处理方法,其特征在于,所述方法由具有分布式计算框架的计算机设备执行,所述分布式计算框架部署在可信执行环境中,所述方法包括:
接收数据使用方设备发送的计算任务请求,所述计算任务请求中包括待处理加密数据的存放路径;
响应于所述计算任务请求,在所述可信执行环境中获取数据加密密钥,以及根据所述存放路径从存储***中获取所述待处理加密数据;
根据所述数据加密密钥,对所述待处理加密数据进行解密得到待处理数据;
根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据。
16.根据权利要求15所述的方法,其特征在于,所述计算任务请求中包括数据加密密钥的密文,所述数据加密密钥的密文是利用第一公钥对所述数据加密密钥进行加密得到的,所述在所述可信执行环境中获取数据加密密钥,包括:
获取存储在所述可信执行环境中的第一私钥,所述第一公钥和所述第一私钥构成第一密钥对;
根据所述第一私钥,对所述数据加密密钥的密文进行解密,得到所述数据加密密钥。
17.根据权利要求15所述的方法,其特征在于,所述数据加密密钥是第一私钥,所述第一私钥存储在所述可信执行环境中,所述待处理加密数据是利用所述第一公钥对所述待处理数据进行加密得到的,所述第一公钥和所述第一私钥构成第一密钥对。
18.根据权利要求16或17所述的方法,其特征在于,所述方法还包括:
接收数据方设备发送的加密公钥请求,所述加密公钥请求中包括所述数据方设备生成的第二公钥;
根据所述第二公钥查询密钥数据库;
若查询到与所述第二公钥对应的所述第一密钥对,向所述数据方设备返回加密公钥响应消息,所述加密公钥响应消息中包括所述第一密钥对中的第一公钥。
19.根据权利要求18所述的方法,其特征在于,所述加密公钥请求中还包括第一签名,所述第一签名是通过第二私钥对所述第二公钥进行签名得到的,所述第二公钥和所述第二私钥构成第二密钥对,所述根据所述第二公钥查询密钥数据库之前,所述方法还包括:
使用所述第二公钥对所述第一签名进行校验;
若校验通过,执行所述根据所述第二公钥查询密钥数据库的步骤。
20.根据权利要求15所述的方法,其特征在于,所述计算任务请求中还包括第三公钥,所述方法还包括:
从所述计算任务请求中获取所述第三公钥;
根据所述第三公钥,对结果加密密钥进行加密,得到结果加密密钥的密文;
根据所述结果加密密钥,对所述任务结果数据进行加密得到加密结果数据;
将所述加密结果数据存储到所述存储***中。
21.根据权利要求20所述的方法,其特征在于,所述方法还包括:
接收结果使用方设备发送的结果请求;
响应于所述结果请求,向所述结果使用方设备返回结果响应数据,所述结果响应数据中包括所述结果加密密钥的密文和所述加密结果数据,以便所述结果使用方设备利用第三私钥对所述加密密钥的密文进行解密得到所述结果加密密钥,使用所述结果加密密钥对所述加密结果数据进行解密得到所述任务结果数据,所述第三公钥和所述第三私钥构成第三密钥对。
22.根据权利要求21所述的方法,其特征在于,所述方法还包括:
在所述可信执行环境中获取签名私钥;
使用所述签名私钥对所述结果加密密钥的密文进行签名得到第二签名,以及使用所述签名私钥对所述加密结果数据进行签名得到第三签名;
所述结果响应数据中还包括所述第二签名和所述第三签名,以便所述结果使用方设备基于所述第二签名和所述第三签名分别进行签名验证,并在签名验证通过后,执行利用第二私钥对所述加密密钥的密文进行解密得到所述结果加密密钥,使用所述结果加密密钥对所述加密结果数据进行解密得到所述任务结果数据的步骤。
23.根据权利要求15-17任一项所述的方法,其特征在于,所述根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据,包括:
根据所述待处理数据,按照任务模型的指示执行所述目标计算任务得到所述任务结果数据。
24.根据权利要求23所述的方法,其特征在于,所述计算任务请求中还包括所述任务模型的数据包的第一哈希值,在根据所述待处理数据,按照任务模型的指示执行所述目标计算任务得到所述任务结果数据之前,所述方法还包括:
计算所述任务模型的数据包的第二哈希值;
将所述第一哈希值与所述第二哈希值进行比对得到比对结果;
若所述比对结果指示所述第一哈希值与所述第二哈希值一致,则执行所述根据所述待处理数据,按照任务模型的指示执行所述目标计算任务得到所述任务结果数据的步骤。
25.根据权利要求15-17任一项所述的方法,其特征在于,所述计算任务请求中还包括第二公钥和第四签名,所述第四签名是利用第二私钥对授权数据进行签名得到的,所述第二公钥和所述第二私钥构成第二密钥对,所述授权数据是数据使用方设备向数据方设备请求授权生成的,所述授权数据包括从所述可信执行环境获取的度量信息和所述数据方设备的数据描述信息,所述根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据之前,所述方法还包括:
使用所述第二公钥对所述第四签名进行校验;
若校验通过,执行所述根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据的步骤。
26.一种数据处理装置,其特征在于,所述装置部署在具有分布式计算框架的计算机设备执行,所述分布式计算框架部署在可信执行环境中,所述装置包括接收单元、获取单元、解密单元和执行单元:
所述接收单元,用于接收数据使用方设备发送的计算任务请求,所述计算任务请求中包括待处理加密数据的存放路径;
所述获取单元,用于响应于所述计算任务请求,在所述可信执行环境中获取数据加密密钥,以及根据所述存放路径从存储***中获取所述待处理加密数据;
所述解密单元,用于根据所述数据加密密钥,对所述待处理加密数据进行解密得到待处理数据;
所述执行单元,用于根据所述待处理数据,执行针对所述计算任务请求的目标计算任务得到任务结果数据。
27.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-13或15-25任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码当被处理器执行时使所述处理器执行权利要求1-13或15-25任一项所述的方法。
29.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-13或15-25任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210481239.XA CN114584306B (zh) | 2022-05-05 | 2022-05-05 | 一种数据处理方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210481239.XA CN114584306B (zh) | 2022-05-05 | 2022-05-05 | 一种数据处理方法和相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114584306A true CN114584306A (zh) | 2022-06-03 |
CN114584306B CN114584306B (zh) | 2022-08-02 |
Family
ID=81778254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210481239.XA Active CN114584306B (zh) | 2022-05-05 | 2022-05-05 | 一种数据处理方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114584306B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065487A (zh) * | 2022-08-17 | 2022-09-16 | 北京锘崴信息科技有限公司 | 隐私保护云计算方法、保护金融隐私数据的云计算方法 |
CN115378703A (zh) * | 2022-08-22 | 2022-11-22 | 北京冲量在线科技有限公司 | 基于可信执行环境与Spark的安全可信数据处理*** |
CN116010529A (zh) * | 2023-03-08 | 2023-04-25 | 阿里云计算有限公司 | 数据处理方法及*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009157845A1 (en) * | 2008-06-27 | 2009-12-30 | Asaasco Ab | A method and system for secure content hosting and distribution |
CN110011956A (zh) * | 2018-12-12 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
CN110034924A (zh) * | 2018-12-12 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
CN111181720A (zh) * | 2019-12-31 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 基于可信执行环境的业务处理方法及装置 |
CN111429254A (zh) * | 2020-03-19 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种业务数据处理方法、设备以及可读存储介质 |
US20200342092A1 (en) * | 2019-04-26 | 2020-10-29 | Alibaba Group Holding Limited | Securely executing smart contract operations in a trusted execution environment |
CN113868684A (zh) * | 2021-09-30 | 2021-12-31 | 成都卫士通信息产业股份有限公司 | 一种签名方法、装置、服务端、介质以及签名*** |
CN114173328A (zh) * | 2021-12-06 | 2022-03-11 | 中国电信股份有限公司 | 密钥交换方法、装置、电子设备 |
-
2022
- 2022-05-05 CN CN202210481239.XA patent/CN114584306B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009157845A1 (en) * | 2008-06-27 | 2009-12-30 | Asaasco Ab | A method and system for secure content hosting and distribution |
CN110011956A (zh) * | 2018-12-12 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
CN110034924A (zh) * | 2018-12-12 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
US20200342092A1 (en) * | 2019-04-26 | 2020-10-29 | Alibaba Group Holding Limited | Securely executing smart contract operations in a trusted execution environment |
CN111181720A (zh) * | 2019-12-31 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 基于可信执行环境的业务处理方法及装置 |
CN111429254A (zh) * | 2020-03-19 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种业务数据处理方法、设备以及可读存储介质 |
CN113868684A (zh) * | 2021-09-30 | 2021-12-31 | 成都卫士通信息产业股份有限公司 | 一种签名方法、装置、服务端、介质以及签名*** |
CN114173328A (zh) * | 2021-12-06 | 2022-03-11 | 中国电信股份有限公司 | 密钥交换方法、装置、电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065487A (zh) * | 2022-08-17 | 2022-09-16 | 北京锘崴信息科技有限公司 | 隐私保护云计算方法、保护金融隐私数据的云计算方法 |
CN115378703A (zh) * | 2022-08-22 | 2022-11-22 | 北京冲量在线科技有限公司 | 基于可信执行环境与Spark的安全可信数据处理*** |
CN116010529A (zh) * | 2023-03-08 | 2023-04-25 | 阿里云计算有限公司 | 数据处理方法及*** |
CN116010529B (zh) * | 2023-03-08 | 2023-08-29 | 阿里云计算有限公司 | 数据处理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN114584306B (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022206349A1 (zh) | 一种信息验证的方法、相关装置、设备以及存储介质 | |
CN107743133B (zh) | 移动终端及其基于可信安全环境的访问控制方法和*** | |
CN109309565B (zh) | 一种安全认证的方法及装置 | |
US11432150B2 (en) | Method and apparatus for authenticating network access of terminal | |
US10142107B2 (en) | Token binding using trust module protected keys | |
CN114584306B (zh) | 一种数据处理方法和相关装置 | |
Bhatia et al. | Data security in mobile cloud computing paradigm: a survey, taxonomy and open research issues | |
US9219722B2 (en) | Unclonable ID based chip-to-chip communication | |
US10601590B1 (en) | Secure secrets in hardware security module for use by protected function in trusted execution environment | |
US8745394B1 (en) | Methods and systems for secure electronic communication | |
CN114788226B (zh) | 用于建立分散式计算机应用的非托管工具 | |
WO2022199290A1 (zh) | 多方安全计算 | |
CN105873031B (zh) | 基于可信平台的分布式无人机密钥协商方法 | |
US20140270179A1 (en) | Method and system for key generation, backup, and migration based on trusted computing | |
CN109688098B (zh) | 数据的安全通信方法、装置、设备及计算机可读存储介质 | |
CN114157415A (zh) | 数据处理方法、计算节点、***、计算机设备和存储介质 | |
Obert et al. | Recommendations for trust and encryption in DER interoperability standards | |
WO2023174038A1 (zh) | 数据传输方法及相关设备 | |
Dey et al. | Message digest as authentication entity for mobile cloud computing | |
CN115001841A (zh) | 一种身份认证方法、装置及存储介质 | |
Yadav et al. | Mobile cloud computing issues and solution framework | |
CN115333839A (zh) | 数据安全传输方法、***、设备及存储介质 | |
Tawalbeh et al. | Efficient and secure software-defined mobile cloud computing infrastructure | |
CN111654503A (zh) | 一种远程管控方法、装置、设备及存储介质 | |
CN113411187A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40070396 Country of ref document: HK |