本发明涉及路由异常检测,尤其涉及一种基于多方安全计算的路由泄露检测方法和装置。
背景技术:
1、目前,互联网由10万多个自治系统组成。自治系统(as)之间使用边界网关协议bgp来交换路由信息以实现互联网的全局可达。然而在bgp的设计之初,并未充分考虑安全性问题,导致其存在着严重的路由安全隐患。互联网每天都会出现各种路由异常事件,其中路由泄露是较为常见的一种,约占总异常事件的22%。bgp路由宣告中含有去往目标自治系统的as_path(可视为as路径),收到bgp宣告的自治系统可以沿着该宣告中的as_path向目标自治系统发送消息。as_path可以理解为由一组自治系统的asn(autonomous system number,自治系统编号)组成的编码。如果自治系统没有遵守正确的路由策略进行路由宣告,而是将路由宣告给了错误的自治系统,路由泄露就有可能发生。路由泄露可能会导致严重的网络服务中断,并带来数据安全风险,对互联网的安全稳定产生巨大威胁。精确识别路由泄露可以有效限制bgp路由宣告的泄露范围,尽可能减小对互联网的影响。
2、现有的路由泄露检测方法主要分为以下两种:(1)基于商业关系推断的路由泄露检测方法,这类方法首先需要对自治系统之间的商业关系进行推断,并利用推断结果结合路由策略(valley-free原则:来自customer as的bgp路由宣告可以发送给任何邻接as,来自peer as或provider as的bgp路由宣告只被允许发送给其customer as)对bgp路由宣告中的as路径进行合法性检测。目前较为先进的商业关系推断算法有as-rank(imc'13)、problink(nsdi'19)、toposcope(imc'20),但这些推断算法往往存在推断结果不准确、不全的问题。(2)基于as商业关系主动上传的检测方法,这类方法需要as主动公开上传与其他邻接as的商业关系,利用这些公开数据结合路由策略对bgp路由宣告中的as路径进行合法检测。aspa是目前ietf正在推标的一个工作,主要技术路线是让as将商业关系信息添加到签名对象中,并公开上传至rpki系统中,但是由于as之间的商业关系是具有一定机密性的,这类方法可能会存在着隐私性问题以及部署激励性问题。
3、因此,亟需提出一种克服上述缺陷的路由泄露检测方法。
技术实现思路
1、为解决上述问题,本发明提供一种基于多方安全计算的路由泄露检测方法和装置,在不暴露自治系统之间的商业关系的情况下,多方协同验证as-path是否存在路由泄露,提高了路由泄露的识别准确性。
2、第一方面,本发明提供一种基于多方安全计算的路由泄露检测方法,适用于每一个自治系统,所述方法包括:提取缓存区中每一条bgp路由宣告中的as_path;其中,所述缓存区中缓存一段时间内来自其它自治系统的bgp路由宣告;
3、对于每一条as_path,在所述as_path存在路由泄露隐患的情况下,向中央计算单元发起所述as_path的路由泄露检测请求,以使所述中央计算单元中的多个计算节点利用自治系统商业关系秘密分片存储库对所述as_path的商业关系合法性进行多方安全计算;
4、根据所述as_path的多方安全计算的反馈结果,确定所述as_path是否存在路由泄露;
5、其中,所述自治系统商业关系秘密分片存储库包括中央计算单元中每一个计算节点维护的自治系统商业关系秘密分片存储子库;
6、每一个所述计算节点维护的自治系统商业关系秘密分片存储子库包括:每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片;
7、每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片,是以每一个所述自治系统与其它自治系统之间商业关系的编码值为秘密值,利用shamir秘密分享技术对所述秘密值做与所述计算节点相关的加密处理而得到的。
8、根据本发明提供的基于多方安全计算的路由泄露检测方法,所述as_path为一组自治系统编号组成的编码,所述as_path是否存在路由泄露隐患的判断过程,包括:
9、生成所述as_path对应的自治系统三元组集合;
10、在所述自治系统三元组集合中包含存在路由泄露隐患的自治系统三元组时,认定所述as_path存在路由泄露隐患;
11、其中,一个自治系统三元组不包含于自治系统三元组数据库中,则其存在路由泄露隐患;
12、所述自治系统三元组数据库是一个实时更新的数据库,初始时由本地路由信息库和本地转发信息库所涵盖的所有自治系统三元组构成。
13、根据本发明提供的基于多方安全计算的路由泄露检测方法,所述as_path的路由泄露检测请求,包括:
14、所述自治系统三元组集合中存在路由泄露隐患的自治系统三元组;
15、以及
16、对所述as_path的商业关系合法性进行多方安全计算的多个计算节点对应的计算节点编号列表。
17、根据本发明提供的基于多方安全计算的路由泄露检测方法,确定所述as_path不存在路由泄露之后,还包括:
18、认定所述as_path的路由泄露检测请求中的自治系统三元组不存在路由泄露,并将其更新至所述自治系统三元组数据库;
19、确定所述as_path存在路由泄露之后,还包括:
20、丢弃所述as_path对应的bgp路由宣告。
21、第二方面,本发明提供一种基于多方安全计算的路由泄露检测方法,适用于中央计算单元,所述中央计算单元中包括多个计算节点,所述方法包括:
22、在收到所述as_path的路由泄露检测请求的情况下,控制多个计算节点利用自治系统商业关系秘密分片存储库对所述as_path的商业关系合法性进行多方安全计算;
23、向相应请求方反馈所述as_path的多方安全计算的结果;
24、其中,所述自治系统商业关系秘密分片存储库包括中央计算单元中每一个计算节点维护的自治系统商业关系秘密分片存储子库;
25、每一个所述计算节点维护的自治系统商业关系秘密分片存储子库包括:每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片;
26、每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片,是以每一个所述自治系统与其它自治系统之间商业关系的编码值为秘密值,利用shamir秘密分享技术对所述秘密值做与所述计算节点相关的加密处理而得到的。
27、根据本发明提供的基于多方安全计算的路由泄露检测方法,所述商业关系包括c2p、p2p和p2c三种,各自对应的编码值为1,0,-1;
28、计算节点a接收到自治系统α上传的记载自身与自治系统β之间商业关系的秘密分片(asα,asβ,a,f(a))之后,还包括:
29、获取自身接收到的自治系统β上传的记载自身与自治系统α之间商业关系的秘密分片(asβ,asα,a,g(a))、计算节点b接收到的自治系统α上传的记载自身与自治系统β之间商业关系的秘密分片(asα,asβ,b,f(b))以及计算节点b接收到的自治系统β上传的记载自身与自治系统α之间商业关系的秘密分片(asβ,asα,b,g(b));
30、对f(a)+g(a)和f(b)+g(b)做联合解算,确定f(0)+g(0)是否等于0;
31、若是,确定秘密分片(asα,asβ,a,f(a))不存在误传,若否,确定秘密分片(asα,asβ,a,f(a))、(asβ,asα,a,g(a))、(asα,asβ,b,f(b))和(asβ,asα,b,g(b))至少一个存在误传,告知自治系统α重传秘密分片(asα,asβ,a,f(a))和(asα,asβ,b,f(b)),告知自治系统β重传秘密分片(asβ,asα,a,g(a))和(asβ,asα,b,g(b));
32、其中,计算节点b是计算节点a的邻接节点,f(·)是自治系统α利用shamir秘密分享技术加密自身与自治系统β之间商业关系编码值时所采用的多项式,其常数项为自治系统α与自治系统β之间商业关系编码值;g(.)是自治系统β利用shamir秘密分享技术加密自身与自治系统α之间商业关系编码值时所采用的多项式,其常数项为自治系统β与自治系统α之间商业关系编码值。
33、根据本发明提供的基于多方安全计算的路由泄露检测方法,所述控制多个计算节点利用自治系统商业关系秘密分片存储库对所述as_path的商业关系合法性进行多方安全计算,包括:
34、获取所述请求中携带的自治系统三元组以及计算节点编号列表;
35、控制所述计算节点编号列表中的每一个计算节点,利用所述自治系统商业关系秘密分片存储库对每一个所述自治系统三元组的商业关系进行合法性计算。
36、根据本发明提供的基于多方安全计算的路由泄露检测方法,控制所述计算节点编号列表中的计算节点c,利用所述自治系统商业关系秘密分片存储库对所述请求中携带的自治系统三元组(asλ,asμ,asν)的商业关系进行合法性计算的过程,包括:
37、将(asλ,asμ)之间的商业关系编码值设为a,将(asμ,asν)之间的商业关系编码值设为b;
38、利用所述计算节点c处(asλ,asμ)之间的商业关系秘密分片以及(asμ,asν)之间的商业关系秘密分片,确定所述计算节点c处a-b+a*b-1的表达式;
39、获取所述中央计算单元中除所述计算节点c之外的其它计算节点处a-b+a*b-1的表达式;
40、利用拉格朗日插值法对所有a-b+a*b-1的表达式进行解算,以确定a-b+a*b-1的取值;
41、若a-b+a*b-1等于0,则自治系统三元组(asλ,asμ,asν)的商业关系合法;
42、否则,自治系统三元组(asλ,asμ,asν)的商业关系不合法。
43、根据本发明提供的基于多方安全计算的路由泄露检测方法,所述向相应请求方反馈所述as_path的多方安全计算的结果,包括:
44、向相应请求方反馈所述计算节点编号列表中的每一个计算节点关于所述as_path是否存在路由泄露的认定;
45、其中,若每一个所述计算节点对所有自治系统三元组的商业关系合法性的计算结果均为合法时,所述计算节点关于所述as_path是否存在路由泄露的认定为所述as_path不存在路由泄露;
46、否则所述计算节点关于所述as_path是否存在路由泄露的认定为所述as_path存在路由泄露。
47、第三方面,本发明提供一种基于多方安全计算的路由泄露检测装置,适用于每一个自治系统,所述装置包括:提取模块,用于提取缓存区中每一条bgp路由宣告中的as_path;其中,所述缓存区中缓存一段时间内来自其它自治系统的bgp路由宣告;
48、路由泄露检测请求模块,用于对于每一条as_path,在所述as_path存在路由泄露隐患的情况下,向中央计算单元发起所述as_path的路由泄露检测请求,以使所述中央计算单元中的多个计算节点利用自治系统商业关系秘密分片存储库对所述as_path的商业关系合法性进行多方安全计算;
49、路由泄露确定模块,用于根据所述as_path的多方安全计算的反馈结果,确定所述as_path是否存在路由泄露;
50、其中,所述自治系统商业关系秘密分片存储库包括中央计算单元中每一个计算节点维护的自治系统商业关系秘密分片存储子库;
51、每一个所述计算节点维护的自治系统商业关系秘密分片存储子库包括:每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片;
52、每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片,是以每一个所述自治系统与其它自治系统之间商业关系的编码值为秘密值,利用shamir秘密分享技术对所述秘密值做与所述计算节点相关的加密处理而得到的。
53、第四方面,本发明提供一种基于多方安全计算的路由泄露检测装置,适用于中央计算单元,所述中央计算单元中包括多个计算节点,所述装置包括:
54、路由泄露检测执行模块,用于在收到所述as_path的路由泄露检测请求的情况下,控制多个计算节点利用自治系统商业关系秘密分片存储库对所述as_path的商业关系合法性进行多方安全计算;
55、结果反馈模块,用于向相应请求方反馈所述as_path的多方安全计算的结果;
56、其中,所述自治系统商业关系秘密分片存储库包括中央计算单元中每一个计算节点维护的自治系统商业关系秘密分片存储子库;
57、每一个所述计算节点维护的自治系统商业关系秘密分片存储子库包括:每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片;
58、每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片,是以每一个所述自治系统与其它自治系统之间商业关系的编码值为秘密值,利用shamir秘密分享技术对所述秘密值做与所述计算节点相关的加密处理而得到的。
59、本发明提供一种基于多方安全计算的路由泄露检测方法和装置,包括:自治系统提取缓存区中每一条bgp路由宣告中的as_path;其中,所述缓存区中缓存一段时间内来自其它自治系统的bgp路由宣告;而后对于每一条as_path,在所述as_path存在路由泄露隐患的情况下,向中央计算单元发起所述as_path的路由泄露检测请求;中央计算单元在收到所述as_path的路由泄露检测请求的情况下,控制多个计算节点利用自治系统商业关系秘密分片存储库对所述as_path的商业关系合法性进行多方安全计算;而后向自治系统反馈所述as_path的多方安全计算的结果;自治系统根据所述as_path的多方安全计算的反馈结果,确定所述as_path是否存在路由泄露;其中,所述自治系统商业关系秘密分片存储库包括中央计算单元中每一个计算节点维护的自治系统商业关系秘密分片存储子库;每一个所述计算节点维护的自治系统商业关系秘密分片存储子库包括:每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片;每一个自治系统向所述计算节点上传的记载自身与其它自治系统之间商业关系的秘密分片,是以每一个所述自治系统与其它自治系统之间商业关系的编码值为秘密值,利用shamir秘密分享技术对所述秘密值做与所述计算节点相关的加密处理而得到的。由于自治系统商业关系涉及隐私性问题,自治系统不愿将商业关系公开,本发明自治系统利用shamir秘密分享技术主动将商业关系加密并上传到中央计算单元的各个计算节点中,并基于自治系统商业关系秘密分片,采用多方安全计算方式去对as path进行路由泄露检测,在不暴露自治系统之间的商业关系的情况下,提高了路由泄露的识别准确性。