SNMP協議詳解-3

在上篇文章中,說到了SNMPv3主要在安全性方面進行了增強,採用USM(基於用戶的安全模型)和VACM(基於視圖的訪問控制模型)技術。下面我們就主要講解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

 

 下一篇文章的主要內容主要就是講SNMPv3的認證和加密過程!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章