logo好方法网

一种防止攻击方法及装置


技术摘要:
本发明公开了一种防止攻击方法及装置,属于通信技术领域。该防止攻击方法包括:接收相邻节点在区块链网络中广播的计算能力证明消息和/或身份担保消息;接收相邻节点推荐的路由信息;根据相邻节点加入区块链网络的加入时长和计算能力证明消息和/或根据身份担保消息,判  全部
背景技术:
任何网络节点在遵循区块链网络相关协议的基础上,均可以加入区块链网络,成 为区块链网络的节点。攻击者利用这一特性,将虚假节点加入区块链网络,并通过虚假节点 影响区块链网络中真实节点的路由选择,从而控制真实节点的对外联系,并在区块链网络 中发布虚假资源。如,在区块链网络中,虚假节点定时地向其相邻的真实节点宣告自己的在 线情况,从而被相邻的真实节点加入到其路由表中。攻击者通过虚假节点不断向真实节点 发送路由表更新消息,使得真实节点的路由表中充满虚假节点。当区块链网络中虚假节点 数量足够多时,大量的虚假节点将真实节点“隔离”于区块链网络之外,从而控制了真实节 点的对外联系,攻击者得以进一步实施路由欺骗、存储污染、拒绝服务以及ID劫持等攻击行 为,同时也可在区块链网络中随意发布虚假资源。针对区块链网络的攻击行为和在区块链 网络中发布的虚假资源,均会对用户的安全性造成威胁,从而不可避免地导致用户使用体 验降低。 因此,如何防止攻击者通过虚假节点恶意篡改区块链网络节点的路由信息以控制 区块链网络节点的对外联系,成为本领域亟待解决的问题。
技术实现要素:
为此,本发明提供一种防止攻击方法及装置,以解决攻击者通过虚假节点恶意篡 改区块链网络节点的路由信息,从而控制区块链网络节点对外联系的问题。 为了实现上述目的,本发明第一方面提供一种防止攻击方法,包括: 接收相邻节点在区块链网络中广播的计算能力证明消息和/或身份担保消息; 接收所述相邻节点推荐的路由信息; 根据所述相邻节点加入所述区块链网络的加入时长和所述计算能力证明消息和/ 或根据所述身份担保消息,判断所述相邻节点是否可信; 当所述相邻节点可信时,根据所述路由信息修改当前节点的路由表。 进一步地,所述根据所述相邻节点加入所述区块链网络的加入时长和所述计算能 力证明消息和/或根据所述身份担保消息,判断所述相邻节点是否可信,包括: 根据所述计算能力证明消息获取所述相邻节点的计算能力值,并根据所述计算能 力值和所述加入时长计算所述相邻节点的可信乘积;和/或,根据所述身份担保消息获取所 述相邻节点的担保乘积分量,并基于所述担保乘积分量计算所述相邻节点的担保乘积之 和; 基于预设可信分量阈值以及比较所述计算能力值、所述加入时长、所述可信乘积、 所述担保乘积之和中的至少一项,判断所述相邻节点是否可信。 进一步地,所述根据所述计算能力证明消息获取所述相邻节点的计算能力,并根 4 CN 111600871 A 说 明 书 2/12 页 据所述计算能力和所述加入时长计算所述相邻节点的可信乘积,包括: 从所述相邻节点的计算能力证明消息中获取所述相邻节点的所述计算能力值;其 中,所述计算能力证明消息为所述相邻节点申请加入所述区块链网络时出具的工作量证 明,所述计算能力证明消息包括所述相邻节点的区块链标识、公钥和计算能力证明材料,所 述计算能力证明材料为通过所述区块链网络创始人节点审核且经过所述创始人节点私钥 签名的消息; 根据所述相邻节点对应的加入时长标识,确定所述相邻节点的所述加入时长; 将所述计算能力值对应的数量级与所述加入时长相乘,获得所述相邻节点的所述 可信乘积。 进一步地,所述根据所述身份担保消息获取所述相邻节点的担保乘积分量,并基 于所述担保乘积分量计算所述相邻节点的担保乘积之和,包括: 从所述相邻节点的身份担保消息中提取所述担保乘积分量;其中,所述身份担保 消息为所述相邻节点申请加入所述区块链网络时出具的身份担保证明,所述身份担保消息 包括所述相邻节点的区块链标识、公钥和所述担保乘积分量,所述担保乘积分量为基于担 保节点的加入时长、计算能力和已担保节点数量获得的,且所述担保乘积分量为经过对应 的所述担保节点私钥签名的消息; 将所述担保乘积分量相加,获得所述相邻节点的担保乘积之和。 进一步地,所述预设可信分量阈值包括计算能力分量阈值、加入时长分量阈值和 可信乘积分量阈值; 所述基于预设可信分量阈值以及比较所述计算能力值、所述加入时长、所述可信 乘积、所述担保乘积之和中的至少一项,判断所述相邻节点是否可信,包括: 比较所述计算能力值与所述计算能力分量阈值; 比较所述加入时长与所述加入时长分量阈值; 比较所述可信乘积与所述可信乘积分量阈值; 当所述计算能力值大于所述计算能力分量阈值,且所述加入时长大于所述加入时 长分量阈值,且所述可信乘积大于所述可信乘积分量阈值时,判断所述相邻节点是可信的。 进一步地,所述预设可信分量阈值包括担保乘积之和分量阈值; 所述基于预设可信分量阈值以及比较所述计算能力值、所述加入时长、所述可信 乘积、所述担保乘积之和中的至少一项,判断所述相邻节点是否可信,包括: 比较所述担保乘积之和与所述担保乘积之和分量阈值; 当所述担保乘积之和大于所述担保乘积之和分量阈值时,判断所述相邻节点是可 信的。 进一步地,所述根据所述身份担保消息获取所述相邻节点的担保乘积分量,并基 于所述担保乘积分量计算所述相邻节点的担保乘积之和之前,还包括: 对所述身份担保消息进行验证。 进一步地,所述对所述身份担保消息进行验证,包括: 对所述身份担保消息进行签名验证; 当所述身份担保消息通过签名验证时,从所述身份担保消息中提取所述担保乘积 分量;其中,所述担保乘积分量包括一个或多个; 5 CN 111600871 A 说 明 书 3/12 页 对所述担保乘积分量进行签名验证; 当所有所述担保乘积分量通过签名验证后,确定所述身份担保消息通过验证。 进一步地,所述防止攻击方法,还包括: 接收申请加入节点发送的获取担保乘积请求; 根据所述当前节点的加入时长、计算能力值和已担保乘积,判断所述当前节点是 否剩余担保乘积; 当所述当前节点剩余担保乘积时,根据所述加入时长、所述计算能力值和已担保 节点数量计算担保乘积分量; 向所述申请加入节点提供所述担保乘积分量。 为了实现上述目的,本发明第二方面提供一种防止攻击装置,包括: 接收模块,用于接收相邻节点在区块链网络中广播的计算能力证明消息和/或身 份担保消息;以及接收所述相邻节点推荐的路由信息; 判断模块,用于根据所述相邻节点加入所述区块链网络的加入时长和所述计算能 力证明消息和/或根据所述身份担保消息,判断所述相邻节点是否可信; 修改模块,用于当所述相邻节点可信时,根据所述路由信息修改当前节点的路由 表。 本发明具有如下优点: 本发明提供的防止攻击方法,接收相邻节点在区块链网络中广播的计算能力证明 消息和/或身份担保消息;接收相邻节点推荐的路由信息;根据相邻节点加入区块链网络的 加入时长和计算能力证明消息和/或根据身份担保消息,判断相邻节点是否可信;当相邻节 点可信时,根据路由信息修改当前节点的路由表,可以防止攻击者通过虚假节点恶意篡改 区块链网络节点的路由信息,避免区块链网络节点的对外联系被控制,保障区块链网络用 户的安全性,从而提升用户的使用体验。 附图说明 附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具 体实施方式一起用于解释本发明,但并不构成对本发明的限制。 图1为本发明第一实施例提供的一种防止攻击方法的流程图; 图2为本发明第二实施例提供的一种防止攻击方法的流程图; 图3为本发明第三实施例提供的一种防止攻击方法的流程图; 图4为本发明第四实施例提供的一种防止攻击方法的流程图; 图5为本发明第五实施例提供的一种防止攻击方法的流程图; 图6为本发明第六实施例提供的一种防止攻击装置的原理框图。
下载此资料需消耗2积分,
分享到:
收藏