基于链路状态的路径选择协议研究和安全性分析
2014-03-16中航工业西安航空计算技术研究所
中航工业西安航空计算技术研究所 张 成
江海职业技术学院 张 乾
陕西应用物理化学研究所 任 伟
武汉烽火众智数字技术有限责任公司 张方兵
1.引言
随着计算机技术对高速数据通信的需要日益增长,美国国家标准委员会(ANSI)研究了用于连接各种IO设备的高速串行数据传输的FC协议[1]。路由技术是FC网络运作组织的核心,而FSPF(Fabric Shortest Path First)[2]是基于链路状态的路径选择协议,可以较好的解决FC网络扩展的问题,成为当前广泛应用的FC网络路由协议。
在FC网络中,仍然迫切需要提高路由协议的安全性[3],本文介绍了该协议的研究情况,全面分析了FSPF协议的安全性,并给出了加强安全性的建议。
2.FSPF协议的工作原理
FSPF是基于链路状态的路径选择协议,交换机的链路状态的集合构成整个交换网的拓扑数据库,FSPF协议基于该数据库,计算从一个交换机到交换网内其他所有交换机的最短路径。FSPF由4部分组成:Hello协议,用来确定与邻居交换机的联通性;可复制的拓扑数据库,这个数据库是由链路状态报告(LSR)组成的集合,它是FSPF的核心;计算最短路径的算法[4],可以考虑优先图最短路径的各种算法;拓扑数据库更新机制。FSPF协议工作步骤见表1所示。
2.1 FSPF协议帧
FSPF协议中主要发送的网络协议帧有:Hello帧,LSR帧,LSU帧。
Hello帧的内容包含FSPF头以及明确的Hello协议参数。LSR帧的内容包含FSPF头及明确的LSR参数,包含了所有交换机级联链路(ISL)信息。LSU帧是链路状态更新序列,LSU帧的内容包含FSPF头和明确的LSU参数,包含了LSR总数等信息。
2.2 拓扑数据库的更新
交换机完成所有邻居的初始数据库同步后,当发生ISL的上下线和Hello超时时,需要发送LSR来保持数据库的同步。另外连接在交换网中的交换机必须周期性的发送LSR以防止被从数据库中删除。当交换机需要发布新的LSR时,这个LSR以可靠的泛洪方式发送。
在数据库更新阶段,每个交换机用泛洪法向邻居发送它的整个拓扑数据库。拓扑数据库的LSR在FSPF的链路状态更新(LSU)序列中发送。一个LSU可能包含0个或者多个LSR,不带LSR的LSU用来通知它的邻居数据库传送已经完成。
3.FSPF协议的安全性
作为一个广泛应用的FC网络路由协议,FSPF协议的设计充分考虑了安全性。
3.1 通信加密
FSPF协议具备通信加密的功能。FSPF协议中有一个安全钥分配服务器,然后通过安全钥的分布认证,保证交换机之间可以安全的交换加密数据。安全钥分布的服务按照下面的流程进行的。
首先,每个交换机有一个唯一的私有钥,称为“分布钥”,在服务器中也有副本。分布钥长度较长,一般在70-90比特,使用加密算法将它生成一个密钥,长度较短,一般在40-75比特,用来对通信数据加密。
发送方向安全钥分配服务器发送一个KEY_REQUEST请求,指明了发送方,响应地址标识符和一个唯一的请求标识符。服务器证实这个请求,并且对发送方、响应方和该请求生成一个密钥。然后服务器使用发送方的分布钥将密钥、唯一的请求标识符和响应方标识符进行加密,它也用响应方分布钥对密钥和发送方标识符进行加密,最后把这些作为对KEY_REQUEST的答复发给发送方。
发送方收到该答复,用它的分布钥对答复进行解密,获取密钥、答复方标识和唯一的请求标识符。然后它把一个加密标识符,响应方密钥加密的密钥和发送方标识符发送给响应方,响应方解密信息,获得密钥和发送方的标识符。
为了认证密钥来源是否正确,响应方生成一个不同的唯一标识符,用密钥对其进行加密,并发送给对方。发送方用密钥进行解密,并对获取的标识符进行减一操作,再用密钥重新加密发送给响应方。当响应方解密收到的值,发现比原值少1,则确信密钥正确,从而开始进行双向的安全通信。
3.2 协议检验
在FSPF协议帧接收过程中,要经过严格的检验,FC帧头、FSPF协议帧头和FSPF具体协议帧头。这种接收的检验过程,增强了协议通信的安全性,具体处理流程如图1所示。
图1 FSPF协议帧检验流程
表1 FSPF协议工作步骤
3.3 可靠的泛洪法
在网络运行过程中,为了同步拓扑数据库,FSPF使用泛洪法对全网发布链路状态更新LSU。每个交换机收到消息后,将其承载的链路状态记录与自己的副本数据库的内容比较。如果收到的LSR比存在的新,就代替数据库中的旧的实例,如果交换机数据库中没有这个LSR,那么保存收到的这个实例。每个LSR都有一个年龄域和一个实体号域。实体号域值越大,LSR实例越新;年龄域值越小,LSR越新。
在泛洪法的整个过程中,每个交换机只使用来自最初信息发布者通告的未经加工的信息,而不是来自其邻居整合过的信息。这种信息独立,有助于使用身份认证来验证消息源的可靠性。
3.4 网络分区
FSPF协议支持分层路由方式,就是将全局网络划分为一个主干区和其他若干自治区域(AR),划分架构见图2。每个AR内交换机发布的链路状态更新只能在该AR内传播,每个AR的边界交换机(BSW)连接起来组成主干区。当某个AR内交换机的安全受到威胁时,产生的危害对于整个网络来说是很有限的,其他AR的功能仍然正常,这也为FSPF提供了一定的安全性。
图2 FSPF网络分区架构
4.FSPF协议的脆弱性
虽然FSPF路由协议自身的安全机制使得对FSPF的攻击较难实施,但是它并不足够安全,仍存在着很多薄弱环节可以被攻击者利用。
4.1 内部攻击
在FSPF协议的安全性中,网络分区机制主要是尽力减小攻击的影响范围域,它不能杜绝攻击,且无法发出告警。而且若攻击者入侵到一个AR,它就可以伪装成该自治系统的边界交换机,从而进一步攻击所有的AR。
4.2 幻影交换机
虚构一个自治系统中本不存在的交换机使其它交换机认为好像存在这么一个交换机,这样的交换机称为幻影交换机。以幻影交换机的身份注入大量虚假信息。然而需要注意的是该交换机并不一定会参与最短路径的计算,除非该幻影交换机能够和某个交换机形成邻接关系。
4.3 验证的漏洞
FSPF协议通信过程中使用密钥长度为40-75比特,假设整个网络被安全的管理并且没有被侵人,密钥没有暴露。由信息论表明:英语每8比特字符其平均信息嫡只有1.3,如果管理者选择英语字母作为密钥,以MD5加密认证机制为例,则40-75比特密钥的信息嫡相当低,攻击者最多需要数天就能破解。而FSPF协议在密钥变更方面并没有规定,很多时候3个月、半年才变换一次,有的甚至从来不变化。因此,当一个攻击者获得一条Hello协议帧,他就很有可能破解该密钥,并在随后侵人整个路由域。可见FSPF协议通信过程中的验证方式并不足够安全。
4.4 利用Hello协议帧的攻击
FSPF交换机定期向外发送Hello协议帧,用以发现邻居和维护邻接交换机之间的关系。假如Hello协议帧中域ID、Hello超时等参数错误,会使该Hello协议帧被邻居交换机丢弃,造成邻居下线。如果被攻击者攻破了FSPF的验证体系,攻击者就可以修改Hello协议帧中的某些参数来达到攻击的效果,从而直接在链路上阻绝Hello协议帧。
4.5 拒绝服务攻击
通过不间断的大量发送各种类型的FSPF协议帧,很可能造成被攻击交换机的资源耗竭,而无法正常工作。例如向邻居交换机发送包含过长邻居列表的超大Hello协议帧,邻居交换机将需为邻居列表上的每个邻居创建邻居结构,而消耗大量的资源。
5.小结
以上分析表明FSPF协议并不足够安全,一旦一个交换机被破坏或者被欺骗,将存在拒绝服务攻击数据丢失、网络整体性破坏和信息被嗅探等攻击。在应用FSPF协议的网络中应该采用积极的主动防护和检测机制来增加FSPF协议的安全。例如采用数字签名策略、经常更新密钥防止密码验证的攻击;设计适当的入侵检测系统来告警和阻止对FSPF协议的攻击;结合电子法律使用网络取证系统,采取法律手段主动应对网络攻击。
[1]孙晓葵,尹政,王胜学.两种网络存储方式NAS、SAN比较和分析[J].福建电脑,2005,12.
[2]Fabric Shortest Path First(FSPF).Rev2.0.America 1998.
[3]吕欣.我们国家信息网络安全现状与趋势[J].信息安全与通信保密,2007,2.
[4]周炯槃.通讯网理论基础[M].2009.