OSPF也是一种路由协议,它是链路状态协议的开放版本。在实际工作中,在一些大型网络、混合型的网络中,常常使用OSPF协议。
一、利用OSPF协议解决RIP路由信息协议的缺陷
说句实话,引入OSPF协议主要是用来解决RIP路由信息协议的一些缺陷。
如RIP与RIP2协议都具有15跳的限制。如果网络跨越超过了15跳限制的话,目的地会被认为不可达。所以,RIP路由信息协议其使用范围就被定义在小型网络。而OSPF协议继承了RIP路由信息协议原有的优点,同时突破了这个15跳的限制。另外,OSPF还可以解决RIP路由信息协议汇聚缓慢等缺陷。笔者在谈到OSPF的安全问题时,之所以简要介绍OSPF协议与RIP路由信息协议的关系,主要是想强调一下,OSPF协议也如同RIP协议一样,是目前企业网络设计中常用的协议。所以,如何提高这个协议的安全性,对于网络管理员来说也就显得尤其的重要。
二、OSPF的认证方式
OSPF主要是通过路由更新认证的方式提供了其链路的安全性。如可以认证OSPF分组,如此路由器就可以根据预先配置的密码参与到路由域中。不过默认情况下,路由器往往不采用认证,有些书上也把它叫做NULL认证。也就是说,网络上的路由器交换是不对彼此进行认证的。这显然不利于OSPF协议的安全性。
通常情况下,为了提高OSPF协议的安全性,往往要对其采取一些安全措施。常见的安全措施目前为止有两种。分别为简单的密码认证与消息摘要认证。
简单的密码认证允许在每一个区域中配置一个密码,在同一个区域中的路由器要参与到路由域中,就必须配置相同的密钥。如果没有密钥的话,则其他路由器是不会接受新加入的路由器的。这在一定程度上,可以提高OSPF协议的安全性。不过这种方式确实是“简单,其比较容易受到攻击。如现在有一种叫做“消极攻击的方式,对这种简单密码认证就很有效。在这个域中,只要具有链路分析器这个工具,就可以轻而易举的获得这个密钥,从而进行一些破坏工作。
消息摘要认证相对来说,要比简单密码认证安全的多。因为消息摘要认证是加密的认证。再每一个路由器上都配置一个密钥与一个密钥ID。如果路由器采用OSPF协议的话,则其就会采用一个基于OSPF的算法,并结合密钥、密钥ID来创建一个消息摘要。然后路由器会把这个消息摘要加入到OSPF分组的后面。很简单密码认证不同,不需要再链路上交换密钥。如此的话,即使不法攻击者有链路分析工具的话,也无法取得这个密钥信息。为此,可以有效提高这个密钥的安全性。消息摘要认证主要广泛用于操作系统、网络设备的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方,或者思科的网络设备中。如在UNIX系统中用户的密码是以消息摘要认证经哈希运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行消息摘要认证与哈希运算,然后再去和保存在文件系统中的消息摘要认证值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。在思科路由器等网络设备中,身份认证过程也是如此。这就可以避免用户的密码被具有系统管理员权限的用户知道。消息摘要认证将任意长度的“字节串映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个消息摘要认证的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了消息摘要认证密码的问题,比较好的办法是:你可以用这个系统中的消息摘要认证函数重新设一个密码,把生成的一串密码的Hash值覆盖原来的Hash值就行了。而不用去想着如何破解。破解基本上是不可能的。除非你的运气真的特别好,给你蒙对了。可以说,消息摘要认证被破解比中500万的几率还要小500万倍。所以,消息摘要认证比简单密码认证安全程度要高的多。
另外在OSPF协议中,在其分组中,还包含了一个非降序的序列号。通过这个序列号,可以防止黑客的重放攻击。重放攻击就是攻击者发送一个目的主机已接收过的包,通过占用接收系统的资源,来达到欺骗系统的目的。重放攻击往往用来攻击身份认证。可以说,重放攻击是黑客最喜欢采用的工具之一。