通过思科路由器提高OSPF安全性
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协议中,在其分组中,还包含了一个非降序的序列号。通过这个序列号,可以防止黑客的重放攻击。重放攻击就是攻击者发送一个目的主机已接收过的包,通过占用接收系统的资源,来达到欺骗系统的目的。重放攻击往往用来攻击身份认证。可以说,重放攻击是黑客最喜欢采用的工具之一。
三、通过思科路由器提高OSPF的安全性
那么思科路由器是如何来保障OSPF协议的安全性的呢?在思科网络产品中,采取了比较完整的解决方案。
一是将所有受影响的设备都设置为非广播模式。在非广播模式中,OSPF设备需要明确配置才能同有效的OSPF邻居(即与某个OSPF路由器直接相连的网络设备)进行通信。在非广播模式中,提供了一个基本的安全层,可以防止配置错误。因为在配置模式下,只有预先配置成可以与这台OSPF路由器通信的网络设备才能够与其进行通信,更新路由信息。而在广播环境中,任何具有正确配置的OSPF设备都可以参与到OSPF路由中。如在简单密码认证模式下,只要知道这个密钥就能够参与到路由更新信息中。其实,这跟服务器或者路由器的远程管理类似。如可以通过访问控制列表或者防火墙限制只有特定MAC地址或者IP地址的主机才可以远程连接到路由器上进行远程管理。如此的话,就可以提高远程访问的安全性。而这里采用非广播模式,其安全思路与此是相同的。在思科的路由器产品中,默认情况是采用广播模式的。这主要是出于兼容性的考虑,如在不需要额外配置的情况下,就可以直接联入网络。不过为了提高OSPF的安全性,我们往往需要把其模式配置为非广播模式。如需要更换这个模式,需要在路由器的接口配置提示符中执行如下的命令:
IP ospf network non-broadcast.
二是为OSPF路由设置合适的认证方案。在OSPF路由协议中,主要支持三种认证方式,分别为NULL认证、简单密码认证与消息摘要认证。NULL认证即为空认证,也就是说不需要认证即可以加入到OSPF网络中。在简单认证中,密钥在网络中是通过明文传输的。故知需要攻击者有监听器等工具就可以轻而易举的获取密钥,从而就可以轻松的对网络进行破坏。而消息摘要认证就如同上面所说的,其密钥不直接在网络上传播。到目前为止,其采用了国际上普遍承认的消息摘要算法。可以说,其是现在最安全的OSPF认证模式。故一般情况下,笔者建议网络管理员采用消息摘要身份认证。因为采用简单认证方式,跟采用NULL空认证方式差不多,都不能够有效保障OSPF网络环境的安全。
消息摘要算法的典型应用是对一段信息产生信息摘要,以防止被篡改。比如,举一个发生在我们身边的实际例子。在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本。这就是某个下载文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。通过这种方式,就可以保障下载文件的合法性。
若网络管理员需要采用消息摘要认证,也是比较简单的一件事情。现在思科的路由器都支持摘要消息认证的方式。如果要在思科路由器中启用消息摘要认证的话,则需要在接口配置提示符下进行操作。
另外,企业可能不需要对所有的OSPF进程采用这么高的安全认证方法。对于一些安全性需求不要的地方,可以只采用简单认证或者空认证。毕竟采用摘要消息认证,需要花费一定的系统资源。虽然这个消耗的比例比较少,但是会对网络性能产生不利的影响。为此,在思科路由器中,可以有选择的对OSPF协议进程ID设置不同的认证方式,以实现不同的安全需求。