设为首页收藏本站language 语言切换
查看: 4513|回复: 4
收起左侧

[已解决] 请教高手,关于OSPF MD5验证过程??

[复制链接]
发表于 2011-7-30 22:20:54 | 显示全部楼层 |阅读模式
本帖最后由 小乔 于 2011-8-6 11:21 编辑

刚刚学习完OSPF MD5的验证过程,对其验证过程很不明白,希望高手给予解惑,我在网上搜索到一篇文章如下:


MD5认证。认证类型为2,OSPF采用的一种加密的身份认证机制。在OSPF报文头中,用于身份验证的域包括:key ID、MD5加密后认证信息长度(规定16字节)、加密序列号。实际16字节加密后的信息在整个IP报文的最后,CRC校验码之前。key ID标识了共享密钥的散列函数,建立邻居关系的两个设备来说key ID必需相同。加密序列号是一个递增整数,递增的幅度不固定,只要后一个协议包的序列号肯定不能比前一个小就行了,一般以设备启动时间秒数为序列号值。16字节的加密信息产生过程如下:
第一步、在OSPF分组报文的最后(IP报文CRC之前)写入16字节的共享密钥。
第二步、MD5散列函数的构造,将第一步生成的消息,将其规范为比512字节小8个字节的信息(如果不够可以填充),然后添加八个字节(内容为填充前实际报文长度),这样第二步构成的散列函数刚好是512字节的整数倍。
第三步、用MD5算法对第二步中的散列函数计算其散列值,产生16字节的消息摘要。
第四步、用第三步中产生的16字节散列值替换第一步已经写入到OSPF分组报文中的公共密钥,完成加密过程。
从第一步到第四步过程中没有计算该16字节信息的OSPF校验和。
图片1.png
以上文章我看了好些遍还是没有弄明白它的实现过程,我主要关心它的实现过程,debug信息好像看不到,希望高手针对上面的过程给予简单易明的讲解,或者请提供相关更好的资料,以便参考。谢谢!!
发表于 2011-8-4 21:36:08 | 显示全部楼层
ospf认证有明文跟密文认证的,明文认证是type1,密文是type2,没有认证是type0的。然后可以在区域起认证,也可以在端口起认证。认证时候的keyID要是一样的,密码类型也要一样,这样才可以建立邻居。然后你debug ip ospf  adj可以看到keyID的认证过程,debug  ip  ospf  packet好像可以看到认证时候的密码类型的。
沙发 2011-8-4 21:36:08 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-5 21:56:40 | 显示全部楼层

你说的这个我知道,我关心的是认证的过程,比如如何利用MD5产生摘要,产生过程跟我们配置的那些参数有关联。等等。。这些。不过还是感谢你的回答。谢谢!
板凳 2011-8-5 21:56:40 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-8-14 17:45:01 | 显示全部楼层
这个不用研究这个这么深吧
地板 2012-8-14 17:45:01 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2016-9-8 16:50:08 | 显示全部楼层
最近小弟在研究ospf源码,你这个帖子过去好多年了,不知道还用不用的上,个人简单的理解,也有可能答非所问。MD5认证是在hello包中的,hello包中有header和hello包两部分。无认证、简单认证或MD5认证都在header的最后,如你的图所示。通过代码判断autype来确定是否MD5 认证,若是则根据KeyID去进行MD5计算得到MD5摘要,再将摘要放到hello包的header中最后的authdata中,将整个hello包发出和其他邻居建立联系或维持邻居关系。
5# 2016-9-8 16:50:08 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-3 06:49 , Processed in 0.088731 second(s), 14 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表