
技术摘要:
本发明公开了一种基于软件定义的私有区块链网络DDoS防御方法。该方法基于软件定义网络,包括SDN交换机、SDN控制器,并将私有区块链网络节点接入软件定义网络。首先SDN控制器防御模块从私有区块链网络获取可信节点的详细信息;SDN交换机将所有未配置网络流表的流量包转 全部
背景技术:
最近,随着比特币的出现,区块链引起了行业研究人员越来越多的关注。区块链是 指用于以分布式和无信任的方式来共同维护一个可靠数据库的技术方案。该技术允许系统 中的节点使用一致性算法来计算和记录将值或资产交换生成块的所有交易,以及生成用于 链接和校准下一个块的哈希值,系统中的所有节点将共同验证记录的有效性。 受比特币、以太坊等公共区块链的启发,出现了私有区块链的概念。最近的市场研 究表明,私有链在金融领域具有良好的前景。私有链由商业企业认证和信任的一组节点控 制,节点数量通常小于公共区块链。私有链也是权力下放,无信任中心和可靠的。此外,私有 链限制成为区块链服务器节点的成员资格和访问网络的权利。例如IBM私有区块链网络 Fabric hyperledger,Hyperledger网络的节点分布在参与组织中,这使得组成私有、认证 或联盟的区块链网络特别有效。 但是与公有链相比,私有区块链中的节点总数通常较小,这会暴露漏洞。例如,攻 击者使用DDoS攻击来影响私有区块链中的服务器节点,虽然该攻击不会造成存储在区块链 的数据丢失或被篡改,但是却会造成服务器节点无法提供正常的服务。因为私有区块链网 络采取的共识算法一般依赖网络中受信任的若干可信节点,DDoS攻击造成可信节点无法正 常访问,这将影响私有区块链网络的共识机制使私有链节点无法生成新区块,从而导致区 块链网络无法正常工作。因此,确认节点的安全性并确保它们正常工作非常重要。 在公共区块链网络下,节点数量众多,保护节点免受故障或者DDoS攻击可能不被 关注。但是在私有区块链中,节点起着参与共识与提供服务的重要作用,并且组成网络的节 点数量远小于公共区块链网络。所以保护私有链节点的安全免受DDoS攻击至关重要。而 SDN技术支持流量控制与转发的分离,支持软件编程控制与流量管理,实现了新的安全性概 念。针对私有区块链只允许特定认证节点才允许加入区块链网络的特点,结合SDN的技术, 能更好的保护私有链节点的正常运行。
技术实现要素:
本发明目的在于克服现有技术的缺点与不足,提供一种基于软件定义的私有区块 链网络DDoS防御方法,用以解决现有技术中针对私有区块链网络节点的DDoS攻击防御效果 较差的技术问题,能在不影响私有区块链网络的情况下保护私有区块链网络节点的安全 性,防止对私有区块链网络未经授权的访问。 本发明的主要目的通过以下的技术方案实现: 3 CN 111614610 A 说 明 书 2/4 页 一种基于软件定义的私有区块链网络DDoS防御方法,在所述的私有区块链网络 中,可信区块链共识节点接入软件定义网络,软件定义网络物理层有SDN交换机用于管理进 入受保护的区块链节点的外部流量;控制层有SDN控制器防御模块;包括以下步骤: S1、SDN控制器防御模块向私有区块链网络周期性地请求获取网络中所有可信节 点的信息列表; S2、SDN交换机将所有接收到的未配置网络流表的流量包转交给SDN控制器,SDN控 制器防御模块从接收到的流量包中提取流量来源关键信息并保存; S3、SDN控制器将来源关键信息与私有区块链可信节点信息比对检测,并对被检测 出不可信的流量生成丢弃决策,将决策流表下发至SDN交换机,而可信流量则转交给SDN 控 制器的其他模块负责。 进一步地,所述步骤S1具体为: SDN控制器防御模块维护一个专门线程,周期性地向接入的私有区块链网络节点 获取该网络下所有节点的信息,包括每个可信节点的IP地址、端口号和可信节点有效期,并 生成一份可信节点列表。 进一步地,所述步骤S2具体为: S201、SDN交换机将接收到的未配置网络流表的流量生成一个详细的流量包,包括 请求来源IP、端口信息和节点有效期信息,提交给SDN控制器决策; S202、SDN控制器防御模块将接收到的流量包再加上一个超时时间形成一个新数 据包,并添加到一个缓存队列保存。 进一步地,所述步骤S3具体为: S301、SDN控制器防御模块将缓存队列中的流量项分为两类:一.可信流量;二.不 可信流量,并分别用可信列表和不可信列表存储维护; S302、SDN控制器模块的专门线程将缓存队列中的流量项与维护的私有区块链网 络可信节点列表的IP、端口和有效期比对检测:如果流量项检测是可信的,则将该流量项移 到可信列表,并将该流量项的超时时间修改为和该可信节点对应的可信节点有效期同样长 的时间;否则不做操作等待该流量项超时; S303、缓存队列的流量项最终到达超时时间,此时将该流量项移动到不可信列表, 同时SDN控制器防御模块将生成一个针对该流量项的丢弃流表下发到SDN交换机。 进一步地,对所述缓存队列设置一个最大值,并使用限流算法限制添加数据项到 缓存队列的速度,当缓存队列已满或因限流算法导致数据项无法加入缓存队列时,SDN控制 器将直接生成一个针对该流量项的丢弃流表,但是将该丢弃流表的有效时间按管理员配置 设置为秒级的短期时间,再下发到SDN交换机。 进一步地,对所述限流算法的具体实现为:采用一个初始为正数的计数器,该计数 器会周期性加1;每当一个数据项加入缓存队列,该计数器值将减1;当计数器值为0时,将无 法把数据项加入缓存队列。 本发明与现有技术相比,具有如下有益效果: (1)利用软件定义网络帮助私有区块链网络有效防御DDoS攻击,实现防御自动化, 提高防护效率; (2)能帮助私有区块链网络从源头隔绝所有未经授权的访问,为私有区块链网络 4 CN 111614610 A 说 明 书 3/4 页 节点提供有效的安全访问控制; (3)将软件定义网络防护模块接入私有区块链网络节点不会影响原有的私有链网 络架构,也不需要修改私有区块链,提供高可用性。 附图说明 图1是本发明实施例的一个私有区块链安全架构图; 图2是本发明实施例中基于软件定义的私有区块链网络DDoS防御方法的流程图; 图3是本发明所述实施例中SDN控制器防御模块防御的流程图。