认证在网络协议中的应用(以OSPF为例)
实验目的:
在路由协议中使用加解密技术来保证传输的路由信息的安全,加深密码学在实际环境中的应用。
实验环境:
Windows XP操作系统、Cisco GNS3仿真软件(2691的IOS)、WireShark网络协议分析软件。
实验内容
配置OSPF的区域认证,使得非法的路由器无法获得区域内的路由信息。试验中将尝试获得OSPF的报文中的加密信息以及Tunnel包。
实验拓扑:
使用Tunnel技术来解决OSPF区域不连续的问题。
OSPF的配置:
R1:
R1(config-router)#do sh running | sec ospf
ip ospfmessage-digest-key 1 md5 prin
routerospf 110
log-adjacency-changes
area 0authentication message-digest
area 1authentication message-digest
network12.1.1.1 0.0.0.0 area 0
R2:
R2(config-router)#do sh running | sec ospf
ip ospfmessage-digest-key 1 md5 prin
ip ospfmessage-digest-key 1 md5 prin
routerospf 110
log-adjacency-changes
area 0authentication message-digest
area 1authentication message-digest
network12.1.1.2 0.0.0.0 area 0
network23.1.1.2 0.0.0.0 area 1
network100.1.1.2 0.0.0.0 area 0
R3:
R3(config-router)#do sh running | sec ospf
ip ospfmessage-digest-key 1 md5 prin
ip ospfmessage-digest-key 1 md5 prin
routerospf 110
log-adjacency-changes
area 0authentication message-digest
area 1authentication message-digest
area 2authentication message-digest
network23.1.1.3 0.0.0.0 area 1
network34.1.1.3 0.0.0.0 area 2
network100.1.1.3 0.0.0.0 area 0
R4:
R4(config-router)#do sh running | sec ospf
routerospf 110
log-adjacency-changes
network34.1.1.4 0.0.0.0 area 2
在没有配置Tunnel和OSPF区域认证之前,各台路由器之间都能建立稳定的邻接关系
以下是使用WireShark抓出的协议报文
此时没有认证,并且OSPFHeader报文里面的Auth字段为Null,Auth Data也为空。
但这时并不是完整的OSPF网络,由于Area2没有和Area0连接,所以,Area0内部没有Area2的信息,Area2就是一个隔离的区域。这时,在Area1内创建Tunnel网络
R2#sh running int tunnel 0
Building configuration...
Current configuration : 153 bytes
!
interfaceTunnel0
ip address100.1.1.2 255.255.255.0
ip ospfmessage-digest-key 1 md5 prin
tunnel source23.1.1.2
tunneldestination 23.1.1.3
R3:
R3#sh running int tunnel 0
Building configuration...
Current configuration : 153 bytes
!
InterfaceTunnel0
ip address100.1.1.3 255.255.255.0
ip ospfmessage-digest-key 1 md5 prin
tunnel source23.1.1.3
tunneldestination 23.1.1.2
此时R1的路由表才算真正完整。
用WireShark抓出Tunnel的报文如下:
以下是我对Tunnel报文的分析:
Tunnel报文封转在IP包里面,So和Des都是物理接口的IP,Protocol=GRE(47),TTL=225。
Tunnel报文里面只有Flag和Protocol字段,Protocol字段的内容是IP,指向下一层的封装。
这个IP包里面的So=Tunnel IP的地址,Des就是Tunnel包所要发给的地址,可以使下一跳,也可以是组播地址,如果是224.0.0.5,那么就是OSPF的数据包。TTL值在这里是1。Protocol可以等于IGP,EIGRP、OSPF包就封装在下面。
Tunnel只是一个虚拟的地址,很多特性都需要真正物理口的支持。
在OSPF的路由器之间在不同的时间启用认证,这时,由于各台路由器之间的认证已经改变,他们的邻接关系也消失了,整个区域又回到无法互通的初始状态。
在各个接口下配置相同的密码,重新启动OSPF进程:
R1#shrunning int fa0/0
Building configuration...
Current configuration : 132 bytes
!
interface FastEthernet0/0
ip address12.1.1.1 255.255.255.0
ip ospf message-digest-key1 md5 prin
duplex auto
speed auto
end
R1#shrunning | inclu authent
multilink bundle-name authenticated
area 0authentication message-digest
R2#shrunning int fa0/0
Building configuration...
Current configuration : 132 bytes
!
interface FastEthernet0/0
ip address12.1.1.2 255.255.255.0
ip ospf message-digest-key1 md5 prin
duplex auto
speed auto
Building configuration...
Current configuration : 153 bytes
!
interface Tunnel0
ip address100.1.1.2 255.255.255.0
ip ospfmessage-digest-key 1 md5 prin
tunnel source23.1.1.2
tunneldestination 23.1.1.3
R2#shrunning | inclu authen
multilink bundle-name authenticated
area 0 authenticationmessage-digest
R3#shrunning int tunnel 0
Building configuration...
Current configuration : 153 bytes
!
interface Tunnel0
ip address100.1.1.3 255.255.255.0
ip ospfmessage-digest-key 1 md5 prin
tunnel source23.1.1.3
tunneldestination 23.1.1.2
R3#shrunning | inclu authen
multilink bundle-name authenticated
area 0 authenticationmessage-digest
重新获得OSPF的报文,如下所示:
可以看到里面比之前多了AuthType、Auth key ID、Auth CryptoSequence Number、AuthData,其中Auth Data里面的数据就是密钥与Key ID经过Hash之后的值。
Tunnel报文如下:
里面也有Auth Type、Auth key ID、Auth CryptoSequence Number、AuthData。并且与R1的Auth Data值相等。
此时在R3上启用Area2认证,R4作为非法的路由器想接入区域获得通往外网的途径。
R4(config-router)#do sh running | sec ospf
router ospf 110
log-adjacency-changes
network34.1.1.4 0.0.0.0 area 2
R3#sh running | inclu authen
multilink bundle-name authenticated
area 0authentication message-digest
area 2authentication message-digest
Buildingconfiguration...
Currentconfiguration : 132 bytes
!
interfaceFastEthernet0/1
ip address 34.1.1.3 255.255.255.0
ip ospf message-digest-key 1 md5 prin
duplex auto
speed auto
此时,R4无法与R3建立邻接关系,因为也无法获取AS内部的路由信息。
实验完毕。