一种基于数字证书的安全IS-IS路由协议
2016-10-13刘玉贞李炳彰
刘玉贞,李 珩,李炳彰
一种基于数字证书的安全IS-IS路由协议
刘玉贞1,2,李 珩2,李炳彰2
(1.通信网信息传输与分发技术重点实验室,河北石家庄050081;2.中国电子科技集团公司第五十四研究所,河北石家庄050081)
为提高IS-IS路由协议安全性,增强抵御恶意网络攻击能力,通过分析IS-IS协议的报文格式和工作机理,提出其存在的缺陷性。基于数字证书的身份认证的设计思想,提出在协议对等体认证流程和协议报文两方面对IS-IS协议进行安全扩展的方法,设计了安全IS-IS协议软件。通过试验证明了所提出的安全扩展方法可有效提高IS-IS协议的安全性。
路由协议;IS-IS;数字证书;安全扩展
引用格式:刘玉贞,李 珩,李炳彰.一种基于数字证书的安全IS-IS路由协议[J].无线电工程,2016,46(5):17-21.
0 引言
近些年通信网络的安全问题受到越来越多的关注[1],路由系统作为网络正常有序工作的基础[2],其安全问题对通信网络安全至关重要。路由协议在方便路由信息管理和传递的同时[3],也存在一些缺陷,如:协议本身缺乏对等体间的认证机制;传送的路由信息等内容缺乏加密机制;路由协议通过TCP、UDP或IP协议传送,从而TCP、UDP和IP协议本身的缺陷或实现漏洞将直接威胁路由系统的安全[4]。
利用路由协议漏洞实施的攻击破坏性强、影响范围大,可实施的攻击包括:路由表伪造攻击、路由欺骗、拒绝服务攻击、路由震荡攻击和重放攻击等。因此,加强路由协议的安全性就成为了提高网络可靠稳定运行能力的重中之重。
IS-IS路由协议是目前内部网关协议的主流协议之一,由于其在大型网络环境中性能优、稳定性好、收敛快和可扩展性强,已被大多数ISP网络用作骨干路由协议[5]。所以如何保证 IS-IS协议的安全、防止恶意攻击就成为了确保网络正常可靠运行的关键问题。
但目前域内路由协议安全性研究方面的主要成果集中在OSPF路由协议,对于IS-IS路由协议安全增强方法的研究较少。本文将基于数字证书实现双向身份认证的方法应用于IS-IS协议,确保了协议对等体之间的相互信任,并在此过程中产生会话密钥。同时利用IS-IS协议报文使用TLV扩展性好的优点,通过增加专用安全认证TLV,实现IS-IS协议的完整性保护,增强协议的安全性和抗攻击能力。
1 IS-IS协议
为了实现广泛的网际互连,国际标准化组织(ISO)于20世纪80年代提出了开放系统互连体系(OSI)即7层网络模型,并同ITU-T一起设计了一种名为OSI的网络协议。为了实现对ISO的无连接网络协议(CLNP)进行路由选择,ISO提出了IS-IS路由协议。由于IP协议的应用远比OSI开放系统应用广泛,发展迅猛,为增加对IP协议的路由选择能力,IETF对IS-IS进行了扩充(RFC1195),可以同时支持OSI和TCP/IP双重环境,这个协议称为集成IS-IS,也叫双IS-IS[6]。
作为一种链路状态路由选择协议,IS-IS具有良好的可扩展性。IS-IS支持分层路由以用于大型网络,它将一个域分为多个L1路由区域,L1路由区域间通过L2域连接。同一L1区域内使用L1路由,不同L1区域间使用L2路由互通,L2域称为骨干路由域[7]。
1.1 IS-IS协议报文
在IS-IS中,路由协议使用3大类报文:Hello报文、链路状态数据包(Link State Packets,LSP)和序列号数据包(Sequence Numbers Packets,SNP)。Hello报文用来建立和维持IS-IS路由器之间的邻接关系;LSP链路状态数据包用来承载和泛洪路由器的链路状态信息,并且链路状态数据库是路由器进行SPF计算的依据;SNP用来进行链路状态数据库的同步,并且用来对LSP进行请求和确认。通过使用这些数据包,IS-IS完成邻接关系的建立、链路状态信息的扩散和链路状态数据库的同步。
每种类型报文PDU都有一个特定的类型号,路由器通过类型号来识别所收到的PDU报文类型。IS-IS协议PDU类型如表1所示。
表1 IS-IS协议PDU类型
所有IS-IS PDU起始的8个字节都是数据报头的头部字段,并且对于所有的PDU数据包类型都是相同的,如图1所示。
图1 IS-IS报头字段
跟在各种类型IS-IS PDU报头之后的是TLV (Type/Length/Value)字段,PDU报头与TLV字段构成一个完整的IS-IS PDU。使用TLV的最大优点就是增强了协议的扩展性,当需要扩展协议的功能时,只需要定义新的TLV就可以。
1.2 IS-IS协议工作流程
1.2.1 连接关系的建立和维护
IS-IS相邻路由器之间利用周期性发送Hello PDU建立并维护邻接关系。IS-IS路由协议把网络分为点对点子网和广播子网2种子网类型。在点对点子网中,IS传送点对点的IIH PDU到不属于外部路由域的链路上。IS-IS协议要求点对点链路两端的IS应先交换IIH PDU,以便双方确认对方的IS身份,并回应点对点IIH建立邻接关系。IS根据保持时间字段的数值来更新本地邻居列表中的相应记录;在广播网络上,IS根据所在层发送Hello PDU,接收L1邻居IIH和L2邻居IIH,建立邻接关系。
1.2.2 链路状态信息的交互和维护
IS-IS需要在每一路由器上维护链路状态数据库,以达到各路由器对网络链路状态的一致描述。当链路状态、网络拓扑或配置发生变化时,IS-IS使用LSP通告给其他路由器。路由器周期性地把自己或伪节点的邻接关系广播到所有链路,与其他路由器交互本地地址、L1的IS邻接关系、L1的ES邻接关系、L2的IS邻接关系以及链路状态信息。当状态发生变化时,产生带有新的序列号的LSP。其他路由器收到新序列号的LSP后,将LSP存储到链路状态数据库中,并对LSP进行转发,扩散到其他节点。
IS-IS使用序列号PDU来确认收到报文和维护链路状态同步,序列号 PDU分为两种 PSNP和CSNP。点对点网络中使用PSNP进行LSP确认和LSP同步;广播网络中,使用CSNP来发布所有LSP的摘要信息。相邻IS收到摘要信息后判断LSP的时效性,如果收到的CSNP中包含新的LSP,则回送PSNP申请自己需要的LSP,收到新的LSP后存入链路状态数据库,从而达到链路状态数据库的一致。
2 IS-IS协议缺陷性分析
2.1 内建安全机制缺陷
IS-IS协议通过自身的安全机制保证协议的正常运行。但这些安全机制存在很多漏洞,使攻击者实现路由攻击成为可能。
2.1.1 IS-IS层次化的路由机制缺陷
IS-IS引入了区域的概念,这种路由机制虽然可以减小攻击的影响范围,但是不能防止攻击的发生,并且当攻击者攻击一个LEVEL-1-2路由器,或者攻击实体假冒一个LEVEL-1-2路由器,层次化的路由机制不但不能起到防护功能,反而会使攻击变得非常容易。
2.1.2 IS-IS的泛洪机制的缺陷
泛洪机制使得IS-IS具有一定的自我纠错能力,通常被称作反击机制,可以在一定程度上抵御恶意攻击。但是攻击者依然可以利用反击机制实现拒绝服务攻击等。当攻击者假冒某个路由器产生一个错误的路由信息,并泛洪到路由域的每个路由器,真正的路由器接收到该路由信息后,将会触发反击机制。如果攻击者以一定频率发送攻击报文,则会引起路由器不断纠正路由错误,使得路由发生振荡,更甚者导致网络瘫痪。例如:路由器不能低于最小LSP传输间隔更新或发出一个LSP,如果攻击者以更高速率和更高的序号泛洪恶意的LSP,LSP拥有者不会在域内修正成功该LSP,反而会帮助攻击者完成攻击。
2.1.3 报文的认证机制的缺陷
IS-IS协议提供2种认证方式:明文认证和MD5认证。使用明文认证时,口令以明文方式在网络中传输,任何可访问到该网络的人都可以在网络中轻松获得该口令,有了明文口令后,攻击者可以很容易伪造和篡改报文,而在域内的路由器看来,这些报文都是合法的,会被作为正确报文接收,更改域内路由信息,进而危及IS-IS路由域的安全。可见,在这种认证类型下,路由信息的安全性基本上得不到保障。
相对于明文认证,MD5认证就提供了更高级别的安全性,但其缺陷依然很明显。使用MD5认证时,由于共享密钥从不在网络中传输,所以排除了在网络中被窃取的可能。但这并不意味着完全的安全,MD5算法现在已证明能够被破解,当其被破解时,攻击者可以成功入侵路由域,实施攻击行为。
2.2 IS-IS报文缺陷
2.2.1 Hello报文字段缺陷
Hello报文头部中的字段发生错误的时候,验证不通过,会导致报文的丢弃。所以,只要篡改报文的某些字段,例如:路由选择协议鉴别符、类型和区域地址等等,就可以造成邻居Hello报文不被其他路由器接收,影响邻接关系。
Hello报文的重要作用就是建立和维持邻居关系,它周期性地发出,确保邻居间双向通讯。因此,周期性的Hello报文直接关系着邻居关系的维持。如果在规定周期内路由器没有接收到邻居路由器的Hello报文,将被视为邻接关系被破坏。和其他的破坏邻接关系的结果一样,会带来一系列问题,使得路由器更新自身LSP,重新进行SPF计算等等。
2.2.2 LSP头部缺陷
在IS-IS路由协议中,LSP是其主要交互内容,IS-IS中对链路状态信息的描述都是封装在LSP中发布出去。LSP在本路由器的链路状态数据库中会随时间老化。剩余生存时间字段是一个跟踪LSP生存时间的定时器。当LSP剩余生存时间字段的值减少为零时,此LSP将被清除,通过泛洪机制能到达的所有路由器中也将会被同时清除。当发生这种情况后,发现剩余生存时间超时的路由器产生一个剩余生存时间为0、序列号更高的新LSP启动清除过程。这一过程若被恶意攻击者利用,则会导致不必要的泛洪和LSDB刷新,引起路由震荡。
序列号字段标识一个LSP的序列号,其他路由器根据这个值来判断哪个LSP是最新的,它是一个32位符号整数。路由器在第一次生成任何LSP的时候使用初始序列号,当有新的LSP时,序号加一。当试图增加最大序列号0xfffffffe时,必须先将当前LSP从路由域中废止,这通过将LSP老化并重新泛洪实现。但如果未能及时通过泛洪清除此LSP,则会发送回滚后的最小序号的LSP,任何新发出的实例序号都小于最大序号的LSP,将不被接收。攻击者可以在路由器中插入此类伪造的LSP,作用时间是最大生存时间+零寿命生存时间。
3 安全IS-IS协议设计及实现
3.1 设计思想
安全IS-IS是在IS-IS协议基础上进行安全加固实现的。安全IS-IS路由协议采用数字证书作为标识协议实体有效身份信息的载体,在协议报文交互之前首先必须通过协议对等体的双向认证,双向认证通过后产生会话密钥,后续则在协议报文中利用会话密钥生成新的安全认证TLV增加到报文中,为IS-IS报文提供邻居间报文信息交互的完整性保护和认证机制。
3.2 协议对等体认证
协议对等体认证过程是在经典的 Needham-Schroeder公钥认证协议的修订版基础之上改进实现的。协议参与主体双方都事先拥有自己的证书,同时证书的私钥只有证书持有人本人知道。认证过程如图2所示,分为2个阶段:自适应组网阶段和双向认证阶段。
图2 协议对等体认证过程
3.2.1 自适应组网阶段
节点A和节点B识别到物理链路UP后,分别向对方发送自适应组网报文,报文内容包含各自的设备IP地址和初始邻居数。
节点A和节点B收到对端节点的自适应组网报文后,分别记录对端节点的设备IP地址,在后续发送自适应组网时报文内容为自身设备IP地址、已识别的邻居数及邻居节点的设备IP地址。节点B收到节点A的自适应组网报文,发现节点A的邻居地址中包含自身的设备IP地址,节点所记录的邻居列表中也包含节点A的设备IP地址,节点B与节点A构建邻接关系,即双向邻居关系。同理,节点A也与节点B构建双向邻接关系。
双向邻接关系建立后,根据设备IP地址自动选取认证的客户端和服务器端,由客户端首先发起认证请求。
3.2.2 双向认证阶段
协议双向认证的具体流程和详细处理过程如下:
①A生成ClientHello:A生成一个新鲜的随机数NA,将A的证书、身份标识A和随机数NA一起发送到B。
②B收到ClientHello后,验证A的证书有效性,验证通过后,B生成一个新鲜的随机数NB,使用B的私钥对[B,NB]进行签名后,与身份标识B、随机数NA和NB一同使用A的公钥加密,并连同B的证书一起发送给A。
③A收到ServerHello后,验证B的证书有效性,验证通过后,使用A的私钥对消息进行解密得到NA,B,NB和[B,NB]KB-1,验证NA是否是自己发送的随机数,验证通过后,使用B的公钥验证签名,验证通过后,A生成一个新鲜的随机数NA1,A将[A,NA1]使用自己的私钥签名后,再连同NB一起使用B的公钥加密后发送给B。
④B收到ClientFinish后,使用B的私钥对消息进行解密得到NB,NA1和[A,NA1]KA-1,验证NB是否是自己发送的随机数,验证通过后,使用A的公钥验证签名,验证通过后,B将NA1使用自己的私钥签名后,再用A的公钥加密后发送给A,通知A身份验证通过。
⑤A收到ServerFinish,恢复出NA1,验证是否是自己发出的随机数,验证通过后,双向认证完成。
⑥认证完成后,可以使用双方共享的NA1和NB作为双方会话密钥材料,会话密钥按如下方式产生:密钥块=H(NA1,NB,A,B,“A”)+H(NA1,NB,A,B,“BB”)+H(NA1,NB,A,B,“CCC”)+[…]。这种产生方式,一共需要6次哈希运算,每次产生20个字节,且每次运算结果不会重复,充分保证会话密钥SK的安全性。
3.3 协议的安全扩展
IS-IS协议报文采用 TLV结构,便于协议扩展,安全IS-IS协议通过增加专用安全认证TLV定义,使其具有安全支持能力。携带安全认证TLV的IS-IS协议报文格式如图3所示。
图3 携带专用安全认证TLV的IS-IS报文格式
携带安全认证信息的IS-IS使用HMAC-SHA-1产生报文的完整性保护信息。当路由器产生携带安全认证信息的协议报文时,首先生成原始报文的摘要,再使用双向认证过程中所产生的会话密钥,对摘要信息进行加密,使用加密后的摘要信息生成类型为251的专用安全认证TLV插入到原始PDU报头之后,从而生成携带安全认证信息的协议报文,按照协议规程进行发送。
当其他路由器接收到携带安全认证信息的协议报文时,利用会话密钥计算得出加密后的摘要;同时计算原始报文的摘要信息,与经过加密的摘要比较,如果二者一致,则证明该协议报文在传输过程中没有被修改,可以进行进一步接收处理,反之协议报文不被确认应丢弃。
3.4 安全IS-IS协议的软件实现
安全IS-IS协议软件的模块组成如图4所示,主要由认证处理模块、协议报文收发验证模块、数据库管理模块和邻居管理模块等组成。
图4 软件组成示意
图4中,认证处理模块实现协议对等体的双向认证及协议报文安全认证信息的生成及验证功能。
协议报文收发验证模块完成IS-IS协议报文的收发及携带安全认证信息的协议报文生成及解析功能。
数据库管理模块是IS-IS协议的核心模块,实现的功能主要包括:周期性地把自己或伪节点的邻接关系广播到所有链路、与其他路由器交互邻接关系以及链路状态信息。当链路状态发生变化时,产生带有新的序列号的LSP。将新序号的LSP存储到链路状态数据库中,并对LSP进行转发扩散。根据链路状态数据库计算IS-IS路由表。
邻居管理模块通过端口信息接口监视端口状态的改变,负责邻居邻接关系的创建和维持。
IS-IS协议软件通过路由输出接口向路由表管理模块发送IS-IS路由表,并从路由表管理模块接收其他路由协议如OSPF和BGP等所产生的路由信息;通过端口信息接口从链路层获得当前物理端口状态信息;通过数据收发接口向链路层发送IS-IS协议包,以及从链路层接收IS-IS协议包;通过配置管理接口接收来自网管代理软件的管理信息,实现ISIS协议的参数配置及查询。
4 结束语
本文提出的基于数字证书作为标识协议实体有效身份信息载体的协议对等体认证机制和协议安全扩展方法,保证了协议主体的活现性和消息的新鲜性,所生成的会话密钥具有保密性、新鲜性和主体关联性,实现了双向认证安全、双向密钥协商安全及协议报文交互的完整性保护,并在此基础上进行了协议的设计实现和试验验证。试验结果表明,IS-IS协议的安全改进方法可为提高网络基础协议安全性提供一种解决途径。
[1] 吴 巍.赛博空间发展现状与通信网络安全问题[J].无线电通信技术,2012,38(3):1-4.
[2] 李吉良.下一代网络路由交换关键技术研究[J].无线电通信技术,2008,34(2):1-5.
[3] DOYLE Jeff.Routing TCP/IPVolume 1[M].葛建立,吴建章,译.北京:人民邮电出版社,2002.
[4] 杨 静,谢 蒂,王 雷.OSPF路由协议的安全分析及其漏洞防范[J].山东大学学报(工学版),2003,33 (5):550-553.
[5] 康京山,韩春刚.集成 IS-IS路由选择协议的研究[J].无线电通信技术,2007,33(2):4-7.
[6] IETF RFC1195.Use of OSI IS-IS for Routing in TCP/IP and DualEnvironments[S],1990.
[7] MARTEY A.IS-IS网络设计解决方案[M].凡 璇,译.北京:人民邮电出版社,2002.
A Secure IS-IS Routing Protocol Based on Digital Certificate
LIU Yu-zhen1,2,LI Heng2,LI Bing-zhang2
(1.Science and Technology on Information Transmission and Dissemination in Communication Networks Laboratory,Shijiazhuang Hebei 050081,China;2.The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)
To improve the security of the IS-IS routing protocol and increase the defensive ability against network attacks,the defects of the IS-IS routing protocol are discussed by analyzing the protocol packets and mechanisms.This paper proposes a security extension method of IS-IS protocol on the authentication process between protocol peers and the definition of the protocol packet,and designs secure IS-IS protocol software.The experiment results show that the proposed security extension method can effectively improve the security of IS-IS protocol.
routing protocol;IS-IS;digital certificate;security extension
TN393
A
1003-3106(2016)05-0017-05
10.3969/j.issn.1003-3106.2016.05.05
2016-01-23
刘玉贞 女,(1972—),硕士,高级工程师。主要研究方向:通信网络以及路由技术。
李 珩 男,(1981—),硕士,高级工程师。主要研究方向:通信网络以及路由技术。