• [置顶] SNMP协议详解<三>


    在上篇文章中,说到了SNMPv3主要在安全性方面进行了增强,采用USM(基于用户的安全模型)和VACM(基于视图的访问控制模型)技术。下面我们就主要讲解SNMPv3的报文格式以及基于USM的认证和加密过程!

    1、SNMPv3的消息格式如下图1:

                                                                          图 1

     

    其中,整个SNMPv3消息可以使用认证机制,并对EngineID、ContextName、PDU消息体部分进行加密。RequestID、MaxSize、Flags、SecurityModel、SecurityParameters构成SNMPv3消息头。

    报文中的主要字段定义如下:

    RequestID:请求报文的序列号。

    MaxSize:消息发送者所能够容纳的消息最大字节,同时也表明了发送者能够接收到的最大字节数。

    Flags:消息标识位,占一个字节。

    SecurityModel:消息的安全模型值,取值为030表示任何模型,1表示采用SNMPv1安全模型,2表示采用SNMPv2c安全模型,3表示采用SNMPv3安全模型。

    ContextEngineID:唯一识别一个SNMP实体。对于接收消息,该字段确定消息该如何处理;对于发送消息,该字段在发送一个消息请求时由应用提供。

    ContextName:唯一识别在相关联的上下文引擎范围内部特定的上下文。

    安全参数SecurityParameters又包括以下主要字段:

    AuthoritativeEngineID:消息交换中权威SNMP的snmpEngineID,用于SNMP实体的识别、认证和加密。该取值在Trap、Response、Report中是源端的snmpEngineID,对Get、GetNext、GetBulk、Set中是目的端的snmpEngineID。

    AuthoritativeEngineBoots:消息交换中权威SNMP的snmpEngineBoots。表示从初次配置时开始,SNMP引擎已经初始化或重新初始化的次数。

    AuthoritativeEngineTime:消息交换中权威SNMP的snmpEngineTime,用于时间窗判断。

    UserName:用户名,消息代表其正在交换。NMS和Agent配置的用户名必须保持一致。

    AuthenticationParameters:认证参数,认证运算时所需的密钥。如果没有使用认证则为空。

    PrivacyParameters:加密参数,加密运算时所用到的参数,比如DES CBC算法中形成初值IV所用到的取值。如果没有使用加密则为空。

     

    2、下面根据实际操作,用Wireshark抓取的报文来讲解SNMPv3协议的工作的过程:

    说明:192.168.2.110是NMS的ip地址,192.168.2.1是Agent的ip地址

    (1)由于SNMPv3进行数据交互的过程中要进行加密和认证,所以NMS首先要从Agent获取AuthoritativeEngineID(标识一个SNMP实体)、AuthoritativeEngineBoots和AuthoritativeEngineTime(同步NMS和Agent时间,保证消息接收的时效性,同时也是用来进行数据认证和加密的参数),如下图2:

                                                                                         图 2

    (2)Agent回复NMS请求的参数,回复报文如下图3:

                                                                                   图 3

    (3)NMS继续向Agent获取AuthoritativeEngineBoots和AuthoritativeEngineTime参数,如下图4:

                                                                                      图 4

    (4)Agent对NMS的请求进行响应,如下图5:

                                                                               图 5

    (5)下面开始正常数据操作,如下图6:

                                                                                  图 6

    (6)Agent向NMS响应数据请求,如下图7,传输的数据都进行了加密,可见SNMPv3的安全性:

                                                                                  图 7

     

     下一篇文章的主要内容主要就是讲SNMPv3的认证和加密过程!

  • 相关阅读:
    git Permissions 0777 for '/home/xxx/.ssh/id_rsa' are too open.
    Linux wc指令解析
    RK3288 开机动画旋转
    tp3.2 事务
    PHP实现动态获取函数参数的方法
    laravel 配置设置
    swoole 使用异步redis的前置条件
    php回调函数的概念及实例
    swoole 安装
    linux 源码安装PHP
  • 原文地址:https://www.cnblogs.com/pangblog/p/3398117.html
Copyright © 2020-2023  润新知