路由协议的加密方法

目前常用的网络路由协议中唯OSPF使用最为广泛,但除了OSPF协议以外还有其他协议同样被使用。本文将主要研究这些路由协议中的认证加密问题,在路由认证的过程中所配置的密码到底是否用来加密。在路由协议工作过程中这些报文是如何交互的。

        首先,所有的路由协议中所谓的加密都不是真正意义上的加密,路由协议工作过程中交互的所有报文也都不是加密的,所有的路由协议都是这样。那在命令行配置的密码到底有什么作用?

        以最常见的路由协议OSPF为例,OSPF的认证方式共分为三级,0级是无认证;1级最明文认证;2级是MD5认证,也就是常说的“加密”认证。0级和1级咱先不研究,先看看2级的MD5认证。MD5其实并不是加密算法,它只是一种算法,一种散列函数,它本身没有加密功能。

        先了解下MD5:

MD5算法可以把一个不管数据有多大的数,通过MD5算法计算可以得出一个散列值,这个散列值通常称为哈稀值。哈稀值的长度是固定为128bit,以16进制数的方式显示。这一串哈稀值可以说是全球唯一的,只有跟这个原始数据一模一样的数据才能得到一样的哈稀值,如果将这个原始数据做一点点改动,哪怕加一个空格或多一个字符,再次使用MD5计算后得出的哈稀值都会完全不一样。我们称这一特性为雪崩效应,其实路由协议就是利用了这一特性,通过雪崩效应来验证路由报文的合法性。

现在来看看两个路由器之间交互的报文是如何通过MD5来进行认证的:

ospf怎么配置md5 ospf md5加密配置_路由

如上图,路由信息的安全交互过程如下:

  1. 两台路由器配置密码HELY。
  2. 当路由器发送数据给邻居时,拿报文与本地配置的密码一起做哈稀运算,得出哈稀值后将其与原始数据报文一起发送给对方路由器。注意,原始报文是没有做过任何改动的,也没有所谓的“加密”处理
  3. 对方路由器接收到报文后将原始报文拿出来与本地配置的KEY一起做哈稀运算得出哈稀值,然后将些哈稀值与接收到的哈稀值做对比,若两个值相同,则代表报文合法,将报文收下,否则丢弃。

路由协议的加密过程大致就是如此,中间并没有涉及到加密,因此应该称为是验证。除OSPF协议外,其他的路由协议都是如此,只要是使用MD5验证的方法都一模一样,没有特别。唯一不同的只是MD5较验后得出的哈稀值是否加入到原始的数据报文中,如BGP协议中,MD5较验值是被放在TCP的选项值内的,其他协议的MD5较验值则是放在了数据部分。