多方协同计算中检测恶意攻击的方法和装置与流程

文档序号:30583412发布日期:2022-06-29 13:45阅读:126来源:国知局
多方协同计算中检测恶意攻击的方法和装置与流程

1.本说明书一个或多个实施例涉及计算机领域,尤其涉及多方协同计算中检测恶意攻击的方法和装置。


背景技术:

2.当前,以区块链、多方安全计算、联邦学习为代表的多方协同计算的应用逐渐增多,相应技术快速发展。不同于传统的只有一个参与方的集中式计算,在多方协同计算下包含多个参与方,需要在多方协同计算中做到能够检测恶意攻击,以确保参与方的恶意攻击行为无法得逞,或者说可以被及时发现并制止,以便保证计算过程的正确性和可信性。


技术实现要素:

3.本说明书一个或多个实施例描述了一种多方协同计算中检测恶意攻击的方法和装置,能够保证计算过程的正确性和可信性。
4.第一方面,提供了一种多方协同计算中检测恶意攻击的方法,所述多方至少包括第一方和第二方,方法包括:
5.所述第一方从所述第二方接收第一计算结果;所述第一计算结果为所述第二方在所述多方协同计算中执行当前阶段的本地计算得到的;
6.所述第一方向可信执行环境(trusted execution environment,tee)节点发送针对所述第一计算结果的第一校验请求,所述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;
7.所述第一方获取第一校验结果,所述第一校验结果基于所述第一计算结果与第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击;
8.其中,所述第二计算结果是所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到。
9.在一种可能的实施方式中,所述第一校验请求包括所述第一计算结果;
10.所述第一方获取第一校验结果,包括:
11.所述第一方从所述tee节点接收所述第一校验结果;所述第一校验结果是所述tee节点通过比较所述第一计算结果与所述第二计算结果是否一致而确定。
12.在一种可能的实施方式中,所述第一方获取第一校验结果,包括:
13.所述第一方从所述tee节点接收所述第二计算结果,通过比较所述第一计算结果和第二计算结果是否一致,确定所述第一校验结果。
14.第二方面,提供了一种多方协同计算中检测恶意攻击的方法,所述多方至少包括第一方和第二方,方法包括:
15.可信执行环境tee节点从所述第一方接收针对第一计算结果的第一校验请求,所
述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;所述第一计算结果为所述第二方在所述多方协同计算中执行当前阶段的本地计算得到的,且其被所述第二方发送给了所述第一方;
16.所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到第二计算结果;以使所述第一方获取第一校验结果,所述第一校验结果基于所述第一计算结果与第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击。
17.在一种可能的实施方式中,所述tee节点属于所述第一方,或者所述第二方,或者所述第一方和所述第二方之外的其他方。
18.在一种可能的实施方式中,所述第一校验请求包括所述当前阶段的阶段标识;所述方法还包括:
19.所述tee节点根据所述阶段标识,确定所述当前阶段对应的可信计算逻辑。
20.在一种可能的实施方式中,所述第一校验请求包括所述第一计算结果;所述方法还包括:
21.所述tee节点通过比较所述第一计算结果与所述第二计算结果是否一致,确定所述第一校验结果;
22.所述tee节点向所述第一方发送所述第一校验结果。
23.在一种可能的实施方式中,所述方法还包括:
24.所述tee节点向所述第一方发送所述第二计算结果,以使所述第一方通过比较所述第一计算结果和第二计算结果是否一致,确定所述第一校验结果。
25.在一种可能的实施方式中,所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值之前,所述方法还包括:
26.所述tee节点根据预先设定的权限条件,判断所述第一方是否有权发起校验;
27.当判断出所述第一方有权发起校验时,执行所述从所述第二方获取所述当前阶段的输入参数的第一取值。
28.进一步地,所述权限条件包括以下中的一项或多项:
29.发起方累计发起的校验次数不超过预先设定的次数上限;
30.发起方对应的权限标识指示出该发起方有权发起校验。
31.进一步地,所述多方还包括第三方,所述tee节点向所述第一方发送所述第一校验结果之后,所述方法还包括:
32.所述tee节点从所述第三方接收针对所述第一计算结果的第二校验请求;所述第一计算结果被所述第二方发送给了所述第三方;
33.所述tee节点向所述第三方发送所述第一校验结果。
34.在一种可能的实施方式中,所述当前阶段的输入参数来自于其他方在所述当前阶段之前的在前阶段的第三计算结果;
35.所述方法还包括:
36.所述tee节点从所述其他方获取所述第三计算结果;
37.当所述tee节点确定所述第三计算结果与所述第一取值不相同时,生成第二校验结果,其指示所述第二方针对输入造假。
38.在一种可能的实施方式中,所述tee节点具有公钥和私钥组成的非对称密钥对,所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,包括:
39.所述tee节点从所述第二方获取经过所述公钥加密的加密输入参数值;
40.所述tee节点利用所述私钥对所述加密输入参数值进行解密,得到所述第一取值。
41.第三方面,提供了一种多方协同计算中检测恶意攻击的装置,所述多方至少包括第一方和第二方,该装置设置于所述第一方,包括:
42.接收单元,用于从所述第二方接收第一计算结果;所述第一计算结果为所述第二方在所述多方协同计算中执行当前阶段的本地计算得到的;
43.发送单元,用于向可信执行环境tee节点发送针对所述接收单元接收的第一计算结果的第一校验请求,所述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;
44.获取单元,用于获取第一校验结果,所述第一校验结果基于所述第一计算结果与第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击;
45.其中,所述第二计算结果是所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到。
46.第四方面,提供了一种多方协同计算中检测恶意攻击的装置,所述多方至少包括第一方和第二方,该装置设置于可信执行环境tee节点,包括:
47.接收单元,用于从所述第一方接收针对第一计算结果的第一校验请求,所述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;所述第一计算结果为所述第二方在所述多方协同计算中执行当前阶段的本地计算得到的,且其被所述第二方发送给了所述第一方;
48.计算单元,用于从所述第二方获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到第二计算结果;以使所述第一方获取第一校验结果,所述第一校验结果基于所述第一计算结果与第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击。
49.第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
50.第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
51.通过本说明书实施例提供的方法和装置,首先所述第一方从所述第二方接收第一计算结果;所述第一计算结果为所述第二方在所述多方协同计算中执行当前阶段的本地计算得到的;然后所述第一方向tee节点发送针对所述第一计算结果的第一校验请求,所述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;接着所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到第二计算结果;最后所述第一方获取第一校验结果,所述第一校验结果基于所述第一计算结果与所述第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击。由上可见,本说明书实施例,
借助tee节点确保计算过程真实可信,通过tee节点的执行结果与非tee节点的执行结果进行对比,来判定非tee节点的计算过程与执行结果是否可信,也就是说其是否存在恶意攻击,从而能够保证计算过程的正确性和可信性。
附图说明
52.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
53.图1为本说明书披露的一个实施例的实施场景示意图;
54.图2为本说明书披露的另一个实施例的实施场景示意图;
55.图3示出根据一个实施例的多方协同计算中检测恶意攻击的方法交互示意图;
56.图4示出根据一个实施例的多方协同计算中检测恶意攻击的装置的示意性框图;
57.图5示出根据另一个实施例的多方协同计算中检测恶意攻击的装置的示意性框图;
58.图6示出根据一个实施例的多方协同计算中检测恶意攻击的系统的示意性框图。
具体实施方式
59.下面结合附图,对本说明书提供的方案进行描述。
60.图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及多方协同计算中检测恶意攻击,涉及多个参与方。本说明书实施例中的多方协同计算,指的是多个参与方按照既定的协议执行计算最终得到计算结果的过程,该多方协同计算可以但不限于区块链、多方安全计算、联邦学习等具体应用场景,各具体应用场景之间的区别仅在于不同场景所执行的协议、以及相应协议的输入参数不同。因此各具体应用场景下的多方协同计算都可以抽象为本地计算和数据交换两类计算过程。可以理解的是,无论是本地计算还是数据交换均为按照协议进行的处理。
61.参照图1,上述多个参与方具体可以为两个参与方,例如,参与方a和参与方b,以一个最简单的多方协同计算为例,计算初始阶段,参与方a和参与方b先各自进行本地计算,再进行通信以进行数据交换,最后得到多方协同计算的计算结果。其中,参与方a的本地计算1和参与方b的本地计算1可以为相同的运算过程,也可以为不同的运算过程。举例来说,一种可能的情况为,参与方a的本地计算1为对其具有的输入参数值加1,参与方b的本地计算1也为对其具有的输入参数值加1,参与方a与参与方b各自具有的输入参数值不同,但是其运算过程相同;另一种可能的情况为,参与方a的本地计算1为对其具有的输入参数值加1,参与方b的本地计算1为对其具有的输入参数值减1,参与方a与参与方b各自具有的输入参数值不同,其运算过程也不相同。其中的数据交换可以为单向的数据传输过程,也可以为双向的数据传输过程,例如,在数据交换中可以为参与方a向参与方b传递数据,而参与方b不向参与方a传递数据,也可以为参与方a向参与方b传递数据,参与方b也向参与方a传递数据。传递的数据可以为本地计算得到的中间结果,也可以为参与方本来就具有的原始数据。
62.多方协同计算的安全等级通常分为两种,半诚实(semi-honest)和恶意
(malicious),半诚实安全等级下,参与方虽然不完全可信,例如可能会尝试窃取其他参与方数据等,但仍然会遵守协议执行协议规定的计算流程;而恶意安全等级下,参与方不可信,并且会采取不遵守协议的行为达成攻击目的,也就是说,参与方存在恶意攻击。
63.由于多方协同计算由多个参与方参与计算,在计算过程中,各参与方需要按照协议约定的方式进行协同计算,因此存在恶意攻击问题,如果任何参与方拒绝按照既定的协议进行协同,例如私自篡改计算和通信过程、伪造数据,甚至几个参与方联合起来舞弊欺骗其他参与方,都可能会对计算结果的正确性造成破坏,同时也可能威胁其他参与方的数据安全,因此,需要在多方协同计算中能够检测出恶意攻击,从而保证计算过程的正确性和可信性。
64.需要说明的是,本说明书实施例的实施场景并不限定于图1所示的实施场景,实际的场景会有多种变形。例如:参与方可以不止两方,而是包含任意多方;可包含多个本地计算过程和数据交换过程;数据交换过程和本地计算过程的顺序可以交换;不同参与方执行的本地计算过程可以不完全相同,取决于协议的规定;当有三个以上参与方进行多方协同计算时,某一个数据交换过程可以只发生于部分参与方之间,例如,当有参与方a、参与方b和参与方c三方进行多方协同计算时,某一个数据交换过程中,参与a可以只和参与方b发生数据交换,而不与参与方c发生数据交换;或者,参与方a既与参与方b发生数据交换,也与参与方c发生数据交换,但参与方b和参与方c之间没有发生数据交换;或者,参与方a不与参与方b和参与方c中的任一方发生数据交换,但参与方b和参与方c发生数据交换。可能的场景有很多,下面再以一个相对于图1所示实施场景稍微复杂一些的示例进行说明。
65.图2为本说明书披露的另一个实施例的实施场景示意图。该实施场景涉及多方协同计算中检测恶意攻击,涉及多个参与方。参照图2,上述多个参与方具体可以为三个参与方,例如,参与方a、参与方b和参与方c,协同计算过程包括2次本地计算过程、2次数据交换过程。计算初始阶段,参与方a、参与方b和参与方c先各自进行本地计算,再进行通信以进行数据交换,之后再进行一轮本地计算和数据交换,最后得到多方协同计算的计算结果。其中,参与方a的本地计算1、参与方b的本地计算1和参与方c的本地计算1可以为相同的运算过程,也可以为不同的运算过程;参与方a的本地计算2、参与方b的本地计算2和参与方c的本地计算2可以为相同的运算过程,也可以为不同的运算过程;同一参与方的本地计算1和本地计算2可以为相同的运算过程,也可以为不同的运算过程。此外,数据交换1和数据交换2涉及的参与方可以相同,也可以不同,例如,在数据交换1中可以仅涉及参与方a与参与方b之间的数据交换,而不涉及参与方c与参与方a或参与方b之间的数据交换;在数据交换2中既涉及参与方a与参与方b之间的数据交换,也涉及参与方c与参与方a或参与方b之间的数据交换。可以理解的是,在该实施场景下,一个参与方的本地计算2的输入参数值可以来自于数据交换1中获取的数据,该数据可以为另一个参与方本地计算1得到的中间结果。
66.本说明书实施例,为了易于区分,将多个协同计算的最终处理结果称为计算结果,而将各个本地计算过程得到的处理结果称为中间结果。
67.需要说明的是,本说明书实施例中提到的参与方a、参与方b和参与方c,对其名称并无特别限定,其名称仅仅是为了区分各参与方,还可以将各参与方分别称为第一方、第二方和第三方等。参与方在物理上可以由一个模块、一台计算设备或者计算集群构成。
68.图3示出根据一个实施例的多方协同计算中检测恶意攻击的方法交互示意图,所
述多方至少包括第一方和第二方,该方法可以基于图1所示的实施场景,第一方对应于参与方a,第二方对应于参与方b;该方法也可以基于图2所示的实施场景,第一方对应于参与方a,第二方对应于参与方b或参与方c。所述方法通过第一方、第二方和可信执行环境(trusted execution environment,tee)节点共同执行。如图3所示,该实施例中多方协同计算中检测恶意攻击的方法包括以下步骤:步骤31,第二方在多方协同计算中执行当前阶段的本地计算得到第一计算结果;步骤32,第一方从第二方接收第一计算结果;步骤33,第一方向tee节点发送针对所述第一计算结果的第一校验请求,所述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;步骤34,tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到第二计算结果;步骤35,第一方获取第一校验结果,所述第一校验结果基于所述第一计算结果与所述第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击。下面描述以上各个步骤的具体执行方式。
69.首先在步骤31,第二方在多方协同计算中执行当前阶段的本地计算得到第一计算结果。可以理解的是,在多方协同计算中可以仅涉及一次本地处理过程,例如,图1所示的实施场景中的本地处理1,在多方协同计算中也可以涉及多次本地处理过程,例如,图2所示的实施场景中的本地处理1和本地处理2,每次的本地处理过程可以理解为一个阶段的本地计算。
70.本说明书实施例中,第二方不可信,可能存在恶意攻击,也就是说,并不能够预先知道第二方是否按照预定协议执行本地计算得到的第一计算结果,其计算过程、输入和输出都有可能被篡改。
71.然后在步骤32,第一方从第二方接收第一计算结果。可以理解的是,该步骤属于多方协同计算中的数据交换过程,该数据交换过程可以为单向传输过程,也就是说,只有第一方从第二方获取数据,第一方并不会向第二方传递数据;该数据交换过程也可以为双向传输过程,也就是说,既存在第一方从第二方获取数据,也存在第一方向第二方传递数据。
72.接着在步骤33,第一方向tee节点发送针对所述第一计算结果的第一校验请求,所述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑。可以理解的是,tee是中央处理器(central processing unit,cpu)中的一块安全区域,可以确保在该区域执行的代码和加载到该区域的数据的完整性和可靠性。
73.在一个示例中,所述tee节点属于所述第一方,或者所述第二方,或者所述第一方和所述第二方之外的其他方。
74.该示例中,对于tee节点的部署进行了限定,该tee节点可以属于多方协同计算中的任何一个参与方,也可以属于各参与方之外的第三方,tee节点可以有一个,也可以有多个,当有多个tee节点时,多个tee节点可以分别属于不同参与方,第一方可以向多个tee节点中其信任的tee节点发送前述第一校验请求。
75.本说明书实施例,所述多方协同计算可以包括多个阶段,所述tee节点中可以仅部署有所述多方协同计算的当前阶段的可信计算逻辑,也可以部署有所述多方协同计算的各个阶段的可信计算逻辑。在一个示例中,所述第一校验请求包括所述当前阶段的阶段标识。
76.在一个示例中,所述第一校验请求包括所述第一计算结果。
77.再在步骤34,tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,按
照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到第二计算结果。可以理解的是,通过将输入、需要执行的可信计算逻辑全部放到tee节点中,可以确保第二计算结果是可信的。
78.本说明书实施例,tee节点可以对各个参与方发起校验不做任何限制,即任何一方都可以随时申请对特定计算过程或者整个计算过程进行校验,这样做的好处是可以最大限度的确保计算过程的安全和结果正确,缺点是会造成不必要的资源浪费,例如每个参与方都发起对相同计算过程的校验,其实是没有必要的。此外,如果不做任何限制,那么也会极大拖慢整个协同计算的效率。
79.本说明书实施例,tee节点还可以对各个参与方发起校验设定一定的限制条件,比如可以对整个计算过程中每个参与方所能发起的校验次数设置一个上限,上限的取值可以参考计算过程的复杂程度,例如可以参考计算过程对应的代码行数、计算次数等指标对上限进行设置。
80.在一个示例中,所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值之前,所述方法还包括:
81.所述tee节点根据预先设定的权限条件,判断所述第一方是否有权发起校验;
82.当判断出所述第一方有权发起校验时,执行所述从所述第二方获取所述当前阶段的输入参数的第一取值。
83.进一步地,所述权限条件包括以下中的一项或多项:
84.发起方累计发起的校验次数不超过预先设定的次数上限;
85.发起方对应的权限标识指示出该发起方有权发起校验。
86.该示例,通过对参与方设定一定的权限条件,可以提升整个协同计算的效率。
87.在一个示例中,所述当前阶段的输入参数来自于其他方在所述当前阶段之前的在前阶段的第三计算结果;
88.所述方法还包括:
89.所述tee节点从所述其他方获取所述第三计算结果;
90.当所述tee节点确定所述第三计算结果与所述第一取值不相同时,生成第二校验结果,其指示所述第二方针对输入造假。
91.该示例中,如果tee节点确定第二方针对输入造假,可以直接确定第二方在所述当前阶段的本地计算中存在恶意攻击。
92.在一个示例中,所述tee节点具有公钥和私钥组成的非对称密钥对,所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,包括:
93.所述tee节点从所述第二方获取经过所述公钥加密的加密输入参数值;
94.所述tee节点利用所述私钥对所述加密输入参数值进行解密,得到所述第一取值。
95.该示例中,第二方与tee节点之间传输的数据经过了加密,从而可以避免第一取值被其他方获取。
96.此外,可以理解的是,如果tee节点向第二方发送了获取请求,但未能从所述第二方获取所述当前阶段的输入参数的第一取值,也就是说,第二方没有响应该获取请求,则可以判定第二方在所述当前阶段的本地计算中存在恶意攻击。
97.最后在步骤35,第一方获取第一校验结果,所述第一校验结果基于所述第一计算
结果与所述第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击。可以理解的是,可以由tee节点先获取第一计算结果,根据第一计算结果和第二计算结果确定该第一校验结果,再由tee节点将该第一校验结果发送给第一方,或者,由第一方从tee节点获取第二计算结果,再由第一方根据第一计算结果和第二计算结果确定该第一校验结果。
98.本说明书实施例,若参与方不存在恶意攻击行为,则tee节点独立执行计算所得的输出应该与外部得到的输出保持一致,即第一计算结果与第二计算结果相一致;若参与方存在恶意攻击行为,则tee节点独立执行计算所得的输出与外部得到的输出不一致,即第一计算结果与第二计算结果不一致。因此可以基于所述第一计算结果与所述第二计算结果是否一致,确定所述第一校验结果。
99.在一个示例中,所述第一校验请求包括所述第一计算结果;所述方法还包括:
100.所述tee节点通过比较所述第一计算结果与所述第二计算结果是否一致,确定所述第一校验结果;
101.所述第一方获取第一校验结果,包括:
102.所述第一方从所述tee节点接收所述第一校验结果。
103.在一个示例中,所述第一方获取校验结果,包括:
104.所述第一方从所述tee节点接收所述第二计算结果,通过比较所述第一计算结果和第二计算结果是否一致,确定所述第一校验结果。
105.进一步地,所述多方还包括第三方,所述第一方获取第一校验结果之后,所述方法还包括:
106.所述第三方从所述第二方接收所述第一计算结果;
107.所述第三方向所述tee节点发送针对所述第一计算结果的第二校验请求;
108.所述tee节点向所述第三方发送所述第一校验结果。
109.该示例中,当两个不同的参与方均发起对同一计算结果的校验请求时,tee节点无需重复进行校验,能够提升效率。
110.通过本说明书实施例提供的方法,首先所述第一方从所述第二方接收第一计算结果;所述第一计算结果为所述第二方在所述多方协同计算中执行当前阶段的本地计算得到的;然后所述第一方向tee节点发送针对所述第一计算结果的第一校验请求,所述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;接着所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到第二计算结果;最后所述第一方获取第一校验结果,所述第一校验结果基于所述第一计算结果与所述第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击。由上可见,本说明书实施例,借助tee节点确保计算过程真实可信,通过tee节点的执行结果与非tee节点的执行结果进行对比,来判定非tee节点的计算过程与执行结果是否可信,也就是说其是否存在恶意攻击,从而能够保证计算过程的正确性和可信性。
111.根据另一方面的实施例,还提供一种多方协同计算中检测恶意攻击的装置,所述多方至少包括第一方和第二方,该装置设置于所述第一方,用于执行本说明书实施例提供的多方协同计算中检测恶意攻击的方法中第一方的动作。图4示出根据一个实施例的多方
协同计算中检测恶意攻击的装置的示意性框图。如图4所示,该装置400包括:
112.接收单元41,用于从所述第二方接收第一计算结果;所述第一计算结果为所述第二方在所述多方协同计算中执行当前阶段的本地计算得到的;
113.发送单元42,用于向可信执行环境tee节点发送针对所述接收单元41接收的第一计算结果的第一校验请求,所述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;
114.获取单元43,用于获取第一校验结果,所述第一校验结果基于所述第一计算结果与第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击;
115.其中,所述第二计算结果是所述tee节点从所述第二方获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到。
116.可选地,作为一个实施例,所述第一校验请求包括所述第一计算结果;
117.所述获取单元43,具体用于从所述tee节点接收所述第一校验结果;所述第一校验结果是所述tee节点通过比较所述第一计算结果与所述第二计算结果是否一致而确定。
118.可选地,作为一个实施例,所述获取单元43,具体用于从所述tee节点接收所述第二计算结果,通过比较所述第一计算结果和第二计算结果是否一致,确定所述第一校验结果。
119.根据另一方面的实施例,还提供一种多方协同计算中检测恶意攻击的装置,所述多方至少包括第一方和第二方,该装置设置于可信执行环境tee节点,用于执行本说明书实施例提供的多方协同计算中检测恶意攻击的方法中tee节点的动作。图5示出根据另一个实施例的多方协同计算中检测恶意攻击的装置的示意性框图。如图5所示,该装置500包括:
120.接收单元51,用于从所述第一方接收针对第一计算结果的第一校验请求,所述tee节点中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;所述第一计算结果为所述第二方在所述多方协同计算中执行当前阶段的本地计算得到的,且其被所述第二方发送给了所述第一方;
121.计算单元52,用于从所述第二方获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到第二计算结果;以使所述第一方获取第一校验结果,所述第一校验结果基于所述第一计算结果与第二计算结果是否一致而确定,用于表示所述第二方在所述当前阶段的本地计算中是否存在恶意攻击。
122.可选地,作为一个实施例,所述第一校验请求包括所述第一计算结果;所述装置还包括:
123.确定单元,用于通过比较所述接收单元51接收的第一计算结果与所述计算单元52得到的第二计算结果是否一致,确定所述第一校验结果;
124.发送单元,用于向所述第一方发送所述确定单元确定的第一校验结果。
125.可选地,作为一个实施例,所述装置还包括:
126.发送单元,用于向所述第一方发送所述第二计算结果,以使所述第一方通过比较所述第一计算结果和第二计算结果是否一致,确定所述第一校验结果。根据另一方面的实施例,还提供一种多方协同计算中检测恶意攻击的系统,所述多方至少包括第一方和第二
方,该系统用于执行本说明书实施例提供的多方协同计算中检测恶意攻击的方法。图6示出根据一个实施例的多方协同计算中检测恶意攻击的系统的示意性框图。如图6所示,该系统600包括:
127.所述第一方61,用于从所述第二方62接收第一计算结果;所述第一计算结果为所述第二方62在所述多方协同计算中执行当前阶段的本地计算得到的;向可信执行环境tee节点63发送针对所述第一计算结果的第一校验请求,所述tee节点63中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;
128.所述tee节点63,用于从所述第二方62获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到第二计算结果;
129.所述第一方61,还用于获取第一校验结果,所述第一校验结果基于所述第一计算结果与所述第二计算结果是否一致而确定,用于表示所述第二方62在所述当前阶段的本地计算中是否存在恶意攻击。
130.可选地,作为一个实施例,所述tee节点63属于所述第一方61,或者所述第二方62,或者所述第一方61和所述第二方62之外的其他方。
131.可选地,作为一个实施例,所述第一校验请求包括所述当前阶段的阶段标识;
132.所述tee节点63,还用于根据所述阶段标识,确定所述当前阶段对应的可信计算逻辑。
133.可选地,作为一个实施例,所述第一校验请求包括所述第一计算结果;
134.所述tee节点63,还用于通过比较所述第一计算结果与所述第二计算结果是否一致,确定所述第一校验结果;
135.所述第一方61,具体用于从所述tee节点63接收所述第一校验结果。
136.可选地,作为一个实施例,所述第一方61,具体用于从所述tee节点63接收所述第二计算结果,通过比较所述第一计算结果和第二计算结果是否一致,确定所述第一校验结果。
137.可选地,作为一个实施例,所述tee节点63,还用于在从所述第二方62获取所述当前阶段的输入参数的第一取值之前,根据预先设定的权限条件,判断所述第一方61是否有权发起校验;当判断出所述第一方61有权发起校验时,执行所述从所述第二方62获取所述当前阶段的输入参数的第一取值。
138.进一步地,所述权限条件包括以下中的一项或多项:
139.发起方累计发起的校验次数不超过预先设定的次数上限;
140.发起方对应的权限标识指示出该发起方有权发起校验。
141.进一步地,所述多方还包括第三方,
142.所述第三方,用于在所述第一方61获取第一校验结果之后,从所述第二方62接收所述第一计算结果;向所述tee节点63发送针对所述第一计算结果的第二校验请求;
143.所述tee节点63,还用于向所述第三方发送所述第一校验结果。
144.可选地,作为一个实施例,所述当前阶段的输入参数来自于其他方在所述当前阶段之前的在前阶段的第三计算结果;
145.所述tee节点63,还用于从所述其他方获取所述第三计算结果;当确定所述第三计算结果与所述第一取值不相同时,生成第二校验结果,其指示所述第二方62针对输入造假。
146.可选地,作为一个实施例,所述tee节点63具有公钥和私钥组成的非对称密钥对,所述tee节点63,具体用于从所述第二方62获取经过所述公钥加密的加密输入参数值;利用所述私钥对所述加密输入参数值进行解密,得到所述第一取值。
147.通过本说明书实施例提供的系统,首先所述第一方61从所述第二方62接收第一计算结果;所述第一计算结果为所述第二方62在所述多方协同计算中执行当前阶段的本地计算得到的;然后所述第一方61向tee节点63发送针对所述第一计算结果的第一校验请求,所述tee节点63中至少部署有所述多方协同计算的当前阶段的可信计算逻辑;接着所述tee节点63从所述第二方62获取所述当前阶段的输入参数的第一取值,按照所述当前阶段对应的可信计算逻辑针对所述第一取值进行计算得到第二计算结果;最后所述第一方61获取第一校验结果,所述第一校验结果基于所述第一计算结果与所述第二计算结果是否一致而确定,用于表示所述第二方62在所述当前阶段的本地计算中是否存在恶意攻击。由上可见,本说明书实施例,借助tee节点确保计算过程真实可信,通过tee节点的执行结果与非tee节点的执行结果进行对比,来判定非tee节点的计算过程与执行结果是否可信,也就是说其是否存在恶意攻击,从而能够保证计算过程的正确性和可信性。
148.根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。
149.根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所描述的方法。
150.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
151.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1