论文部分内容阅读
摘 要:OSPF(Open Shortest Path First,开放最短路径优先)是一种用于通信设备上基于SPF(Shortest Path First,最短路径优先)算法的典型的链路状态路由协议,着重介绍了OSPF协议的报文收发类型以及认证机制,并结合实际应用,分析认证的安全性以及如何进行攻击的防御。
关键词:路由协议;IGP;安全
中图分类号:TP393.08文献标识码:A文章编号:1672-3198(2008)01-0266-01
OSPF(Open Shortest Path First,开放最短路径优先)是一种用于通信设备上基于SPF(Shortest Path First,最短路径优先)算法的典型的链路状态路由协议,发送报文有如下五种类型分别是:第一,Hello数据包,运行OSPF协议的路由器每隔一定的时间发送一次Hello数据包,用以发现、保持邻居(Neighbors)关系并可以选举DR/BDR。第二,链路状态数据库描述数据包(DataBase Description,DBD)是在链路状态数据库交换期间产生,它的主要作用有三个:选举交换链路状态数据库过程中的主/从关系、确定交换链路状态数据库过程中的初始序列号和交换所有的LSA数据包头部。第三,链路状态请求数据包(LSA-REQ)用于请求在DBD交换过程发现的本路由器中没有的或已过时的LSA包细节。第四,链路状态更新数据包(LSA-Update)用于将多个LSA泛洪,也用于对接收到的链路状态更新进行应答。如果一个泛洪LSA没有被确认,它将每隔一段时间(缺省是5秒)重传一次。第五,链路状态确认数据包(LSA-Acknowledgement)用于对接收到的LSA进行确认。该数据包会以组播的形式发送。
最新的RFC2328规定OSPF协议的五种报文都有相同OSPF报文头格式,其中AuType字段定义了认证类型(目前提供的三种认证类型分别为无认证、简单明文认证、MD5认证),并且在OSPF报文头中包含8个字节的认证信息,OSPF的校验和不计算这8个字节的认证信息。下面我们具体分析一下OSPF的两种带认证的工作模式。
简单明文认证。认证类型为1,在所有OSPF报文采用8个字节的明文认证,不能超过该长度,在物理线路中传输时,该口令是可见的,只要监听到该报文,口令即泄漏,防攻击能力脆弱,这种认证方式的使用只有在条件限制,邻居不支持加密认证时才用。
MD5认证。认证类型为2,OSPF采用的一种加密的身份认证机制。在OSPF报文头中,用于身份验证的域包括:key ID、MD5加密后认证信息长度(规定16字节)、加密序列号。实际16字节加密后的信息在整个IP报文的最后,CRC校验码之前。key ID标识了共享密钥的散列函数,建立邻居关系的两个设备来说key ID必需相同。加密序列号是一个递增整数,递增的幅度不固定,只要后一个协议包的序列号肯定不能比前一个小就行了,一般以设备启动时间秒数为序列号值。16字节的加密信息产生过程如下:
第一步、在OSPF分组报文的最后(IP报文CRC之前)写入16字节的共享密钥。
第二步、MD5散列函数的构造,将第一步生成的消息,将其规范为比512字节小8个字节的信息(如果不够可以填充),然后添加八个字节(内容为填充前实际报文长度),这样第二步构成的散列函数刚好是512字节的整数倍。
第三步、用MD5算法对第二步中的散列函数计算其散列值,产生16字节的消息摘要。
第四步、用第三步中产生的16字节散列值替换第一步已经写入到OSPF分组报文中的公共密钥,完成加密过程。
从第一步到第四步过程中没有计算该16字节信息的OSPF校验和。
分析完认证后,我们再分析一下认证的安全性问题。
无认证时,对通信设备的攻击只要能“窃入”物理链路,即可以合法的身份进行攻击,篡改路由表,造成严重后果。
简单明文认证时,对通信设备的攻击也只要能“窃入”物理链路,监听物理链路上的OSPF路由协议报文,直接获取明文口令后,即可使用该口令以合法的身份进行攻击。
MD5认证时,对通信设备的攻击即使“窃入”物理链路,监听物理链路上的OSPF路由协议报文,比较难以进行攻击。由于MD5算法为单向加密算法,即任意两段明文数据,加密以后的密文不能是相同的,而且任意一段明文数据,经过加密以后,其结果必须永远是不变的,而且MD5采用128位加密方法,破译MD5的加密报文的手段包括“暴力搜寻”冲突的函数,“野蛮攻击”用穷举法从所有可能产生的结果中找到被MD5加密的原始明文,实行起来都相当困难(一台机器每秒尝试10亿条明文,那么要破译出原始明文大概需要10的22次方年)。所以入侵者很难获取MD5认证口令或者说其获取口令的代价值相当的高,一些重要通信节点上,即使入侵者愿意花高昂的代价获取到密码还是有预防措施将非受信的入侵者拒之门外。入侵者试图攻击通信设备,其有两种方法,一种是以新加入的邻居的方式,一种是以仿真合法邻接通信设备的方式。下面我们着重研究一下这几种攻击方式的处理措施。
对于第一种以新邻居方式的攻击手段,现在多数通信设备都已经实现访问控制,即该接口上仅允许接收源IP地址为合法邻居的OSPF报文,来自入侵者企图以该网段新邻居的方式加入,没有管理员配置,邻居关系始终无法建立,无法入侵修改路由表。
对于第二种以仿真合法邻接通信设备的方式攻击,而且该入侵者还获取了口令,这个入侵检测和预防都复杂很多。不过我们可以根据邻接OSPF配置特点,目的地址为保留组播地址,IP报文头中TTL为1,入侵者发出来的报文必需向保留组播地址发送,所以被攻击设备和被“仿真”的合法设备都能收到该报文,这时候被“仿真”设备能发现网络上有人冒用自己名义,即可以采用告警更换密码、检查线路安全等方式杜绝攻击。
其他常规的安全防护包括设备已经通信介质尽量保证物理安全,密码设置一定的复杂度,定期更换密码,密码加密后保存到通信设备的存储介质上等一系列措施必不可少,还需要保障通信设备不会被远程入侵,简单防御手段是关闭所有的远程访问通道,只能通过串口通过口令校验进行访问,即使允许远程访问,也可以多加限制,如只允许哪些主机地址,通过口令进行访问,并且进行登陆攻击监控,在指定的时间内,如果试图登陆的最大次数超过所给定的次数的话,系统将拒绝所有的登陆尝试。
关键词:路由协议;IGP;安全
中图分类号:TP393.08文献标识码:A文章编号:1672-3198(2008)01-0266-01
OSPF(Open Shortest Path First,开放最短路径优先)是一种用于通信设备上基于SPF(Shortest Path First,最短路径优先)算法的典型的链路状态路由协议,发送报文有如下五种类型分别是:第一,Hello数据包,运行OSPF协议的路由器每隔一定的时间发送一次Hello数据包,用以发现、保持邻居(Neighbors)关系并可以选举DR/BDR。第二,链路状态数据库描述数据包(DataBase Description,DBD)是在链路状态数据库交换期间产生,它的主要作用有三个:选举交换链路状态数据库过程中的主/从关系、确定交换链路状态数据库过程中的初始序列号和交换所有的LSA数据包头部。第三,链路状态请求数据包(LSA-REQ)用于请求在DBD交换过程发现的本路由器中没有的或已过时的LSA包细节。第四,链路状态更新数据包(LSA-Update)用于将多个LSA泛洪,也用于对接收到的链路状态更新进行应答。如果一个泛洪LSA没有被确认,它将每隔一段时间(缺省是5秒)重传一次。第五,链路状态确认数据包(LSA-Acknowledgement)用于对接收到的LSA进行确认。该数据包会以组播的形式发送。
最新的RFC2328规定OSPF协议的五种报文都有相同OSPF报文头格式,其中AuType字段定义了认证类型(目前提供的三种认证类型分别为无认证、简单明文认证、MD5认证),并且在OSPF报文头中包含8个字节的认证信息,OSPF的校验和不计算这8个字节的认证信息。下面我们具体分析一下OSPF的两种带认证的工作模式。
简单明文认证。认证类型为1,在所有OSPF报文采用8个字节的明文认证,不能超过该长度,在物理线路中传输时,该口令是可见的,只要监听到该报文,口令即泄漏,防攻击能力脆弱,这种认证方式的使用只有在条件限制,邻居不支持加密认证时才用。
MD5认证。认证类型为2,OSPF采用的一种加密的身份认证机制。在OSPF报文头中,用于身份验证的域包括:key ID、MD5加密后认证信息长度(规定16字节)、加密序列号。实际16字节加密后的信息在整个IP报文的最后,CRC校验码之前。key ID标识了共享密钥的散列函数,建立邻居关系的两个设备来说key ID必需相同。加密序列号是一个递增整数,递增的幅度不固定,只要后一个协议包的序列号肯定不能比前一个小就行了,一般以设备启动时间秒数为序列号值。16字节的加密信息产生过程如下:
第一步、在OSPF分组报文的最后(IP报文CRC之前)写入16字节的共享密钥。
第二步、MD5散列函数的构造,将第一步生成的消息,将其规范为比512字节小8个字节的信息(如果不够可以填充),然后添加八个字节(内容为填充前实际报文长度),这样第二步构成的散列函数刚好是512字节的整数倍。
第三步、用MD5算法对第二步中的散列函数计算其散列值,产生16字节的消息摘要。
第四步、用第三步中产生的16字节散列值替换第一步已经写入到OSPF分组报文中的公共密钥,完成加密过程。
从第一步到第四步过程中没有计算该16字节信息的OSPF校验和。
分析完认证后,我们再分析一下认证的安全性问题。
无认证时,对通信设备的攻击只要能“窃入”物理链路,即可以合法的身份进行攻击,篡改路由表,造成严重后果。
简单明文认证时,对通信设备的攻击也只要能“窃入”物理链路,监听物理链路上的OSPF路由协议报文,直接获取明文口令后,即可使用该口令以合法的身份进行攻击。
MD5认证时,对通信设备的攻击即使“窃入”物理链路,监听物理链路上的OSPF路由协议报文,比较难以进行攻击。由于MD5算法为单向加密算法,即任意两段明文数据,加密以后的密文不能是相同的,而且任意一段明文数据,经过加密以后,其结果必须永远是不变的,而且MD5采用128位加密方法,破译MD5的加密报文的手段包括“暴力搜寻”冲突的函数,“野蛮攻击”用穷举法从所有可能产生的结果中找到被MD5加密的原始明文,实行起来都相当困难(一台机器每秒尝试10亿条明文,那么要破译出原始明文大概需要10的22次方年)。所以入侵者很难获取MD5认证口令或者说其获取口令的代价值相当的高,一些重要通信节点上,即使入侵者愿意花高昂的代价获取到密码还是有预防措施将非受信的入侵者拒之门外。入侵者试图攻击通信设备,其有两种方法,一种是以新加入的邻居的方式,一种是以仿真合法邻接通信设备的方式。下面我们着重研究一下这几种攻击方式的处理措施。
对于第一种以新邻居方式的攻击手段,现在多数通信设备都已经实现访问控制,即该接口上仅允许接收源IP地址为合法邻居的OSPF报文,来自入侵者企图以该网段新邻居的方式加入,没有管理员配置,邻居关系始终无法建立,无法入侵修改路由表。
对于第二种以仿真合法邻接通信设备的方式攻击,而且该入侵者还获取了口令,这个入侵检测和预防都复杂很多。不过我们可以根据邻接OSPF配置特点,目的地址为保留组播地址,IP报文头中TTL为1,入侵者发出来的报文必需向保留组播地址发送,所以被攻击设备和被“仿真”的合法设备都能收到该报文,这时候被“仿真”设备能发现网络上有人冒用自己名义,即可以采用告警更换密码、检查线路安全等方式杜绝攻击。
其他常规的安全防护包括设备已经通信介质尽量保证物理安全,密码设置一定的复杂度,定期更换密码,密码加密后保存到通信设备的存储介质上等一系列措施必不可少,还需要保障通信设备不会被远程入侵,简单防御手段是关闭所有的远程访问通道,只能通过串口通过口令校验进行访问,即使允许远程访问,也可以多加限制,如只允许哪些主机地址,通过口令进行访问,并且进行登陆攻击监控,在指定的时间内,如果试图登陆的最大次数超过所给定的次数的话,系统将拒绝所有的登陆尝试。