一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

联盟链重放攻击的测试方法、装置、电子设备及存储介质与流程

2022-02-20 23:21:18 来源:中国专利 TAG:


1.本发明涉及计算机领域,尤其涉及一种联盟链重放攻击的测试方法、装置、电子设备及存储介质。


背景技术:

2.区块链技术(也被称之为,分布式账本技术)是一种去中心化的分布式数据库技术,具有公开透明、不可篡改、可信任等特点,适用于诸多数据溯源、信息共享、信息防伪等应用场景。随着互联网技术的发展,越来越多的安全问题在不断的产生,重放攻击即是目前比较常见的攻击手段,在区块链网络的实际运转过程中,可能会遭遇重放攻击。区块链网络遭遇所谓重放攻击,是指某个节点出于恶意或者出于技术故障,将某个已经提交过的交易重复提交,导致区块链网络将相同的交易重复执行,浪费区块链网络的算力,并可能造成其他损失,因此针对重放的测试技术对个人或企业防护上有着重大的意义。
3.联盟链是跨组织部署的半中心化系统,联盟链链内部多个组织之间是共享账本的,需要考虑可能加入恶意组织节点,或者某个组织被攻陷的情况,抵抗内部节点发起的攻击。而现有技术中,并没有对联盟链进行重放攻击测试的方法,无法测试联盟链自身安全性是否受到重放攻击影响。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种联盟链重放攻击的测试方法、装置、电子设备及存储介质。
5.第一方面,本发明提供了一种联盟链重放攻击的测试方法,所述联盟链重放攻击的测试方法包括:构建测试程序,将所述测试程序部署到联盟链网络中成为测试服务器节点;通过客户端发送交易请求到所述测试服务器节点以产生一笔交易,并记录所述交易产生的交易哈希值;通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易;在所述联盟链网络中查询历史交易,并检查重放所述交易后的所有交易哈希值,以生成测试结果;根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响。
6.可选的,所述构建测试程序包括:分析所述联盟链的源代码,获取所述联盟链交易节点的交易通信代码,所述联盟链的交易节点包括以下之一:维护账本的网络节点、提供共识服务的网络节点;对所述交易数据通信代码进行修改,修改后的所述交易数据通信代码用于将所述交易重放指定次数;将修改后的所述交易数据通信代码进行编译,得到所述测试程序。
7.可选的,当获取的所述交易通信代码为维护账本的网络节点的代码时,所述将所述测试程序部署到联盟链网络中成为测试服务器节点包括:将所述测试程序作为一个维护账本的网络节点部署到所述联盟链网络中形成所述测试服务器节点;或当获取的所述交易通信代码为提供共识服务的网络节点的代码时,所述将所述测试程序部署到联盟链网络中
成为测试服务器节点包括:将所述测试程序作为一个提供共识服务的网络节点部署到所述联盟链网络中形成所述测试服务器节点。
8.可选的,通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易包括:当所述测试服务器节点为维护账本的网络节点时,通过所述测试服务器节点将所述交易产生的交易数据发送给其他维护账本的网络节点,并通过所述测试服务器节点重放所述交易;或当所述测试服务器节点为提供共识服务的网络节点时,通过所述测试服务器节点将所述交易产生的交易数据发送给维护账本的网络节点和其他提供共识服务的网络节点,并通过所述测试服务器节点重放所述交易。
9.可选的,所述检查重放所述交易后的所有交易哈希值,以生成测试结果包括:在所述联盟链中检查是否存在多笔所述交易产生的交易哈希值;若是,则生成存在多笔相同交易哈希值的记录作为所述测试结果。
10.可选的,根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响包括:当所述测试结果中所述交易仅有一笔交易具有述的哈希值时,判定所述联盟链网络未受到重放攻击的影响;或,当所述测试结果中所述交易存在多笔交易具有所述的哈希值时,判定所述联盟链网络受到重放攻击的影响。
11.可选的,根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响之后,所述方法还包括:当判定所述联盟链网络受到重放攻击的影响时,生成告警提示。
12.第二方面,本发明提供了一种联盟链重放攻击的测试装置,所述联盟链重放攻击的测试装置包括:程序构建模块,用于构建测试程序,将所述测试程序部署到联盟链网络中成为测试服务器节点;交易请求模块,用于通过客户端发送交易请求到所述测试服务器节点以产生一笔交易,并记录所述测试服务器节点返回给所述客户端的交易哈希值;重放模块,用于通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易;检查模块,用于在所述联盟链网络中查询历史交易,并检查重放所述交易后的所有交易哈希值,以生成测试结果;判断模块,根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响。
13.第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
14.存储器,用于存放计算机程序;
15.处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的联盟链重放攻击的测试方法的步骤。
16.第四方面,提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的联盟链重放攻击的测试方法的步骤。
17.本发明实施例提供的上述技术方案与现有技术相比具有如下优点:
18.本发明实施例提供的该方法,通过构建测试程序,将所述测试程序部署到联盟链网络中成为测试服务器节点;通过客户端发送交易请求到所述测试服务器节点以产生一笔交易,并记录所述交易产生的交易哈希值;通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易;在所述联盟链网络中查询历史交易,并检查重放所述交易后的所有交易哈希值,以生成测试结果;根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响,实现了对联盟链网络的加密交易通信进行重放攻击测试,进而
检测联盟链网络是否受到重放攻击的影响及其危害程度。
附图说明
19.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1为本发明实施例提供的一种联盟链重放攻击的测试方法的基本流程示意图;
22.图2为本发明实施例提供的一种联盟链重放攻击的测试装置的基本结构示意图;
23.图3为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
24.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
25.图1为本发明实施例提供的一种联盟链重放攻击的测试方法的流程示意图,其包括但不限于:
26.s101、构建测试程序,将所述测试程序部署到联盟链网络中成为测试服务器节点;
27.s102、通过客户端发送交易请求到所述测试服务器节点以产生一笔交易,并记录所述交易产生的交易哈希值;
28.s103、通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易;
29.s104、在所述联盟链网络中查询历史交易,并检查重放所述交易后的所有交易哈希值,以生成测试结果;
30.s105、根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响。
31.需要理解的是,联盟链是去中心化和信息加密的,以hyperledger fabric联盟链为例,fabric网络由多个组织的多个节点组成,fabric网络的多个组织之间是共享交易账本的,因此需要防范可能加入恶意组织节点,或者某个组织被攻陷,攻击者将节点的交易数据发送给其他节点进行重放,造成各种安全问题。
32.在本实施例的一些示例中,所述构建测试程序包括:分析所述联盟链的源代码,获取所述联盟链交易节点的交易通信代码,所述联盟链的交易节点包括以下之一:维护账本的网络节点、提供共识服务的网络节点;对所述交易数据通信代码进行修改,修改后的所述交易数据通信代码用于将所述交易重放指定次数;将修改后的所述交易数据通信代码进行编译,得到所述测试程序。需要理解的是,以fabric联盟链为例,本实施例首先需要获取联盟链的技术源码,通过代码分析得到fabric系统中维护账本的网络节点peer、提供共识服务的网络节点orderer节点的交易通信代码,具体的,其中联盟链交易节点的交易通信代码包括但不限于:orderer节点间交易同步代码、orderer节点向peer节点发送交易代码、主
peer节点向其他peer节点同步交易代码;分析联盟链的源代码,获取联盟链交易节点的交易通信代码包括但不限于:分析联盟链的源代码,获取联盟链系统服务器发送交易数据的代码位置,进而获取到联盟链交易节点的交易通信代码,然后对其进行编译,作为测试程序,也即,测试程序包括:orderer程序和/或peer程序。
33.承接上例,当获取的所述交易通信代码为维护账本的网络节点的代码时,所述将所述测试程序部署到联盟链网络中成为测试服务器节点包括:将所述测试程序作为一个维护账本的网络节点部署到所述联盟链网络中形成所述测试服务器节点;或当获取的所述交易通信代码为提供共识服务的网络节点的代码时,所述将所述测试程序部署到联盟链网络中成为测试服务器节点包括:将所述测试程序作为一个提供共识服务的网络节点部署到所述联盟链网络中形成所述测试服务器节点;以fabric联盟链为例,在现有的fabric联盟链网络里部署上述的测试程序(orderer程序和/或peer程序)。
34.在本实施例的一些示例中,通过客户端发送交易请求到测试服务器节点,产生一笔交易,并记录下所述交易产生的交易哈希值,然后再通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易;
35.承接上例,通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易包括:当所述测试服务器节点为维护账本的网络节点时,通过所述测试服务器节点将所述交易产生的交易数据发送给其他维护账本的网络节点,并通过所述测试服务器节点重放所述交易;或当所述测试服务器节点为提供共识服务的网络节点时,通过所述测试服务器节点将所述交易产生的交易数据发送给维护账本的网络节点和其他提供共识服务的网络节点,并通过所述测试服务器节点重放所述交易;也即,测试服务器节点的测试程序收到交易后,将发送交易数据给其他节点,并重放上述交易。
36.在本实施例的一些示例中,在所述联盟链网络中查询历史交易,并检查重放所述交易后的所有交易哈希值,以生成测试结果;所述检查重放所述交易后的所有交易哈希值,以生成测试结果包括:在所述联盟链中检查是否存在多笔所述交易产生的交易哈希值;若是,则生成存在多笔相同交易哈希值的记录作为所述测试结果。若否,则生成不存在多笔相同交易哈希值的记录作为所述测试结果;应当理解的是,当测试服务器节点在联盟链网络内重放该交易时,若联盟链受到了重放攻击影响,则会对该笔交易形成多笔相同的交易哈希值;当测试服务器节点在联盟链网络内重放该交易时,若联盟链未受到了重放攻击影响,则不会对该笔交易形成多笔相同的交易哈希值,因此,可以通过查询该笔交易的历史交易,以及查询该交易对应的交易哈希值,来确定联盟链网络是否遭受到了受到重放攻击的影响。
37.承接上例,在一些示例中,根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响包括:当所述测试结果中所述交易仅有一笔交易具有述的哈希值时,判定所述联盟链网络未受到重放攻击的影响;或,当所述测试结果中所述交易有多笔交易具有述的哈希值时,判定所述联盟链网络受到重放攻击的影响;也即,当该交易只有对应的一笔交易时,则证明针对重放该交易时,联盟链并未受到影响,因此并未产生其他交易;当该交易对应多笔交易时,则代表该联盟链受到了重放攻击的影响,具体的,当该交易对应多笔交易时,且各个交易的结果都显示为成功时,判定所述联盟链网络完全受到重放攻击的影响;当该交易对应多笔交易时,且各个交易哈希值的结果为一笔成功,多笔失败时,判定所述联盟
链网络部分受到重放攻击的影响。
38.在本实施例的一些示例中,根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响之后,所述方法还包括:当判定所述联盟链网络受到重放攻击的影响时,生成告警提示,以提示相关人员,联盟链网络受到重放攻击的影响。
39.本实施例提供的联盟链重放攻击的测试方法,通过构建测试程序,将所述测试程序部署到联盟链网络中成为测试服务器节点;通过客户端发送交易请求到所述测试服务器节点以产生一笔交易,并记录所述测试服务器节点返回给所述客户端的交易哈希值;通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易;在所述联盟链网络中查询历史交易,并检查重放所述交易后的所有交易哈希值,以生成测试结果;根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响,对联盟链网络实现了其加密的交易通信进行重放攻击测试的效果,进而检测了联盟链网络是否受到重放攻击的影响及其危害程度。
40.本实施例还提供一种联盟链重放攻击的测试装置,如图2所示,所述联盟链重放攻击的测试装置包括:
41.程序构建模块1,用于构建测试程序,将所述测试程序部署到联盟链网络中成为测试服务器节点;
42.交易请求模块2,用于通过客户端发送交易请求到所述测试服务器节点以产生一笔交易,并记录所述交易产生的交易哈希值;
43.重放模块3,用于通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易;
44.检查模块4,用于在所述联盟链网络中查询历史交易,并检查重放所述交易后的所有交易哈希值,以生成测试结果;
45.判断模块5,根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响。
46.如图3所示,本发明实施例提供了一种电子设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,
47.存储器113,用于存放计算机程序;
48.在本发明一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的联盟链重放攻击的测试方法,包括:构建测试程序,将所述测试程序部署到联盟链网络中成为测试服务器节点;通过客户端发送交易请求到所述测试服务器节点以产生一笔交易,并记录所述交易产生的交易哈希值;通过所述测试服务器节点将所述交易产生的交易数据发送给其他节点,并重放所述交易;在所述联盟链网络中查询历史交易,并检查重放所述交易后的所有交易哈希值,以生成测试结果;根据所述测试结果判定所述联盟链网络是否受到重放攻击的影响。
49.本发明实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的联盟链重放攻击的测试方法的步骤。
50.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之
间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
51.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所发明的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献