下面我们就主要讲解SNMPv3的报文格式以及基于USM的认证和加密过程!

1、SNMPv3的消息格式

如下图1:

图 1

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

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

RequestID:请求报文的序列号。

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

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

SecurityModel:消息的安全模型值,取值为0~3。0表示任何模型,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

参考

SNMP学习笔记之SNMPv3的报文格式以及基于USM的认证和加密过程的更多相关文章

  1. SNMP学习笔记之SNMPv3报文认证和加密

    下面主要的内容就是SNMPv3的加密和认证过程! USM的定义为实现以下功能: 鉴别 数据加密 密钥管理 时钟同步化 避免延时和重播攻击 1.UsmSecurityParameters(安全参数) 安 ...

  2. SNMP学习笔记之SNMPv3的配置和认证以及TroubleShooting

    0x00 增加snmp v3用户 增加用户的时候,必须要停止SNMP服务. # service snmpd stop # net-snmp-config --create-snmpv3-user -r ...

  3. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  4. Apollo学习笔记(一):canbus模块与车辆底盘之间的CAN数据传输过程

    Apollo学习笔记(一):canbus模块与车辆底盘之间的CAN数据传输过程 博主现在从车载自组网信道分配和多跳路由转向了自动驾驶,没啥经验,想快些做出来个Demo还是得站在巨人的肩膀上才行,我选择 ...

  5. SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别

    本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1.v2c.v3)进行区别! 四.SNMP协议数据单元 在SNMP管理中,管理站(NMS)和代理(Agent)之间交换的管理信息构成了SNMP报 ...

  6. SNMP学习笔记之SNMP报文协议详解

    0x00 简介 简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议.在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案:由于SNMP的简单 ...

  7. SNMP学习笔记之SNMP4J介绍(Java)

    0x00 SNMP4J介绍 SNMP4J是一个用Java来实现SNMP(简单网络管理协议)协议的开源项目.它支持以命令行的形式进行管理与响应.SNMP4J是纯面向对象设计与SNMP++(用C++实现S ...

  8. XML学习笔记(二)-- DTD格式规范

    标签(空格分隔): 学习笔记 XML的一个主要目的是允许应用程序之间自由交换结构化的数据,因此要求XML文档具有一致的结构.业务逻辑和规则.可以定义一种模式来定义XML文档的结构,并借此验证XML文档 ...

  9. SNMP学习笔记之SNMP简单概述

    0x00 SNMP简单概述 0.1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理 ...

随机推荐

  1. PAT甲1115 Counting Nodes in a BST【dfs】

    1115 Counting Nodes in a BST (30 分) A Binary Search Tree (BST) is recursively defined as a binary tr ...

  2. Centralized Cache Management in HDFS

    Overview(概述) Centralized cache management in HDFS is an explicit caching mechanism that allows users ...

  3. GCD之各种派发

    dispatch_apply的用法 并行模拟for循环,将指定的代码循环10次,一般会把这些代码附加到一个queue上,然后在 dispatch_apply里并行 dispatch_queue_t q ...

  4. 【linux & &&命令】&后台(并行)命令 &&串行命令

    & 放在一个命令末尾,可以将这个命令放到后台执行.放到后台后主进程将继续向下执行,后台命令将与主进程并行执行. &&  放在一个命令末尾,与什么都没有单纯换行实际效果相同,等待 ...

  5. nodejs(五)同步异步--BLOCKING THE EVENT LOOP

    1.BLOCKING THE EVENT LOOP Node and JavaScript runtimes in general are single-threaded event loops. O ...

  6. 【剑指offer】矩形覆盖

    一.题目: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 二.思路: 斐波那契数列 三.代码:     

  7. 1.如何修改oracle的密码

    在下图中的目录下面找到 PWDorcl.ora 文件,orcl是数据库的实例名  备份,将PWDorcl.ora 文件名称改为 PWDorcl_back.ora 以管理员身份打开cmd,执行 orap ...

  8. word自动导入目录

    1:如果在编写word时,有给各章添加标题,可以使用word的目录生成功能,如图:

  9. javascript产生对象(不建议看)

    产生对象的方式:一.new+构造函数1.JavaScript的内置构造函数,如Date(),Function(),Array(),Object()2.自定义的构造函数二.对象字面量{}三.继承 用 v ...

  10. JavaScript加强

    1.Aptana简介 Aptana是一个非常强大,开源,专注于JavaScript的Ajax开发IDE它的特性包括 1.JavaScript,JavaScript函数,HTML,CSS语言的Code  ...