可信数据处理方法及相关装置与流程
未命名
08-13
阅读:65
评论:0

1.本技术涉及计算机技术领域,提供一种可信数据处理方法及相关装置。
背景技术:
2.可信计算是通过基于硬件的可信执行环境(trusted execution environment,tee)对使用中的数据进行保护。tee是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。
3.相关技术中,在可信计算场景下,数据提供方加密原始数据,并将数据密文推送至存储服务,tee应用(简称tapp)通过存储服务获取数据密文,并在解密后获得由于计算的原始数据,以及对原始数据执行相应计算,生成计算结果,进而tee应用将计算结果推送至输出存储服务,这样,结果需求方可以通过存储服务获得计算结果。
4.然而,加解密计算往往是计算密集型任务,直接影响着tee应用的计算性能,特别是面对海量的计算任务,tee应用的计算压力较大,在计算资源不足的情况下,难以保证计算性能。
技术实现要素:
5.本技术实施例提供一种可信数据处理方法及相关装置,用以提高可信数据的计算效率。
6.第一方面,本技术实施例提供一种可信数据处理方法,应用于代理节点集群中的第一节点,包括:当接收到针对目标应用的业务请求时,获取所述业务请求中各待处理数据各自的密文存储地址和加解密配置信息,每个加解密配置信息用于对相应待处理数据的密文进行解密,以及对所述待处理数据的计算结果进行加密;向所述代理节点集群中除所述第一节点之外的各第二节点,发送所述各待处理数据的待处理量,以使每个第二节点在基于所述待处理量,确定自身满足预设计算条件时,返回相应节点信息;若基于返回的各节点信息,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点,则分别向所述至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息;向所述目标应用发送携带所述节点信息的计算请求,以使所述目标应用计算通过所述至少一个目标节点获取的所述各待处理数据,并将各计算结果通过所述至少一个目标节点进行加密及存储。
7.第二方面,本技术实施例提供一种可信数据处理装置,包括:任务接收单元,用于当接收到针对目标应用的业务请求时,获取所述业务请求中各待处理数据各自的密文存储地址和加解密配置信息,每个加解密配置信息用于对相应待处理数据的密文进行解密,以及对所述待处理数据的计算结果进行加密;
任务广播单元,用于向所述代理节点集群中除所述第一节点之外的各第二节点,发送所述各待处理数据的待处理量,以使每个第二节点在基于所述待处理量,确定自身满足预设计算条件时,返回相应节点信息;任务分配单元,用于若基于返回的各节点信息,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点,则分别向所述至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息;任务处理单元,用于向所述目标应用发送携带所述节点信息的计算请求,以使所述目标应用计算通过所述至少一个目标节点获取的所述各待处理数据,并将各计算结果通过所述至少一个目标节点进行加密及存储。
8.第三方面,本技术实施例提供一种电子设备,包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行上述方法的步骤。
9.第四方面,本技术实施例提供一种计算机可读存储介质,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行上述方法的步骤。
10.第五方面,本技术实施例提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,电子设备的处理器从所述计算机可读存储介质中读取并执行所述计算机程序,使得电子设备执行上述方法的步骤。
11.本技术实施例中,接收到针对目标应用的业务请求的代理节点,向代理节点集群中除第一节点之外的各第二节点,发送各待处理数据的待处理量,并在确定各第二节点中,存在支持处理各待处理数据的至少一个目标节点时,分别向至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息,然后,向目标应用发送携带节点信息的计算请求,以使目标应用计算通过至少一个目标节点获取的各待处理数据,并将各计算结果通过至少一个目标节点进行加密及存储。
12.这样,将加解密逻辑与业务应用解耦,可以减轻业务应用的计算压力,且独立的代理服务使得已有的业务应用完全无需感知原始数据的加解密状态,加解密方案的设计、实现和升级在结果需求方和代理服务之间协商一致即可,便于将业务应用迁移至tee内运行,且在加解密升级时,业务应用无需随之升级,降低了业务应用的运营难度。同时,分布式化的代理加解密服务,可以有效规避单点性能瓶颈问题。
13.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
14.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1为一种可信数据处理过程的示意图;图2为本技术实施例中提供的一种应用场景示意图;图3为本技术实施例中提供的一种可信数据处理方法的流程示意图;
图4为本技术实施例中提供的一种系统初始化的示意图;图5为本技术实施例中提供的一种第一节点选取过程的逻辑示意图;图6为本技术实施例中提供的一种支援集合的示意图;图7为本技术实施例中提供的一种业务请求和计算请求的示意图;图8为本技术实施例中提供的一种数据读取过程的交互流程示意图;图9为本技术实施例中提供的一种结果写入过程的交互流程示意图;图10为本技术实施例中提供的另一种场景示意图;图11为本技术实施例中提供的一种可信数据处理过程的示意图;图12为本技术实施例中提供的一种可信数据处理装置的结构示意图;图13为本技术实施例中提供的一种电子设备的结构示意图。
具体实施方式
15.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术技术方案的一部分实施例,而不是全部的实施例。基于本技术文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术技术方案保护的范围。
16.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够在除了这里图示或描述的那些以外的顺序实施。
17.本技术中相关数据收集处理在实例应用时应该严格根据相关国家法律法规的要求,获取个人信息主体的知情同意或单独同意,并在法律法规及个人信息主体的授权范围内,开展后续数据使用及处理行为。
18.下面,对本技术实施例中涉及的一些概念进行说明。
19.可信计算(trusted computing):基于硬件支撑的可信执行环境保护计算过程安全、数据隐私和认证数据完整性、来源可靠性等。使用可信计算达到的效果是,可信计算域内的数据、程序逻辑在没有主动输出的情况下无法被外部环境窥探。
20.远程证明:可信执行环境向第三方证明自身所运行环境硬件合法性的方法。一般在第三方发起挑战后,可行执行环境发送包含自身代码逻辑的哈希度量在内的信息集合,并对其签名,再返回给第三方进行身份验证。如果验证成功,则远程证明完成。
21.密钥交换协议(diffie-hellman-ephemeral,dhe):dhe是一种让双方在完全没有对方任何预先信息的条件下通过不安全信道协商出临时会话密钥的安全协议。这个密钥可以在后续的通讯中作为对称密钥来加密会话内容。临时椭圆曲线迪菲-赫尔曼交换(ecdhe)则是其基于椭圆曲线实现的变种,可以达到相同效果。
22.可信执行环境(trusted execution environment,tee):可信执行环境具备以下特性:与外部有内存访问控制和内存加密机制,即外部包括操作系统也没有可信计算域内存空间的访问权限;远程证明机制用于向远端证明可信执行环境运行的逻辑等没有受到篡改;本地证明机制用于向其他可信执行环境证明运行在同一硬件环境。
23.tee应用:运行在tee内的应用程序,能够接收输入数据,并对输入数据进行计算,获得计算结果。下文中,tee 应用也简称为tapp。
24.tee度量信息:用于证明tee 应用与其代码逻辑、运行时硬件环境对应关系的凭据,该凭据中可以包含:应用代码逻辑的哈希度量、硬件对代码逻辑哈希度量的签名(签名私钥由硬件厂商内置到硬件)、硬件厂商对硬件公钥的签名等信息。第三方验证硬件厂商对硬件公钥的签名可证明硬件源自合法的硬件厂商,验证硬件代码逻辑哈希度量的签名可证实预期逻辑的tee 应用运行在预期硬件环境,从而证明tee应用的完整性,而应用的安全性由硬件提供的tee保障。度量信息支持存放随应用而定的应用数据(例如,应用名称等),度量信息还可支持存放基于应用数据派生出的会话密钥,该会话密钥可以是基于密钥交换协议,在 tee 应用与 tee 应用之间、tee 应用与非 tee 应用之间协商出的用于加密通信的会话密钥。
25.加密封存:tee应用基于硬件派生的对称密钥加密数据保存到本地的行为,其中同一硬件为度量信息相同的 tee应用派生出的对称密钥完全相同,硬件或度量信息发生变化都会导致派生出的对称密钥不同。
26.云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
27.云技术(cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
28.云安全(cloud security) 是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常检测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
29.云安全主要研究方向包括:1. 云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2. 安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3. 云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
30.可信计算是通过基于硬件的tee对使用中的数据进行保护。tee是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。
31.相关技术中,参阅图1所示,在可信计算场景下,数据提供方加密原始数据,并将数据密文推送至数据存储服务。目标应用(tapp)通过数据存储服务获取数据密文,并在解密后获得原始数据,以及对原始数据执行相应计算,生成并加密计算结果,然后将计算结果的
结果密文推送至数据存储服务,这样,结果需求方可以通过数据存储服务获得计算结果的结果密文,并通过解密获得计算结果。
32.然而,加解密计算往往是计算密集型任务,直接影响着tee应用的计算性能,特别是面对海量的计算任务,tee应用的计算压力较大,在计算资源不足的情况下,难以保证计算性能。
33.本技术实施例中,接收到针对目标应用的业务请求的代理节点,向代理节点集群中除第一节点之外的各第二节点,发送各待处理数据的待处理量,并在确定各第二节点中,存在支持处理各待处理数据的至少一个目标节点时,分别向至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息,然后,向目标应用发送携带节点信息的计算请求,以使目标应用计算通过至少一个目标节点获取的各待处理数据,并将各计算结果通过至少一个目标节点进行加密及存储。
34.这样,将加解密逻辑与业务应用解耦,可以减轻业务应用的计算压力,且独立的代理服务使得已有的业务应用完全无需感知原始数据的加解密状态,加解密方案的设计、实现和升级在结果需求方和代理服务之间协商一致即可,便于将业务应用迁移至tee内运行,且在加解密升级时,业务应用无需随之升级,降低了业务应用的运营难度。同时,分布式化的代理加解密服务,可以有效规避单点性能瓶颈问题。此外,数据加解密代理与业务完全解耦,可根据需求灵活拓展支持多种存储类型,且加解密逻辑均实现在tee内,严格保护数据隐私,以分布式的形态高效地提供输入解密和输出加密服务。
35.参见图2所示,其为本技术实施例中提供的一种应用场景的示意图,该应用场景包括:数据提供方201、结果需求方202、存储节点203、代理节点集群204和应用节点205。数据提供方201、结果需求方202、存储节点203、代理节点集群204和应用节点205之间可以通过一个或者多个网络进行直接或间接的通信连接。该网络可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(wireless-fidelity,wifi)网络,当然还可以是其他可能的网络,对此不做限制。
36.其中,数据提供方201用于将需要进行计算的各待处理数据的数据密文存储至存储节点203中。其中,每个待处理数据的数据密文是根据加解密配置信息,对该待处理数据进行加密后得到的。
37.结果需求方202用于在采用目标应用对各待处理数据进行计算时,向代理节点集群204中的一个代理节点(即第一节点)传输针对目标应用的业务请求。结果需求方202还用于接收计算结果的结果密文。
38.需要说明的是,本技术实施例中,数据提供方201、结果需求方202可以为手机、平板电脑(pad)、笔记本电脑、台式电脑、智能电视、智能车载设备以及智能可穿戴设备等终端设备,但不局限于此。
39.存储节点203用于存储各待处理数据的数据密文,以及用于存储各待处理数据的计算结果的结果密文。在一些实施方式中,存储节点203可以进一步细分为数据存储节点和结果存储节点,其中,数据存储节点用于存储各待处理数据的数据密文,结果存储节点用于存储各待处理数据的计算结果的结果密文,这样,通过将数据密文和结果密文分别存储,降低数据存储压力。存储节点203可以是由多个物理服务器构成的集群,也可以是一个物理服务器。
40.需要说明的是,无论是数据密文,还是结果密文,其存储形式可以是文件服务器、mysql 数据库、分布式文件系统(hadoop distributed filesystem,hdfs)等,但不局限于此。示例性的,不同类型的数据可以采用不同的存储形式,比如,数据类型为文件的待处理数据的数据密文可以存储于文件数据库中,数据类型为表格的待处理数据的数据密文可以存储mysql 数据库中。
41.代理节点集群204由一个或多个代理节点组成,在一种可能的实现方式中,每个代理节点均用于:从结果需求方接收业务请求,支援数据读取/结果写出,以及调度 tapp 执行计算任务等,在另一种可能的实现方式中,实际部署中,也可以按职责对代理节点进一步划分,比如,20%的代理节点用于接收计算任务,70%的代理节点用于数据读取/结果写出,10%的代理节点用于调度tapp执行计算任务。下文中,仅以每个代理节点提供相同功能为例进行说明。
42.本技术实施例中,代理节点集群204可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
43.本技术实施例中,每个代理节点中部署有代理服务(也可以称为数据加解密代理服务)。代理服务运行在tee中,tee加固加解密代理服务,确保加解密逻辑公开可审计和运行时可验证,且中间加解密状态不被外界嗅探和篡改,无需依赖除硬件厂商外的第三方。
44.在一些实施方式中,代理服务作为结果需求方和tapp之间的中间层,任意一个代理节点在接收到业务请求后,确定其他代理节点(即第二节点)各自负责处理的待处理数据,进而通过其他代理节点,对获取各待处理数据各自的数据密文进行解密,获得各待处理数据,并通过其他代理节点将各待处理数据传输给应用节点,以使应用节点对各待处理数据进行计算,生成并向其他代理节点返回计算结果。其他代理节点对结果密文进行加密以及存储。进一步的,每个代理服务每处理一笔数据读取任务或者结果写入任务后,可以将相应的状态更新到消息队列,表示任务关联的待处理数据的数据读取或者结果写入请求已被处理,以备对任务状态有更细粒度数据查看需求的数据提供方或结果需求方订阅。
45.应用节点205中运行有tapp,tapp用于基于接收到的各待处理数据进行数据计算,获得相应的计算结果。
46.在一些应用场景中,也可以部署独立的物理服务器作为代理节点,当该代理节点接收到业务请求后,通过该代理节点,对获取各待处理数据各自的数据密文进行解密,获得各待处理数据,并通过该代理节点将各待处理数据传输给应用节点,以使应用节点对各待处理数据进行计算,生成并向该代理节点返回计算结果。该代理节点对结果密文进行加密以及存储后,可以将相应的状态更新到消息队列。
47.参阅图3所示,其为本技术实施例中提供的一种可信数据处理方法的流程图,该方法应用于第一节点,第一节点可以是代理节点集群中的任意一个代理节点,该方法具体包括:s301、第一节点当接收到针对目标应用的业务请求时,获取业务请求中各待处理数据各自的密文存储地址和加解密配置信息,每个加解密配置信息用于对相应待处理数据的密文进行解密,以及对待处理数据的计算结果进行加密。
48.本技术实施例中,目标应用是指运行于tee中提供计算功能的应用。业务请求可以是结果需求方发送给第一节点的。
49.本技术实施例中,数据传输机制可以采用但不限于消费订阅机制的方式实现。在消费订阅机制中,消息的发送方称为发布者,消息的接收方称为订阅者,用于存放消息的容器称为主题。发布者将消息发送到主题中,订阅者在接收消息之前,需要订阅相应主题,订阅者可以接收订阅的主题的所有消息。
50.为实现基于消息队列的数据传输,参阅图4所示,在执行s301之前,可以部署一个消息队列。消息队列的主题包括但不限于“可用代理服务列表”、“待处理请求”等。进一步的,针对代理节点集群中的每个代理节点,在每个代理节点中的数据加解密代理服务(可简称为代理服务)启动过程中,每个代理节点均可以生成相应的证书,在代理服务启动后,每个代理节点可以将自身的节点地址、证书注册到消息队列的“可用代理服务列表”中。
51.每个代理节点生成的证书中,包含有tee 度量信息和证书公钥y的哈希,公钥y的哈希算法可以是sm3、sha256 等常用哈希算法之一,但不局限于此。
52.由于tee度量信息只有对应的tee或者说代理服务才能生成,而代理服务的源码在公开审计后许可上线,因此,度量信息自定义字段设置为公钥哈希,第三方可以通过公钥哈希获得证书公钥,进而基于证书公钥对证书进行验证,这样构造证书可以证明:(1)只有该代理服务拥有证书私钥(因为外界无法窃取服务在tee内生成的私钥);(2)该代理服务的服务度量信息和证书内嵌的度量信息严格相等。证书可以用于标识代理节点的身份,便于后续验证及更新该代理节点相关消息的完整性和真实性。
53.每个代理节点还可以将自身的有效时长注册到消息队列的“可用代理服务列表”主题,说明代理节点在有效时长内具备正常处理请求的能力,使得代理节点宕机后,代理节点的节点地址失效,向外部提示代理节点已无法提供可靠服务,不应再往此服务发送请求,提高系统可用性。需要说明的是,本技术实施例中,每个代理节点可以通过定期心跳机制更新自身的有效时长。
54.当结果需求方需要对各待处理数据进行计算时,通过消息队列的“可用代理服务列表”主题,查询当前可用的代理节点的节点地址,然后,从当前可用的代理节点的节点地址中,选取任意一个节点地址,选取的节点地址对应的代理节点称为第一节点。
55.参阅图5所示,假设,代理节点集群中的代理节点包括节点1至节点m,m的取值为正整数,节点1至节点m中,均部署有数据加解密代理服务。
56.当结果需求方需要对各待处理数据进行计算时,通过消息队列的“可用代理服务列表”主题,查询当前可用的代理节点的节点地址:0.0.10.16(节点1的节点地址)、0.0.10.17(节点i的节点地址)等,然后,从当前可用的代理节点的节点地址中,选取0.0.10.17作为业务请求的接收地址,即节点i为第一节点。
57.结果需求方选取第一节点后,作为一种可能的实现方式,结果需求方可以将业务请求发布到消息队列,以使第一节点通过消息队列接收到该业务请求,但为了最大程度地保护数据隐私性,作为另一种可能的实现方式,结果需求方还可以通过结果需求方与第一节点之间的安全信道,将业务请求发送给第一节点。
58.在一些实施方式中,结果需求方与第一节点之间的安全信道可以采用但不限于以下方式构建:
结果需求方根据选取的节点地址与第一节点建立连接,并执行远程证明流程,对第一节点进行合法性校验。在第一节点通过合法性校验后,结果需求方建立结果需求方与第一节点之间的安全信道。
59.其中,在对第一节点进行合法性验证时,结果需求方验证第一节点的第一度量信息,是否与已严格审核并认可的代理服务的源代码匹配,若匹配,则确定第一节点通过合法性校验,否则,确定第一节点未通过合法性校验。
60.安全信道的建立可以借助dhe密钥交换协议等方式实现,对此不作限定,在此不再赘述。
61.本技术实施例中,一个密文存储地址可以是数据密文的存储地址(数据存储地址)或者结果密文的存储地址(结果存储地址)。
62.本技术实施例中,参阅图7所示,业务请求(task)中包括以下信息:(1)相关数据地址信息。相关数据地址信息用于指示待处理数据的数据密文或者结果密文的存储位置,具体可以分为数据地址和结果地址。示例性的,相关数据地址信息中可以包含:1)密文存储地址:数据存储地址或结果存储地址。
63.2)鉴权凭据。鉴权凭据是指进行数据读取或者数据写入前,访问存储节点所需要的权限信息,例如,鉴权凭据可以是访问数据库的账号和密码。
64.3)加解密配置信息。加解密配置信息中可以是对数据密文进行解密所使用的解密算法,或者是对计算结果进行加密所使用的加密算法。
65.(2)目标应用的度量信息m。
66.(3)目标应用的计算参数。计算参数包含但不限于是计算类型等。
67.需要说明的是,本技术实施例中,每个相关数据地址信息可以视为一个任务,因此,业务请求中实际包含针对各待处理数据的各数据读取任务和各结果写入任务,每个相关数据地址信息对应一个数据读取任务或结果写入任务。示例性的,针对每个待处理数据,均存在对应的数据读取任务和结果写入任务,数据读取任务的任务信息记录于数据地址中,结果写入任务的任务信息记录于结果地址中。
68.第一节点在接收到针对目标应用的业务请求后,可以从相关数据地址信息字段中,获取业务请求中各待处理数据各自的密文存储地址和加解密配置信息。
69.s302、第一节点向代理节点集群中除第一节点之外的各第二节点,发送各待处理数据的待处理量,以使每个第二节点在基于待处理量,确定自身满足预设计算条件时,返回相应节点信息。
70.本技术实施例中,每个待处理数据的数据读取任务和结果写入任务可以由同一代理节点完成,也可以由不同代理节点完成。如果每个待处理数据的数据读取任务和结果写入任务可以由同一代理节点完成,那么,各待处理数据的待处理量是指待处理数据的数量,如果每个待处理数据的数据读取任务和结果写入任务可以由不同代理节点完成,那么,各待处理数据的待处理量是指各待处理数据的数据密文和结果密文的数量。
71.每个代理节点可以完成一个任务(数据读取任务或结果写入任务),也可以完成多个任务(数据读取任务和/或结果写入任务)。下文中,仅以一个代理节点完成一个数据读取任务或结果写入任务为例进行说明。
72.第一节点向代理节点集群中除第一节点之外的各第二节点,发送各待处理数据的待处理量时,也可以采用消息订阅机制实现。
73.本文中,待处理量也可以称为需要进行处理的数据和结果地址总数,假设,数据和结果地址总数为n,第一节点可以基于数据和结果地址总数n,构造代理加解密请求,并将代理加解密请求发布到消息队列的“待处理请求”主题,这样,每个第二节点均可以通过消息队列的“待处理请求”主题,获取到该业务请求中需要进行处理的数据和结果地址总数 n。
74.其中,代理加解密请求中数据和结果地址总数n之外,还可以包含请求标识、第一节点的节点地址、签名等中的一项或多项信息。示例性的,代理加解密请求包含以下信息:a、请求标识,请求标识可以是随机生成的通用唯一识别码(universally unique identifier,uuid),但不局限于此;b、第一节点的节点地址;c、数据和结果地址总数n;d.、第一节点的证书私钥对上述a、b、c字段的签名。
75.针对各第二节点中的每个第二节点,每个第二节点在获取到数据和结果地址总数n之后,在满足以下条件时,确定自身满足预设计算条件:第二节点已申领代理的请求总数小于该第二节点对应的预设请求数门限值,且该业务请求的支援集合(helperset)的大小小于n。
76.其中,第二节点已申领代理的请求总数是指第二节点当前正在处理的数据读取任务和结果写入任务的数量。
77.helperset中存储有支持处理各待处理数据的第二节点的节点地址,具体而言,存储有支持处理待处理数据的数据读取任务和结果写入任务的第二节点的节点地址。示例性的,helperset中的各第二节点可以作为处理其中一笔数据读取任务或结果写入任务的代理节点。
78.本技术实施例中,当一个第二节点确定自身满足预设计算条件时,将该第二节点的节点地址添加到helperset,并将本地已申领代理的请求总数加1。
79.在一些实施方式中,为了提高数据处理效率,helperset可以通过加锁进行原子性更新,且保证helperset的大小不大于n。
80.本技术实施例中,各代理节点中的每个代理节点均可以查看helperset中存储的各节点地址,因此,任意一个第二节点将自身的节点信息(即节点地址)添加至helperset中后,第一节点均可以通过helperset确定支持处理各待处理数据的第二节点。
81.参阅图6所示,假设,第一节点为节点i,节点1至节点m中除节点i之外的其他节点均为第二节点,仅以节点1为例,数据和结果地址总数n的取值为10,节点1对应的预设请求数门限为100,节点1已申领代理的请求总数为20,helperset的大小为0,那么,节点1确定自身满足预设计算条件,将节点1的节点地址1添加至helperset中,此时,helperset的大小变为1,节点1已申领代理的请求总数变为21。类似的,节点2-节点m中除节点i之外的其他第二节点,均可以在满足确定自身满足预设计算条件时,将自身的节点地址添加到helperset中,并将本地已申领代理的请求总数加1。这样,可以获取到包含以下10个节点地址的支援集合:节点地址1(节点1的节点地址)、节点地址2(节点2的节点地址)、节点地址3(节点3的节点地址)、节点地址4(节点4的节点地址)、节点地址6(节点6的节点地址)、节点地址9(节
点9的节点地址)、节点地址10(节点10的节点地址)、节点地址12(节点12的节点地址)、节点地址13(节点13的节点地址)、节点地址m(节点m的节点地址)。
82.s303、第一节点若基于返回的各节点信息,确定各第二节点中,存在支持处理各待处理数据的至少一个目标节点,则分别向至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息。
83.具体的,本技术实施例中,基于返回的各节点信息,确定各第二节点中,存在支持处理各待处理数据的至少一个目标节点,存在以下两种情况:情况一:若每个节点信息未包含对应的第二节点的可处理数据量,则在返回的各节点信息的数量,达到待处理量时,确定各第二节点中,存在支持处理各待处理数据的至少一个目标节点。
84.也就是说,每个第二节点可以处理一个数据读取任务或结果写入任务,第二节点通过在helperset中添加自身的节点信息(即节点地址),向第一节点发送节点信息,相应的,第一节点可以根据helperset中包含的节点地址的数目,在helperset中包含的节点地址的数目,达到待处理量(即数据和结果地址总数n)时,确定各第二节点中,存在支持处理各待处理数据的n个目标节点。
85.需要说明的是,本技术实施例中,将支持处理待处理数据的第二节点,称为目标节点。
86.例如,假设,数据和结果地址总数n为10,第一节点在helperset中包含的节点地址的数目,达到10个时,确定各第二节点中,存在支持处理各待处理数据的10个目标节点。
87.情况二:若每个节点信息包含对应的第二节点的可处理数据量,则在各节点信息各自包含的可处理数据量之和,达到待处理量时,确定各第二节点中,存在支持处理各待处理数据的至少一个目标节点。
88.也就是说,每个第二节点可以处理多个任务,多个任务可以均为数据读取任务,也可以均为结果写入任务,还可以包括数据读取任务各和结果写入任务,对此不作限定。第二节点通过在helperset中添加自身的节点信息,向第一节点发送节点信息,节点信息中不仅包含第二节点的节点地址,还包含该第二节点对应的可处理数据量,相应的,第一节点可以根据helperset中每个节点地址对应的第二节点的可处理数据量,在各节点信息各自包含的可处理数据量之和,达到(即数据和结果地址总数n)时,确定各第二节点中,存在支持处理各待处理数据的至少一个目标节点。
89.例如,假设,数据和结果地址总数n为10,helperset中包含8个第二节点的节点地址,8个第二节点中,7个第二节点的可处理数据量均为1,1个第二节点的可处理数据量为3,此时, helperset中每个节点地址对应的第二节点的可处理数据量之和达到10,第一节点确定各第二节点中,存在支持处理各待处理数据的至少一个目标节点。
90.在一些实施方式中,第一节点还可以在确定存在支持处理各待处理数据的第二节点后,对业务请求再次签名以保证完整性后,将其移出消息队列的“待处理请求”主题。
91.具体的,本技术实施例中,第一节点分别向至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息,包括:基于至少一个目标节点各自支持处理的待处理数据,确定至少一个目标节点各自负责处理的待处理数据;
通过至少一个目标节点各自与第一节点之间的安全信道,分别向至少一个目标节点,发送相应的负责处理的待处理数据的密文存储地址和加解密配置信息。
92.作为一种可能的实现方式,本技术实施例中,第一节点和每个目标节点之间进行双向远程证明,第一节点与目标节点互相验证tee合法性,tee合法性验证包括验证彼此度量信息相等,并基于验证过程建立安全信道用于后续通信。
93.下面,以任意一个目标节点为例,对一个目标节点与第一节点之间的安全信道的建立过程进行说明,具体的,一个目标节点与第一节点之间的安全信道可以是通过但不限于以下方式构建的:首先、第一节点向目标节点发送第一节点的第一度量信息,并接收目标节点返回的第二度量信息。
94.其次、第一节点基于返回的第二度量信息,分别对目标节点进行合法性校验。
95.最后,当第一节点和目标节点均通过合法性校验时,分别建立所目标节点各自与第一节点之间的安全信道。
96.也就是说,第一节点与目标节点交换各自的度量信息,相互验证对方的运行环境合法性后,建立彼此之间的安全信道。
97.作为一种可能的实现方式,目标节点与第一节点在进行合法性校验时,无论是第一节点,还是目标节点,均验证目标节点与第一节点各自的度量信息是否相同(即第一度量信息与第二度量信息是否相同),若相同,则确定对方通过合法性校验,否则,确定对方未通过合法性校验。
98.第一节点与目标节点之间的安全信道的建立可以借助dhe密钥交换协议等方式实现,对此不作限定,在此不再赘述。
99.在创建至少一个目标节点各自与第一节点之间的安全信道后,通过创建的至少一个目标节点各自与第一节点之间的安全信道,分别向至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息。
100.其中,每个目标节点负责处理的待处理数据可以是随机分配的,也可以是基于目标节点的可处理数据量分配的,对此不作限定。
101.本技术实施例中,每个目标节点均可以将该信息缓存到各自的本地内存中,从而后续使用时,可以从内存中快速读取相应数据。如果内存压力过大,则可以采用加密封存的方式将其加密保存到磁盘。
102.在将密文存储地址和加解密配置信息发送给对应目标节点时,第一节点还可以生成各任务标识,每个任务标识对应一个数据读取任务或者结果写入任务,并将生成的任务标识发送给对应目标节点。任务标识可以采用随机生成的uuid。目标节点中,任务标识、密文存储地址和加解密配置信息可对应存储,这样,当目标节点获取到任务标识后,可通过任务标识查找到对应的密文存储地址和加解密配置信息。
103.进一步的,第一节点基于生成的各任务标识,以及基于各目标节点各自的节点地址,生成计算请求。
104.示例性的,参阅图7所示,第一节点针对每个相关数据地址信息,分别执行以下操作:首先,第一节点从helperset 无放回地取出一个第二节点的节点地址,取出的节
点地址记为addr,并将该向相关数据地址信息中记载的地址(数据存储地址或结果存储地址)替换为addr;其次,随机生成一个任务标识,并将生成的该请求标识嵌入鉴权凭据,所得新凭据记为 credentialnew。
105.本技术实施例中,对于请求标识的嵌入方式不作限定,例如,鉴权凭据为数据库的账号名和密码,可以直接将 uuid拼接到账号名作为前缀。
106.在针对每个相关数据地址信息执行上述操作后,获得计算请求(tasknew),tasknew中包含各相关数据地址信息和目标应用专用的计算参数,其中,每个相关数据地址信息中的存储地址为addr,鉴权凭据为credentialnew。
107.s304、第一节点向目标应用发送携带各节点信息的计算请求,以使目标应用计算通过至少一个目标节点获取的各待处理数据,并将各计算结果通过至少一个目标节点进行加密及存储。
108.在一些实施例中,为了保证第一节点和目标应用之间的数据传输安全,在第一节点和目标应用之间建立安全信道,进而第一节点通过第一节点和目标应用的安全信道,向目标应用传输发送携带节点信息的计算请求。
109.具体的,第一节点和目标应用之间的安全信道可以通过但不限于以下方式实现:第一节点向目标应用发送第一节点的第一度量信息,以使目标应用基于度量信息,对第一节点进行合法性校验;第一节点基于接收到的目标应用的第三度量信息,对目标应用进行合法性校验,并在当第一节点和目标应用均通过合法性校验时,建立目标应用与第一节点之间的安全信道。
110.也就是说,本技术实施例中,第一节点中的代理服务调度启动m对应的 tapp 实例,执行双向远程证明流程,与tapp互相验证tee合法性,合法性验证包含tapp的度量信息m严格等于m,并基于验证过程建立安全信道用于后续通信。
111.第一节点对目标应用进行合法性校验时,验证目标应用的第三度量信息是否与业务请求中携带的目标应用的度量信息m相同,若相同,则确定目标应用通过合法性校验,否则,确定对方未通过合法性校验。
112.目标应用对第一节点进行合法性校验时,验证第一节点的第一度量信息,是否与已严格审核并认可的代理服务的源代码匹配,若匹配,则确定第一节点通过合法性校验,否则,确定第一节点未通过合法性校验。
113.其中,第一节点与目标节点之间的安全信道的建立可以借助dhe密钥交换协议等方式实现,对此不作限定,在此不再赘述。
114.当目标应用获取到计算请求后,基于计算请求中包含的各相关数据地址信息,分别通过相应的目标节点,进行数据计算及结果存储。
115.下面,以一个数据读取任务和一个结果写入任务为例,分别对数据读取任务和结果写入任务的处理过程进行说明。
116.参阅图8所示,其为本技术实施例中提供的一种数据读取任务处理过程中目标应用与目标节点之间的交互示意图,具体交互流程如下:s801、目标应用根据计算请求中携带的目标节点的节点地址,将计算请求中携带
的鉴权凭据发送给目标节点。其中,鉴权凭据中携带有任务标识。
117.也就是说,当目标应用接收到来自第一节点的携带目标节点的节点地址和鉴权凭据的计算请求后,根据目标节点的节点地址,将计算请求中携带的鉴权凭据发送给目标节点。如图7,鉴权凭据中包含uuid+账户+密码,uuid为任务标识。
118.在一些实施方式中,执行s801时,目标应用可以先与目标节点建立安全信道,然后通过建立的目标应用与目标节点之间的安全信道,将鉴权凭据发送给目标节点。
119.在一些实施方式中,在目标应用与目标节点均通过合法性校验后,建立目标应用与目标节点之间的安全信道。目标应用与目标节点之间的合法性校验过程,参见目标应用与第一节点之间的合法性校验过程,在此不再赘述。
120.s802、目标节点基于鉴权凭据中携带的任务标识,获得任务标识对应的数据存储地址和加解密配置信息。示例性的,目标节点可以以uuid为键,查询到uuid对应的数据存储地址和加解密配置信息。
121.s803、目标节点基于数据存储地址,获取待处理数据的数据密文。如图7,鉴权凭据中包含uuid+账户+密码,目标节点根据数据存储地址可以确定于存储待处理数据的数据密文的数据存储节点,并根据鉴权凭据中的账户+密码,登入数据存储节点,获取待处理数据的数据密文。
122.s804、目标节点基于加解密配置信息,对待处理数据的数据密文进行解密,获得待处理数据。
123.s805、目标节点将待处理数据返回给目标应用。
124.具体的,执行s805时,目标节点可以通过目标应用与目标节点之间的安全信道,将待处理数据返回给目标应用。
125.进一步的,目标应用对待处理数据进行计算后,获得相应的计算结果,计算结果由目标节点进行加密及存储。
126.参阅图9所示,其为本技术实施例中提供的一种结果写入任务处理过程中目标应用与目标节点之间的交互示意图,具体交互流程如下:s901、目标应用根据计算请求中携带的目标节点的节点地址,将计算请求中携带的鉴权凭据发送给目标节点。其中,鉴权凭据中携带有任务标识。
127.也就是说,当目标应用获得计算结果后,目标应用根据计算请求中的目标节点的节点地址,将鉴权凭据发送给目标节点。如图7,鉴权凭据中包含uuid+账户+密码,uuid为任务标识。
128.具体的,执行s901时,目标应用可以先与目标节点建立安全信道,然后通过建立的目标应用与目标节点之间的安全信道,将鉴权凭据发送给目标节点。
129.在一些实施方式中,在目标应用与目标节点均通过合法性校验后,建立目标应用与目标节点之间的安全信道。目标应用与目标节点之间的合法性校验过程,参见目标应用与第一节点之间的合法性校验过程,在此不再赘述。
130.s902、目标节点基于鉴权凭据中携带的任务标识,获得任务标识对应的结果存储地址和加解密配置信息。示例性的,目标节点可以以uuid为键,查询到uuid对应的结果存储地址和加解密配置信息。
131.s903、目标节点基于加解密配置信息,对计算结果进行加密,获得结果密文。
132.s904、目标节点将结果密文存储至结果存储地址。示例性的,鉴权凭据中包含uuid+账户+密码,目标节点根据结果存储地址可以确定于存储结果密文的结果存储节点,并根据鉴权凭据中的账户+密码,登入结果存储节点,存储结果密文。
133.在一些实施方式中,第一节点还可以在确定至少一个目标节点对各计算结果进行加密及存储后,将各待处理数据的处理状态更新为已完成状态;然后,将各待处理数据的更新后的处理状态推送给结果需求方。
134.在一些实施方式中,第一节点还可以在确定至少一个目标节点获得各处理数据后,将各待处理数据的处理状态更新为数据读取完成状态;以及,在确定至少一个目标节点对各计算结果进行加密及存储后,将各待处理数据的处理状态更新为数据写入完成状态。其中,每个待处理数据的处理状态进行更新后,可以更新后的处理状态推送给结果需求方。
135.在一些实施方式中,第一节点也可以参与处理数据读取任务和结果写入任务。具体的,第一节点参与处理数据读取任务时,可以采用但不限于以下方式:若第一节点基于待处理量,确定第一节点满足预设计算条件,则在接收到来自目标应用的链接请求时,获取第一节点负责处理的待处理数据的密文存储地址和加解密配置信息;基于密文存储地址,获取相应的待处理数据的数据密文,并基于加解密配置信息,对数据密文进行解密,获得相应的待处理数据;将获得的待处理数据发送给目标应用,以使目标应用对获得的待处理数据进行计算。具体参见s801-s805,在此不再赘述。
136.第一节点参与处理结果写入任务时,可以采用但不限于以下方式:当接收到来自目标应用的计算结果后,基于加解密配置信息,对计算结果进行加密,获得结果密文;将结果密文存储于数据存储服务中。具体参见s901-s904,在此不再赘述。
137.在一些实施方式,链接请求中携带:用于登录数据存储服务的鉴权凭据,鉴权凭据也可以称为存储鉴权凭据,在基于密文存储地址,获取相应的待处理数据的数据密文时,基于存储鉴权凭据,进行针对第一节点的登录验证,获得登录验证结果;当登录验证结果表征允许第一节点登入时,基于密文存储地址,获取相应的待处理数据的数据密文。
138.下面,结合一个具体的实施例,对本技术进行说明。
139.参阅图10所示,可信数据处理系统中包含:数据提供方、结果需求方、数据存储服务、结果存储服务、目标应用(即tapp)、数据加解密代理服务、消息队列。
140.其中,数据加解密代理服务部署于代理节点集群中的各代理节点中,各代理节点包括代理节点1、代理节点2、
……
、代理节点8。
141.可信数据处理系统的运行包括两个阶段:初始化阶段和代理加解密阶段。
142.在初始化阶段,首先,需要部署一个消息队列,其次,每个代理节点中的代理服务启动时,均会生成各自的自签名证书(简称为证书),自签名证书的拓展字段内嵌有该代理节点的tee度量信息,且tee度量信息的自定义字段设置为证书公钥的哈希,每个代理节点在代理服务启动后,将自身的节点地址、证书和有效时长注册到消息队列的“可用代理服务列表”主题。
143.在初始化阶段,参阅图11所示,数据提供方、结果需求方、数据存储服务、结果存储服务、tapp、数据加解密代理服务之间的交互流程如下:s1101a、银行a对数据a进行加密,获得数据密文a,并将数据密文写入数据存储服
务。
144.示例性的,数据a可以是记录有银行a中xx活动参与信息的表a,数据密文a写入提供数据存储服务的存储节点1。
145.s1101b、银行b对数据b进行加密,获得数据密文b,并将数据密文写入数据存储服务。
146.示例性的,数据b可以是记录有xx活动参与信息的表b,数据密文ab写入提供数据存储服务的存储节点2。
147.s1102、结果需求方通过消息队列的“可用代理服务列表”主题,查询可用的代理节点(节点1)的节点地址。
148.当结果需求方需要对表a和表b进行去重或者求交集等计算时,将表a和表b作为待处理信息,并查询可用节点,示例性的,可用的代理节点的节点地址中包含节点1的节点地址。
149.s1103、结果需求方与节点1建立安全信道,具体的,结果需求方根据节点地址与节点1建立连接,并执行远程证明流程,对节点1进行合法性校验,并在节点1通过合法性校验后,建立结果需求方与节点1之间的安全信道。
150.其中,对节点1进行合法性校验时,验证节点1的度量信息(具体是指节点1中的代理服务的度量信息)和已严格审核并认可的节点1的源代码是否匹配。建立结果需求方与节点1之间的安全信道的过程中,还可以对节点1的证书进行合法性校验,示例性的,校验通过消息队列的“可用代理服务列表”主题查询到的节点1的证书,与节点1发送给结果需求方的证书是否相同,若相同,则节点1的证书通过合法性校验。
151.s1104、结果需求方创建业务请求,并通过结果需求方与节点1之间的安全信道,将业务请求提交给节点1。
152.其中,业务请求中包含:3个相关数据地址信息,目标tapp的度量信息 m,目标tapp的计算参数。3个相关数据地址信息分别为待处理数据a、待处理数据b、计算结果的相关信息,其中,待处理数据a的密文存储地址为数据存储节点1,待处理数据b的密文存储地址为数据存储节点2,计算结果的结果存储地址为结果存储节点3。也就是说,业务请求中,包含针对待处理数据a的数据读取任务,针对待处理数据b的数据读取任务,以及针对待处理数据a和待处理数据的计算结果的结果写入任务。
153.s1105、第一节点基于各待处理数据的待处理量,构造代理加解密请求,并发布到消息队列的“待处理请求”主题。
154.具体的,第一节点可以根据业务请求,获取到待处理数据a和待处理数据b各自的密文存储地址和加解密配置信息,以及获取到计算结果的结果存储地址和加解密配置信息。
155.构造的代理加解密请求中包含以下信息:代理加解密请求的请求标识;节点1的节点地址;数据和结果地址总数3;采用第一节点的证书私钥对上述字段的签名。
156.s1106、每个第二节点在基于待处理量,确定自身满足预设计算条件时,将自身的节点地址,添加到针对代理加解密请求发布的“待处理请求”的支援集合中。
157.其中,一个代理节点已申领代理的请求总数小于预设请求总数门限值,且的支援集合的大小小于n时,则添加到针对代理加解密请求发布的“待处理请求”的支援集合中,并
将本地已申领代理的请求总数加1。一个代理节点可以作为处理一个数据读取任或者结果写入任务的代理节点。
158.例如,节点2、节点3、节点4在基于待处理量,确定自身满足预设计算条件时,将自身的节点地址,添加到针对代理加解密请求发布的“待处理请求”的支援集合中。
159.s1107、节点1确定针对代理加解密请求发布的“待处理请求”的支援集合的大小等于待处理量时,将相应数据传输给目标节点。
160.具体的,针对3个相关数据地址信息中的每个相关数据地址信息,分别执行以下操作:s1107a、节点1从支援集合中,无放回的取出一个节点地址addr。
161.例如,节点1从支援集合中,无放回的取出节点2的节点地址。
162.s1107b、节点1将当前相关数据地址信息中的存储地址替换为addr。
163.例如,节点1将待处理数据a对应的相关数据地址信息中的存储地址替换为节点2的节点地址。
164.s1107c、节点1随机生成一个uuid,将其嵌入鉴权凭据,获得新凭据,新凭据记为credentialnew。
165.s1107d、节点1执行双向远程证明流程,与addr指向的代理节点互相验证tee合法性,并在节点1与addr指向的代理节点均通过合法性校验后,建立节点1与addr指向的代理节点之间的安全信道。其中,节点1与addr指向的代理节点均验证彼此度量信息是否相等。
166.s1107e、节点1通过建立的节点1与addr指向的代理节点之间的安全信道,向addr指向的代理节点发送uuid、数据/结果的实际存储地址(即当前相关数据地址信息中替换前的存储地址)和加解密配置信息。
167.例如,节点1通过建立的节点1与节点2之间的安全信道,向节点2发送s1107c 中生成的uuid、待处理数据a的密文存储地址和加解密配置信息。
168.s1108、节点1与目标tapp建立安全信道。调度启动度量行m对应的目标tapp实例,并执行双向远程证明流程,与目标tapp互相验证tee合法性,并基于验证结果,建立节点1与目标tapp的安全信道。其中,节点1验证目标tapp的度量信息严格等于度量信息m。
169.s1109、节点1通过节点1与目标tapp的安全信道,将计算请求(tasknew)提交给目标tapp执行。
170.s1110、目标tapp通过节点2获取表a,通过节点3获取表b,并对表a和表b进行计算,获得计算结果。具体参见s801-s805。
171.s1110、目标tapp通过节点3对计算结果进行加密及存储。具体参见s901-s904。
172.s1111、第一节点在任务执行完毕后,将任务状态发布到消息队列的“已完成任务”主题。
173.s1112、结果需求方通过消息队列的“已完成任务”主题确定业务请求完成时,从结果存储服务拉取结果密文,并通过解密获得计算结果。
174.基于相同的发明构思,本技术实施例提供一种可信数据处理装置。如图12所示,其为可信数据处理装置1200的结构示意图,可以包括:任务接收单元1201,用于当接收到针对目标应用的业务请求时,获取所述业务请求中各待处理数据各自的密文存储地址和加解密配置信息,每个加解密配置信息用于对相
应待处理数据的密文进行解密,以及对所述待处理数据的计算结果进行加密;任务广播单元1202,用于向所述代理节点集群中除所述第一节点之外的各第二节点,发送所述各待处理数据的待处理量,以使每个第二节点在基于所述待处理量,确定自身满足预设计算条件时,返回相应节点信息;任务分配单元1203,用于若基于返回的各节点信息,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点,则分别向所述至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息;任务处理单元1204,用于向所述目标应用发送携带所述节点信息的计算请求,以使所述目标应用计算通过所述至少一个目标节点获取的所述各待处理数据,并将各计算结果通过所述至少一个目标节点进行加密及存储。
175.在一种可能的实现方式中,所述分别向所述至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息时,任务分配单元1203具体用于:基于所述至少一个目标节点各自支持处理的待处理数据,确定所述至少一个目标节点各自负责处理的待处理数据;通过所述至少一个目标节点各自与所述第一节点之间的安全信道,分别向所述至少一个目标节点,发送相应的负责处理的待处理数据的密文存储地址和加解密配置信息。
176.在一种可能的实现方式中,所述任务分配单元1203还用于:分别向所述至少一个目标节点发送所述第一节点的第一度量信息,并接收所述至少一个目标节点各自返回的第二度量信息;基于返回的至少一个第二度量信息,分别对所述至少一个目标节点进行合法性校验;当所述第一节点和所述至少一个目标节点均通过合法性校验时,分别建立所述至少一个目标节点各自与所述第一节点之间的安全信道。
177.在一种可能的实现方式中,所述基于返回的至少一个第二度量信息,分别对所述至少一个目标节点进行合法性校验时,任务分配单元1203具体用于:针对所述至少一个第二度量信息中的每个第二度量信息,分别执行以下操作:判断一个第二度量信息是否与所述第一度量信息相同;若相同,则确定所述一个第二度量信息对应的目标节点通过合法性校验。
178.在一种可能的实现方式中,所述基于返回的各节点信息,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点时,任务分配单元1203具体用于:若每个节点信息包含对应的第二节点的可处理数据量,则在所述各节点信息各自包含的可处理数据量之和,达到所述待处理量时,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点;若每个节点信息未包含对应的第二节点的可处理数据量,则在返回的各节点信息的数量,达到所述待处理量时,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点。
179.在一种可能的实现方式中,所述向所述目标应用发送携带所述节点信息的计算请求之前,任务接收单元1201还用于:
向所述目标应用发送所述第一节点的第一度量信息,以使所述目标应用基于所述度量信息,对所述第一节点进行合法性校验;基于接收到的目标应用的第三度量信息,分别对所述目标应用进行合法性校验,并在当所述第一节点和所述目标应用均通过合法性校验时,建立所述目标应用与所述第一节点之间的安全信道;则所述向所述目标应用发送携带所述节点信息的计算请求时,任务处理单元1204具体用于:通过所述目标应用与所述第一节点之间的安全信道,向所述目标应用发送携带所述节点信息的计算请求。
180.在一种可能的实现方式中,任务处理单元1204还用于:若基于所述待处理量,确定所述第一节点满足预设计算条件,则在接收到来自所述目标应用的链接请求时,获取所述第一节点负责处理的待处理数据的密文存储地址和加解密配置信息;基于所述密文存储地址,获取相应的待处理数据的数据密文,并基于所述加解密配置信息,对所述数据密文进行解密,获得相应的待处理数据;将获得的待处理数据发送给所述目标应用,以使所述目标应用对获得的待处理数据进行计算。
181.在一种可能的实现方式中,所述链接请求中携带:用于登录数据存储服务的存储鉴权凭据;则所述基于所述密文存储地址,获取相应的待处理数据的数据密文时,任务处理单元1204具体用于:基于所述存储鉴权凭据,进行针对所述第一节点的登录验证,获得登录验证结果;当登录验证结果表征允许所述第一节点登入时,基于所述密文存储地址,获取相应的待处理数据的数据密文。
182.在一种可能的实现方式中,任务处理单元1204还用于:当接收到来自所述目标应用的计算结果后,基于所述加解密配置信息,对所述计算结果进行加密,获得结果密文;将所述结果密文存储于所述数据存储服务中。
183.在一种可能的实现方式中,任务处理单元1204还用于:在确定所述至少一个目标节点对各计算结果进行加密及存储后,将所述各待处理数据的处理状态更新为已完成状态;将所述各待处理数据的更新后的处理状态推送给结果需求方。
184.为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本技术时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
185.关于上述实施例中的装置,其中各个单元执行请求的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
186.所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
187.基于相同的发明构思,本技术实施例还提供一种电子设备。在一种实施例中,该电子设备可以是服务器,也可以是终端设备。参阅图13所示,其为本技术实施例中提供的一种可能的电子设备的结构示意图,图13中,电子设备1300包括:处理器1310和存储器1320。
188.其中,存储器1320存储有可被处理器1310执行的计算机程序,处理器1310通过执行存储器1320存储的指令,可以执行上述可信数据处理方法的步骤。
189.存储器1320可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器1320也可以是非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者存储器1320是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1320也可以是上述存储器的组合。
190.处理器1310可以包括一个或多个中央处理单元(central processing unit, cpu)或者为数字处理单元等等。处理器1310,用于执行存储器1320中存储的计算机程序时实现上述可信数据处理方法。
191.在一些实施例中,处理器1310和存储器1320可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
192.本技术实施例中不限定上述处理器1310和存储器1320之间的具体连接介质。本技术实施例中以处理器1310和存储器1320之间通过总线连接为例,总线在图13中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线可以分为地址总线、数据总线、控制总线等。为便于描述,图13中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
193.基于同一发明构思,本技术实施例提供了一种计算机可读存储介质,其包括计算机程序,当计算机程序在电子设备上运行时,计算机程序用于使电子设备执行上述可信数据处理方法的步骤。在一些可能的实施方式中,本技术提供的可信数据处理方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行上述可信数据处理方法中的步骤,例如,电子设备可以执行如图3中所示的步骤。
194.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、ram、rom、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(compact disk read only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
195.本技术的实施方式的程序产品可以采用cd-rom并包括计算机程序,并可以在电子设备上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储计算机程序的有形介质,该计算机程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
196.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信
号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的计算机程序。
197.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
198.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:
1.一种可信数据处理方法,其特征在于,应用于代理节点集群中的第一节点,包括:当接收到针对目标应用的业务请求时,获取所述业务请求中各待处理数据各自的密文存储地址和加解密配置信息,每个加解密配置信息用于对相应待处理数据的密文进行解密,以及对所述待处理数据的计算结果进行加密;向所述代理节点集群中除所述第一节点之外的各第二节点,发送所述各待处理数据的待处理量,以使每个第二节点在基于所述待处理量,确定自身满足预设计算条件时,返回相应节点信息;若基于返回的各节点信息,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点,则分别向所述至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息;向所述目标应用发送携带所述各节点信息的计算请求,以使所述目标应用计算通过所述至少一个目标节点获取的所述各待处理数据,并将各计算结果通过所述至少一个目标节点进行加密及存储。2.如权利要求1所述的方法,其特征在于,所述分别向所述至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息,包括:基于所述至少一个目标节点各自支持处理的待处理数据,确定所述至少一个目标节点各自负责处理的待处理数据;通过所述至少一个目标节点各自与所述第一节点之间的安全信道,分别向所述至少一个目标节点,发送相应的负责处理的待处理数据的密文存储地址和加解密配置信息。3.如权利要求2所述的方法,其特征在于,所述基于所述至少一个目标节点各自支持处理的待处理数据,确定所述至少一个目标节点各自负责处理的待处理数据之后,所述通过所述至少一个目标节点各自与所述第一节点之间的安全信道,分别向所述至少一个目标节点,发送相应的负责处理的待处理数据的密文存储地址和加解密配置信息之前,还包括:分别向所述至少一个目标节点发送所述第一节点的第一度量信息,并接收所述至少一个目标节点各自返回的第二度量信息;基于返回的至少一个第二度量信息,分别对所述至少一个目标节点进行合法性校验;当所述第一节点和所述至少一个目标节点均通过合法性校验时,分别建立所述至少一个目标节点各自与所述第一节点之间的安全信道。4.如权利要求3所述的方法,其特征在于,所述基于返回的至少一个第二度量信息,分别对所述至少一个目标节点进行合法性校验,包括:针对所述至少一个第二度量信息中的每个第二度量信息,分别执行以下操作:判断一个第二度量信息是否与所述第一度量信息相同;若相同,则确定所述一个第二度量信息对应的目标节点通过合法性校验。5.如权利要求1-4中任一项所述的方法,其特征在于,所述基于返回的各节点信息,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点,包括:若每个节点信息包含对应的第二节点的可处理数据量,则在所述各节点信息各自包含的可处理数据量之和,达到所述待处理量时,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点;若每个节点信息未包含对应的第二节点的可处理数据量,则在返回的各节点信息的数
量,达到所述待处理量时,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点。6.如权利要求1-4中任一项所述的方法,其特征在于,所述向所述目标应用发送携带所述节点信息的计算请求之前,还包括:向所述目标应用发送所述第一节点的第一度量信息,以使所述目标应用基于所述度量信息,对所述第一节点进行合法性校验;基于接收到的目标应用的第三度量信息,对所述目标应用进行合法性校验,并在当所述第一节点和所述目标应用均通过合法性校验时,建立所述目标应用与所述第一节点之间的安全信道;则所述向所述目标应用发送携带所述各节点信息的计算请求,包括:通过所述目标应用与所述第一节点之间的安全信道,向所述目标应用发送携带所述各节点信息的计算请求。7.如权利要求1-4中任一项所述的方法,其特征在于,还包括:若基于所述待处理量,确定所述第一节点满足预设计算条件,则在接收到来自所述目标应用的链接请求时,获取所述第一节点负责处理的待处理数据的密文存储地址和加解密配置信息;基于所述密文存储地址,获取相应的待处理数据的数据密文,并基于所述加解密配置信息,对所述数据密文进行解密,获得相应的待处理数据;将获得的待处理数据发送给所述目标应用,以使所述目标应用对获得的待处理数据进行计算。8.如权利要求7所述的方法,其特征在于,所述链接请求中携带:用于登录数据存储服务的存储鉴权凭据;则所述基于所述密文存储地址,获取相应的待处理数据的数据密文,包括:基于所述存储鉴权凭据,进行针对所述第一节点的登录验证,获得登录验证结果;当登录验证结果表征允许所述第一节点登入时,基于所述密文存储地址,获取相应的待处理数据的数据密文。9.如权利要求7所述的方法,其特征在于,还包括:当接收到来自所述目标应用的计算结果后,基于所述加解密配置信息,对所述计算结果进行加密,获得结果密文;将所述结果密文存储于所述数据存储服务中。10.如权利要求1-4中任一项所述的方法,其特征在于,还包括:在确定所述至少一个目标节点对各计算结果进行加密及存储后,将所述各待处理数据的处理状态更新为已完成状态;将所述各待处理数据的更新后的处理状态推送给结果需求方。11.一种可信数据处理装置,其特征在于,包括:任务接收单元,用于当接收到针对目标应用的业务请求时,获取所述业务请求中各待处理数据各自的密文存储地址和加解密配置信息,每个加解密配置信息用于对相应待处理数据的密文进行解密,以及对所述待处理数据的计算结果进行加密;任务广播单元,用于向代理节点集群中除第一节点之外的各第二节点,发送所述各待
处理数据的待处理量,以使每个第二节点在基于所述待处理量,确定自身满足预设计算条件时,返回相应节点信息;任务分配单元,用于若基于返回的各节点信息,确定所述各第二节点中,存在支持处理所述各待处理数据的至少一个目标节点,则分别向所述至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息;任务处理单元,用于向所述目标应用发送携带所述各节点信息的计算请求,以使所述目标应用计算通过所述至少一个目标节点获取的所述各待处理数据,并将各计算结果通过所述至少一个目标节点进行加密及存储。12.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~10中任一所述方法的步骤。13.一种计算机可读存储介质,其特征在于,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行权利要求1~10中任一所述方法的步骤。14.一种计算机程序产品,其特征在于,其包括计算机程序,所述计算机程序存储在计算机可读存储介质中,电子设备的处理器从所述计算机可读存储介质读取并执行所述计算机程序,使得所述电子设备执行权利要求1~10中任一所述方法的步骤。
技术总结
本申请涉及计算机技术领域,提供一种可信数据处理方法及相关装置,用以提高可信数据的计算效率,其中,该方法包括:接收到针对目标应用的业务请求的代理节点,向各第二节点发送各待处理数据的待处理量,并在确定各第二节点中,存在支持处理各待处理数据的至少一个目标节点时,分别向至少一个目标节点,发送对应目标节点负责处理的待处理数据的密文存储地址和加解密配置信息,然后,向目标应用发送携带节点信息的计算请求,以使目标应用计算通过至少一个目标节点解密获取的各待处理数据,并将各计算结果通过至少一个目标节点进行加密及存储。通过解耦加解密和业务,提高可信数据的计算效率。计算效率。计算效率。
技术研发人员:黎相敏 张韬
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2023.07.03
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/