查看完整版本: 路由协议认证比较

星露 2007-12-3 20:07

路由协议认证比较

[size=4][b]IGP/BGP[/b][b]—[/b][b]路由协议认证比较[/b][/size]
[b]1[/b][b]、[/b][b]RIP V2[/b][b]协议的认证[/b]

图1 拓扑图1
    以图1来说明RIP的认证,RIP  Version2才支持认证,有明文认证和密文认证两种方法,这两种方法中均需要配置钥匙链key-chain。
[b]1.1  [/b][b]明文认证[/b]
    RIP配置认证是在接口上进行的,首先选择认证方式,然后指定所使用的钥匙链。R1上的明文认证配置如下,R2上参照配置:
    R1:
    interface Serial1/1
    ip rip authentication mode text        //指定采用明文认证,明文认证是默认值,可以不配置
    ip rip authentication key-chain rip-key-chain           /指定所使用的的钥匙链
    key chain rip-key-chain                  //配置钥匙链
    key 1
    key-string cisco     //配置密钥
    RIP是距离向量路由协议,不需要建立邻居关系,其认证是单向的,即R1认证了R2时(R2是被认证方),R1就接收R2发送来的路由;反之,如果R1没认证R2时(R2是被认证方),R1将不能接收R2发送来的路由;R1认证了R2(R2是被认证方)不代表R2认证了R1(R1是被认证方)。明文认证时,被认证方发送key chian时,发送最低ID值的key,并且不携带ID;认证方接收到key后,和自己key chain的全部key进行比较,只要有一个key匹配就通过对被认证方的认证。图1中R1和R2的钥匙链配置如表1时,R1和R2的路由如表1中的规律。
表1  RIP明文认证结果
[align=center][table][tr][td=1,1,109]R1的key chain
[/td][td=1,1,108]R2的key chain
[/td][td=1,1,119]R1可以接收路由?
[/td][td=1,1,120]R2可以接收路由?
[/td][/tr][tr][td=1,1,109]key 1=cisco
[/td][td=1,1,108]key 2=cisco
[/td][td=1,1,119]可以
[/td][td=1,1,120]可以
[/td][/tr][tr][td=1,1,109]key 1=cisco
[/td][td=1,1,108]key 2=cisco
key 1=abcde
[/td][td=1,1,119]无
[/td][td=1,1,120]可以
[/td][/tr][tr][td=1,1,109]key 1=cisco
key 2=abcde
[/td][td=1,1,108]key 2=cisco
key 1=abcde
[/td][td=1,1,119]可以
[/td][td=1,1,120]可以
[/td][/tr][/table][/align][b]1.2  [/b][b]密文认证[/b]
    RIP的密文认证和明文认证配置非常类似,只需要在指定认证方式为MD5认证即可。R1的配置如下,R2参照即可:
    R1:
    interface Serial1/1
    ip rip authentication mode md5       //指定采密文认证
    ip rip authentication key-chain rip-key-chain           //指定所使用的钥匙链
    key chain rip-key-chain                  //配置钥匙链
    key 1
    key-string cisco
    同样RIP的密文认证也是单向的,然而此时被认证方发送key时,发送最低ID值的key,并且携带了ID;认证方接收到key后,首先在自己key chain中查找是否具有相同ID的key,如果有相同ID的key并且key相同就通过认证,key值不同就不通过认证。如果没有相同ID的key,就查找该ID往后的最近ID的key;如果没有往后的ID,认证失败。采用密文认证时,图1中R1和R2的钥匙链配置如表2时,R1和R2的路由如表2中的规律。
表2  RIP 密文认证结果
[align=center][table][tr][td=1,1,119]R1的key chain
[/td][td=1,1,110]R2的key chain
[/td][td=1,1,123]R1可以接收路由?
[/td][td=1,1,133]R2可以接收路由?
[/td][/tr][tr][td=1,1,119]key 1=cisco
[/td][td=1,1,110]key 2=cisco
[/td][td=1,1,123]不可以
[/td][td=1,1,133]可以
[/td][/tr][tr][td=1,1,119]key 1=cisco
[/td][td=1,1,110]key 2=cisco
key 1=abcde
[/td][td=1,1,123]不可以
[/td][td=1,1,133]不可以
[/td][/tr][tr][td=1,1,119]key 1=cisco
key 5=cisco
[/td][td=1,1,110]key 2=cisco
[/td][td=1,1,123]可以
[/td][td=1,1,133]可以
[/td][/tr][tr][td=1,1,119]key 1=cisco
key 3=abcde
key 5=cisco
[/td][td=1,1,110]K2=cisco
[/td][td=1,1,123]不可以
[/td][td=1,1,133]可以
[/td][/tr][/table][/align][b]2[/b][b]、[/b][b]OSPF[/b][b]认证[/b]

图2  拓扑图2
    以图2说明OSPF认证配置和规律,R3和R4上建立虚链路。OSPF是链路状态路由协议,所以能否收到路由取决于能否和邻居路由器建立毗邻关系;如果能够建立毗邻关系,则互相能接收路由,不像RIP协议是单向的。
[b]2.1 [/b][b]区域认证、链路认证、虚链路认证[/b]
[b]2.1.1 [/b][b]区域认证[/b]
    区域明文认证配置如下,R1/R2/R3上,打开明文认证,在接口上先不配置密码,如下:
    R1/R2/R3:
    router ospf 100
         area 0 authentication    //area 0采用明文认证
    这时使用“show ip ospf interface”命令可以看到:R1/R2/R3在area 0上的接口将继承area 0的配置而采用明文认证。由于没有在接口上配置密码,采用空密码,认证仍可以通过。
可以在接口上,配置明文认证的密码,R1上的配置如下,R2/R3上参照配置,如下:
    R1:
    interface s1/1
    ip ospf authentication-key cisco      //配置明文认证密码,密码只能有一个。
区域采用密文认证配置如下,R1/R2/R3上,打开密文认证,在接口上配置密码,如下:
    R1:
    router ospf 100
         area 0 authentication message-digest      //采用密文认证
    interface Serial1/1
    ip ospf message-digest-key 1 md5 cisco           //在接口上配置ID 1的密码为cisco
    同样,如果不在接口上配置密码,认证也可以成功,这时密文认证采用ID=0的空密码。
[b]2.1.2 [/b][b]链路认证[/b]
    虽然接口自动继承所在区域的认证方式,但是可以在接口下进行链路认证配置,从而覆盖继承下来的认证方式,采用如下配置,R1和R2的毗邻关系正常建立:
    R1:
    router ospf 100
         area 0 authentication message-digest      //区域采用密文认证
    interface Serial1/1
    ip ospf authentication     //链路采用的却是明文认证
    ip ospf authentication-key cisco2              //配置明文密码
    R2
    router ospf 100
    area 0 authentication message-digest        //区域采用密文认证
    interface Serial1/0
    ip ospf authentication     //链路采用的却是明文认证
    ip ospf authentication-key cisco2              //配置明文密码
    如果链路要采用密文认证,以R1为例的配置如下:
    R1:
    interface Serial1/1
    ip ospf authentication message-digest                //链路采用的是密文认证
    ip ospf message-digest-key 1 md5 cisco                     //配置密文密码
[b]2.1.3 [/b][b]虚链路认证[/b]
虚链路的配置和链路的配置很类似,虽然也是继承区域0的配置,但是可以在虚链路上进行覆盖。以下是在R3和R4之间的虚链路上进行明文认证:
    R3:
    router ospf 100
    area 0 authentication message-digest        //区域采用密文认证
    area 1 virtual-link 4.4.4.4 authentication          //虚链路却采用明文认证
    area 1 virtual-link 4.4.4.4 authentication-key cisco3 //配置明文认证密码

以下是R3和R4之间的虚链路上进行密文认证:
    R3:
    router ospf 100
    area 1 virtual-link 4.4.4.4 authentication message-digest    //虚链路采用密文认证
    area 1 virtual-link 4.4.4.4 message-digest-key 1 md5 cisco4                //配置密文认证密码
[b]2.2  [/b][b]密文认证时的密码[/b]
    OSPF可以在修改密码过程中仍然保持毗邻关系正常,实现密码的平稳过渡,为了实现此目的,OSPF会发送旧密码。当新加入key时,OSPF把最后添加的key做为Youngest key,把Youngest key发送给对方(并携带了ID);对方收到后,把它和自己的全部key一一进行比较(需要ID和密码都相同才算是匹配,并且是根据反顺序进行的);如果通过则采用该key,否则继续采用旧的key。然而OSPF如果发现当前正在采用的key不是Youngest的key,则会把全部key(并携带ID)全部发送给对方;如果当前key是Youngest的key,则只发送Youngest的key,之前的key不再进行发送。表3是在R1和R2之间的链路上采用密文认证时,不断增加密码的规律,用show ip ospf interface 命令可以看到从接口上发送出去的密码。

表3 OSPF认证密码规律
[align=center][table=98%][tr][td=1,1,54]序号
[/td][td=1,1,87]R1的密码
[/td][td=1,1,87]R2的密码
[/td][td=1,1,104]R1发送出的密码
[/td][td=1,1,130]R2发送出的密码
[/td][td=1,1,103]形成邻居?
[/td][/tr][tr][td=1,1,54]1
[/td][td=1,1,87]ID1=cisco
[/td][td=1,1,87]ID1=cisco
[/td][td=1,1,104]ID1
[/td][td=1,1,130]ID1
[/td][td=1,1,103]是,采用ID1
[/td][/tr][tr][td=1,1,54]2
[/td][td=1,1,87]增加
ID2=cisco2
[/td][td=1,1,87]不改变
[/td][td=1,1,104]ID1=cisco
ID2=cisco2
[/td][td=1,1,130]ID1
[/td][td=1,1,103]是,采用ID1
[/td][/tr][tr][td=1,1,54]3
[/td][td=1,1,87]不改变
[/td][td=1,1,87]增加
ID2=cisco2
[/td][td=1,1,104]ID2=cisco2
[/td][td=1,1,130]ID2=cisco2
[/td][td=1,1,103]是 ,采用ID2
[/td][/tr][tr][td=1,1,54]4
[/td][td=1,1,87]增加
ID4=cisco34
[/td][td=1,1,87]增加
ID3=cisco34
[/td][td=1,1,104]ID1=cisco
ID2=cisco2
ID4=cisco34
[/td][td=1,1,130]ID1=cisco
ID2=cisco2
ID3=cisco34
[/td][td=1,1,103]是,采用ID2
[/td][/tr][tr][td=1,1,54]5
[/td][td=1,1,87]不改变
[/td][td=1,1,87]增加
ID4=cisco44
[/td][td=1,1,104]ID4=cisco34
[/td][td=1,1,130]ID4=cisco44
[/td][td=1,1,103]不成功,ID4的key值不同
[/td][/tr][/table][/align]
[b]3[/b][b]、[/b][b]EIGRP[/b][b]认证[/b]
    EIGRP只支持md5认证,也只是在接口上配置认证,EIGRP也需要建立邻居关系。同样以图1为例,R1的配置如下,R2参照即可:
    R1:
    interface Serial1/1
    ip authentication mode eigrp 90 md5        //采用密文认证
    ip authentication key-chain eigrp 90 eigrp-key-chain        //配置钥匙链
    key chain eigrp-key-chain
    key 1
    key-string cisco
表4  EIGRP密文认证结果
[align=center][table][tr][td=1,1,121]R1的key chain
[/td][td=1,1,143]R2的key chain
[/td][td=1,1,144]可以形成邻居?
[/td][/tr][tr][td=1,1,121]key 1=cisco
[/td][td=1,1,143]key 2=cisco
[/td][td=1,1,144]不可以
[/td][/tr][tr][td=1,1,121]key 1=cisco
key 2=cisco
[/td][td=1,1,143]key 2=cisco
key 1=abcde
[/td][td=1,1,144]不可以
[/td][/tr][tr][td=1,1,121]key 1=cisco
key 5=cisco
[/td][td=1,1,143]key 2=cisco
[/td][td=1,1,144]不可以
[/td][/tr][tr][td=1,1,121]key 1=cisco
key 2=12345
[/td][td=1,1,143]key 1=cisco
Key 2=abced
[/td][td=1,1,144]可以
[/td][/tr][/table][/align]    EIGRP认证时,路由器发送最低ID的key,并且携带ID,只有ID和key值完全相同才能成功认证。图1中R1和R2的钥匙链配置如表4时,R1和R2的邻居关系如表4中的规律。
在RIP/OSPF/EIGRP中,key chain的名字都只是本地有效,key chain名字的不同不影响认证。
认证密钥本身是通过下面的全局配置命令定义的:
[b]key chain [/b][i]n a m e - o f - c h a i n[/i]
[b]k e y  [/b][i]n u m b e r[/i]
[b]k e y - s t r i n g  [/b][i]t e x t[/i]
[b]a c c e p t - l i f e t i m e [/b][i] s t a rt - t i m e [/i]{[b]i n f i n i t e [/b]| [i]e n d - t i m e [/i]|[b]d u r a t i o n [/b][i] s e c o n d s[/i]}
[b]s e n d - l i f e t i m e  [/b][i]s t a rt - t i m e [/i]{[b]i n f i n i t e [/b][i]| e n d - t i m e [/i]|[b]d u r a t i o n  [/b][i]s e c o n d s[/i]}

k e y - c h a i n命令中的n a m e - o f - c h a i n变量的值必须与一个接口上已定义的ip authentication
key-chain eigrp命令相匹配才能使密钥链工作。
k e y命令中的n u m b e r变量标识被定义的密钥号码。
k e y - s t r i n g命令中的t e x t变量是用于认证的、由key number所标识的认证文本。同样,可以配置多个密钥。
在密钥链定义中提供的密钥号是从低到高来进行搜索的,第一个被发现的有效密钥被认证。尽管定义有多个密钥,路由器只发送一条认证路径。密钥号的值和与报文相关联的接口一起,被认证算法和唯一标识认证密钥的M D 5认证使用。
密钥可以被设置成在给定的一天中特定时间内是活动的。
这是通过a c c e p t - l i f e t i m e和s e n d -l i f e t i m e命令完成。
a c c e p t - l i f e t i m e和s e n d - l i f e t i m e命令的s t a r t - t i m e变量定义了密钥将被使用的开始时间。
a c c e p t - l i f e t i m e和s e n d - l i f e t i m e的e n d - t i m e定义了在给定的一天中不再被使用的时间。
s t a r t - t i m e和e n d - t i m e变量的格式为:
hh:mm:ss month day year
h h : m m : s s是一天中某一时间的两位的2 4小时的时钟表示。m o n t h变量是月份的前三个字母,
d a y是该月中的日期号, y e a r变量是四位数字的年数。s t a r t - t i m e和e n d - t i m e变量缺省为从1 9 9 3年1月1日开始的无期限时间段。
i n f i n i t e关键字可用作e n d - t i m e的值,表示密钥在s t a r t - t i m e变量的值到达后永不超时。跟随一个s e c o n d s变量的有效值的d u r a t i o n ([u]持续时间, 为期[/u])关键字也可取代e n d - t i m e变量值,来定义密钥的使用时间长度。
下面是在两个C i s c o路由器间使用E I G R P和认证的一个示例配置。
[table=98%][tr][td=1,1,284]R1
[/td][td=1,1,299]R2
[/td][/tr][tr][td=1,1,284]Interface Ethernet 0
ip address 10.16.8.1 255.255.255.0
ip authentication mode eigrp 200 md5
ip authentication key-chain eigrp 200 colors

Router eigpr 200
network 10.0.0.0

Key chain colors
Key 1
Key-string blue
Accept-lifetime 07:00:00 feb 28 1999 duration 7200
Send-lifetime 08:00:00 feb 28 1999 duration 3600
Key 2
Key-string green
Accept-lifetime 00:00:00 mar 1 1999 infinite
Send-lifetime 00:30:00 mar 1 1999 infinite

[/td][td=1,1,299]Interface Ethernet 0
ip address 10.16.8.2 255.255.255.0
ip authentication mode eigrp 200 md5
ip authentication key-chain eigrp 200 colors

Router eigpr 200
network 10.0.0.0

Key chain colors
Key 1
Key-string blue
Accept-lifetime 07:30:00 feb 28 1999 duration 7200
Send-lifetime 06:30:00 feb 28 1999 duration 3600
Key 2
Key-string green
Accept-lifetime 23:30:00 Feb 28 1999 infinite
Send-lifetime 00:30:00 mar 1 1999 infinite

[/td][/tr][/table]

在这些配置中,两台路由器首先使用由号码1标识的密钥,因为搜索次序是从最低到最高。
然后路由器使用2号密钥来认证它们之间的路由更新。路由器R 1上定义了开始时间,以确保给路由器R 2的E I G R P报文更新被接收和发送,这里给出了3 0 m i n的路由器之间时间差的考虑。每台路由器上第二个密钥(号码2)在路由器上的时钟到达开始时间条件后立即起作用并无限期持续。
注意两台路由器除使接收和发送周期时间值同步外,还必须都使用EIGRP并启用认证。
两台路由器还必须都指定相同的密钥串,以强制路由器检查接收和发送周期时间值。
[b]4[/b][b]、[/b][b]BGP[/b][b]认证[/b]
    BGP只能采用MD5认证,也需要建立邻居关系,配置非常简单,配上密码即可,以图1中的R1为例,如下:
    R1:
    router bgp 100
    bgp log-neighbor-changes
    neighbor 12.2.2.2 remote-as 100
    neighbor 12.2.2.2 password cisco              //配置密文认证的密码
    BGP中,只有双方的密码相同才能形成邻居关系。
[b]5[/b][b]、综合比较[/b]
    不同路由协议的认证方式虽然不同,但是只要是明文认证,安全性均存在很大的隐患;而密文认证的安全性在可预见的时间内是可以得到保证的,虽然密文认证会给路由器带来一些微不足道的负担。表5是各种路由协议的综合比较。

表5  路由协议认证综合比较
[align=center][table][tr][td=1,1,81]路由协议
[/td][td=1,1,47]支持认证
[/td][td=1,1,72]明文认证的安全性
[/td][td=1,1,84]密文认证的安全性
[/td][td=1,1,108]支持单向认证
[/td][td=1,1,84]支持key-chain
[/td][td=1,1,131]支持密码平稳过渡
[/td][/tr][tr][td=1,1,81]RIP V1
[/td][td=1,1,47]不
[/td][td=1,1,72]
[/td][td=1,1,84]
[/td][td=1,1,108]
[/td][td=1,1,84]
[/td][td=1,1,131]
[/td][/tr][tr][td=1,1,81]IGRP
[/td][td=1,1,47]不
[/td][td=1,1,72]
[/td][td=1,1,84]
[/td][td=1,1,108]
[/td][td=1,1,84]
[/td][td=1,1,131]
[/td][/tr][tr][td=1,1,81]RIP V2
[/td][td=1,1,47]是
[/td][td=1,1,72]差
[/td][td=1,1,84]好
[/td][td=1,1,108]不
[/td][td=1,1,84]是
[/td][td=1,1,131]不
[/td][/tr][tr][td=1,1,81]OSPF
[/td][td=1,1,47]是
[/td][td=1,1,72]差
[/td][td=1,1,84]好
[/td][td=1,1,108]是
[/td][td=1,1,84]是
[/td][td=1,1,131]是(仅在密文认证时)
[/td][/tr][tr][td=1,1,81]EIGRP
[/td][td=1,1,47]是
[/td][td=1,1,72]差
[/td][td=1,1,84]好
[/td][td=1,1,108]是
[/td][td=1,1,84]是
[/td][td=1,1,131]不
[/td][/tr][tr][td=1,1,81]BGP
[/td][td=1,1,47]是
[/td][td=1,1,72]差
[/td][td=1,1,84]好
[/td][td=1,1,108]是
[/td][td=1,1,84]不
[/td][td=1,1,131]不
[/td][/tr][/table][/align]
页: [1]
查看完整版本: 路由协议认证比较