一种基于区块链的BGP路由泄露检测方法及系统

文档序号:26626487发布日期:2021-09-14 21:41阅读:75来源:国知局
一种基于区块链的bgp路由泄露检测方法及系统
技术领域
:1.本发明涉及互联网安全
技术领域
:,具体涉及一种bgp路由泄露检测方法及系统。
背景技术
::2.一、基本概况3.互联网被划分为许多as(autonomoussystem,自治域系统)。自治域之间使用bgp(bordergatewayprotocol,边界网关协议)交换路由信息,并遵循自治域之间商定的路由策略。路由策略中的导入(import)和导出(export)策略的制定取决于自治域之间的商业关系(简称自治域关系)。违反路由策略的路由传播被称为路由泄露。4.在gao等人1.提出自治域关系模型中,根据自治域之间的协议,自治域关系可以分为c2p(客户‑提供商,customertoprovider),p2p(对等‑对等,peertopeer),s2s(兄弟‑兄弟,siblingtosibling)。客户通过提供商连接到互联网的其余部分,并向其付费。自治域根据与邻居的关系设置导出策略:向提供商和对等导出自身及客户的路由,向客户和兄弟导出所有拥有和学习到的路由。这种选择性导出策略使得bgp路由表中的条目符合一种特定的模式。该模式即为“无谷规则”:在p2c或者p2p边后不能有c2p或者p2p边。5.违反“无谷规则”的路径被推断为发生路路由泄露。基于上述自治域关系模型假设,路由泄露可以分为客户路由泄露(crl,customerrouteleak)、对等路由泄露(prl,peerrouteleak)2.。这两种路由泄露分别代表从客户或对等泄露者接收到了泄露者的提供商或对等路由。每一种路由泄露中都至少有3个自治域参与其中:受害者自治域v、路由泄露者自治域l以及路由拥有者o。6.路由泄露是威胁域间路由安全的一个重要原因,22%的域间路由安全问题由路由泄露引起3.,路由泄露能够导致大规模服务中断。2018年11月12日,由于路由泄露,google在世界许多地方都发生停机故障4.。此次事件由尼日利亚isp(internetserviceprovider,互联网服务提供商)mainone(as37282)错误配置引起。另据bgpmon5.统计,几乎每天都会发生路由泄露事件。7.针对这些路由泄露攻击,大量的路由泄露安全机制被提出。但是已有路由泄露检测方案存在的源数据可篡改、合法路由模式构建过程不透明和不规范,以及路由泄露检测后缺少反馈机制的问题。8.基于当前的路由泄露研究现状,亟需设计一种围绕自治域关系管理和路由泄露处理的路由泄露检测框架,帮助检测和阻止路由泄露的发生。该框架以区块链为基础,实现自治域的分布式协作,同时具有透明、不可篡改等特点。9.二、国内外研究现状10.一)传统路由泄露安全机制11.传统路由泄露安全机制大致可以分为四类:基于公开数据检测、基于历史数据检测、bgp路径属性辅助、主动检测。12.1、基于公开数据13.目前,路由泄露检测机制已经利用的公数据为irr(互联网路由注册机构,internetroutingregistries)中的路由策略。路由策略是自治域对路由期望的描述,通过分析路由是否违反了某些自治域的路由策略,可以判断是否发生了路由泄露。irr是存储路由策略以及管理信息的分布式数据库。网络操作者使用rpsl描述各种级别(as级、ip级、路由器级)的路由策略,并储存到对应的irr中。然而,irr中的数据是需要手动输入的,因此成本高昂并且容易出错。14.2、基于历史数据检测15.基于历史数据检测是根据以往路由等历史数据推断合法路由应当满足的模式,并将不满足该模式的路由推断为路由泄露。根据历史数据来源以及安全模式分类,基于历史数据路由泄露检测可以分为以下几种:16.(1)推断自治域关系17.通过分析路由中的自治域关系,可以判断是否发生了路由泄露。由于部分自治域不愿公开自己的自治域关系,需要对自治域关系进行推断。18.从2001年,gao1.提出第一个自治域关系推断算法后,不断有各种自治域关系推断算法被提出。这些算法大致可以分为三类6.,分别为网络特征排序法[1,7]、组合优化法[8–13]、局部确定法[14–18]。其中,网络特征排序法的关键是寻找能够衡量自治域阶级的网络特征,并根据自治域之间的特征值大小确定自治域商业关系。网络特征通常选取的是全局特征,例如节点度、传递度、rank值,所以数据的全面性对结果影响很大。组合优化法将自治域的商业关系推断问题转化为组合优化问题,并采用近似或随机算法进行求解。这类算法利用图的特性进行推断,时间复杂度较高,算法准确率不高。局部确定法首先使用辅助信息进行关系推断,再利用已经得到的部分关系推断剩余关系。这类算法简单,准确度较高,但关键在于如何获得和提取辅助信息。[0019]目前,已经应用的辅助信息包括irr数据库中的bgp团体(community)属性、as‑set对象、显式的路由策略描述以及顶级自治域集团。其中,顶级自治域集团在[18]工作中被称为clique,在[19]工作中被称为tier‑1。这两项工作都假设顶级自治域集团对象之间两两相连并建立对等关系,而与外部对象建立p2c关系。顶级自治域集团的获取可以通过互联网上的信息发布[20]或通过bron/kerbosch算法[21]推断。[0020](2)环路检测[0021]li等人[22]发现路由泄露会产生环路,使得可以通过检测环路来识别路由泄露。该方法基于无谷规则和自治域关系无环的假设。该方法首先采集路径中不想相邻tier‑1自治域的路由,然后排除产生该路由的原因是由于兄弟关系或者相互传输关系(一种复杂的自治域关系),最终确定泄露者自治域。该方法无需对bgp协议进行更改。该方法的缺点是,仅考虑了部分路由泄露情况。同时,该方法也依赖于关系推断结果的准确性。[0022](3)跨路径检测[0023]跨路径检测[23]将新路由与历史路由表中路由进行比较,当二者在自治域关系推断结果上产生冲突时,判断新路由发生了路由泄露。该方法需要在路由泄露检测过程进行前,设置临时路由过滤器,以保证路由表中不包含发生路由泄露的路由。该方法不影响原始的bgp系统,但是要求路由器进行准备操作。[0024](4)安全模式提取[0025]su等人[24]使用一年内生存时间长(超过一天)的路由构建安全模式,并使用安全模式出现的次数衡量安全模式的准确度。最后,实时在线检统计不符合安全模式的新模式,当数量超过门限值,将符合新模式的路由推断为路由泄露。该方法考虑到了路由生存时间与自治域关系推断准确性之间的关系。该方法的缺点是没有考虑到自治域关系的变化。同时,为了保证提取的安全模式更加全面,需要部署尽可能多的观测点。[0026]3、bgp路径属性辅助[0027]通过原始或增加bgp路径属性的方式使得自治域在传递路由时动态协商路由策略。使用bgp路径属性的方法在不依赖第三方基础设施的前提下检测路由泄露,使用的bgp路径属性有以下几种:[0028](1)bgp团体属性[0029]bgp团体(communities)属性可以被用来标记路由,从而帮助上游或者下游路由器修改路由决策。团体属性的前16位用来表示定义实体的自治域号,后16位代表自定义或者预定义的行为或标签。预定义的团体属性[25]包括no_export、no_advertise、no_peer,这些预定义团体属性限制了路由的传播。自定义团体属性的过程通常通过文档或网站,使用自然语言描述出来。bgp团体属性是明文,很容易篡改、伪造、删除。其不当使用可能对域间路由系统产生更大的安全威胁。miquel等人[26]提出了一种分布式团体属性发布系统,以保证团体属性以安全的方式传递。[0030](2)rlp属性[0031]rlp(路由泄露保护,route‑leakprotection)[27]是一个新的路径属性。当声明路由时,将rlp加入到更新消息当中。rlp有两种取值,分别为00和01。00代表默认值,不进行任何操作。01代表不要向上传播。这种方案可以一定程度上阻止路由泄露的发生,但是仍然存在许多问题。首先,有意泄露路由的客户可能故意将rlp设置为00,误导提供商。其次,rlp的错误使用可能会导致合法路由被推断为路由泄露。基于上述考虑,rlp字段需要加密保护。草案中建议将rlp字段包含在bgpsec中secure_path段中的flags字段中,所以bgpsec中的密码安全机制预计也适用于rlp字段。但bgpsec目前存在较大的性能问题,使用rlp字段更加剧了这个问题。[0032](3)iotc属性[0033]基于角色的路由泄露阻止技术[28]定义了5种角色,分别为提供商(provider)、客户(customer)、对等(peer)、内部(internal)、复杂(complex)。bgp角色能力作为新的路径属性传递。当接收方接收到该属性,基于对双方关系的认知对接收到的角色进行检查。当发送方为对等或客户或者在前缀为对等或客户时,创建一个内部只传递给客户属性(iotc,internalonlytocustomer),该属客户,从而阻止路由泄露的发生。这种方法可以防止由于bgp错误配置导致的路由泄露,并且由于角色只向建立链接的邻居公开,不对第三方透露任何信息,保护了私密性。同时,避免了维护管理基础设施的费用。该方法也需要依赖于bgpsec,与rlp一样,具有性能问题。[0034]4、主动检测[0035]主动检测是指自治域怀疑接收到的路由发生路由泄露时,采用主动发送消息并观察结果的方式判断是否发生了路由泄露。主动检测包括bfb(良性欺骗,benignfoolback)路由泄露识别技术和r‑bfb(反向良性欺骗,reversebenignfoolback)[23]。主动检测浪费了网络资源,并且无法与其他自治域协调共同阻止路由泄露的发生。[0036]二)基于区块链的路由泄露安全机制[0037]基于区块链的路由泄露安全机制的核心思想就是将路由策略或自治域关系以不可篡改的方式记录到分布式账本上,目标自治域下载路由策略或自治域关系并在bgp路由器上进行配置,从而检测并阻止路由泄露的发生。[0038]miquel等人[26]提出一种基于区块链的路由泄露解决方案,将路由策略上传到区块链。该方案的一个重要设计原则就是,无需bgp路由器、bgp协议、bgp团体属性有任何更改。该方案正式定义了路由策略,并提供一种安全机制将路由策略上传到分布式账本上,进而传递给参与as。[0039]chen等人[29]提出了基于区块链的域间安全路由框架isrchain,将自治域关系上传到区块链。isrchan根据as与邻居的关系,对每一个as跳进行标记。最终,通过算法检测路径是否违反“无谷规则”,从而判断是否发生了路由泄露。上述路由泄露检测算法在区块链上使用智能合约实现。[0040]现有的基于区块链的路由泄露安全机制,构建合法路由选择的数据单一,构建的模型较为简单,致使路由泄露误报率较高,检测准率较低。[0041]从上述两个方面介绍了国内外研究现状,分别为传统路由泄露安全机制和基于区块链的路由泄露安全机制。[0042]三、现有研究存在的问题[0043]当前路由泄露安全机制存在以下问题:[0044](1)使用历史路由、路由策略或自治域关系的其中一种进行路由泄露检测,数据的真实性无法得到保障;[0045](2)对于未使用区块链的路由泄露安全机制,bgp协议不提供加密服务,数据的安全性无法得到保障;[0046](3)自治域关系假设和路由泄露检测规则过少,无法尽可能多地覆盖到所有情况;[0047](4)当检测到路由泄露时,缺乏对已有数据的反馈。技术实现要素:[0048]本发明要解决的技术问题是:本发明为了解决已有的路由泄露检测机制存在自治域关系数据准确性和安全性差问题以及缺乏反馈机制等问题,进而提供了一种基于区块链的bgp路由泄露检测方法及系统。[0049]解决所述技术问题的思路:[0050]本发明主要研究面向基于区块链的bgp路由泄露安全机制,基于所述问题设计一种分布式协作的架构(即本发明),使得自治域能够协作管理自治域关系及有关信息。在该架构中,使用区块链解决数据的真实性和安全性的问题,设计路由期望发布机制考虑除传统自治域关系之外的复杂情况,增加路由泄露检测规则以覆盖更多的路由泄露情况,设计关系反馈机制解决已有研究无法适应自治域关系变化的问题。[0051]路由泄露是威胁域间路由安全的一个重要原因,可能造成大规模自治域网络中断。目前,已有的路由泄露检测机制存在自治域关系数据准确性和安全性问题、检测预设规则过少和缺乏反馈机制等问题。针对以上问题,本发明提出了基于区块链的bgp路由泄露检测框架rlda。本发明主要工作如下:[0052](1)针对路由泄露威胁模型,从顶层进行rlda架构设计。架构设计主要包括明确rlda和bgp路由器的交互关系以及提出用于保护网路连通性的中继网络。其中,bgp路由器利用自治域管理的rlda节点上的信息进行路由泄露检测,并将检测结果反馈给rlda节点。中继网络通过增加冗余节点的方法减小网络断开的风险,从而保护网络连通性。[0053](2)针对自治域关系数据正确性问题,提出自治域关系管理技术asrm。asrm将自治域关系数据分为三类:路由策略、自治域关系、路由期望。其中,重点介绍了基于路由策略的自治域关系推断算法,算法设计从路由策略解析、冲突标记、策略矩阵构建、关系提取四方面进行。[0054](3)针对于路由泄露检测预设规则过少,分别提出了基于无谷规则和路由稳定性条件假设的路由泄露检测技术,增加了路由泄露检测情况。设计路由泄露处理机制,当发现路由泄露时,从发现者、接收者、泄露者三个方面采取措施进行路由泄露缓和。当未发现路由泄露时,使用合法路由对自治域关系进行反馈。[0055]本发明为解决上术技术问题所采用的技术方案为:[0056]一种基于区块链的bgp路由泄露检测方法,所述方法的实现过程包括:[0057]自治域关系管理过程:[0058]对自治域发布的自治域关系数据:路由策略、自治域关系、路由期望进行管理;通过路由策略推断自治域关系,发布路由期望,路由期望是自治域对合法路由模式的描述;[0059]路由泄露检测及处理过程:[0060]自治域关系数据以及自治域路径作为路由泄露检测的输入;利用自治域关系数据描述的合法路由模式对自治域路径中出现的路由泄露进行检测,使用基于无谷规则假设的路由泄露检测技术进行检测,如发现路由泄露则对路由泄露影响进行缓和处理;如没有发现路由泄露只对自治域关系数据进行反馈。[0061]进一步地,利用中继网络即通过增加冗余节点的方式来保障区块链网络的连通性。[0062]进一步地,所述自治域关系管理过程包括成员管理、自治域关系数据访问控制、对路由期望进行分类和通过路由策略推断自治域关系。[0063]进一步地,所述自治域关系管理过程具体为:[0064]一)、成员管理[0065]对自治域关系数据进行管理时,根据互联网数字资源(ip地址和as号)分配流程,对用户(成员)进行抽象分类,得到以下5种层级由上到下的角色(role)及各自职能:[0066](1)iana(internetassignednumbersauthority):作为权威基础,负责建立智能合约;使用“代理+投票”的方式来虚拟地实现其职能;[0067](2)rir(regionalinternetregistry):作为信任锚,负责分配2种类型的资源(ip地址和asn),需iana授权后加入;[0068](3)nir(nationalinternetregistry)或lir(localinternetregistry):作为分配者和出租者,将资源下发给as,需rir授权后加入;[0069](4)isp(internetserviceprovider):作为资源承租人,有权发布绑定其ip地址资源和asn资源的roa,需rir或nir授权后加入;[0070](5)自治域,能够利用区块链客户端检索或发布自治域关系数据以及路由泄露事件;[0071]二)、自治域关系数据访问控制[0072]自治域对自身属性进行设置,并使用智能合约获取自治域关系数据,增加的属性内容为自治域的邻居和自治域关系范围,智能合约基于属性规则对自治域关系数据的访问范围进行控制;[0073]三)、对路由期望进行分类[0074]对路由期望分为:无谷规则期望、复杂关系期望、流量工程期望、ixp期望;[0075]无谷规则期望要求自治域之间的路由满足无谷规则;[0076]复杂关系期望要求自治域之间的路由满足自治域之间定义的复杂关系,复杂关系包括混合关系、部分传输关系、付费对等、备份传输;[0077]流量工程期望要求路由传播满足流量工程就流的特征、估计量、备选路由、流的预期生存事件四方面的要求;[0078]ixp期望要求ixp为自治域提供流量交换的基础设施,但不参与自治域关系推断以及路由泄露检测过程;[0079]四)、通过路由策略推断自治域关系[0080]通过路由策略推断自治域关系具体为:基于路由策略的自治域关系推断问题定义为,给定自治域asa和它的邻居,以及使用类rpsl语言描述的路由策略,推断asa与其邻居之间的商业关系,基于路由策略的自治域关系推断算法包括以下部分,路由策略解析、路由策略冲突标记、路由策略矩阵构建、策略矩阵关系推断;路由策略解析将使用rpsl描述的路由策略解析为相互依赖的数据结构,路由策略冲突标记对自治域配置的路由策略冲突的情况进行标记,策略矩阵构建使用解析出来的路由策略数据结构为每一个自治域构建一个关于导入导出策略的矩阵,策略矩阵关系推断通过分析策略矩阵的特征进行自治域关系推断。[0081]进一步地,所述基于路由策略的自治域关系推断算法具体为:[0082]1)路由策略解析[0083](1)as路径布尔表达式转化为具体路径[0084]当as路径使用正则表达式描述时,为减轻后一步分析的工作量,将正则表达式替换为所有可能的具体as路径;[0085](2)集合对象依赖关系重构[0086]在rpsl中,将集合定义抽象为有向树的构建,有向树t=(v,e)中,v是u的父亲(e=(v,u)∈e),当且仅当v包含u;[0087]在存储时,使用唯一标识字符串指向包含的成员,根据字符串组成,确定成员的类型,以及是否需要递归获取成员;[0088](3)构建团体属性语义表[0089]部分自治域使用自定义的团体属性对路由进行标记;被标记的路由称为“被着色”;团体属性的语义除了发布在irr或自治域的noc网站上;对团体属性进行分类,并设计标准化格式;[0090]2)路由策略冲突标记[0091]路由策略冲突指的是不同自治域配置不一致,包括过滤器冲突、决策冲突;过滤器冲突是由错误配置导致的,决策冲突是由bgp动态以及自治域之间缺少协作导致的;[0092]针对过滤器冲突:给定相邻的两个自治域asa和asb,efa‑b表示a向b导出的路由过滤器,ifa‑b表示b从a导入的路由过滤器;当ifa‑b至少拒绝一个efa‑b表示的过滤器对象,称asa和asb发生过滤器冲突;检测过滤器冲突的关键是判断ifa‑b∩efa‑b是否等于efa‑b,如果相等证明导入过滤器未拒绝导出过滤器的部分路由对象,即未发生过滤器冲突;反之,发生了过滤器冲突;[0093]针对决策冲突:给定自治域asa、asb和asc;asa倾向于通过asc到达asb,asb倾向于通过bgp路由(超过一跳)到达asc;此时,asa和asb的期望不同,称asa和asb发生了决策冲突;检测决策冲突需要动态获取bgp路由,并检查路径之间的碰撞;路由策略相对于路由动态更新频率低,无法用来检测决策冲突;[0094]当检测到策略冲突时,由于无法判断哪一方发布的策略准确,仅标记策略冲突,并暂时以较为严格过滤器作为推断依据;[0095]3)路由策略矩阵构建[0096]通过分析自治域级的导入导出行为,提取路由策略,并表示为布尔矩阵;使用路由对象表示过滤器所表示的逻辑上的过滤器;问题描述为:给定asa,和import和export集合,计算布尔矩阵triplet[i][j];import[i]和export[i]分别表示从邻居i导入和导出的对象集合;邻居对等表示为由as对象、as‑set对象、as‑any等关键组组成的逻辑表达式;当且仅当时,triplet[i][j]的值为真,即从邻居i导入的路由都被导出到邻居j;[0097]针对每一个自治域,检查自治域所导出的每一个路由对象;检查路由对象是被当前自治域所构造的,还是被当前自治域所导入的,即检查每个对象的起源;[0098]在确定路由对象来源时判断从邻居获得的对象是否为自治域集合,如果是进行包含关系判断:需要检查自治域集合中所有的自治域成员以判断是否满足导入路由对象包含于导出路由对象;当自治域集合中的成员为自治域集合时,所述包含关系判断需要递归进行,将自治域集合重新定义为对自治域可见的成员构成的集合;[0099]判断策略矩阵triplet是否对称:triplet=triplett,如查是路由策略矩阵构建正确,否则丢弃构建的数据,然后继续对其他自治域的路由策略矩阵进行构建;[0100]4)策略矩阵关系推断[0101]根据路由策略矩阵推断自治域之间的关系,通过处理一个自治域发布的路由策略,能够得到该自治域的路由策略矩阵,通过观察该路由策略矩阵,可以将自治域邻居分为两类,分别为a类邻居(限制性)和b类邻居(非限制性);自治域向a类邻居导出自己和部分其他邻居的路由,表现为路由策略矩阵对应列不全为真;自治域向b类邻居导出自己以及收到的全部路由,表现为路由策略矩阵对应列全为真;[0102]通过分析相邻的自治域是对方的哪一类邻居推断自治域商业关系,自治域关系推断策略如下表:[0103][0104]进一步地,路由泄露检测及处理过程包括路由预处理的步骤、使用基于无谷规则假设的路由泄露检测技术进行检测的步骤、路由泄露缓的步骤和关系反馈机制的步骤。[0105]进一步地,路由泄露检测及处理过程具体为:以自治域关系数据(asrd)以及自治域路径作为输入进行路由泄露检测,并设计路由泄露处理机制,[0106]1)路由预处理,路由预处理流程如下:[0107](1)去除重复自治域;[0108](2)针对某一路由,分析每一跳自治域的路由期望:[0109]如果自治域没的路由期望为无谷规则期望,跳过该自治域;[0110]如果自治域的路由期望为复杂关系期望或流量工程期望,寻找该自治域在当前路由条件下与邻居的关系;[0111]如果自治域的路由期望为ixp期望,删除当前自治域;[0112](3)得到处理后的自治域路径aspath以及路由标记列表flaglist,用作路由泄露检测算法的输入;[0113]2)使用基于无谷规则假设的路由泄露检测技术进行检测,具体为:[0114]通过检测路径中是否有c2p关系和p2p关系组成的山谷判断是否有路由泄露发生,如果自治域路径中末跳自治域为当前自治域的客户或对等,判断标记列表flaglist中每一跳是否都被标记为p2c或未知;如果自治域路径中末跳自治域为当前自治域的提供商,判断标记列表flaglist是否满足有若干跳被标记为c2p紧接着是1跳或0跳被标记为p2p紧接着是若干跳被标记为p2c;如果自治域路径在上述两种情况下未满足对应判断条件,则检测到路由泄露;否则,未检测到路由泄露;[0115]3)、路由泄露缓和:[0116]检测到路由泄露后,需要从发现者自治域、接收者自治域、泄露者自治域三方面进行操作,从而对路由泄露进行缓和并阻止路由泄露的进一步传播,具体为[0117](3.1)发现者自治域[0118]接收者自治域a收到路由r后,检查r中路径的每一个自治域是否已经在区块链上发布了对应的路由泄露事件记录,如果没有对应记录,接收者自治域在调用路由泄露事件发布合约发布路由泄露事件;[0119](3.2)接收者自治域[0120]当接受者自治域在rlda中获得路由泄露事件后,可能会对路由选择策略进行更改;路由选择策略分为两类,客户路由与提供商或对等路由之间的选择和对等路由和提供商路由之间的选择;[0121]客户路由与提供商或对等路由之间的选择决策过程如下:[0122](1)如果客户路由没有检测到路由泄露,相比于提供商或对等路由,优先使用客户路由;[0123](2)如果客户路由检测到路由泄露,同时提供商或对等路由检测到路由泄露,优先选择客户路由;[0124](3)如果客户路由发生泄露,但是提供商或对等路由没有检测到路由泄露,优先使用提供商或对等路由;[0125](3.3)泄露者自治域[0126]泄露者自治域在发现路由泄露事件后,在bgp系统中撤销路由,也可以在区块链上更新自己的自治域关系或者路由策略;泄露者自治域在bgp系统中撤销路由的方式包括以下两种:[0127](3.3.1)在更新消息的撤销(withdraw)字段通知到达目的地址的路由被标记为不可再用;[0128](3.3.2)关闭bgp路由器,隐式删除所有路由器声明的路由;[0129]撤销路由后,泄露者在rlda上关闭路由泄露事件,并等待其他自治域投票;[0130]4)关系反馈机制[0131]当自治域观察到的非泄露路由存在部分未知关系链接时,可以基于无谷策略对剩余全部或部分链接关系进行推断,基于无谷规则的关系反馈分为两个步骤,第一步对每条路由中的链接进行标记,第二步使用标记过的链接进行关系推断。[0132]进一步地,在上述关系反馈机制中,[0133]针对第一步,进行链接关系标记;满足无谷规则的路径由3部分组成:上山路径(uphill)、下山路径(downhill)和中间可能存在的p2p链接;推断剩余链接关系的关键就是找到路由在哪个地方从上山转变为下山(转变点);[0134](1)、当存在一条p2p链接时,p2p两边的路径分别是上山路径和下山路径,即可以将p2p链接前的链接标记为c2p,将p2p链接后的链接标记为p2c;[0135](2)、当不存在p2p链接时,找到最接近的c2p和p2c链接对(由于是非泄露路由,一定是c2p链接在前,p2c链接在后),转变点应当在这对链接之间;由于无法知道转变点的具体位置,不对链接对之间的链接关系进行推断,而将c2p链接前的链接标记为c2p,将p2c链接后的链接标记为p2c;[0136]针对第二步,进行自治域关系推断,为了减小自治域错误推断的概率,在算法中记录路由表中包含对应标记的路径条数;基于的假设是,错误配置的bgp路由器仅影响一小部分路由表;设定小常数t,根据将链接l和反向链接l’标记为c2p的路径条数,将关系推断分为以下情况:[0137](1)、超过t条路径将l标记为c2p,同时,超过t条路径将l’标记为c2p,将l推断为s2s关系;[0138](2)、至少1条且至多t条路径将l标记为c2p,同时,至少1条且至多t条路径将l’标记为c2p,将l推断为s2s关系;[0139](3)、至少t条路径将l标记为c2p,或者,没有路径将l标记为c2p,将1推断为c2p关系;反之,将1推断为p2c关系。[0140]一种基于区块链的bgp路由泄露检测系统,所述系统基于区块链来实现,所述系统包括自治域关系管理模块、路由泄露检测及处理横块;自治域关系管理模块,用于对自治域发布的自治域关系数据:路由策略、自治域关系、路由期望进行管理;通过路由策略推断自治域关系,发布路由期望,路由期望是自治域对合法路由模式的描述;路由泄露检测模块,用于自治域关系数据以及自治域路径作为路由泄露检测的输入;利用自治域关系数据描述的合法路由模式对自治域路径中出现的路由泄露进行检测,使用基于无谷规则假设的路由泄露检测技术进行检测,如发现路由泄露则对路由泄露影响进行缓和处理;如没有发现路由泄露只对自治域关系数据进行反馈。进一步地,所述系统利用中继网络即通过增加冗余节点的方式来保障区块链网络的连通性。[0141]本发明相对于现有技术至少具有以下有益技术效果:[0142]本发明是一种基于区块链的路由泄露检测架构rlda,所述方案能保障区块链连通性、准确安全性地实现自治域关系数据管理、泄露检测和处理,具体优点如下:[0143]基于中继网络的区块链连通性保障:区块链作是运行在bgp上层的应用协议。rlda面对的是自治域级的攻击者。该级别的攻击者能够制造分区,从而阻止区块链系统达成共识。攻击者可以发起路由泄露攻击并有选择地删除跨组件的连接,同时保持分区内部连接不受影响,来执行拦截攻击。攻击者能够在不同分区发布不同的自治域关系,从而使得路由泄露无法被检测出来。本发明设计一种中继网络(relaynetwork)用于保障区块链的连通性。中继网络与区块链部分并行运行,由一小部分特殊的区块链客户端(中继)组成,这些中继接收、验证和传播块。普通区块链客户端除了常规连接外,还可以连接到一个或多个中继。在分区攻击发生时,各个中继之间相互连接并与许多区块链客户端保持连接,从而保障各个分区仍然保持连接。中继网络构建的关键在于中继节点的选取。本发明通过实验验证了分区攻击下,中继网络的有效性。[0144]自治域关系数据管理:自治域关系是路由泄露检测的基础。然而,部分自治域不愿公开自治域关系,故需要利用更多数据。本发明将路由策略、自治域关系、路由期望统成为自治域关系数据(asrd,autonomoussystemreletiondata)。其中路由策略用来推断自治域关系,自治域关系和路由期望共同作为路由泄露检测的依据。从自治域关系数据分类、成员管理、数据访问范围、自治域关系推断算法四方面阐述自治域关系数据管理方式。最后,本发明通过实验测试了自治域关系数据管理部分的功能、性能以及安全表现。[0145]路由泄露检测和处理:一旦自治域关系数据安全地存储在分布式账本中,参与者as即可下载并利用这些数据构建bgp路由过滤器,从而检测路由泄露事件(rle,routeleakevent)并过滤相应路由。本发明提出基于无谷规则和路由稳定性条件假设的两种路由泄露检测技术,增加了路由泄露检测情况。设计路由泄露处理机制,当发现路由泄露后,从发现者、接收者、泄露者三个方面采取措施进行路由泄露缓和,并对自治域关系进行反馈。[0146]将使用radb数据推断出的自治域关系与caida关系推断结果进行比较,得到基于路由策略的自治域关系推断算法的准确率能够达到99%。在以上设计的基础上,从功能、安全、性能对基于hyperledgerfabric实现的rlda原型架构进行测试,验证了rlda原型架构实现的准确性、安全性和时效性。最后,使用实验模拟rlda部署情况,当部署比例上升时,受路由泄露影响的自治域比例呈下降趋势。附图说明[0147]图1为自治域关系分类示意图,图2为路由泄露分类示意图,图3为路由泄露威胁模型,图中:(a)表示由9个自治域组成的简单拓扑结构(攻击前),(b)表示攻击后的简单拓扑结构,图4为rlda架构图,图5为rlda中角色及管理图,图6为asrd分类及关系图,图7为asrd数据访问范围示意图,图8为部分路由策略存储设计示意图,图9为集合的有向树表示示例图,图10为路由策略矩阵构建过程图,图11为策略矩阵示例图,图12为基于路由稳定性假设的路由泄露检测原理示意图,图13为路由泄露缓和技术示意图;图14为路由策略变化频率图,图中:(a)为radb路由策略更新频率cdf曲线图,(b)为caida自治域关系推断结果变化次数柱状图;图15为部署率与受影响as比率的关系图。具体实施方式[0148]结合附图对本发明的实现进行如下详尽阐述:[0149]一、rlda架构设计和中继网络[0150]路由泄露是威胁域间路由安全的重要原因,会造成大规模网络中断。从路由泄露威胁模型出发,在设计目标的指导下,提出路由泄露检测架构(routeleakdetectionarchitect,rlda)。1、域间路由模型和自治域商业关系分类[0151]域间路由系统可以被抽象为一个自治域级的图g=(v,e)。其中,v∈v表示一个自治域,e∈e表示对应自治域之间的一条连接,连接的类型代表自治域之间的关系。自治域关系为对路由策略进行抽象的结果。其中,自治域之间的关系可以分为客户提供商(c2p,customertoprovider)、对等(p2p,peertopeer)关系等传统自治域关系、兄弟关系(s2s,siblingtosibling)、部分传输关系(partialtransit)等。[0152]自治域之间使用bgp(边界网关协议,bordergatewayprotocol)更新消息交换网络层可达性信息(nlri,networklayerreachableinformation)。目前使用的版本为bgp4。为了与对等进行交互,bgp对等使用具有6种状态的fsm(有限状态机,finitestatemachine)。这6种状态分别是:空闲(idle)、链接(connect)、激活(active)、打开发送(opensent)、打开确认(openconfirm)和建立(established)。对于每一个自治域之间的链接,bgp对等都会保留一个状态变量,用来跟踪会话状态。当链接处于建立状态时,bgp对等发送更新消息交换收到的路由信息。[0153]bgp更新消息u具有如下参数:u.prefix代表自治域声明的ip前缀,u.aspath代表自治域声明到达特定目的地的路径,以自治域序列({as1,as2,…,asn})的形式表示。一般情况下,bgp维护三种类型的路由表:第一,本地路由信息表(loc‑rib),有资格提交到本地路由器的路由表中;第二,邻居处传入路由表(adj‑rib‑in);第三,邻居传出路由表(adj‑rib‑out)。每当adj‑rib‑in发生变化时,主bgp程序[0154]自治域根据自身路由策略选择导入(import)的路由和导出(export)的路由,最终达到路由收敛的效果。[0155]自治域商业关系对路由泄露检测至关重要。自治域商业关系可以分为以下几类:[0156](1)传统关系类型[0157]传统自治域关系可以大致分为两类:c2p(customer‑to‑provider,客户‑提供商)和p2p(peer‑to‑peer,对等‑对等)。客户与提供商处于c2p关系中,对称地,提供商与客户处于p2c关系中。在这样的关系中,客户因为提供商帮助自己传递流量而向提供商付费。从而,客户能够到达提供商所能到达的全部自治域,提供商仅能到达客户的客户。如图1(a)和1(b)所示。在p2p关系中,对等自治域能够访问对方的客户,而无需向对方付费。如图1(d)所示。[0158](2)兄弟关系[0159]当同一组织拥有多个自治域时,这些自治域具有兄弟关系。兄弟之间为对方传递所有的流量。如图1(c)所示。[0160]忽略s2s关系会导致错误推断的扩散。例如,考虑一条路径p={i,j},边i出现在多条路径中,边j仅出现在路径p中。假设实际中边i是s2s关系,边j是c2p关系。如果算法将边i推断为p2c关系,为了使路径p有效,该算法也必须错误地将边j推断为p2c。[0161](3)部分传输关系(partialtransit)[0162]仅提供到对等和客户的传输,而不提供到供应商的传输。[0163]填充节点代表asi向asj告知对应自治域的路由。在部分传输关系中,asi仅向asj传播asi的对等和客户,如图1(e)所示。[0164](4)其他复杂关系[0165]付费对等(paidpeering):在自治域商业关系模型下,假设为客户向提供商付费而对等之间无需付费。而在互联网中现代商业关系更加复杂,当自治域处于付费对等关系中,自治域仅为访问客户路由付费。而来自付费对等和无结算对等的路由具有相同的优先级。这使得无法通过bgp数据区分付费对等和无结算对等。6.[0166]备份传输(backuptransit):当客户的导出策略阻止它的路由被传递给提供商的客户之外的自治域时,客户与提供商之间建立的是备份传输关系。处于备份配置的提供商给所使用的导出策略与对等时相同。备份传输与付费对等的区别是,前者是导出过滤器引起的,后者是由合同协议引起的。[6]在as‑rank算法中,将备份链接推断为p2p关系。[0167]为便于研究,在域间路由模型中仅考虑p2p、p2c、c2p和s2s关系。[0168]2威胁模型[0169]bgp协议作为自治域之间的通信协议,其可靠性要求很高。目前,使用的bgp版本为发布于2006年的bgp4。然而,bgp协议在设计之初并未考虑安全性[0170]自治域根据一系列因素选择一条指向前缀的最佳路径(合法路由),前两条通常是:1)本地偏好:从经济角度考虑,通常自治域对来自邻居的路由偏好程度排序是:客户>对等>提供商;2)最短路径:自治域优先选择跳数少的路径。自治域在将路由添加到本地路由信息库并将自己附加(prepend)到路径后,根据一定的路由策略将路由传播给它的邻居。自治域通常遵循“无谷规则”1.:[0171]规则1从客户学习到的路由能够被声明给其他的客户、对等和提供商;[0172]规则2从对等学习到的路由仅能够被声明给客户;[0173]规则3从提供商学习到的路由仅能够被声明给客户。[0174]使用‑1代表c2p关系,0代表p2p关系,+1代表p2c关系,遵循“无谷规则”的as路径属于以下两种路径中的一种:[0175]类型1‑1,…(n次),+1,…(m次)[0176]类型2‑1,…(n次),0+1,…(m次)[0177]威胁模型如下:攻击者可能具有两个目标。[0178]1)一个自治域级别的攻击者能够违反目的路由的路由策略传播路由,造成路由传播路线更改,称为路由泄露。路由泄露包括客户路由泄露和对等路由泄露,如图2。[0179]2)对于基于区块链的路由泄露检测架构,攻击者的目标是对区块链部分发动分区攻击,使之分成两部分o和p。在区块链未就起攻击者与邻居的关系信息达成共识前,攻击者首先对到达o和p分区的前缀发起路由泄露攻击,从而将流量绕路到自己。然后,通过识别网络或传输层的头部(匹配前缀地址和/或tcp/udp端口)识别出区块链链接,并丢弃桥接两个分区o和p的链接。对区块链进行分区攻击会造成有效的dos攻击。分区会导致区块链能够之间的信息不同步从而造成无法及时更新自治域关系信息,进而无法检测路由泄露。攻击者也可以对中继网络节点发起路由泄露攻击并丢弃相关链接。[0180]在图3(a)中,描述了一个由9个自治域组成的简单拓扑结构。其中,asb、asc、asf和asi上运行了区块链节点,用来组成区块链网络。asg是恶意的,其目的是发起路由泄露攻击并且不被检测到。为达成此目标,asg需要将目标路由泄露路径两端的自治域隔离在区块链网络的不同分区,从而无法知道asg与对方的关系,进而无法检测路由泄露。例如,asg想把来自提供商asd的路由泄露给asf,需要将asd和asf分隔在不同的区块链网络分区。asg向一个分区(asf和asi)发起路由泄露攻击,从而将目标路由进行绕路,如图3(b)。攻击发动后,asd和asf无法交换自治域关系信息。asg可以在两个分区分别声明与asf和asd的关系,从而导致路由泄露无法被检测到。[0181]3设计目标[0182]为了抵御上述路由泄露威胁,设计一个基于区块链的路由泄露检测架构rlda,从网络层和应用层出发共同抵御路由泄露攻击。该架构设计目标如下:[0183]网络连通性:在区块链网络的基础上建立一个中继网络抵御分区攻击,从而保证rlda网络层连通性。[0184]防篡改和透明性:在区块链上维护自治域关系数据以及路由泄露事件记录,且第三方无法篡改。[0185]部分隐私性:在保证路由泄露检测基本功能的情况下,尽可能保护自治域关系数据的隐私性。[0186]第三方可标记性:自治域可以利用rlda上数据进行路由泄露检测并将对自治域关系进行反馈,从而实现第三方可标记性。[0187]兼容性:无需对原始bgp系统进行更改。与bgp系统并行,不影响原始系统。[0188]4架构设计[0189]rlda包括自治域关系管理技术asrm、路由泄露检测及处理机制rldd、中继网络。asrm和rldd都包括区块链上和链下部分。链上用来发布和删除相应数据,链下用于本地下载和使用(自治域关系推断、路由泄露检测)。中继网络用于保障区块链网络的连通性。[0190]rlda的架构设计如图4。[0191]rlda由三部分组成。[0192](1)选取部分as部署中继网络节点,用来维护rlda网络的稳定性和连通性(免受分区攻击)。中继节点对工作流程透明,其原理和功能将在2.4节中介绍。[0193](2)在每一个as中添加一个rlda节点,用于发布自治域关系数据和上报路由泄露事件,下载相关自治域关系数据用于构建bgp路由器过滤器。[0194](3)基于区块链的防篡改和一致的asrd库和rle库以及智能合约,用于记录所有自治域关系数据以及路由泄露事件,并进行自治域关系推断及反馈。[0195]rlda的工作流程如图4。[0196](1)as中的rlda节点通过调用智能合约,发布自治域关系数据。[0197](2)自治域关系数据相应的另一方根据双方协议对数据进行确认。[0198](3)rlda节点就自治域关系数据达成共识,并存储到区块链中。[0199](4)每个rlda节点基于区块链维护一个全局一致的asrd库,包含所有的自治域关系数据。[0200](5)每个bgp数据库从一个rlda节点同步asrd库,并使用这些数据对路由进行检测和过滤。[0201](6)当检测到违反路由期望的路由时,as中的rlda节点通过调用智能合约,发布路由泄露事件。自治域第一次检测到路由泄露发生(使用rlda上的信息或者使用其他方法)时,会在区块链上就泄露事件(由泄露受害者v、泄露者l、泄露对象o标记)发起投票。在一定时间范围内,如果有其他自治域观察到相同的路由泄露情况进行投票确认。等待时间结束后,若候选泄露者l超过半数的注册非客户对泄露事件进行了投票确认,确认发生了路由泄露事件,并进行全局通告,并对相应自治域关系进行标记。[0202](7)智能合约对自治域关系进行反馈,并将结果存储到区块链中。[0203]5中继网络设计[0204]中继网络(relaynetwork)用于保护rlda节点连通性的网络,其运行过程对区块链部分和bgp系统透明。中继网络的保护从3方面进行,分别是中继到中继保护、客户到中继保护、中继到客户保护。[0205]5.1中继节点到中继节点保护[0206]为保护中继网络的可靠性,应当谨慎地选择中继节点。中继节点所在自治域应当满足以下条件:[0207]1)中继节点所在自治域没有客户。本条件阻止攻击者通过发起在商业关系上更优路由(非法)进行路由泄露攻击。中继节点没有客户意味着对于中继节点来说没有更加偏好的路由。[0208]2)中继节点之间具有直接对等链接。本条件限制攻击者的数量。攻击者只能向与中继节点对等的节点声明一个具有相同偏好的路由,从而无法转移中继链接。[0209]3)中继节点形成一个k连通图。本条件需要保证攻击者转移中继链接的概率随着k(中继节点形成的网络的连通性)的增加而呈指数降低。[0210]5.2rlda节点到中继节点保护[0211]由于中继节点的选择条件,不能在所有的rlda节点所在自治域放置中继节点。这意味着rlda节点到中继节点的链接不能抵御所有自治域级别攻击者的路由泄露攻击。[0212]为了保护rlda节点到中继节点之间的链接,需要保证对rlda节点来说,来自中继的路由比攻击路由的偏好程度(preference)更高。单个中继节点无法保证这一点,但是一组中继节点可以做到。假设对于每一个自治域级攻击者都有一个中继节点能够提供更好的路由,就可以保证来自中继的路由偏好程度更高。[0213]5.3中继节点到rlda节点保护[0214]针对中继节点到rlda节点的流量攻击更加复杂(需要针对每一个rlda节点发起攻击),但仍有可能发生。为了解决这一问题,需要混淆(使相应流量不能被攻击者检测到)中继节点到rlda节点之间的流量。混淆的方式有两种。第一,中继节点向rlda节点发送流量时,修改源ip地址。中继节点和rlda节点之间的通信方式是无连接通信,这使得rlda节点能够接收包含不同于其发送数据包的源ip数据包。其次,rlda节点可以使用虚拟私人网络(vpn,virtualprivatenetwork)或代理服务与中继节点进行通信。这迫使攻击者需要先找到代理ip和rlda节点之间的对应关系。[0215]二、自治域关系管理技术——asrm[0216]自治域关系管理技术是路由泄露检测的基础。本部分首先从成员管理出发介绍了成员的层级式管理,然后介绍自治域关系管理技术的对象——自治域关系数据(asrd,autonomoussystemreletiondata)分类以及基于路由策略的自治域关系推断算法。[0217]1成员管理[0218]rlda中各个用户参与到系统后,称为成员。根据互联网数字资源(ip地址和as号)分配流程,对成员进行抽象分类,得到了以下5种层级由上到下的角色(role)及各自职能:[0219](1)iana(internetassignednumbersauthority):作为权威基础,负责建立智能合约。在初期未加入rlda时,使用“代理+投票”的方式来虚拟地实现其职能。[0220](2)rir(regionalinternetregistry):作为信任锚,负责分配2种类型的资源(ip地址和asn)。需iana授权后加入。[0221](3)nir(nationalinternetregistry)或lir(localinternetregistry):作为分配者和出租者,将资源下发给as。需rir授权后加入。[0222](4)isp(internetserviceprovider):作为资源承租人,有权发布绑定其ip地址资源和asn资源的roa。需rir或nir授权后加入。[0223](5)自治域,能够作为客户端检索或发布自治域关系数据以及发布路由泄露事件。[0224]rlda中角色及成员管理如图5所示。rlda成员注册时进行角色绑定。除iana外,其他角色成员都需要链上特定成员的许可才可参与到链上。自治域可以基于安全考虑选择是否参与到rlda当中。若参与,需要上层管理者的许可,并运行一个rlda节点,加入到rlda节点网络当中。rlda节点加入到网络后,由“公钥‑私钥”对进行性表示。公钥哈希值可以用来区分不同的rlda节点,即节点的地址。私钥用来对交易进行签名,应该由管理者保密、安全地存储。自治域通过rlda节点发布自身的自治域关系数据。bgp路由器与自治域内部的rlda节点建立链接,并获取rlda链上的关系数据构建路由过滤器。任意自治域可以对检测到的路由泄露事件进行发布或投票确认操作,最终就路由泄露事件达成一致,并采取缓和措施,同时对rlda中错误的关系进行校正。[0225]2asrd分类及访问范围[0226]2.1asrd分类[0227]asrd包括三类数据,分别是自治域关系数据、路由策略数据、路由期望数据,如图6所示。自治域关系数据是一对自治域之间根据协议抽象出来的关系,通常包括p2c(提供商‑客户)、p2p(对等‑对等)和s2s(兄弟‑兄弟)关系。路由策略数据揭示了自治域设置的导入(import)和导出(export)策略。路由期望数据是关于路由特殊模式的一种描述,用来排除路由中的特殊情况。[0228]自治域通过提前定义的智能合约将asrd发布到区块链中。当自治域不想发布自治域关系数据时,可以发布路由策略数据进行替代。之后,使用自治域关系推断算法将路由策略转化为自治域关系。综上,三类asrd经过处理后仅包含自治域关系数据和路由期望数据,这部分数据用作路由检测算法的输入。[0229]2.2asrd访问范围[0230]为实现rlda的部分隐私性,需要设计一种基于属性的访问控制(abac,attributebasedaccesscontrol)策略。abac分为两个步骤:对访问控制主体进行属性设置和基于属性规则的访问控制。增加的属性内容为自治域的邻居,定义在fabric‑ca颁发的证书当中。然后,在合约层按照设定的规则实现访问控制。[0231]在保证路由泄露检测基本功能的情况下,尽可能保护自治域路由策略以及商业关系的隐私性。为实现这一目标,自治域可以自己设置自治域关系的可见范围。默认情况下,自治域与邻居的关系的传播范围为2跳(仅自治域的邻居以及邻居的邻居可见)。[0232]如图7,asx可见的asr数据范围由链接两端自治域决定,当两个自治域都设置asx在内的跳可见时,asx可见该链接。[0233]3路由期望分类[0234]在自治域关系的基础上,自治域同样可以选择不同的路由期望。路由期望是指一个或多个自治域对网络中全部或部分路由的期望。路由期望的4个核心组成部分为:期望者、期望对象、预期。其中,期望者是产生期望的一个或多个自治域,期望对象是期望所描述的一个或多个自治域,期望形式化描述是由if‑then规则组成的集合。if后加上条件表示bgp属性组成的布尔表达式,then后加上对应的行动。[0235]根据期望者和期望对象的数量将路由期望分成以下3类:[0236](1)单方期望:自治域单方面提出的期望。单方期望在声明之后可立即执行。单方期望可能被恶意期望者利用。[0237](2)双方期望:由两个自治域共同提出的对双方的期望,通常抽象为商业关系。例如,当自治域双方建立基于付费关系的链接时,期望对方不会传播错误的路由。[0238](3)多方期望:由两个以上自治域共同提出的对所有参与自治域的期望,通常抽象为自治域集合。例如,当一些自治域通过某一ixp(互联网交换点,internetexchangepoint)建立对等时,它们以对等自治域的要求建立对其他自治域的期望。[0239]不同的自治域可能采取不同的期望模型,路由期望可以分为无谷规则期望、复杂关系期望、流量工程期望、特殊设施期望。当自治域不设置自己的路由期望时,其采用的期望模型是无谷规则期望。无谷规则期望外的其他路由期望被称为复杂路由期望。[0240]3.1无谷规则期望[0241]rlda中使用无谷规则期望作为默认期望。无谷规则期望要求自治域之间的路由传播满足无谷规则。在这种情况下,根据as路径是否有谷,可以将as路径划分为合法和非法2种情况,分别是:[0242]1)无谷、合法:这是最常见的一种情况,代表在传统自治域商业关系下路由的期望行为。[0243]2)无谷、非法:这种情况代表前缀劫持事件。此时,路由是前缀劫持的结果,尽管是无谷的,但仍然是非法的。该情况不在本研究考虑范围之内。[0244]3)有谷、合法:这种情况是由于自治域之间存在更为复杂的期望。此时,路由是有谷的,但仍然是合法的。[0245]4)有谷、非法:违反无谷策略的路径大部分是非法的,即路由泄露。[0246]基于上述情况,路由泄露的检测关键就是区分有谷的情况是路由泄露还是自治域之间存在更加复杂的路由期望。下面提出几种复杂期望,这几种复杂期望可以简化为无谷规则期望。[0247]3.2复杂关系期望[0248]复杂自治域关系[30]包括混合关系、部分传输关系、付费对等、备份传输等。混合关系是指两个自治域在不同的互连接入点(pop,pointofpresence)。pop是属于单一自治域的一群路由器,并且这些路由器位于同一校园或者建筑中。部分传输关系介于p2p和p2c关系之间,部分传输关系中的传输者[0249]3.3流量工程期望[0250]流量工程是自治域基于性能、成本、负载或其他动态路由指标对自治域之间的流量进行控制。流量工程主要分为两大类,分别是传出流量控制和传入流量控制。传出流量控制方式包括本地偏好值和智能路由,传入流量控制方式包括路径预处理、前缀拆分、选择性通告、多出口选择(med)、团体属性。然而这些策略都是由一个自治域自行决定的。这些流量工程决策可能会影响其他自治域,甚至可能违反自治域之间的策略限制。[0251]为了解决流量工程的不可预测性、不稳定性、缺乏协调的人工干预,ratulmahajan等人[31]提出了一种isp之间流量工程的自动协调机制。借鉴于该研究的思想,设计一种流量工程期望发布机制,在该机制中上下游自治域在区块链上显式协商要进行的路由更改。一个具体的流量期望包括4种信息:流的特征、估计量、备选路由、流的预期生存事件(可选)。[0252]3.4ixp期望[0253]自治域之间的一种特殊连接方式是通过互联网交换点(intenetexchangepoint,简称ixp)相连。在ixp内部,路由服务器(routeserver,简称rs)作为中间代理系统用来简化多个自治域之间的互连。通常,ixp的rs具有专用的asn。当两个自治域同时将中间的路由服务器标记为对等ixp时,这两个自治域具有间接对等关系。[0254]对于ixp这一基础设施的期望是,希望其在帮助自治域进行实际的流量方面发挥作用,但是在推断路由泄露时,将其排除在外。[0255]4基于路由策略的自治域关系推断算法[0256]基于路由策略的自治域关系推断问题可以定义为:给定自治域asa和它的邻居,以及使用类rpsl语言描述的路由策略,推断asa与其邻居之间的商业关系。基于路由策略的自治域关系推断算法包括三部分,路由策略解析、路由策略矩阵构建、策略矩阵关系推断。路由策略解析将使用rpsl描述的路由策略解析为相互依赖的数据结构,策略矩阵构建使用这些数据结构为每一个自治域构建一个关于导入导出策略的矩阵,策略矩阵关系推断通过分析策略矩阵的特征进行自治域关系推断。[0257]4.1路由策略解析设计[0258]rpsl是一种面向对象的从各个层次出发的路由策略描述语言。该语言使得路由策略的描述标准化,但是路由策略含义仍需经过处理后得到。例如,as‑set对象包含的成员可以使用as‑set对象定义,也可以在aut‑num对象中使用member‑of属性指出(需要aut‑num和as‑set对象具有相同的mntner)。为了获得as‑set的全部成员,需要处理所有相关的对象。为了解决这一问题,需要设计一个rpsl解析器,从而将路由策略语义提取出来。[0259]图8是部分路由策略对象的相互依赖索引关系。其中,将路由策略使用唯一标识符policy_id进行索引。无论是导入还是导出策略,都可以抽象为3部分,分别为过滤器(filter)、对等(peering)、行为(action)。含义解释为,针对某一路由过滤器匹配的路由,在某一对等位置采取某种行为。使用布尔变量is_import表示是否为导入策略。[0260]rpsl中策略过滤器可以使用任何bgp路径属性匹配路由。使用的bgp路径属性可以是地址前缀、as路径、团体属性。下面是路由策略解析的几个关键部分。[0261]1)as路径布尔表达式转化为具体路径[0262]当过滤器中的路径使用简单的字符串(例如“as1as2as3”)表示时,路由策略面向的对象十分明确,也便于下一步的分析。而当as路径使用正则表达式(例如“<^as1+as1:a‑customer>”)描述时,很难分析路由策略所面型的对象,也难以进行下一步的分析。为了减轻后一步分析的工作量,将正则表达式替换为所有可能的具体as路径。[0263]2)集合对象依赖关系重构[0264]rpsl中定义多种类型的集合,集合中的元素同样可以是集合。在rpsl中,集合中包含的成员可以在定义中明确,也可以由维护人员在定义外指出。这种方式使得集合成员不明确,需要处理所有相关数据,才能够获得集合中的全部成员。为了解决这种集合依赖关系混乱的情况,将集合定义抽象为有向树的构建。有向树t=(v,e)中,v是u的父亲(e=(v,u)∈e),当且仅当v包含u。[0265]图9是一个有向树表示示例,能够表示as集合as‑1所包含的全部成员,分别为as1、as2、as3,其中as1是直接包含,as2和as3是间接包含。对于路由和自治域等非层次性的对象,将其表示为仅包含根的有向树。故所有对象都可以使用有向树表达。[0266]在存储时,使用唯一标识字符串指向包含的成员,根据字符串组成,确定成员的类型,以及是否需要递归获取成员。[0267]3)构建团体属性语义表[0268]部分自治域使用自定义的团体属性对路由进行标记。被标记的路由称为“被着色”。团体属性的语义除了发布在irr或自治域的noc网站上。由于团体属性是自定义的,为了方便分析,对团体属性进行分类,并设计标准化格式。[0269]4.2路由策略冲突标记方法[0270]路由策略冲突指的是不同自治域配置不一致,包括过滤器冲突、决策冲突。过滤器冲突是由错误配置导致的,决策冲突是由bgp动态以及自治域之间缺少协作导致的。[0271]过滤器冲突:给定相邻的两个自治域asa和asb,efa‑b表示a向b导出的路由过滤器,ifa‑b表示b从a导入的路由过滤器。当ifa‑b至少拒绝一个efa‑b表示的过滤器对象,称asa和asb发生过滤器冲突。检测过滤器冲突的关键是判断ifa‑b∩efa‑b是否等于efa‑b,如果相等证明导入过滤器未拒绝导出过滤器的部分路由对象,即未发生过滤器冲突;反之,发生了过滤器冲突。[0272]决策冲突:给定自治域asa、asb和asc。asa倾向于通过asc到达asb,asb倾向于通过bgp路由(超过一跳)到达asc。此时,asa和asb的期望不同,称asa和asb发生了决策冲突。检测决策冲突需要动态获取bgp路由,并检查路径之间的碰撞。路由策略相对于路由动态更新频率低,无法用来检测决策冲突。[0273]当检测到策略冲突时,由于无法判断哪一方发布的策略准确,仅标记策略冲突,并暂时以较为严格过滤器作为推断依据。[0274]4.3路由策略矩阵构建[0275]通过分析自治域级的导入导出行为,提取路由策略,并表示为布尔矩阵。使用“对象”表示过滤器所表示的逻辑上的过滤器。问题描述为:给定asa,和import和export集合,计算布尔矩阵triplet[i][j]。import[i]和export[i]分别表示从邻居i导入和导出的对象集合。邻居对等表示为由as对象、as‑set对象、as‑any等关键组组成的逻辑表达式。当且仅当时,triplet[i][j]的值为真,即从邻居i导入的路由都被导出到了j。路由策略矩阵构建示意图如图10所示。[0276]解决该问题的方法如下。针对每一个自治域,检查自治域所导出的每一个对象。检查对象时被当前自治域所构造的,还是被当前自治域所导入的,即检查每个对象的起源。算法伪代码见算法1。[0277]在确定对象来源时注意从邻居获得的对象可能为集合。此时,需要检查集合中所有的成员,以判断import(nei‑1)和export(nei‑2)是否为包含关系。集合中的成员同样可能为成员,所以这个过程需要递归进行。为了简化这一过程,将集合重新定义为对自治域可见的集合成员。[0278]策略矩阵triplet时对称的:triplet=triplett。这和直觉上也是相对应的。例如,向提供商传播来自客户的路由,但是,同时不向客户传播来自提供商的路由是没有意义的。在策略矩阵构建完成之后,也需要对策略矩阵进行该属性检查。[0279]4.4策略矩阵关系推断[0280]根据路由策略矩阵推断自治域之间的关系。通过处理一个自治域发布的路由策略,能够得到该自治域的路由策略矩阵。通过观察该路由策略矩阵,可以将邻居分为两类,分别为a类邻居(限制性)和b类邻居(非限制性)。自治域向a类邻居导出自己和部分其他邻居的路由,表现为路由策略矩阵对应列不全为真。自治域向b类邻居导出自己以及收到的全部路由,表现为路由策略矩阵对应列全为真。[0281]通过分析相邻的自治域是对方的哪一类邻居推断自治域商业关系,推断策略如下表。[0282]表1自治域关系推断策略[0283][0284]根据以上推断规则,图11中as12389的策略矩阵当中邻居as8848是一个b类邻居,as8848的策略矩阵当中邻居as12389是一个a类邻居,故as8848和as12389之间是c2p关系。[0285]采用这种推断策略的依据是如下假设:客户向提供商导出自己以及客户的全部路由,提供商向客户导出自己的全部路由。[0286]本算法需要双方自治域都发布路由策略。使用一个自治域发布的路由策略可能会推断出错误的关系或从一个自治域发布路由策略无法获得该自治域的全部邻居对等。例如,自治域可能不对从邻居导入的路由进行过滤,这可能将p2p关系错误地推断为p2c关系。[0287]三、路由泄露检测及处理机制——rldd[0288]1路由预处理[0289]路由预处理的目的是根据自治域发布的路由期望对路由进行处理,从而将路由泄露检测问题简化为无谷规则期望匹配问题。路由预处理流程如下:[0290](1)去除重复自治域。[0291](2)针对某一路由,分析每一跳自治域的路由期望:[0292]a)如果自治域没的路由期望为无谷规则期望,跳过该自治域;[0293]b)如果自治域的路由期望为复杂关系期望或流量工程期望,寻找该自治域在当前路由条件下与邻居的关系;[0294]c)如果自治域的路由期望为ixp期望,删除当前自治域;[0295](3)得到处理后的路径aspath以及路由标记列表flaglist,用作路由泄露检测算法的输入。[0296]2基于无谷规则假设的路由泄露检测技术[0297]无谷规则是最基本、最简单的路由假设。在已知路径中的全部或部分自治域关系时,可以通过检测路径中是否有c2p关系和p2p关系组成的山谷判断是否有路由泄露发生。根据rlda上的asrd数据,将自治域路径中的每一跳标记为4类:u(upward)代表指向提供商,d(downward)代表指向客户,p(peer)代表指向对等,n(neglect)代表指向兄弟或rlda中不存在对应自治域关系。例如,对于自治域a和b,当a是b的提供商时,从b到a的链接可以表示为<b,a,u>,当a是b的客户或者对等时,从b到a的链接可以表示为<b,a,n>。对于自治域路径{as0,as1,…,asn},末跳为as0到as1。路由泄露推断算法如下:[0298][0299]算法的时间复杂度为o(n),其中n为路径中跳数。[0300]算法基于以下3个定理。[0301]定理1对于一个自治域a,它从其客户自治域b接收到路由r,那么r中的每一跳都应该被标记为d或者n。否则,a会将r推断为路由泄露。[0302]证明:基于条件r由客户自治域b声明给a,那么r中路径中的末跳被标记为d。假设r中除第一跳外,有一个或者多跳被标记为u或者p,说明r在传播过程中被一个或者多个自治域传播给它的客户或者对等。根据“无谷规则”中的规则2和规则3,r接下来只应该被传播给它的客户,即被标记为u或者n。这与末跳被标记为d相矛盾。定理得证。[0303]定理2对于一个自治域a,它从其对等自治域b接收到路由r,那么r中的每一跳都应该被标记为d或者n。否则,a会将r推断为路由泄露。[0304]证明:基于条件r由对等自治域b声明给a,那么r中路径中的末跳被标记为p。假设r中除末跳外,有一个或者多跳被标记为u或者p,说明r在传播过程中被一个或者多个自治域传播给它的客户或者对等。根据“无谷规则”中的规则2和规则3,r接下来只应该被传播给它的客户,即被标记为u或者n。这与末跳被标记为p相矛盾。定理得证。[0305]定理3对于一个自治域a,它从其提供商自治域b接收到路由r,那么r中的路径应当具有如下模式:末跳被标记为u,接着零跳或多跳被标记为u,接着零跳或者一跳被标记为p,接着零跳或者一跳被标记为d。否则,a会将r推断为路由泄露。[0306]证明:基于条件r由提供商自治域b声明给a,那么r中路径中的末跳被标记为u。假设一个或者多个d插进了r的连续的u标记间,这表明路由被提供商传播给客户后,又被继续传播给下一个自治域的提供商,这违反了“无谷规则”的规则3。假设p插进了r的连续的u标记间,这表明路由被提供商传播给客户后,又被传播给下一个自治域的对等,这违反了“无谷规则”的规则3。假设p插进了r的连续的d标记间,这表明路由被传递给对等后,又被传播给下一个自治域的提供商,这违反了“无谷规则”的规则2。定理得证。[0307]3基于路由稳定性条件假设的路由泄露检测技术[0308]对于部分无法通过路由策略推断的链接,可以通过构建一个链接组成的三角形进行关系推断。根据路由稳定性条件假设[32],没有c2p关系形成的环。给定自治域asa、其客户asc、其提供商asb,当观察到asb和asc之间存在链接时,我们可以推断asb和asc之间的关系一定不是p2c关系。当asb是asa的对等时结论仍然成立。基于路由稳定性条件假设的路由泄露检测技术,如算法3所示。[0309]如图12所示,针对相同的路由,给定自治域asa,从客户asc接收到路由r1,从提供商asb接收到另一条路由r2,并且r1和r2的路径同时包含asc和asx(不同于asc的自治域)。[0310]如果r1违反了“无谷规则”,那么r2也违反了“无谷规则”。[0311][0312][0313]算法的时间复杂度为o(n),其中n为路径中跳数。[0314]4路由泄露缓和技术[0315]检测到路由泄露后,需要从接收者、路由选择策略更改、发送者三方面进行操作,从而消除潜在的路由泄露风险,如图13。[0316]4.1发现者自治域[0317]接收者自治域a收到路由r后,检查r中路径的每一个自治域是否已经在区块链上发布了对应的路由泄露事件记录,如果没有对应记录,接收者自治域在调用路由泄露事件发布合约发布路由泄露事件。[0318]4.2接收者自治域[0319]从经济角度考虑,通常自治域对来自邻居的路由偏好程度排序是:客户>对等>提供商。这通常是因为,通过客户发送流量会为isp带来收入,通过提供商发送流量需要耗费成本,通过对等发送流量位于以上两种情况之间,即不许花费也不会带来收入。但是过多依赖对等方会破坏对等之间的权力平衡,使得接收流量更多的一方开始考虑破坏当前关系,并向对方收费[33]。[0320]当接受者自治域在rlda中获得路由泄露事件后,可能会对路由选择策略进行更改。路由选择策略分为两类,客户路由与提供商(或对等)路由之间的选择和对等路由和提供商路由之间的选择。[0321]客户路由与提供商(或对等)路由之间的选择决策过程如下:[0322]1)如果客户路由没有检测到路由泄露,相比于提供商(或对等)路由,优先使用客户路由;[0323]2)如果客户路由检测到路由泄露,同时提供商(或对等)路由检测到路由泄露,优先选择客户路由;[0324]3)如果客户路由发生泄露,但是提供商(或对等)路由没有检测到路由泄露,优先使用提供商(或对等)路由。[0325]对等路由与提供商路由之间的选择决策过程与上述过程类似。[0326]4.3泄露者自治域[0327]泄露者自治域在发现路由泄露事件后,可以在bgp系统中撤销路由,也可以在rlda上更新自己的自治域关系(主动关系反馈机制)或者路由策略。泄露者自治域在bgp系统中撤销路由的方式包括以下两种:[0328]1)在更新消息的撤销(withdraw)字段通知到达目的地址的路由被标记为不可再用;[0329]2)关闭bgp路由器,隐式删除所有路由器声明的路由。[0330]撤销路由后,泄露者在rlda上关闭路由泄露事件(rleconfirm),并等待其他自治域投票。[0331]5关系反馈机制[0332]为了解决自治域关系推断的结果可能并不正确的问题,利用关系反馈机制用来提高关系管理系统中关系数据的准确度。关系反馈机制包括主动反馈和被动反馈。主动反馈机制是指自治域在被报告泄露路由后,主动更新自治域关系或策略,从而使得被推断为路由泄露的路由重新被推断为合法。被动反馈是指利用观察到的非泄露路由扩展关系推断结果。被动反馈的依据是“无谷规则”。[0333]当自治域观察到的非泄露路由存在部分未知关系链接时,可以基于无谷策略对剩余全部或部分链接关系进行推断。基于无谷规则的关系反馈分为两个步骤,第一步对每条路由中的链接进行标记,第二步使用标记过的链接进行关系推断。[0334]满足无谷规则的路径由3部分组成:上山路径(uphill)、下山路径(downhill)和中间可能存在的p链接。推断剩余链接关系的关键就是找到路由在哪个地方从上山转变为下山(转变点)。该问题可以分为以下两种情况进行讨论。[0335]1)当存在一条p链接时,p两边的路径分别是上山路径和下山路径,即可以将p链接前的链接标记为u,将p链接后的链接标记为d。[0336]2)当不存在p链接时,找到最接近的u和d链接对(由于是非泄露路由,一定是u链接在前,d链接在后),转变点应当在这对链接之间。由于无法知道转变点的具体位置,不对链接对之间的链接关系进行推断,而将u链接前的链接标记为u,将d链接后的链接标记为d。[0337]未被推断未泄露的路由并不一定没有发生路由泄露。为了减少下一步错误推断的概率,在算法中记录路由表中包含对应标记的路径条数。这样做的基于的假设是,错误配置的bgp路由器仅影响一小部分路由表。设定小常数t,根据将链接l和反向链接l’标记为u的路径条数,将关系推断分为以下情况:[0338]1)超过t条路径将l标记为u,同时,超过t条路径将l’标记为u,将l推断为s2s关系;[0339]2)至少1条且至多t条路径将l标记为u,同时,至少1条且至多t条路径将l’标记为u,将l推断为s2s关系;[0340]3)至少t条路径将l标记为u,或者,没有路径将l标记为u,将l推断为c2p关系。反之,将l推断为p2c关系。[0341]基于无谷策略的关系反馈算法如下。[0342][0343][0344]算法的时间复杂度为o(n)。[0345]四、本发明所述方案(rlda架构)的实验结果与分析:[0346]基于上述提出的自治域关系管理技术asrm、路由泄露检测及处理机制rldd,设计并实现了rlda原型架构,并从功能、性能、安全三方面对系统进行了测试评估。并通过实验验证了自治域关系推断算法的准确性。[0347]1、实验环境及测试数据[0348]实验环境的基本信息如表2。[0349]表2实验环境[0350][0351]实验数据的基本信息如表3。radb是一个irr库,其存储来源于自身发布和从其他irr库镜像的路由策略数据。[0352]表3实验数据[0353][0354]2、rlda静态代码测试及分析[0355]静态代码测试分析是指在不运行代码的情况下,基于一系列预设规则对代码进行分析,并找到缺陷。本发明从代码质分析、智能合约安全审计两方面进行静态代码测试分析。[0356]2.1代码分析[0357]使用goreporter[34]进行代码质量分析。goreporter是一个开源的golang工具,可以进行代码静态分析、单元测试、代码审查,并生成代码质量报告。goreporter集成了一系列go语言代码检查工具,并发运行检测并将检测结果规范化输出到报告中。使用goreporter进行代码质量分析,并根据gofmt、govet、golint、misspell工具提示信息对代码进行修改,从而从代码规范、编码风格等方面对代码进行优化。[0358]使用gosec[35]进行代码安全分析。gosec是开源的go语言代码安全分析工具,通过扫描go的抽象语法树(abstractsyntaxcode,ast)来检查源码中的安全问题。根据gosec扫描结果,重点对违反规则g104(审计错误未检查)代码进行修改。[0359]2.2智能合约安全审计[0360]安全审计是针对代码分析工具无法检测到的安全性缺陷和漏洞进行人工审计。安全审计主要检查常规漏洞、安全漏洞、业务逻辑漏洞等,排除的风险主要在于,减少遭受黑客攻击的可能性,以及减少因代码导致的业务无法按预期正常运转。审计的内容如表4所示,主要分为3大类10小项。[0361]表4智能合约审计内容[0362][0363]3、rlda功能测试及分析[0364]rlda功能测试首先根据输入进行等价类划分,然后构造覆盖所有有效等价类和无效等价类的测试用例。最后,通过比较期望输出与实际输出判断rlda功能是否通过测试。[0365]3.1测试工具[0366]功能测试中主要使用以下测试工具:[0367](1)golang标准库testing[36][0368]testing为go程序的自动化测试提供支持。要编写一个新的测试套件时,创建一个名字以“_test.go”结束的文件,文件中包含“testxxx”函数。测试文件需要与被测文件放在同一个包中。在常规包构建时,测试文件会被排除在外。当“gotest”命令运行时,测试文件会被包含在内。“gotest”命令使用时,可以设置提供各种标志。例如,“‑bench”用来进行基准测试,“‑cover”用来进行分支覆盖率分析。[0369]针对每一个功能合集(一个包package),设计两方面的测试,分别对涉及账本和事务的智能合约进行测试。针对每一个功能点,编写一个测试函数进行测试。测试函数的编写依赖于以下工具。[0370](2)golang工具包stretcher/testify[37][0371]stretcher/testify是一个具有断言和模拟的工具包,可与标准库很好地配合使用。其中,assert包提供一系列断言工具,require包提供一系列要求工具,mock包提供了一种编写模拟对象的机制。[0372]在测试函数内部,使用断言语句对结果的正确性进行判断并输出。[0373](3)golang工具包shimtest[38][0374]shimtest提供了chaincodestubinterface的模拟,用于对链码进行单元测试。[0375]3.2功能收集[0376]在进行功能测试前,对rlda涉及到的功能进行收集统计,结果如表5。[0377]表5rlda功能收集[0378][0379]3.3成员管理功能测试[0380]成员管理功能包括成员发布和成员删除两部分。在asrc中,一共包含5类角色,分别是iana、rir、nir或lir、isp和自治域。成员的发布和删除需要上级角色进行管理。[0381]成员发布的输入为事务发起者、被发布成员信息。成员发布的等价类表见表6。[0382]表6成员发布的等价类表[0383][0384]针对成员发布功能的等价类表,生成测试用例见表7。[0385]表7成员发布功能测试用例[0386][0387]成员删除功能测试与成员发布功能测试类似。[0388]3.4自治域关系管理功能测试[0389]自治域关系管理功能包括自治域关系发布、路由策略发布、自治域关系推断三部分。其中,自治域关系推断是利用发布的路由策略推断自治域关系。[0390]自治域关系发布(路由策略发布)功能的输入为事务发起者、邻居自治域、自治域关系(路由策略)。自治域关系发布的等价类表见表8。[0391]表8自治域关系发布的等价类表[0392][0393]针对自治域关系发布功能的等价类表,生成测试用例见下表9。[0394]表9自治域关系发布功能测试用例[0395][0396]自治域关系推断功能的输入为事务发起者、目标自治域集合。自治域关系推断的等价类表见表x。[0397]表10自治域关系推断的等价类表[0398][0399]针对自治域关系推断功能的等价类表,生成测试用例见表11。[0400]表11自治域关系推断功能测试用例[0401][0402]3.5路由泄露检测功能测试[0403]路由泄露检测功能包括路由泄露事件发布、和路由泄露事件结束两部分。[0404]路由泄露事件发布功能的输入包括事务发起者、泄露者、受害者、观测时间。路由泄露事件由泄露者、受害者、观测时间共同标识。在实现种,定义阈值t标识路由泄露事件最长持续时间。路由泄露事件发布的等价类表见表12。[0405]表12路由泄露事件发布的等价类表[0406][0407]针对自治域关系推断功能的等价类表,生成测试用例见表13。[0408]表13自治域关系推断功能测试用例[0409][0410]路由泄露事件结束功能与路由泄露事件发布功能输入相同。区别在于,路由泄露事件结束功能需要检查事务发起时间与路由泄露时间是否超过阈值t。如果超过,正常进行路由泄露事件结束,否则,返回“路由泄露事件未到结束时间”错误。[0411]4、rlda性能测试及分析[0412]使用区块链性能测试框架hyperledgercaliper对rlda进行性能测试。通过构造自定义工作负载,进行性能测试,并获取性能测试结果。caliper能够测试的性能指标包括事务读写的吞吐量、事务读写延迟(可测延迟的最大值、最小值、平均值)、区块链节点资源占用(可测cpu、内存、网络i/o和磁盘i/o)。[0413]4.1区块链网络配置[0414]区块链网络是一种技术基础设施,为应用程序提供账本和智能合约服务。智能合约被用于生成事务,这些事务随后被分发到网络中的每个对等节点,在后者被不可篡改地记录在账本副本上。组织结合成一个通道,在这个通道上,事务被智能合约调用。通过提交配置块,逻辑上创建信道。配置块中包含信道中组织的记录,并定义共识策略。[0415]实验网络为由4台服务器组成的区块链网络,其上运行10个组织。其中,9个组织负责维护对等节点,1个组织负责维护排序服务节点。所有的节点包含通道账本的一个副本。值得注意的是,由排序服务所维护的账本副本不包含世界状态数据库。[0416]值得注意的是,需要超过半数节点进行背书,才能够成功提交事务,所以需要在超过半数的节点上安装链码。在实验过程中更改网络配置,测试在不同网络规模下系统的性能表现。[0417]4.2性能测试结果及分析[0418]对成员发布、成员删除、自治域关系发布、自治域关系删除、路由泄露事件发布、路由泄露事件删除功能进行性能测试,如表14。[0419]表14rlda性能矩阵[0420][0421]可以看到,这些功能的事务吞吐量能够达到70以上,最高时延不超过2.1s。能够满足自治域路由策略更新频率。[0422]5、基于路由策略的自治域关系推断算法评估[0423]通过解析radb路由策略数据,得到8148个自治域、1211298个自治域集合、21426条路由策略。统计上一次更新距今时间的分布,其结果如图14(a)所示。其中,横坐标代表更新时间间隔,纵坐标代表累计分布概率。更新间隔小于1000天的自治域对象不超过6%。[0424]2020年4月到2021年2月,caida数据中链接推断关系变化情况如图14(b)。其中,横坐标代表11个月中链接推断关系发生变化的次数,纵坐标代表对应链接数量的自然对数。链接推断关系未发生变化的链接超过96%。从radb中路由策略以及caida链接推断关系变化很少为使用路由策略推断自治域关系提供依据。[0425]将解析radb得到自治域关系,与caida自治域关系推断结果进行比较。对于相同的链接,有2775个相同关系推断结果,585个不同关系推断结果。对于不同关系推断结果,有36个使用radb数据推断出s2s关系并通过asrank查询自治域所有组织得到了验证,521个为链接中仅有一个自治域发布了路由策略。最终,在刨除仅有一个自治域发布路由策略的情况,关系推断的准确率能够达到99%(=(2775+36)÷(2775+36+28))。[0426]6、rlda部署模拟[0427]利用caida在2021年2月1日发布的自治域关系推断结果生成拓扑图。其中,自治域节点71258个,能够发动路由泄露的潜在攻击者有39707个。潜在路由泄露攻击者是指具有两个或者两个以上非客户邻居的自治域。潜在路由泄露攻击者可以通过将来自一个非客户邻居的路由声明给另一个非客户邻居发动攻击。[0428]按照自治域节点度排序,将前100个自治域分类为tier1,将接下来的900个分类为tier2。将rlda部署在不同比例的tier1或者tier2上。对于每种部署比例,进行1000次模拟(随机选择10个发动路由泄露的攻击者并设置100种给定配置的部署),然后统计选择发生路由泄露路径作为最佳路径的自治域的数量,如图15所示。横坐标为对应的tier1和tier2部署的比例,纵坐标为部署对应比例rlda与未部署rlda被污染自治域(选择路由泄relationships[j].proceedingsoftheacmsigcomminternetmeasurementconference,imc,2014:23–29.[0461][31]mahajanr,andersont.towardscoordinatedinterdomaintrafficengineering[j]..[0462][32]gaol,rexfordj,members.stableinternetroutingwithoutglobalcoordination[j].2001,9(6):681–692.[0463][33]caesarm.bgproutingpoliciesinispnetworks[j]..[0464][34]360entsecgroup‑skylar/goreporter:agolangtoolthatdoesstaticanalysis,unittesting,codereviewandgeneratecodequalityreport.[eb/ol].[2021‑06‑02].https://github.com/360entsecgroup‑skylar/goreporter.[0465][35]securego/gosec:golangsecuritychecker[eb/ol].[2021‑06‑02].https://github.com/securego/gosec.[0466][36]testing‑thegoprogramminglanguage[eb/ol].[2021‑05‑14].https://golang.org/pkg/testing/.[0467][37]github‑stretchr/testify:atoolkitwithcommonassertionsandmocksthatplaysnicelywiththestandardlibrary[eb/ol].[2021‑05‑14].https://github.com/stretchr/testify.[0468][38]shimtest·pkg.go.dev[eb/ol].[2021‑05‑14].https://pkg.go.dev/github.com/hyperledger/fabric‑chaincode‑go/shimtest.当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1