一种bgp更新消息保护和验证的方法及装置的制作方法

文档序号:7956994阅读:171来源:国知局
专利名称:一种bgp更新消息保护和验证的方法及装置的制作方法
技术领域
本发明属于计算机网络通信领域,特别涉及一种BGP更新消息保护和验证的方法及装置。
背景技术
边界网关协议(BGP)是一种外部网关路由协议,主要用于在自治系统(AS)之间分布路由信息。
BGP是一种距离矢量路由协议,底层通过传输控制协议(TCP)传送。其数据传输的可靠性就由TCP协议来保证。另外,BGP使用增量的、触发式的路由更新,而不是一般的距离矢量协议的整个路由表的、周期性的更新。此外,BGP还有多种衡量路由路径的度量标准,也称为路由属性,可以更加准确的判断出最优的路径。
AS之间通过BGP协议交互网络可达性信息,这些信息包括前缀信息、撤销的前缀信息、路径属性。其中重要的路径属性之一是BGP更新信息到达某网络所经过的AS的路径(AS_PATH)信息,通过对于该属性的检查可以防止环路的发生。
BGP协议设计存在某些先天不足,一些固有的安全问题无法解决。例如对于AS_PATH属性的真实性的验证,即判定通告是否确实经过了AS_PATH中列举的AS。以及路由信息在经过路径中的AS时是否被修改过。为了解决上述的问题,现有技术中主要有如下的解决方案采用更新消息沿途的AS进行签名的方式来证明在更新消息中受保护的属性确实经过了该AS_PATH表示的路径时且未被修改。在该方式中,沿途中的每个AS会对于更新进行嵌套方式签名,即签名的信息除了报文的内容外,还包括上一个AS的签名部分,用于证明消息经过了本AS,并且为先前的签名操作提供了完整性的保护。接收者在收到更新后逐层的对于每个签名部分进行检验,如果检验都通过则表明消息确实经过该路径传递。从现有技术的方案中,我们可以看出,该技术方案中的数字签名以及验证操作存在调用频繁,从而带来系统预算开大的问题。

发明内容
本发明的目的在于提供一种BGP更新消息的保护和验证的方法,其能减少更新消息的保护和验证操作调用的次数,从而降低系统运算开销。
本发明提供一种BGP更新消息的保护和验证的方法,包含如下步骤步骤A更新消息产生者对所生成的更新消息计算摘要,并对摘要进行累积,根据累积的摘要信息生成完整性保护信息,所述保护信息的结果随更新消息发送出去;步骤B更新消息接收者收到带有完整性保护信息的更新消息后,将累积的摘要信息进行完整性保护信息验证。
步骤A中更新消息产生者是依据更新消息中需要保护的内容来计算摘要的,所述保护内容需要在更新消息中体现。
步骤A具体包括A1、更新消息产生者对所生成的更新消息计算摘要,将计算结果暂存本地,继续发送更新消息;A2、更新消息产生者发送一定数量的更新消息后,根据累积的摘要信息生成完整性保护信息,所述保护信息的结果随更新消息发送出去。
所述步骤A中的完整性保护信息是通过数字签名或哈希消息验证码(HMAC)得到的。
更新消息的产生者在更新消息之中添加序号信息。
步骤A中摘要的计算方式采用将上一次的摘要信息结合本次需要保护的更新消息的内容共同计算摘要或针对每个更新消息单独计算一个摘要。
步骤A中摘要信息对应的更新信息的序号信息需要进行存储。
在生成完整性保护信息之前,更新消息产生者要按照序号对于摘要进行排序。
在步骤B之后还包括,步骤C、更新消息接收者使用同更新信息产生者相同的摘要计算方式针对更新消息中指定的保护内容进行摘要计算,并将摘要以及所述摘要所对应的更新消息的序号保存到本地。
步骤C具体包括,更新消息接收者验证启动更新消息的过滤信息,如果所述的验证启动更新消息被过滤,则更新消息接收者需要保存所述更新消息中被过滤的摘要信息和序号以及更新消息中在先前更新消息接收者中被过滤的摘要和序号信息。
步骤C后还包括步骤D、更新消息的接收者根据序号排序缓存的摘要信息后,采用同更新消息的发送者相同的完整性保护计算方式进行完整性保护信息计算,并将完整性保护信息的计算结果同更新消息中携带的完整性保护信息进行比较,若二者一致,则通过完整性保护验证。
步骤D具体包括,如果带有完整性保护信息的更新消息被本地策略过滤,更新消息的接收者需要从所述的更新消息中取出其附加的摘要信息、序号和完整性保护验证信息,并取出本地被过滤的同更新消息发生者相关的摘要信息、序号,更新消息接收者将以上信息组合后继续传递。
本发明还提供一种更新消息的保护和验证的装置,包括更新消息产生处理模块,由更新消息产生者调用,用于进行更新消息的生成以及发送处理;更新消息接收处理模块,由更新消息接收者调用,用于对所收到的更新消息进行验证。
还包括完整性保护信息生成模块,由更新消息产生者调用,用于生成完整性保护信息;完整性保护信息验证模块,由更新消息接收者调用,用于验证完整性保护信息。
还包括摘要缓存1,由更新消息接收者调用,用于将接收到的尚未验证的更新消息进行缓存;摘要缓存2,由更新消息接收者调用,用于存储被本地策略过滤掉的摘要信息。
还包括摘要计算/维护模块,由更新消息接收者和更新消息产生者分别调用,用于计算摘要,并维护摘要缓存1和摘要缓存2。
还包括本地策略1,由更新消息接收者调用,用于存储更新消息过滤的本地策略库,更新消息接收者根据该策略库中的信息决定是否过滤相关的更新消息;本地策略2,由更新消息接收者调用,用于存储更新消息验证结果的本地策略库,更新消息的接收者根据更新消息的验证结果查询该策略库查询相关的处理策略。
通过本发明,更新消息产生者对于多个更新消息的摘要生成完整性保护信息,更新消息接收者对于多个更新的摘要信息进行完整性保护信息的验证,从而解决现有技术中更新消息保护和验证操作次数多,系统运行开销大的问题,并且缓解因为保护路由通告信息引入的安全机制导致的大量计算对网络设备带来的影响。


图1是本发明一实施例的应用场景图;图2是本发明一实施例的实体功能模型图;图3是本发明一实施例的普通更新消息产生流程图;图4是本发明一实施例的验证启动更新消息的产生流程图;图5是本发明一实施例的普通更新消息的接收处理流程图;图6是本发明一实施例的验证启动更新消息的接收处理流程图。
具体实施方案下面将结合附图和实施例对本发明进行进一步说明,但并不表示对本发明的限定。
本实施例的实际应用场景参见图1。图中包括更新消息产生者和更新消息接收者。其中更新消息产生者的功能是生成最初的BGP更新消息并在AS域间进行传递。更新消息接收者的功能是将收到的更新消息在AS域间传递。产生者和接收者的功能是相对的,针对于一个前缀某个实体可能是产生者,而针对另一个前缀是接收者。
本方案的实体(更新产生者或者更新接收者)功能模型图参见图2,本地策略1,由更新消息接收者调用,用于存储更新消息过滤的本地策略库,更新消息接收者根据该策略库中的信息决定是否过滤相关的更新消息;本地策略2,由更新消息接收者调用,用于存储更新消息验证结果的本地策略库,更新消息的接收者根据更新消息的验证结果查询该策略库查询相关的处理策略。
“更新消息产生处理模块”由更新消息产生者调用,用于进行更新消息的生成以及发送处理。
“更新消息接收处理模块”由更新消息接收者调用,用于处理收到的更新消息,进行后继的验证以及消息传播操作。
完整性保护信息生成模块,由更新消息产生者调用,用于生成完整性保护信息;完整性保护信息验证模块,由更新消息接收者调用,用于验证完整性保护信息。
摘要缓存1,由更新消息接收者调用,用于将接收到的尚未验证的更新消息进行缓存;摘要缓存2,由更新消息接收者调用,用于存储被本地策略过滤掉的摘要信息。
摘要计算模块,由更新消息接收者和更新消息产生者分别调用,用于计算摘要。
更新产生者可以产生两种更新消息,普通报文和验证启动报文。
其中,完整性保护信息可以是通过数字签名或哈希消息验证码(HMAC)等其他方式得到。本发明具体以数字签名为例说明本发明的实现过程,参照图3,本发明所述的普通更新消息的产生方法如下步骤301更新消息产生者生成BGP更新消息,同时生成一个序号并且将所述序号加入到所述更新消息中。所述序号用于唯一标识一个更新消息并可以反映更新消息的顺序,添加方式可以使用标准BGP扩展的方式。
步骤302更新消息产生者针对更新中要保护的信息计算摘要信息,将计算的摘要结果连同所述更新消息所对应的序号保存到“摘要缓存1”。更新消息中需要保护的部分可以采用本地配置的方式进行指定,例如指定的路径属性以及前缀等。
同时,需要保护部分的范围信息要加入到更新消息,以供接收者验证时使用,其加入方式可以使用标准BGP扩展的方式。
步骤303更新消息产生者将含有序号以及保护范围信息的更新消息按照BGP协议要求进行发送。
参照图4,本发明所述的验证启动更新消息的产生方法如下步骤401更新消息产生者生成BGP更新消息,同时生成一个序号并且将所述序号加入到所述更新消息中。序号的添加的方式可以使用标准BGP扩展的方式。
步骤402更新消息产生者针对更新中要保护的信息计算摘要信息,将计算的摘要结果连同对应的更新序号信息保存到“摘要缓存1”。更新消息中需要保护的部分可以采用本地配置的方式进行指定,例如指定的路径属性以及前缀等。
同时,需要保护部分的范围信息要加入到更新消息中,以供接收者验证时使用,其加入的方式可以使用标准BGP扩展的方式。
步骤403更新消息产生者将“摘要缓存1”中累积的摘要信息按照序号进行排序后完成签名。
在本发明的实现中,确定需累积的摘要信息的数量可以由更新消息的产生者决定。
步骤404更新消息产生者将所述签名信息附加到更新消息中,并且将“摘要缓存2”中保存的因为本地过滤策略而过滤掉的更新的摘要以及所对应的序号信息附加到更新消息中,将最终的报文对外发送。
在本发明的具体实现中,如果本步骤中附加的信息过多则可以分为多个报文发送,也可以发送仅仅包含验证相关信息而不包括前缀信息的专用报文。
参照图5,本发明所述的普通更新消息的接收处理方法如下步骤501更新消息接收者根据接收到的更新消息中提供的需要保护的范围信息,对于需要保护部分计算摘要。并将摘要和更新消息对应的序号保存到“摘要缓存1”中。
步骤502更新消息接收者对所收到的更新消息查询“本地策略1”,判断更新消息是否会被本地策略过滤。
步骤503如果应用“本地策略1”后会将更新消息过滤掉,更新消息接收者则将自身的摘要和序号信息保存在“摘要缓存2”中。
步骤504如果应用“本地策略1”后不会将更新消息过滤调,更新消息则继续传递更新信息。
参照图6,本发明所述的验证启动更新消息的接收处理方法如下步骤601更新消息接收者根据接收到的更新消息中需要保护的范围信息,对于需要保护部分计算摘要。并将摘要和更新消息对应的序号保存到“摘要缓存1”中。将本更新消息中携带的附加的摘要和序号信息写入到“摘要缓存1”中。
步骤602更新消息接收者取出“摘要缓存2”中同更新消息产生者相关的摘要信息和相应序号,将所述信息附加到本更新消息中,准备后继对外传播。
步骤603更新消息接收者取出“摘要缓存1”中同更新消息产生者相关的摘要信息和相应的序号,按照序号排列摘要后对摘要进行签名验证。根据签名验证的结果以及本地的策略决定后继该更新消息的处理。
后继处理动作取决于“本地策略2”。例如如果签名验证失败,可以选择丢弃该更新信息,也可以选择保留该更新信息。
步骤604更新消息接收者对所述更新消息应用“本地策略1”,判断报文是否会被“本地策略1”过滤。“本地策略1”可以是对于接收报文的过滤策略等。
步骤605更新消息接收者验证启动更新消息的过滤信息,如果所述的验证启动更新消息被过滤,则更新消息接收者从所述的更新消息中取出其附加的摘要信息、序号以及签名信息,并从“摘要缓存2”中取出同更新消息发生者相关的摘要信息、序号,更新消息接收者将以上信息组合后继续传递。
在本发明的实现过程中,验证启动更新消息被过滤,但被过滤的摘要、序号信息以及签名信息是必须进行传递的,而更新消息中的路由信息可以不被传递。
步骤606如果所述的验证启动更新消息没有被过滤,更新消息接收者将“摘要缓存2”中的同本更新消息产生者相关的摘要以及序号信息附加到本更新信息中继续传递。
步骤607更新消息接收者将“摘要缓存1”和“摘要缓存2”中的同本更新消息产生者相关的摘要信息进行释放。
此外,在本发明的实现中,更新消息产生者和更新消息接收者需要采用同样的摘要计算方式和完整性保护验证方式,这样才能保证认证的通过,例如二者之间可以通过BGP标准协议扩展机制来协商摘要算法、签名算法,也可以通过在每个更新消息中添加标识信息表明采用的摘要算法、签名算法。
本发明还提供了一种摘要产生和存储的优化方案,即接收者在收到新的更新信息后,将更新发送者的前次的摘要信息附加到本次更新信息中计算摘要。在更新消息未被过滤情况下对应每个更新发送者,本地仅仅保留一份摘要信息。
以上只是本发明的优选实施方式进行了描述,本领域的技术人员在本发明技术的方案范围内,进行的通常变化和替换,都应包含在本发明的保护范围内。
权利要求
1.一种BGP更新消息的保护和验证的方法,其特征在于,包含如下步骤步骤A更新消息产生者对所生成的更新消息计算摘要,并对摘要进行累积,根据累积的摘要信息生成完整性保护信息,所述保护信息的结果随更新消息发送出去;步骤B更新消息接收者收到带有完整性保护信息的更新消息后,将累积的摘要信息进行完整性保护信息验证。
2.如权利要求1所述的更新消息的保护和验证的方法,其特征在于步骤A中更新消息产生者是依据更新消息中需要保护的内容来计算摘要的,所述保护内容需要在更新消息中体现。
3.如权利要求1或2所述的更新消息的保护和验证的方法,其特征在于步骤A具体包括A1、更新消息产生者对所生成的更新消息计算摘要,将计算结果暂存本地,继续发送更新消息;A2、更新消息产生者发送一定数量的更新消息后,根据累积的摘要信息生成完整性保护信息,所述保护信息的结果随更新消息发送出去。
4.如权利要求1所述的更新消息的保护和验证的方法,其特征在于,所述步骤A中的完整性保护信息是通过数字签名或哈希消息验证码HMAC获得。
5.如权利要求1所述的更新消息的保护和验证的方法,其特征在于,更新消息的产生者在更新消息之中添加序号信息。
6.如权利要求1或2所述的更新消息的保护和验证的方法,其特征在于步骤A中摘要的计算方式采用将上一次的摘要信息结合本次需要保护的更新消息的内容共同计算摘要或针对每个更新消息单独计算一个摘要。
7.如权利要求5所述的更新信息的保护和验证的方法,其特征在于步骤A中摘要信息对应的更新信息的序号信息需要进行存储。
8.如权利要求5或7所述的更新信息的保护和验证的方法,其特征在于在生成完整性保护信息之前,更新消息产生者要按照序号对于摘要进行排序。
9.如权利要求7所述的更新信息的保护和验证的方法,其特征在于在步骤B之后还包括,步骤C、更新消息接收者使用同更新信息产生者相同的摘要计算方式针对更新消息中指定的保护内容进行摘要计算,并将摘要以及所述摘要所对应的更新消息的序号保存到本地。
10.如权利要求9所述的更新信息的保护和验证的方法,其特征在于步骤C具体包括,更新消息接收者验证启动更新消息的过滤信息,如果所述的验证启动更新消息被过滤,则更新消息接收者需要保存所述更新消息中被过滤的摘要信息和序号以及更新消息中在先前更新消息接收者中被过滤的摘要和序号信息。
11.如权利要求10所述的更新信息的保护和验证的方法,其特征在于步骤C后还包括步骤D、更新消息的接收者根据序号排序缓存的摘要信息后,采用同更新消息的发送者相同的完整性保护计算方式进行完整性保护信息计算,并将完整性保护信息的计算结果同更新消息中携带的完整性保护信息进行比较,若二者一致,则通过完整性保护验证。
12.如权利要求11所述的更新信息的保护和验证的方法,其特征在于步骤D具体包括,如果带有完整性保护信息的更新消息被本地策略过滤,更新消息的接收者需要从所述的更新消息中取出其附加的摘要信息、序号和完整性保护验证信息,并取出本地被过滤的同更新消息发生者相关的摘要信息、序号,更新消息接收者将以上信息组合后继续传递。
13.一种更新消息的保护和验证的装置,其特征在于,包括以下部分更新消息产生处理模块,由更新消息产生者调用,用于进行更新消息的生成以及发送处理;更新消息接收处理模块,由更新消息接收者调用,用于对所收到的更新消息进行验证。
14.如权利要求13所述的装置,其特征在于,还包括完整性保护信息生成模块,由更新消息产生者调用,用于生成完整性保护信息;完整性保护信息验证模块,由更新消息接收者调用,用于验证完整性保护信息。
15.如权利要求13所述的装置,其特征在于,还包括摘要缓存1,由更新消息接收者调用,用于将接收到的尚未验证的更新消息进行缓存;摘要缓存2,由更新消息接收者调用,用于存储被本地策略过滤掉的摘要信息。
16.如权利要求15所述的装置,其特征在于,还包括摘要计算/维护模块,由更新消息接收者和更新消息产生者分别调用,用于计算摘要,并维护摘要缓存1和摘要缓存2。
17.如权利要求13所述的装置,其特征在于,还包括本地策略1,由更新消息接收者调用,用于存储更新消息过滤的本地策略库,更新消息接收者根据该策略库中的信息决定是否过滤相关的更新消息;本地策略2,由更新消息接收者调用,用于存储更新消息验证结果的本地策略库,更新消息的接收者根据更新消息的验证结果查询该策略库查询相关的处理策略。
全文摘要
本发明提供了一种BGP更新消息(UPDATE)的保护和验证的方法及装置,属于计算机网络通信领域,本发明的主要思想是更新消息产生者对所生成的更新消息计算摘要,并对摘要进行累积,根据累积的摘要信息生成完整性保护信息,所述的保护信息的结果随累积的更新消息发送出去;更新消息接收者收到带有完整性保护信息的累积的更新消息后,将累积的摘要信息进行完整性保护信息验证。这样,本发明从而解决现有技术中更新消息保护和验证操作次数多,系统运行开销大的问题,并且缓解因为保护路由通告信息引入的安全机制导致的大量计算对网络设备带来的影响。
文档编号H04L29/12GK101047699SQ200610060550
公开日2007年10月3日 申请日期2006年4月27日 优先权日2006年4月27日
发明者苗福友 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1