SNMP协议发展及安全机制介绍

上传人:野鹰 文档编号:3170082 上传时间:2017-07-31 格式:DOCX 页数:11 大小:187.17KB
返回 下载 相关 举报
SNMP协议发展及安全机制介绍_第1页
第1页 / 共11页
SNMP协议发展及安全机制介绍_第2页
第2页 / 共11页
SNMP协议发展及安全机制介绍_第3页
第3页 / 共11页
SNMP协议发展及安全机制介绍_第4页
第4页 / 共11页
SNMP协议发展及安全机制介绍_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《SNMP协议发展及安全机制介绍》由会员分享,可在线阅读,更多相关《SNMP协议发展及安全机制介绍(11页珍藏版)》请在金锄头文库上搜索。

1、SNMP 协议发展及 v3 版本安全机制介绍一 SNMP 协议1 什么是 SNMP 协议SNMP( Simple Network Management Protocol)简单网络管理协议是用来管理网络上的节点, (包括工作站,路由器,交换机,集线器和其他的外围设备) 。SNMP 在 OSI 模型中是一个应用层协议,使用 UDP 封装进行传输。网络管理者可以使用 SNMP 进行检索、修改信息,寻找、诊断故障,管理网络性能,发现和解决网络问题,规划网络的增长。它采用轮询和中断机制,提供最基本的功能集。SNMP 在 TCP/IP 协议族中的地位如下图:SNMPUDPIP链路层协议硬件2 SNMP 网

2、络架构SNMP 网络架构由三部分组成:NMS、Agent 和 MIB。NMS、Agent 和 MIB 之间的关系如下图所示。N M SSNMPA G E N TM I B网 络 管 理 系 统被 管 对 象A G E N TM I B被 管 对 象A G E N TM I B被 管 对 象SNMPSNMP2.1 NMS(Network Management Station)NMS 的角色是网络中的管理者,是一个利用 SNMP 协议对网络设备进行管理和监视的系统。NMS 可以向 Agent 发出请求,查询或修改一个或多个具体的参数值。同时,NMS 可以接收 Agent 主动发送的 Trap 信息

3、,以获知被管理设备当前的状态。2.2 AgentAgent 是网络设备中的一个应用模块。Agent 接收到 NMS 的请求信息后,完成查询或修改操作,并把操作结果发送给 NMS,完成响应。同时,当设备发生故障或者其他事件的时候,Agent 会主动发送 Trap 信息给 NMS,通知设备当前的状态变化。2.3 MIB( Management Information Basess)任何一个被管理的资源都可以表示成一个对象,MIB 是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个 Agent 都有自己的 MIB。MIB 也可以看作是 NMS 和

4、Agent 之间的一个接口,通过这个接口,NMS 可以对 Agent 中的每一个被管理对象进行读/写操作,从而达到管理和监控设备的目的。MIB 是以树状结构进行存储的。树的节点表示被管理对象,它可以用从根开始的一条路径唯一地识别,这条路径就称为 OID(Object Identifier) 。如下图所示。管理对象 system 可以用一串数字 1.3.6.1.2.1.1唯一标识,这串数字就是system 的 OID。 子树可以用该子树根节点的 OID 来标识。如以 private 为根节点的子树的 OID 为 private 的 OID1.3.6.1.4。 3 SNMP 版本SNMP 主要有

5、SNMPv1、SNMPV2c、SNMPv3 几种常用的版本。3.1 SNMPv1SNMPv1 是 SNMP 协议的最初版本,它的 MIB 比较简单,且存在较多安全缺陷。所以网络管理功能比较受限。SNMPv1 采用团体名认证。团体名的作用类似于密码,用来限制 NMS 对 Agent 的访问。如果 SNMP 报文携带的团体名没有得到NMS/Agent 的认可,该报文将被丢弃。3.2 SNMPv2cSNMPv2c 也采用团体名认证。在兼容 SNMPv1 的同时又扩充了 SNMPv1 的功能。它提供了更多的操作类型(GetBulk 操作等) ,支持更多的数据类型(Counter32 等) ,提供了更丰

6、富的错误代码,能够更细致地区分错误。 3.3 SNMPv3SNMPv3 主要在安全性方面进行了增强,它采用了 USM 和 VACM 技术。USM提供了认证和加密功能,VACM 确定用户是否允许访问特定的 MIB 对象以及访问方式。 本文第二节主要介绍 USM 安全模型。3.3.1 USM(基于用户的安全模型)USM 引入了用户名和组的概念,可以设置认证和加密功能。认证用于验证报文发送方的合法性,避免非法用户的访问。加密则是对 NMS 和 Agent 之间传输的报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为 NMS 和Agent 之间的通信提供更高的安全性。 3.3.2 VA

7、CM(基于视图的访问控制模型) VACM 技术定义了组、安全等级、上下文、MIB 视图、访问策略五个元素,这些元素同时决定用户是否具有访问的权限,只有具有了访问权限的用户才能管理操作对象。在同一个 SNMP 实体上可以定义不同的组,组与 MIB 视图绑定,组内又可以定义多个用户。当使用某个用户名进行访问的时候,只能访问对应的 MIB 视图定义的对象。4 SNMP 操作SNMP 支持多种操作,主要为以下几种基本操作: Get 操作:NMS 使用该操作从 Agent 获取一个或多个参数值。 GetNext 操作:NMS 使用该操作从 Agent 获取一个或多个参数的下一个参数值。 Set 操作:N

8、MS 使用该操作设置 Agent 一个或多个参数值。 Response 操作:Agent 返回一个或多个参数值。该操作是前面三种操作的响应。 Trap 操作:Agent 主动发出的操作,通知 NMS 有某些事情发生。 执行前四种操作时设备使用 UDP 协议采用 161 端口发送报文,执行 Trap 操作时设备使用 UDP 协议采用 162 端口发送报文。5 SNMP 报文根据 SNMP 的不同版本和不同操作,报文格式也有所不同。5.1 SNMPv1 报文SNMPv1 消息主要由版本号、团体名、协议数据单元几部分构成。其中,报文中的主要字段定义如下 Version: SNMP 版本。 Commu

9、nity:团体名,用于 Agent 与 NMS 之间的认证。团体名有可读和可写两种,如果是执行 Get、GetNext 操作,则采用可读团体名进行认证;如果是执行 Set 操作,则采用可写团体名进行认证。 Request ID:用于匹配请求和响应,SNMP 给每个请求分配全局唯一的ID。 Error status:用于表示在处理请求时出现的状况,包括 noError、tooBig 、noSuchName、badValue、readOnly、genErr。 Error index:差错索引。当出现异常情况时,提供变量绑定列表(Variable bindings)中导致异常的变量的信息。 Vari

10、able bindings:变量绑定列表,由变量名和变量值对组成。 enterprise:Trap 源(生成 Trap 信息的设备)的类型。 Agent addr:Trap 源的地址。 Generic trap:通用 Trap 类型,包括coldStart、warmStart、linkDown 、linkUp、authenticationFailure、egpNeighborLoss 、enterpriseSpecific。 Specific trap:企业私有 Trap 信息。 Time stamp:上次重新初始化网络实体和产生 Trap 之间所持续的时间,即 sysUpTime 对象的取值

11、。5.2 SNMPv2 报文与 SNMPv1 比较而言, SNMPv2c 新增了 GetBulk 操作报文。GetBulk 操作所对应的基本操作类型是 GetNext 操作,通过对 Non repeaters 和 Max repetitions 参数的设定,高效率地从 Agent 获取大量管理对象数据。SNMPv2c 修改了 Trap 报文格式,采用了 SNMPv1Get/GetNext/Set PDU 的格式,并将sysUpTime 和 snmpTrapOID 作为 Variable bindings 中的变量来构造报文。5.3 SNMPv3 报文S e c u r i t y M o d

12、e lC o n t e x t E n g i n e I DS e c u r i t y P a r a m e t e r sC o n t e x t N a m eS N M P P D UV e r s i o n R e q u e s t I D F l a g sM a x S i z eSNMPv3 修改了消息的格式,但是 PDU 部分的格式同 SNMPv2c 是保持一致的。其中,整个 SNMPv3 消息可以使用认证机制,并对EngineID、ContextName、PDU 消息体部分进行加密。RequestID、 MaxSize、Flags、SecurityModel

13、、SecurityParameters 构成SNMPv3 消息头。报文中的主要字段定义如下: MaxSize:消息发送者所能够容纳的消息最大字节,同时也表明了发送者能够接收到的最大字节数。 Flags:消息标识位,占一个字节,只有最低的三个比特位有效,比如 0x0 表示不认证不加密,0x1 表示认证不加密,0x3 表示认证加密。 SecurityModel:消息的安全模型值,取值为 03。0 表示任何模型,1表示采用 SNMPv1 安全模型, 2 表示采用 SNMPv2c 安全模型,3 表示采用SNMPv3 安全模型。 ContextEngineID:唯一识别一个 SNMP 实体。对于接收消息

14、,该字段确定消息该如何处理;对于发送消息,该字段在发送一个消息请求时由应用提供。 ContextName:唯一识别在相关联的上下文引擎范围内部特定的上下文。 SecurityParameters 在下面第二节中详细介绍。二 SNMPv3 协议的安全机制1 USM(User-based Security Model)网络管理面临的安全威胁有:消息篡改、伪装、消息流修改(延迟、重放、重定向) 、泄密、拒绝服务和流量分析,其中前 4 种是 SNMP 需要防范的。SNMPv3 中的安全子系统采用基于用户的安全模型(USM) ,为 SNMP 消息的传输提供如下服务:来源认证、完整性鉴别、消息流篡改鉴别和

15、数据保密。安全服务包括认证和加密。分为三个安全层次: 既无认证又无保密(NoAuthNoPriv) 有认证但无保密(AuthNoPriv) 有认证又有保密(AuthPriv)为了提供更强有力的安全保障,SNMPv3 的体系结构比以前版本更加复杂。下图是使用 USM 模型的 SNMP 消息格式,相关的安全域含义如下:VersionRqutIDMaxSizePrivacyPrametrsAuthentioneUserNameAuthoritavEngiTmeeeBotsSNMP DUContexName EngiIDAuthoritavEngiIDSecuy ModelFlgsUSM安全参数消息头

16、加密的作用域 SecurityParameters 包括以下主要字段: AuthoritativeEngineID:消息交换中权威 SNMP 的 snmpEngineID,用于 SNMP 实体的识别、认证和加密。该取值在 Trap、Response、Report中是源端的 snmpEngineID,对 Get、GetNext、GetBulk、Set 中是目的端的 snmpEngineID。 AuthoritativeEngineBoots:消息交换中权威 SNMP 的 snmpEngineBoots。表示从初次配置时开始,SNMP 引擎已经初始化或重新初始化的次数。 AuthoritativeEngineTime:消息交换中权威 SNMP 的snmpEngineTime,用于时间窗判断。 UserName:用户名,消息代表其正在交换。NM

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号