O SPF
路由机制与安全性研究
陈凤雏
(长江大学文理学院,湖北荆州
)
434020
是一种基于链路状态的内部网关路由协议
本文介绍了
。
路由协议,分析了其链路状态数据库及其形成与维护,最后
OSPF
[摘 要] OSPF
对
[关键词] OSPF
OSPF
的安全机制进行了探讨和研究
;状态数据库;漏洞
。
路由机制概述
1 OSPF
OSPF (Ope n Shorte s t Path Firs t) 作为目前互联网络应用最为广
泛的内部网关路由协议,主要提供自治系统 (Autonom ous Sys te m,
AS) 内的动态选择路由。它是一种典型的链路状态协议,不同于距离
向量协议 (如RIP 等)。
链路状态数据库及其形成与维护
2
在一个区域内,所有的 OSPF路由器都需要维护一个相同的链路
状态数据库,这个数据库其实是一张关于这个区域的网络拓扑图,图中
的每一条边都有一个相应的权值,表示向该方向传输数据的代价。在这
张图的基础上路由器就可以通过Dijks tra 算法来计算到每一个目的地的
最短路径,从而生成路由表。从另一个方面讲,路由器上的链路状态数
据库也是一个 LSA的集合,链路状态数据库是路由器在综合其它路由
器的LSA后生成的。
在链路状态路由算法中,保持所有路由器的链路状态数据同步是
一项重要的事情。所有的路由器的同步都是建立在以下四个条件的基础
之上的:
1) 动态发现邻居;2) 确认邻居间的双向链接关系;3) 维持与邻
居之间的邻接关系;4) 指派与备份指派路由器的选举产生。
这四个条件的产生都是He llo 协议作用的结果,路由器发送 He llo
报文让其它路由器发现它的存在,然后通过双向发送He llo 报文来确立
双向链接的邻居关系和保持邻接关系。指派路由器和备份指派路由器的
选举则需要前三者作为先行条件。在路由器开始尝试邻接关系建立之
时,链路状态数据便开始了同步的进程。这一发送和接收数据库描述分
组的过程被称作“数据库交换进程”。
主路由器在收到LSR报文后通过读取LSR中LSA摘要确定需要发
送到从路由器的 LSA。然后将 LSA封装到 LSU 报文中发送到从路由
器。从路由器在收到 LSU 报文后需要向主路由器发送一个应答信号,
即发送一个 LSAck 报文。如果主路由器在一定的时间间隔内 (Rxm t-
Inte rval) 没有收到来自从路由器的确认应答,则主路由器会重新发送
链路状态描述报文。这就是路由器间同步数据库的过程两个基本的数据
库操作———添加一个LSA到数据库和从数据库中删除一个LSA的基本
流程如图 1 所示:
图 1 向 (从) 数据库中添加或删除 LSA
的安全机制分析
3 OSPF
验证机制
3.1
OSPF路由协议的设计者为OSPF路由协议的每一个报文都添加了
验证机制,在 OSPF的所有报文中都有一个 32bit 长度的验证 (Au-
the ntication) 字段,另外在验证字段前边另有 16bit 的验证类型
(Authe nType) 字段用于标识验证字段的类型,这两者一起组成了
OSPF报文的验证机制。一个OSPF协议的报文头部可。验证类型可以
基于通用接口(或通用网络 / 子网)进行配置,置0 为空验证,即在路由交
236
2009 年 11 月 ( 下 )
换中不需要任何验证;置1 为简单口令验证,可防止路由器在不提防的
情况下加入到路由域;置2 则为加密验证。所有其它值,是由 IANA预
留的分配。三种验证机制中最为安全的便是加密验证,使用该类型时,
为同一个网络 / 子网的所有OSPF路由器配置一个相同的密钥。每一个
该网络的路由器都用密钥和报文内容作为输入生成一个32 位的消息摘
要,并附着于报文之后一起发送到目的路由器。报文即使被攻击者截获
也无法从签名中恢复出密钥,因为生成的消息摘要是采用MD5 算法生
成的单项散列函数。即便篡改报文,由于单向散列函数的雪崩效应可保
证篡改后的报文生成的散列值与以前的散列值有较大的差异性,篡改的
报文不可能骗过路由器替代原报文。
可靠的泛洪机制
3.2
OSPF路由协议采用了一种叫做泛洪 (flood) 的机制来保证区域
内各个路由器的链路状态数据库同步。每一个区域内的路由器都会生成
LSA来描述特定的网络拓扑信息,而链路状态更新报文 (LSU) 则提供
了泛洪的机制,每一个 LSU包含有一个或多个 LSA,泛洪过程将这些
包含着拓扑信息的LSA分发到目的路由器。为实现可靠的泛洪,OSPF
路由协议规定:路由器在收到来自其它路由器的一个或多个链路状态通
告后,必须向其来源路由器发送一个确认应答 (Link State Acknow l-
e dgm e nt Packe t,LSAk),告知已经收到LSA。因而OSPF的泛洪算法
被认为是可靠的,实践也很好的证明了这一点。与RIP 等距离向量协议
相比,OSPF的泛洪机制在安全性上拥有更多的优势。由于OSPF的链
路状态数据库是一个分布的数据库,各个数据库都是同步的,无论是一
个节点错误还是入侵者试图伪造或修改其它路由器的信息,只要还存在
一个可交替的路径,好的路由器就最终能收到消息,尽管可能存在冲突
的信息。对信息的依赖大大降低是泛洪单个LSA更深远的意义:每个
路由器都只使用来自最初信息发布者通告的未经加工的信息,而不是来
自于其邻居的整合过了的信息。这种信息独立有助于找出哪个路由器发
布了虚假信息,而且“独立”有助于使用身份认证来验证消息源的可靠
性。
分层路由机制
3.3
OSPF层次路由机制设计的初衷是为了解决路由协议中路由表过大
等问题的。这一设计大大减少了路由表的大小、带宽和路由计算的资
源。同时也给OSPF路由协议带来的稳定性,使得OSPF更加的健壮和
安全。OSPF通过将自治系统划分成若干个区域,若干个区域的 ABR
又组成一个骨干区域。区域内部的路由不为外部所知道,路由选择时区
域内路由要优先于区域间路由,这使得一个OSPF区域内的威胁很难影
响到另外一个区域内部的通信。
[参考文献]
[1] 陈海鸿,O SPF 路由协议包的安全防范.广东金融电脑,2000.
[2] 杨静,谢蒂,,王雷. O SPF 路由协议的安全分析及其漏洞分析[J].山东大学
学报(工学版),2003,
[3] 谢蒂,杨静.一种低代价可靠的 O SPF 验证机制[J].计算机应用,2003.