当我们为 OSPF 路由器配置 MD5 认证时,会创建一个消息摘要,它是通过MD5 算法运行的预定义消息摘要密钥的组合;一个区域的路由器之间必须相同,例如:
- 消息摘要密钥 = cisco
- md5("cisco") = "dfeaf10390e560aea745ccba53e044ed"
我的问题
- 这个 MD5 哈希对数据包的哪一部分进行校验和?
- OSPF 会检查整个数据包吗?或者究竟是什么?
请包括您的参考。
当我们为 OSPF 路由器配置 MD5 认证时,会创建一个消息摘要,它是通过MD5 算法运行的预定义消息摘要密钥的组合;一个区域的路由器之间必须相同,例如:
请包括您的参考。
从RFC:
(c) The MD5 authentication algorithm is run over the
concatenation of the OSPF packet, secret key, pad
and length fields, producing a 16 byte message
digest (see [Ref17]).
非常感谢我亲爱的朋友 Kev Santillan 组建思科学习网络
这是 OSPF 标准标头
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # | Type | Packet length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | AuType |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
如 RFC RFC2328 第 A.3.1 节所述
这是使用来自RFC2328 Section 2.2 的MD5 的修改数据包
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # | type | Packet Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Area ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved - Must be Zero | AuType=Keyed Message Digest Fn|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved - Must be Zero | Key ID | Auth Data Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number (non-decreasing) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
/ (OSPF Data Length-24) bytes Data /
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ Authentication Data (var. length; 16 bytes when MD5 is used) /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
如图所示,校验和设置为零,身份验证类型字段设置为密钥消息摘要(类型 2)。64 位认证字段被重新定义为三个部分,即:密钥 ID、认证数据长度和加密序列号字段。附加的由认证数据组成的尾端是消息摘要算法的输出。
校验和的部分是数据包的 OSPF 部分和用零填充的密钥,使其长度为 16 字节。在wireshark 中,ospf 部分是作为 OSPF 标头和 ospf Hello 数据包一部分的数据,除了作为实际 md5 哈希的 Auth crypt 数据。
MD5[ospf packet + (key+padding)] = 校验和。此校验和应与 ospf 数据包的 Auth crypt 数据中的一个匹配,以进行成功验证。