qq_41990538 2024-03-15 11:20 采纳率: 0%
浏览 22
已结题

ospf协议md5认证计算过程

我想了解一下ospf协议md5具体的计算过程,用python如何实现,以hello包为例

Open Shortest Path First
    OSPF Header
        Version: 2
        Message Type: Hello Packet (1)
        Packet Length: 48
        Source OSPF Router: 10.1.1.2
        Area ID: 0.0.0.0 (Backbone)
        Checksum: 0x0000 (None)
        Auth Type: Cryptographic (2)
        Auth Crypt Key id: 1
        Auth Crypt Data Length: 16
        Auth Crypt Sequence Number: 266
        Auth Crypt Data: d1ce3983da0578ad2cbca824a170aa46
    OSPF Hello Packet
        Network Mask: 255.255.255.252
        Hello Interval [sec]: 10
        Options: 0x02, (E) External Routing
        Router Priority: 1
        Router Dead Interval [sec]: 40
        Designated Router: 0.0.0.0
        Backup Designated Router: 0.0.0.0
        Active Neighbor: 15.1.1.5

020100300a0101020000000000000002000001100000010afffffffc000a02010000002800000000000000000f010105d1ce3983da0578ad2cbca824a170aa46

这个hello包密钥为:Dzzw@123,我想知道auth_crypt_data是怎么算出来的
当然如果认为这个hello包hash计算方法不规范, 也可以自己构造或者抓取一个其他厂家的报文,只要代码能够验证就行,最好是python代码,回答前先自己验证下

  • 写回答

21条回答 默认 最新

  • 关注
    获得0.90元问题酬金

    qq_41990538 上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    OSPF(Open Shortest Path First)是一种内部网关协议(IGP),主要用于在自治系统(AS)内部的路由选择。在OSPF协议中,可使用MD5算法对Hello协议进行认证,以确保网络中的路由器之间的通信是安全的。

    下面是OSPF协议中MD5算法的具体计算过程,以Hello包为例:

    1. 配置认证密码:在OSPF路由器的配置中,需要指定认证密码。该密码会与Hello包中的认证字段进行匹配。

    2. 计算认证字段:在发送Hello包之前,发送方会计算认证字段,具体计算过程如下:

      a. 将Hello包中的相关字段提取出来,包括版本号、类型、路由器ID、区域ID、检验和等。

      b. 按照OSPF协议规定的顺序将这些字段拼接起来,形成一个待加密的明文。

      c. 在明文的末尾添加认证密码。

      d. 对上述拼接后的数据进行MD5哈希计算,生成一个128位的摘要值。

      e. 将摘要值转换为16进制字符串,并将其放入Hello包的认证字段中。

    3. 验证认证字段:接收方在收到Hello包后,会执行相同的计算过程,并将计算得到的摘要值与Hello包中的认证字段进行比较。如果两者一致,则认证通过;否则认证失败。

    总结起来,OSPF协议中MD5的计算过程主要包括配置认证密码、计算认证字段和验证认证字段三个步骤。通过这个过程,可以确保只有经过认证的OSPF路由器才能相互通信,提高网络的安全性。

    解决方案:

    1. 配置认证密码:在OSPF路由器的配置中,指定一个认证密码。

    2. 发送方计算认证字段:

      a. 提取Hello包中的相关字段,包括版本号、类型、路由器ID、区域ID、检验和等。

      b. 按照OSPF协议规定的顺序将这些字段拼接起来。

      c. 在明文的末尾添加认证密码。

      d. 对拼接后的数据进行MD5哈希计算,生成128位的摘要值。

      e. 将摘要值转换为16进制字符串,并将其放入Hello包的认证字段中。

    3. 接收方验证认证字段:

      a. 收到Hello包后,提取其中的相关字段。

      b. 按照OSPF协议规定的顺序将这些字段拼接起来。

      c. 在明文的末尾添加认证密码。

      d. 对拼接后的数据进行MD5哈希计算,生成128位的摘要值。

      e. 将摘要值转换为16进制字符串。

      f. 将计算得到的摘要值与Hello包中的认证字段进行比较,如果一致,则认证通过,否则认证失败。

    通过以上步骤,实现了OSPF协议中的MD5认证,保证了路由器之间的通信是安全的。

    评论

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 修改了问题 3月18日
  • 赞助了问题酬金15元 3月15日
  • 修改了问题 3月15日
  • 展开全部

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见