1.一种面向SDN网络流规则安全保障的区块链,其特征在于:该区块链的构成如下:在每一个SDN子网设置一个安全网关,由安全网关创建第一个区块,作为初始区块,其他网络节点能够通过访问这个初始区块,通过Pow共识机制产生新区块,涉及SDN网络安全的流规则信息作为事务保存在区块中;从第二个区块开始在每个区块中设置一个区块头用来保存节点数字签名或者时间戳信息,并在区块头中设置一个哈希值,新产生区块的区块头部哈希值基于上一区块存储的事务和头部哈希值,由哈希函数生成;通过这种方式使得保存SDN网络流规则的区块构成链状,区块链形成。
2.一种基于权利要求1所述区块链的SDN网络安全保障方法,其特征在于:包括以下两个方面:(1)控制器将网络的全局视图以及流量信息作为事务存储到区块中,同时交换机也将控制器下发的流表作为事务存储区块中;随着网络不断运行,SDN网络中各项设备不断更新自身承载流规则的各项信息并不断保存到新产生的区块上,区块链保证作为事务保存的SDN各项网络信息不会被攻击者恶意篡改;
(2)SDN网络在基于区块链的基础上由原来单一的集中式认证改善为分布式认证,由其他相邻节点完成。
3.根据权利要求2所述的方法,其特征在于:所述(1)的具体流程如下:步骤1.1,安全网关产生初始区块,保存SDN网络最初的流规则和控制器的信息;
步骤1.2,区块链节点通过访问初始区块,挖矿产生新的区块,后产生的区块头中有哈希值,哈希值基于前一区块事务和上一个区块头中的哈希值,由哈希函数生成;
步骤1.3,新的流规则产生或者有新合法设备接入,控制器下发相应流表给相应交换机或路由器,然后更新本身的网络信息,然后将更新后的网络信息作为事务保存到新产生的区块上;
步骤1.4,交换机或者路由器接收控制器下发的流表,更新本身流表信息并执行,然后将更新后的流表信息作为事务保存到新产生的区块上;
步骤1.5,区块链网络节点通过Pow共识机制挖矿不断产生新的区块,其中区块头中的哈希值是基于上一区块事务和上一个区块头中的哈希值,由哈希函数生成;
步骤1.6,随着网络不断运行,新的流规则不断动态生成,并再次重复上述步骤后将更新后的各项网络信息作为事务存储在新的区块上。
4.根据权利要求2所述的方法,其特征在于:所述(2)的具体流程如下:步骤2.1,需接入SDN网络的交换机或者路由器向安全网关发送接入请求,其中包含接入信息;已经接入过网络的设备身份信息会存储在区块链账本中;
步骤2.2,安全网关将收到的接入请求封装映射到区块链网络中的相应节点;
步骤2.3,触发区块链网络中的智能合约,由区块链网络中的其他节点验证其接入信息和身份信息,完成分布式认证工作,如果认证通过则将信息在区块链网络中永久备份;
步骤2.4,区块链网络将认证结果发送给控制器;
步骤2.5,控制器允许设备接入SDN网络并下发相应流表;
步骤2.6,接入设备的流表信息在区块链网络中存储备份;
如果需要接入SDN网络的是各种终端设备,则同样进行上述步骤2.1-2.4,在区块链将认证结果发送给控制器之后,控制器将更新后的流表信息下发到终端接入网络的第一跳交换机,并且其流表信息在区块链中存储。
5.根据权利要求4所述的方法,其特征在于:所述步骤2.1中,接入信息为如口令或设备的身份信息。