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

一种基于区块链的跨域协同溯源系统及方法与流程

2021-10-27 20:40:00 来源:中国专利 TAG:
1.本发明涉及网络安全
技术领域
:,特别是涉及一种基于区块链的跨域协同溯源系统及方法。
背景技术
::2.互联网运行的无状态性,导致了互联网用户网络安全的巨大隐患,并且由于攻击者往往采用虚假ip地址来隐藏自己的真实身份,所以防御攻击和追踪网络犯罪变得十分困难。ip溯源作为一种依附于现有网络架构的网络数据来源识别以及传输路径重构的技术,可以有效解决这类问题。3.ip溯源无论是面向网络攻击还是面向网络管理,都需要大量的自治域(autonomoussystem,as)或者多个因特网服务提供商(internetserviceprovider,isp)参与其中,协同完成ip溯源。由于isp具有自主性,表现为isp的逐利性(isp希望参与协同能够获取可观的收入)、信息机密性(为了保护内部网路安全,isp拒绝公开下属自治域的管理信息)和经济性(为了节约成本,isp不会轻易对网络设备进行升级)等,这些因素严重影响了它的协同意愿,无法解决自治域之间的信任问题导致自治域不愿协同。因此,必须采用一些手段使得在不可信的环境下,各个自治域依然可以协同合作。另外,当互联网中存在虚假ip地址时,特别是在网络攻击场景下,粗粒度的数据流会出现数据包聚合现象,该现象是指带有虚假ip地址的数据包与带有真实ip地址的数据包被认为同属于一条数据流。这种数据流的聚合现象会使得数据流中的标签覆盖进而导致溯源误报,降低溯源精度。最后,由于现有的ip溯源系统是一种面向全网的开放式系统,满足增量部署性,支持用户的随机加入和退出,在这种环境下,不可避免地存在恶意用户窥探隐私信息并以此获利,存在隐私泄露风险。技术实现要素:4.针对现有技术存在的不足,本发明提供了一种基于区块链的跨域协同溯源系统及方法。5.本发明的技术方案为:6.一种基于区块链的跨域协同溯源系统,该系统包括包括由下到上的数据采集层、溯源服务层和溯源协同层;7.所述数据采集层,由加入系统的各自治域构成,用于对加入系统的每一自治域as内的数据流以及数据流携带的标签进行采集,数据流依次经过各自治域时,每一自治域均用其生成的标签覆盖数据流当前携带的标签,对数据流携带的标签进行更新,同时每一自治域将经过的数据流携带的标签的更新信息实时添加到标签交换表lct中,并将采集的数据流样本实时上传至溯源服务层中用于控制该自治域as的自治域控制中心中;所述数据流携带的标签,是一串字符,由数据流途径的自治域生成,包括普通标签和特殊标签,其中首次经过自治域的数据流和再次经过自治域且携带的标签与lct中的记录相同的数据流将被分配普通标签,而再次经过自治域但携带的标签与lct中的记录不相同的数据流将被分配特殊标签,以标记该数据流为聚合流,更新前的标签命名为入标签,更新后的标签命名为出标签;所述普通标签在溯源协同层的区块链网络中公布,用以确定自治域身份;所述特殊标签由所述普通标签与特殊字段组合而成;8.所述溯源服务层,由与加入该溯源系统的自治域一一对应的自治域控制中心构成,用于存储数据流样本以及响应溯源协同层的溯源请求;所述自治域控制中心,是用于控制自治域的具有数据存储、数据处理能力的设备;9.所述溯源协同层,是以自治域控制中心为节点的区块链网络,用于实现自治域间的协同溯源;各自治域控制中心向所述区块链网络注册为全节点或者轻节点,其中注册为全节点的自治域控制中心控制的自治域命名为溯源自治域,且新注册的全节点加入所述区块链网络时需要发布地址声明事务、公钥声明事务、标签声明事务和费用声明事务,而新注册的轻节点加入区块链网络时需要发布地址声明事务、公钥声明事务和费用声明事务;以股权授权证明机制dpos作为区块链网络的共识协议,由参与溯源的每个isp分别根据其各自管辖的as数量成比例地指定其管辖范围内的若干as对应的自治域控制中心为所述区块链网络的超级节点;所述区块链网络中,构成区块的事务的格式包括:发起方地址:事务实际发起者的地址,作为该事务发起者的唯一标识;接收方地址:事务实际接收者的地址,作为事务操作主体的唯一标识;签名:事务发起者使用私钥对整个事务信息进行“加密”计算的结果;事务类型:定义事务操作的事件类型;事务内容:具体业务动作数据,根据不同事务类型有所不同;时间戳:当前事务生成的时间;事务标识:事务数据的唯一标识,通常为当前整个事务的哈希值;前驱事务标识:与当前事务有关的上一个事务的哈希值;所述区块链网络包括8种事务类型:地址声明事务,事务内容是声明事务发起者的地址;公钥声明事务,事务内容是声明事务发起者所持有的公钥;标签声明事务,事务内容是声明事务发起者的标签;费用声明事务,事务内容是声明事务发起者提供一次溯源服务所需的交易费用;请求事务,事务内容是事务发起者的溯源请求内容;确认事务,事务内容是事务发起者对事务接收者提出的溯源请求的回应;转账事务,事务内容是事务发起者对事务接收者转账的金额;响应事务,事务内容是事务发起者对事务接收者所发起事务的响应内容。10.进一步地,利用所述的基于区块链的跨域协同溯源系统的基于区块链的跨域协同溯源方法,该方法包括如下步骤:11.步骤01:每一溯源自治域为途径该溯源自治域的数据流分配标签覆盖该数据流当前携带的入标签;12.步骤02:每一溯源自治域将经过的数据流的标签更新信息添加到该溯源自治域的标签转换表lct中;13.步骤03:受害者从攻击包中提取流id和标签,将二者的组合作为溯源请求提交给受害者所在自治域的自治域控制中心;14.步骤04:根据溯源请求,系统中的各自治域控制中心在区块链网络中协同溯源;15.步骤05:受害者所在自治域的自治域控制中心从区块链网络中获取所需的溯源结果,并将此溯源结果发送给受害者。16.进一步地,利用所述的基于区块链的跨域协同溯源系统的基于区块链的跨域协同溯源方法,所述自治域控制中心在区块链网络中协同溯源包括如下步骤:17.步骤041:若受害者所在自治域的自治域控制中心为区块链网络中的全节点,则执行步骤042,若受害者所在自治域的自治域控制中心为区块链网络中的轻节点,则转至步骤043;18.步骤042:收到溯源请求后,受害者所在自治域的自治域控制中心首先在本地进行一次溯源,该自治域控制中心依据攻击流的流id和攻击流携带的标签检索该自治域的lct获取其入标签,并用流id和入标签的组合更新溯源请求;19.步骤043:通过链上的标签声明事务和地址声明事务确定写入该溯源请求的标签的溯源自治域及其自治域控制中心在区块链网络中的地址,自治域控制中心将该溯源请求视作请求事务,对该请求事务数据进行加密后将其发布到区块链网络;20.步骤044:被确定为写入该溯源请求的标签的溯源自治域的自治域控制中心查询链上数据,获取指向自己的待处理请求事务后进行解密得到具体的交易内容;21.步骤045:接收请求事务的自治域控制中心发布其内容已经过加密的确认事务以回复该请求事务,所述确认事务的内容包括愿意响应该溯源请求和拒绝响应该溯源请求;22.步骤046:发送溯源请求的自治域控制中心通过检查链上数据获取确认事务并对该确认事务进行解密,如果确认事务的内容为拒绝响应该溯源请求,则整个溯源过程结束,如果确认事务的内容为愿意响应该溯源请求,则根据链上最新公布的的费用声明事务发布加密的转账事务以支付交易费,并将该转账事务发布到区块链网络中;23.步骤046:响应溯源请求的自治域控制中心对转账金额进行检查,若转账金额无误则转至步骤047,否则,则拒绝进行溯源服务;24.步骤047:当前响应溯源请求的自治域控制中心根据请求事务中的流id和标签查找其存储的lct获取入标签,若所获取的入标签为空,则该当前自治域即为攻击者,该自治域的自治域控制中心将获取的入标签信息加密后作为响应事务发布到区块链网络;若所获取的入标签不为空,该自治域的自治域控制中心用当前的流id和入标签的组合更新溯源请求,并转至步骤043。25.进一步地,利用所述的基于区块链的跨域协同溯源系统的基于区块链的跨域协同溯源方法,使用椭圆曲线密码算法对非转账事务的事务内容进行加密,方法为:首先选择一条fq域内的椭圆曲线以获取相关参数,包括:素数域fq内最大素数q=2255‑19;素数域fq内的一个素数d=‑121665/121666;椭圆曲线函数e:‑x2 y2=1 dx2y2;椭圆曲线上一个基点g=(x,‑4/5);椭圆曲线上一个基点p为任意值且不等于g;基点的素数阶l=2252 a,其中a=27742417777372353535851937790883648493;密码学哈希函数hs,可实现{0,1}*→fq;特定哈希函数p,可实现e(fq)→e(fq);发送非转账事务的自治域控制中心node7将交易中除接收地址以外的内容编码到椭圆曲线上的一点m,然后使用相应的自治域控制中心node3的公钥k以及自身生成的随机数r加密m,结果为二元组c={rp,m rk};其中相应的自治域控制中心的公钥k对应的私钥为s,且满足k=s*p。26.进一步地,利用所述的基于区块链的跨域协同溯源系统的基于区块链的跨域协同溯源方法,使用一次性地址技术对转账事务的事务内容进行加密,方法为:首先发布转账事务的自治域控制中心node7选择一个随机数r和相应的自治域控制中心node3的两个公钥a、b计算一个一次性公钥l=hs(ra)g b;然后node7使用公钥l构造新的输出地址addb=h(l),向该地址转账,并将r=rg放到该转账事务中;对于转账事务涉及的转账类交易的金额数据,采用基于模幂计算的一种承诺方式来保护数据安全:根据节点node3最新公布的费用声明,node7需要给node3转账的金额为m,则计算交易金额对应的承诺e=gx(modn),将承诺e放到该转账事务中,其中,g和n是公开的,g为大于1的底数,n为两个大素数p、q的乘积。27.本发明的有益效果为:本发明引入了区块链技术,通过区块链的去中心化、公开透明、可溯源、不可篡改等优势为溯源系统中各自治域的合作提供了信任基础,将溯源过程中产生的事务通过区块链中的超级节点进行打包和验证并广播至所有节点,由此使得数据信息能够公开、透明地存储在所有节点上,解决了由于竞争而产生的信任问题,使得各个自治域之间能够协同可信,极大地提高了协同溯源的效率。同时设计了一种特殊标签来阻断数据流的聚合,通过将基于标签的高精度溯源策略和区块链融合,提高了溯源效率和溯源精度。同时针对不同的数据类型引入了不同的密码学技术,而非全部使用同一种手段,以此可以灵活、有效地保障数据的隐私安全。附图说明28.图1为本实施方式的基于区块链的跨域协同溯源系统的框架示意图;29.图2为本实施方式中数据流从一个自治域流向另一自治域的示意图;30.图3为本实施方式利用基于区块链的跨域协同溯源系统的溯源方法流程示意图;31.图4为建立追踪痕迹的示例示意图;32.图5为本实施方式数据流的标记域划分示意图;33.图6为本实施方式的溯源协同层中不同节点参与溯源的流程示意图;34.图7为本实施方式溯源系统中的各自治域控制中心在区块链网络中协同溯源的详细流程示意图;35.图8为本发明区块链网络中溯源工作的流程示意图。具体实施方式36.为了使本发明的目的、技术方案及优势更加清晰,下面结合附图和具体实施例对本发明做进一步详细说明。此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。37.图1是本实施方式的基于区块链的跨域协同溯源系统的框架示意图,所述基于区块链的跨域协同溯源系统包括由下到上的数据采集层、溯源服务层和溯源协同层;38.所述数据采集层,由加入系统的各自治域构成,用于持续性地对加入系统的各自治域as内的数据流以及数据流携带的标签进行采集,同时每一自治域维护一张标签交换表(labelconversiontable,lct),并将采集的数据流样本实时上传至溯源服务层长期存储,具体是,将从每个自治域as采集的数据流样本实时上传至溯源服务层中与该自治域as对应的自治域控制中心。本实施方式以网络数据源ip地址、网络数据目的ip地址、源端口、目的端口、协议组成的五元组定义数据流及确定流id。所述数据流携带的标签,是一串字符,由数据流途径的自治域生成,包括普通标签和特殊标签两种,数据流依次经过各自治域时,每一自治域均用其生成的标签覆盖该数据流当前携带的标签,对数据流携带的标签进行更新,其中更新前的标签命名为入标签,更新后的标签命名为出标签,同时每一自治域将经过的数据流携带的标签的更新信息实时添加到自己的标签交换表lct中,对自己的lct进行维护。所述普通标签在溯源协同层的区块链网络中公布,用以确定自治域身份;所述特殊标签由所述普通标签与特殊字段组合而成,例如表1示例的普通标签表示为l(l表示一串字符),特殊标签表示为普通标签l与特殊字段α的组合,特殊字段无需在区块链网络中公布。普通标签的作用是指明数据流来源,在回溯阶段快速确定溯源方向。特殊标签在指明数据流来源的同时起到了阻断携带不同标签但具有相同流id的数据流(此类数据流称为可聚合流)的聚合。39.表1[0040][0041]下面结合示例来说明特殊标签通过阻断数据流的聚合消除误报以提高溯源精度的有效性。如图2所示,来自自治域asa的携带标签l的数据流f以及来自自治域asb的携带标签m的数据流f都经过自治域asc,asc对数据流进行采样、标签更新,并维护一张标签交换表lct。若自治域asc只有一种标签,也就是只有普通标签n,则自治域asc标签交换表如表2(a)所示,出标签都是n,在这种情况下便无法确定数据包(包含于数据流f)的真实来源。相反,通过特殊标签的设计,为携带标签m的数据流f分配了特殊字段α,出标签为n‑α,则标签交换表如表2(b)所示。由于为携带标签m的数据流f分配了特殊标签n‑α,通过标签和流id的组合,可以唯一确定其入标签。由此可见,特殊标签可使具有相同流id的数据流保持其独立性。[0042][0043]所述溯源服务层,由与加入该溯源系统的自治域一一对应的自治域控制中心构成,用于存储数据流样本以及响应溯源协同层的溯源请求。所述自治域控制中心,是用于控制自治域的具有数据存储、数据处理能力的设备,比如云服务器。具体是,各自治域控制中心接收并存储其各自控制的自治域as上传的数据流样本以及响应溯源协同层的溯源请求。[0044]每个自治域将数据流样本上传至其各自的自治域控制中心进行独立存储,一方面能够有效保护自治域网络数据隐私;另一方面,使得溯源系统摆脱了路由设备资源有限的束缚,根本性地解决了由存储资源匮乏而导致溯源精度低甚至失败的问题。而且,借助控制中心的计算优势,不仅减少了路由设备的算力消耗保证了网络传输性能的稳定性,而且能够更加迅速地处理溯源请求,保证了溯源服务的高效性。在传统的基于流采样溯源系统中,数据采样和溯源响应都集路由设备于一身。这里通过把溯源响应从路由设备剥离,减少了路由设备资源消耗,降低了溯源系统对网络服务质量的影响。不难看出,为自治域配置控制中心是一种便捷且经济的网络功能升级方案。[0045]所述溯源协同层,是以自治域控制中心为节点的区块链网络,用于实现自治域间的协同溯源;各自治域控制中心向区块链网络注册为全节点或者轻节点,其中注册为全节点的自治域控制中心控制的自治域命名为溯源自治域,注册为轻节点的自治域控制中心控制的自治域命名为非溯源自治域,且新注册的全节点加入区块链网络时需要发布地址声明事务、公钥声明事务、标签声明事务和费用声明事务,而新注册的轻节点加入区块链网络时需要发布地址声明事务、公钥声明事务和费用声明事务,无需发布标签声明事务;所述全节点,参与溯源过程并存储溯源数据包括标签交换表(labelconversiontable,lct)和区块链上产生的数据,提供溯源服务;所述轻节点用于将其控制的自治域内用户的溯源请求发布到区块链上、进行转账操作以及将接收溯源请求的节点返回的溯源结果发送给其控制的自治域内用户;以股权授权证明机制(delegatedproofofstake,dpos)作为区块链网络的共识协议,由参与溯源的每个isp分别根据其各自管辖的as数量成比例地指定其管辖范围内的若干as对应的自治域控制中心为区块链网络的超级节点,从而免去dpos中的投票过程。由于一个isp可能掌控着多个as,为了保证公平性以及应对网络规模的扩大,isp指定的超级节点数量与该isp所拥有的as数量成比例,即该isp管辖的as越多,可以指定的超级节点越多。具体地,该区块链网络的共识协议如下:首先由isp指定相应数量的超级节点作为记账节点和验证节点分别进行验证和记账,剩余节点为跟随节点;然后,由超级节点商议记账顺序表便于轮流生成区块;超级节点的权利相等,每生成一个区块可收到额外的报酬,若被发现存在不良行为,如区块无法通过验证,则将受到相应处罚,如剥夺其代理资格,甚至该超级节点对应的as所属isp的超级节点名额永久减一。[0046]在本实施方式的区块链网络中,构成区块的事务的格式为:[0047]·发起方地址:事务实际发起者的地址,作为该事务发起者的唯一标识,地址是区块链节点的账户名,溯源自治域通过账户名可实现匿名交易、通信;账户名由区块链节点的公钥生成且一个区块链节点可有多个账户名;[0048]·接收方地址:事务实际接收者的地址,作为事务操作主体的唯一标识;[0049]·签名:事务发起者使用私钥对整个事务信息进行“加密”计算的结果;[0050]·事务类型:定义事务操作的事件类型,可以有一种或者多种类型;[0051]·事务内容:具体业务动作数据,根据不同事务类型有所不同;[0052]·时间戳:当前事务生成的时间;[0053]·事务标识:事务数据的唯一标识,通常为当前整个事务的哈希值;[0054]·前驱事务标识:与当前事务有关的上一个事务的哈希值;[0055]本实施方式中共有8种事务类型:地址声明事务、公钥声明事务、标签声明事务、费用声明事务、请求事务、确认事务、转账事务和响应事务,不同的事务类型对应不同的事务内容,具体地,地址声明事务的事务内容是声明事务发起者的地址;公钥声明事务的事务内容是声明事务发起者所持有的公钥,公钥由私钥(不对外公布)生成,两者可用于交易的加密和签名,而且节点可持有多个公钥;标签声明事务的事务内容是声明事务发起者的标签,由私钥生成,具有唯一性,用于对溯源自治域内数据流进行标记,将标签作为声明公布在区块链内,一方面可达到标签与地址绑定的目的,标签长度较短,更适合标记数据流,另一方面,具有溯源需求的自治域根据数据流携带的标签便可知晓应该向哪个节点购买溯源服务;费用声明事务的事务内容是声明事务发起者提供一次溯源服务所需的交易费用,若想修改交易费,溯源自治域重新发布费用声明即可,即以最新的费用声明为准;请求事务的事务内容是事务发起者的溯源请求内容;确认事务的事务内容是事务发起者对事务接收者提出的溯源请求的回应;转账事务的事务内容是事务发起者对事务接收者转账的金额;响应事务的事务内容是事务发起者对事务接收者所发起事务的响应内容。[0056]所述前驱事务标识是关联两个事务的链接,表明了事务之间的先后顺序,比如,确认事务的前驱事务是请求事务,同时确实事务又是转账事务的前驱事务;请求事务、声明事务没有前驱事务,则其前驱事务标识对应的字段为空。[0057]所述区块链网络以“记账”的方式记录所有的溯源请求、溯源响应以及相关溯源服务费用转账信息。溯源协同层利用区块链网络的去中心化、不可篡改等优势将系统服务过程透明化,以此消除自治域间的不信任。溯源数据一旦上链可实现对溯源系统的监督,防止欺骗抵赖行为的发生,比如否认溯源响应内容以及收取服务费用拒不提供服务,并且系统能够事后追责。区块链网络保障了所有溯源自治域的合法利益,极大地提高了该溯源系统的可信度。此外。溯源协调层消除了溯源自治域之间的耦合性,保障了自治域间独立对等的关系,充分尊重自治域的部署意愿,允许自治域自由地加入/退出溯源系统,降低了系统的复杂性,极大地增强了系统的可扩展性和增量部署性。[0058]图3是使用上述基于区块链的跨域协同溯源系统的基于区块链的跨域协同溯源方法的流程示意图,所述基于区块链的跨域协同溯源方法包括如下步骤:[0059]步骤1:每一溯源自治域为途径该溯源自治域的数据流分配标签,作为该数据流的出标签,覆盖该数据流当前携带的标签即入标签,并将在每一溯源自治域发生的标签更新信息作为新记录添加到该溯源自治域的标签转换表lct中,这样每一溯源自治域将获得一张与本自治域相关的实时更新的标签转换表lct。每一溯源自治域的lct存储于与该自治域对应的自治域控制中心,作为响应溯源请求的数据基础。[0060]所述溯源自治域为途径该溯源自治域的数据流分配标签的方法如表1的算法所示:对于任意数据包,首先溯源自治域根据途径的数据流所属的流id检索该溯源自治域的标签转换表lct,若无匹配记录,则说明该数据包属于新数据流,则为该数据流分配普通标签作为该数据流的出标签,覆盖该数据流当前携带的标签即入标签,并将该标签更新信息作为新记录添加到该溯源自治域的标签转换表lct中;若存在匹配记录,则检查该数据流当前携带的标签即入标签是否与匹配记录相同,如若相同,则为其分配与匹配记录相同的出标签,此时不更新该溯源自治域的标签转换表lct;如若不同,说明该数据包属于可聚合流,则为其分配可用的特殊标签,并更新lct。[0061]表1[0062][0063][0064]通过上述追踪痕迹建立过程,各溯源自治域将获得一张与本自治域相关的lct。每一张lct存储于对应的自治域控制中心,并实时更新,作为响应溯源请求的数据基础。[0065]在本实施例中,假设由若干自治域构成的网络如图4所示,共有7个自治域as,表示为sas={as1,as2,as3,as4,as5,as6,as7},其中{as1,as2,as3,as4,as7}共5个溯源自治域,它们的自治域控制中心注册为区块链网络中的全节点,且公布的标签分别为m、l、n、r、s,记为snode={node1,node2,node3,node4,node7},其中{node1,node2}为超级节点;其中{as5,as6}共2个自治域为普通自治域,没有加入区块链网络。某一时刻,两条合法的数据流id表示为p、q的数据流分别经过溯源自治域as1、as2时被采样,接着as1、as2分别为数据流p、q分配标签m和l,分别作为数据流p、q的出标签,覆盖数据流p、q的入标签,并将标签更新信息在对应的lct中进行记录。然后,这两条数据流途径自治域as4、as6最终到达目的端as7。在此过程中,数据流p、q被溯源自治域as4、as7分别采样,并分别写入新的标签r、s且标签交换过程被分别记录在自治域as4和as7各自的lct中。此外,位于自治域as3的攻击者为隐藏真实身份,通过伪造源ip地址将攻击流伪装成数据流p、q。攻击流p、q途径自治域as3、as5最终到达受害者所在的as7。在经过溯源自治域as3时,攻击流p、q被标签n标记。随后到达as7时,攻击流p、q被认定为可聚合流,故为其分配特殊标签s‑α。具体是,合法数据流p经过溯源自治域as1时被采样,接着检查所在自治域as1的lct未发现流id的表示p,说明该数据包属于新数据流,则为其分配普通标签,即在其标记域内写入标签m,并在自治域as1的自治域控制中心存储的lct中记录{*,p,m};同理,合法数据流q经过溯源自治域as2时被采样,接着检查所在自治域as2的lct未发现流id的表示q,说明该数据包属于新数据流,则为其分配普通标签,即接着在其标记域内写入标签l且在as2的自治域控制中心保存的lct中记录为{*,q,l}。因为as1、as2分别是数据流p、q途径的第一个溯源自治域,所以在两张标签转换表lct中的入标签均为空,如图4所示。数据流p经过自治域as4时被采样,接着检查as4的lct,未发现该流id的表示p,说明该数据包属于新数据流,则为其分配普通标签,即在其标记域内写入标签r,并在其自治域控制中心存储的lct中记录为{m,p,r};同理,数据流q经过自治域as4时被采样,接着检查as4的lct,未发现该流id的表示q,说明该数据包属于新数据流,则为其分配普通标签,即在其标记域内写入标签r,并在其自治域控制中心存储的lct中记录为{l,q,r};继续回到图4,数据流p、q流经as6,由于as6不是溯源自治域,所以不进行标签覆盖操作,直接转发至自治域as7;继续回到图4,数据流p经过自治域as7时被采样,接着检查as7的lct,未发现该流id的表示p,说明该数据包属于新数据流,则为其分配普通标签,即在其标记域内写入标签s,并在其自治域控制中心存储的lct中记录为{r,p,s};数据流q经过自治域as4时被采样,接着检查as7的lct,未发现该流id的表示q,说明该数据包属于新数据流,则为其分配普通标签,即在其标记域内写入标签s,并在其自治域控制中心存储的lct中记录为{r,q,s};[0066]继续回到图4,位于自治域as3的攻击者为隐藏真实身份,通过伪造源ip地址将攻击流伪装成数据流p、q。攻击流p、q途径自治域as3、as5最终到达受害者所在的as7。在经过溯源自治域as3时,攻击流p、q被普通标签n标记。随后到达as7时,检查as7的lct发现这两个流p、q的记录,原始记录的入标签是r与当前的入标签n不相同,则攻击流p、q被认定为可聚合流,故为其分配了特殊标签s‑α,得到{n,q,s‑α}、{n,p,s‑α},也分别记录在as7的lct中。[0067]溯源自治域在数据流中写入标签本质上是在数据包ip报文头部添加标签信息,具体标记域编码策略如图5所示,通过重载ip包头的id字段、保留位和分片偏移字段来设计标记域,根据ip协议,分片相关字段标识域(16bit)、标志域首位(1bit)、片偏移域(13bit)总共占据30位。前16位用来存放普通标签,剩余14位则用来存放特殊字段。具体分配由各自治域根据实际情况决定,不需要在全网达成共识。[0068]步骤2:受害者从攻击包中提取流id和携带的标签提供给受害者所在自治域的自治域控制中心,向该自治域控制中心提交溯源请求;[0069]在本实施例中,受害者v1想要溯源,于是向其所在自治域as7的自治域控制中心即node7提交溯源请求:request[p、s‑α],如图6所示,其中,p和s‑α分别为从攻击包中提取的流id和标签;[0070]步骤3:根据溯源请求,系统中的各自治域控制中心在区块链网络中协同溯源;[0071]所述步骤3如图7所示包括如下具体步骤:[0072]步骤3.1:若受害者所在自治域的自治域控制中心为区块链网络中的全节点,则执行步骤3.2,若受害者所在自治域的自治域控制中心为区块链网络中的轻节点,则转至步骤3.3;[0073]如图5所示,受害者v2所在自治域as5对应的自治域控制中心在区块链网络中为轻节点,在这种情况下,受害者v2提交的溯源请求:request[q、n]无需在本地溯源,直接执行步骤3.3,如图5所示。[0074]步骤3.2:收到溯源请求后,受害者所在自治域的自治域控制中心首先在本地进行一次溯源,该自治域控制中心依据攻击流的流id和攻击流携带的标签检索该自治域的lct获取其入标签,并用流id和入标签的组合更新溯源请求;[0075]在本实施例中,由于自治域as7的自治域控制中心node7为区块链网络中的全节点,所以收到溯源请求时需要先在本地进行一次溯源,该自治域控制中心node7依据攻击流的流id表示p和攻击流携带的标签s‑α检索该自治域的lct获取攻击包的入标签n,此时溯源请求更新为:request[p、n],如图5所示。[0076]步骤3.3:通过链上的标签声明事务和地址声明事务确定写入该溯源请求的标签的溯源自治域及其自治域控制中心在区块链网络中的地址,自治域控制中心将该溯源请求视作请求事务,使用椭圆曲线密码算法对该请求事务数据进行加密后将其发布到区块链网络;[0077]在本实施例中,根据链上的标签声明事务可知标签n为自治域as3所有,以及根据链上的地址声明事务可知,as3的自治域控制中心node3在区块链网络中的地址(注意,此时自治域as7无法通过标签确定as3的真实身份,由于区块链网络的匿名性,as7只知道标签n对应的区块链地址,同样as3也不知道as7的真实身份),自治域as7的自治域控制中心node7将溯源请求request[p、n]作为请求事务通过区块链网络发布,;[0078]所述使用椭圆曲线密码(ellipticcurvecryptography,ecc)算法对该请求事务数据进行加密的方法为:首先选择一条fq域内的椭圆曲线以获取相关参数,本发明中具体参数如表2所示:[0079]表2[0080][0081]然后,node7将交易中除接收地址以外的内容编码到椭圆曲线上的一点m,然后使用node3的公钥k以及自身生成的随机数r加密m,结果为二元组c={rp,m rk};其中node3的公钥k对应的私钥为s,且满足k=s*p。[0082]步骤3.4:在区块链网络中,该请求事务会被一超级节点进行打包并交由另一超级节点进行验证,如图8所示,验证通过后会广播至所有节点进行上链;[0083]在本实施例中,该请求事务会被超级节点node1进行打包并交由超级节点node2进行验证,验证通过后会广播至所有节点进行上链。[0084]步骤3.5:被确定为写入该溯源请求的标签的溯源自治域的自治域控制中心查询链上数据,获取指向自己的待处理请求事务后进行解密得到具体的交易内容;[0085]在本实施例中,由于请求事务被加密,想要确认事务内容,首先要对数据进行解密,节点node3查询链上数据,获取指向自己的待处理请求信息后进行解密得到具体的交易内容,具体是,节点node3收到该请求事务后,使用私钥s解密c可得m=m rk‑s*rp,然后,将m用椭圆曲线算法进行解码就可以得到具体的交易内容。[0086]步骤3.6:接收溯源请求的自治域控制中心发布其内容已经过椭圆曲线密码ecc算法加密的确认事务以回复该请求事务,所述确认事务的内容包括愿意响应该溯源请求和拒绝响应该溯源请求;[0087]在本实施例中,溯源自治域as3收到溯源请求时,node3发布确认事务以表明是否愿意响应本次请求,如果不愿意响应本次溯源请求,就在确认事务的内容标记为n;如果愿意响应本次溯源请求,就在确认事务的内容标记为y。该确认事务依然涉及到非转账交易的数据,依然是采用椭圆曲线密码ecc算法对该确认事务的数据进行加密。[0088]步骤3.7:在区块链网络中,确认事务会被一个超级节点打包后交由另一超级节点进行验证,验证通过后该确认事务会被广播至所有节点进行上链;[0089]在本实施例中,该确认事务会被超级节点node1进行打包并交由超级节点node2进行验证,验证通过后会广播至所有节点进行上链。[0090]步骤3.8:发送溯源请求的自治域控制中心通过检查链上数据获取确认事务并对该确认事务进行解密,如果确认事务的内容为拒绝响应该溯源请求,则整个溯源过程结束,如果确认事务的内容为愿意响应该溯源请求,则根据链上最新公布的的费用声明事务发布加密的转账事务以支付交易费,并将该转账事务发布到区块链网络中;[0091]在本实施例中,节点node7检查链上数据,获取源于节点node3发布的确认事务,根据和步骤3.5相同的解密方法解密,如果确认事务内容中的标记为n,则整个溯源过程结束。如果确认事务内容中的标记为y,则根据节点node3最新公布的费用声明获取此次溯源服务需要支付的的交易费用,节点node7发布转账事务以支付溯源服务费,并将该转账事务发布到区块链网络中。[0092]由于转账事务涉及到转账类交易的地址数据,对该类型的数据,采用一次性地址技术进行加密,在本实施例中,具体是:[0093]首先node7选择一个随机数r和node3的两个公钥a、b计算一个一次性公钥l=hs(ra)g b,其中,a=ag,b=bg,a和b为公钥a、b对应的私钥,g为公共变量,是椭圆曲线上的一个基点,其值见表2;然后node7使用公钥l构造新的输出地址addb=h(l),向该地址转账,并将r=rg放到该转账事务中;由于转账事务还涉及到转账类交易的金额数据,对该类型的数据,采用基于模幂计算的一种简单承诺方式来保护数据安全;根据节点node3最新公布的费用声明,node7需要给node3转账的金额为m,则计算交易金额对应的承诺e=gx(modn),将承诺e放到该转账事务中,其中,g和n是公开的,g为大于1的底数,n为两个大素数p、q的乘积;[0094]步骤3.9:在区块链网络中,该转账事务会被一个超级节点进行打包并交由另一个超级节点进行验证,验证通过后会广播至所有节点进行上链;[0095]在本实施例中,该转账事务会被超级节点node1进行打包并交由超级节点node2进行验证,验证通过后会广播至所有节点进行上链。由于是转账事务,超级节点node2验证时要分两方面验证其转账金额的合法性。[0096]第一方面是验证转账金额是否小于0,方法是:比较e与1的大小关系,若e>1,则说明m>0,此时交易合法,否则交易非法,验证失败;[0097]第二方面是验证node7账户中金额是否足够支付这笔转账金额,方法是:遍历node7账户的所有转账交易,包括转入和转出交易;将转入交易和转出交易的资产承诺分别叠乘,求得转入承诺和转出承诺并令两者做差,求得该交易账户的资产承诺若ea<e,则说明该账户没有足够资产承担本次交易,验证失败;否则验证成功,该交易将得到共识。[0098]步骤3.10:响应溯源请求的自治域控制中心对转账金额进行检查,若转账金额无误则转至步骤3.11,否则,则拒绝进行溯源服务;[0099]在本实施例中,node3会对转账金额进行检查,由于node3事先知道本次交易的具体金额,可计算e*=gm,并验证交易中的承诺,若e*=e,说明交易金额无误,否则金额有误,拒绝进行溯源服务。[0100]步骤3.11:响应溯源请求的当前自治域控制中心根据请求事务中的流id和标签查找其存储的lct获取入标签,若所获取的入标签为空,则该当前自治域即为攻击者,该自治域的自治域控制中心将获取的入标签信息利用椭圆曲线加密算法加密后作为响应事务发布到区块链网络;若所获取的入标签不为空,该自治域的自治域控制中心用当前的流id和入标签的组合更新溯源请求,并转至步骤3.3;[0101]在本实施例中,node3收到溯源服务费后,根据请求事务中的p和n查找node3的lct获取入标签*,然后如图6所示,将此信息以响应事务的形式发布到区块链网络,该事务涉及非转账类的交易数据,使用椭圆曲线加密算法先进行加密。[0102]步骤4:受害者所在自治域的自治域控制中心从区块链网络中获取所需的溯源结果,并将此溯源结果发送给受害者。[0103]在本实施例中,受害者v1所在自治域的自治域控制中心node7查询链上数据,获取响应事务并进行解密后获得所需的溯源结果,并将此溯源结果发送给受害者v1。[0104]显然,上述实施例仅仅是本发明的一部分实施例,而不是全部的实施例。上述实施例仅用于解释本发明,并不构成对本发明保护范围的限定。基于上述实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,也即凡在本技术的精神和原理之内所作的所有修改、等同替换和改进等,均落在本发明要求的保护范围内。当前第1页12当前第1页12
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜