SNMPv3详解概要

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(1)认证服务 认证服务用于保证通信是可信的。在SNMP消息中, 认证服务将向消息接收者保证该消息的确是从它所声明 的来源发出的。SNMP仅提供了一种很简单的认证方式: 从管理站发往代理的每个消息都包括一个团体名,起口 令的作用。如果该团体名存在于代理已知的团体名列表 中,则该消息被认为是可信的,接收该消息;否则,消 息不可信,丢弃该消息。 (2)访问控制策略 通过定义团体,代理可以限制它的MIB只能被选定 的一组管理站访问。而通过定义多于一个的团体,代理 能够为不同的管理站提供不同的MIB访问权限。
7.2
SNMPv3协议框架
7.2.1 SNMPv3的体系结构 SNMPv3定义了新的体系结构,并在其中包含了对 SNMPv1和SNMPv2的兼容,即这个新的体系结构也适用 于SNMPv1及SNMPv2,弥补了SNMP没有完整体系结构的 缺点。 在SNMPv3中,管理进程与代理统称为SNMP实体 (entity)。SNMP实体由SNMP协议引擎(engine)和应 用程序(application)组成。SNMP实体包含一系列模 块,模块之间相互作用来提供服务。
Trap
Report
6
7
代理至管理者的警告消息 Snmpv2未定义;snmpv3定义为在消息 的PDU部分不能解密时,发起报告。
报头由下列部分组成: msgVersion:表示消息的版本号,在SNMPv3中 它的值是3.
msglD:消息标识符,用来标识PDU.取值范围 是 0~231-1
msgMaxSize:表示消息发送器支持的最大消息 尺寸,取值范围是484~231-1
4) 必要时提供对消息的加密保护,避免管理信息的暴 露。 为实现上述目标,SNMPv3采用了基于用户的安全模型 (USM)。定义了USM的规范,包括: •鉴别:提供数据整体性和数据发送源鉴别。消息鉴别 代码HMAC和散列函数MD_5或SHA-1一起来提供鉴别。 •及时性:保护消息在传输过程中不被延时或重播。 •保密:保护消息有效内容不被泄密。
msgFlags:包含若干标志的8位位组字符串,有3 个特征位:reportableFlag, privFlag和 authFlag。 如果reportable=1,那么在能够导致Report PDU生成的情况下,消息接收方必须向发送方 发送Report PDU; 当reportable=0时,消息接收方则不必发送 ReportPDU。 只有在消息的PDU部分不能被解码时(例如由 于密钥错误而解密失败)才会用到。
SNMPv3实体的组成结构图
1 SNMP协议引擎
SNMP协议引擎负责执行SNMP协议操作,为各类 SNMP应用程序提供服务。每个SNMP协议引擎由一个 SNMP协议引擎ID来标识。在整体上执行两种功能: 1)从SNMP应用中接收流出的PDU执行必要的处理, 包括插入鉴别代码和加密,然后把PDU封装到用于传 输的消息中去。 2) 从传输层接收流进的PDU,执行必要的处理, 包括鉴别和解密,然后从消息取出PDU,并把PDU传送 到适当的SNMP应用中去。
(1)伪装(Masquerade) 一些未授权的实体可以伪装为已授权实体的身 份,去执行只有授权实体才可以执行的管理操作,从 而获得额外的特权。
(2)信息更改(Modification of Information): 一个实体可以更改由另一授权实体产生的正在传 输的报文,从而导致越权的管理操作。这种威胁的本 质就是未授权的实体可以修改任何管理参数,包括配 置、操作和计费方面的参数。 (3)信息泄漏(Disclosure of Information): 实体可以观测管理者与代理之间的信息交换, 从而获得管理对象的值,并获知所报告的事件。例如, 通过观测更改口令的Set命令,可以使攻击者获知新 口令的内容。
复杂性
名称 编码 功能说明 GetRequest 0 管理站至代理,查询指定变量的值 GetNextRequest 1 管理站至代理,查询下一变量的值 代理至管理站,回送执行结果(正确/差 Response 2 错)
SetRequest GetBulkRequest InformRequest 3 4 5 管理站至代理,设置代理维护的某个 变量的值 管理站至代理,传递批量信息 管理站至管理站,传递参数处理请求
(4)访问控制子系统 访问控制子系统通过一个或多个访问控制模型提 供确认对被管理对象的访问是否合法的服务。SNMPv3 默认的访问控制模型为RFC3415所描述的基于视图的 访问控制模型(VACM)。 访问控制模型还可以定义访问控制处理过程中使 用的MIB模块,以实现对访问控制策略的远程配置。
3 SNMP应用程序 SNMP应用程序利用SNMP协议引擎提供的服务完成 特定的网络管理任务。不同SNMP实体的应用程序相互 间通过SNMP消息进行通信。应用程序主要包括以下几 类: (1)命令产生器:产生SNMP请求消息,并处理对这 些请求的响应。 (2)命令响应器:提供对SNMP请求消息的应答。 (3)通知产生器:产生和发送异步的通知消息。 (4)通知接收器:接收并处理异步的通知消息。当 通知消息需要确认时,通知接收器应用程序还需生成 相应的应答消息。 (5)委托转发器:用于在网管实体之间转发网管消 息。
7.1.1 SNMP早期版本的安全机制及其缺陷
SNMPv1存在一些明显的缺陷,其中之一就是忽视 了安全问题。SNMPv1只提出了基于团体(community)的 安全机制。一个SNMP团体是一个SNMP代理和任意一组 SNMP管理站之间的一种关系,它定义了认证和访问控 制的特性。
团体是定义在代理上的一个本地概念。代理为每 一个必要的认证和访问控制特性的联合建立一个团体, 每个团体拥有唯一一个名字。团体之中的管理站必须 使用该团体的团体名进行Get和Set操作。
第七章 SNMPv3分析 7.1 SNMP的安全问题
7.2 SNMPv3协议框架
7.3 SNMPv3安全机制
7.1 SNMP的安全问题 SNMP制定之初并没有过多地考虑其安全性, 这使其早期版本存在安全隐患。 随着网络安全的日趋重要,在SNMP的发展 过程中也出现了一些安全方面的增强方案。这 些方案虽然没有形成统一的标准,也没有得到 广泛应用,但是对后来SNMPv3的形成具有借鉴 意义。
但是,团体名通常以明文形式随SNMP报文传输。 对于熟悉SNMP的人来说,可以很容易地从网络上捕获 的SNMP报文中分析得到团体名,从而盗用某些权限、 进行非法的操作。
7.1.2
SNMP面临的安全威胁
在实际中广泛使用的SNMPv1/v2c采用以明文传输 的团体名作为认证手段。这种脆弱的保护机制使得 SNMP面临着一系列安全威胁。这些威胁包括:
(2)消息处理子系统 消息处理子系统由一个或多个消息处理模型组成, 主要负责完成以下功能:准备要发送的消息;从接收 到的消息中提取数据。 消息处理子系统包括SNMPv1、SNMPv2c、SNMPv3等 消息处理模型,分别处理不同版本的消息。消息处理 模型定义了特定版本的SNMP消息的格式,以及如何对 该版本的SNMP消息进行解析、从中提取数据和如何构 造该版本的SNMP消息。
•发现:定义一个SNMP引擎获得关于另一个SNMP引擎的 信息的过程。 •密钥管理:定义了密钥产生、更新和使用的过程。
1基本概念 1)用户 SNMPv3用户是一个发出SNMP操作的实体,可以是 一个或一些管理员,或是执行网管操作的应用程序等。 用户的身份和目标代理的相关配置一起决定了将要调 用的安全机制——认证、加密和访问控制等。 2)权威的(authoritative)SNMP协议引擎 为了防御重放、延迟等攻击,在参与通信的SNMP 协议引擎中应有一方被指定为权威的SNMP协议引擎。 当一个SNMP消息需要应答时,消息接收方的SNMP协议 引擎就是权威的SNMP协议引擎;当SNMP消息不需要应 答时,则消息发送方的SNMP协议引擎是权威的SNMP协 议引擎。相应的,通信中另一方的SNMP协议引擎被称 为非权威的SNMP协议引擎。
contextEngineID:唯一识别SNMP实体的标识 符。对于流入消息,该字段用于确定将PDU递 交给哪个应用进行处理;对于流出消息,该值 由上层应用提供,并代表那个应用程序; contextName:携带的管理对象所在的上下文 的名称; PDU: 带有对象绑定列表的PDU。 其中最后三个字段(contextEngineID, contextName和PDU)合起来称为scoped PDU.
7.2.2 SNMPv3协议操作 SNMPv3协议
SNMP目前有v1、v2c、v3三个版本
SNMP v1
Getrequest Getnextrequest getresponse Setrequest trap五种
SNMP v2c
Getrequest Getnextrequest Response setrequest Getbulkrequest Informrequest trap、report八种
(3)安全子系统 安全子系统提供SNMP消息的认证和加密服务。 它可以包含多个安全模型,标准协议使用的安全模 型为RFC3414定义的基于用户的安全模型(USM)。 用户也可以定义自己的安全模型。 安全模型要指出它所防范的安全威胁、服务的 目标和为提供安全服务所采用的安全协议。安全协 议的内容包括一系列安全机制和为实现安全服务所 定义的MIB对象等。
SNMP v3
Getrequest Getnextrequest Response Setrequest getbulkrequest Informrequest trap、report八种
支Baidu Nhomakorabea的 PDU
安全性
使用明文传输 使用明文传输的团 基于用户的安全模 的团体名进行 体名进行安全机制 型(认证和加密), 安全机制管理, 管理,安全性低 基于视图的访问控 安全性低 制模型,安全性很 高 简单,使用广 泛 简单,使用广泛 开销大,比较繁琐
后两个标志privFlag和authFlag被发送方用来 指示消息的安全级别, 如果privFlag=1,则应用了加密, 如果authFlag=1,则应用了鉴别。 除了privFlag=1, authFlag=0的情况外,其它 任意组合都是可以接受的,也就是说没有鉴别 的加密是无意义的。
msgSecurityModel:消息安全模型,用于标 识发送方用于生成该消息的安全模型,发送 方和接收方必须采用相同的安全模型。 msgSecurityParameters:安全参数,由发送 方安全子系统生成的安全参数,例如用 户名、消息鉴别码(MAC)、加密参数等,用于 保护消息传输的安全,并由接收方安全子系 统用来对消息进行解密和鉴别等安全处理.
(4)消息流更改(Message Stream Modification): SNMP被设计成在无连接的协议上运行。因此, SNMP消息有可能被重排、延迟或者重放(复制), 从而导致越权的管理操作。例如,一个重新启动设 备的消息可能被复制,并在将来某一时刻重放,导 致非授权的操作。 (5)拒绝服务(Denial of service): 阻止管理者与代理之间的信息交换,或阻止通 信设备的正常使用和管理。这种攻击或者是阻止所 有发往特定目的站点的消息、或者是对网络进行破 坏使其不能运行、或者是发送大量消息使网络过载 从而降低其性能。 (6)流量分析(Traffic analysis): 分析管理者和代理之间信息交换的一般模式。
2 SNMP协议引擎包含如下模块:
(1)调度器 调度器是同应用程序及消息处理模型进行交互, 负责SNMP消息的分发、传输和接收。每个SNMPv3协议 引擎含有一个调度器,它可以对多种版本的SNMP消息 提供支持。其主要功能如下: •接收和发送SNMP消息; •根据消息的版本号,将其交给相应的消息处理模型 处理; •从消息中得到SNMP PDU,传给应用程序; •从应用程序接收需发送的SNMP PDU。
7.3
SNMPv3安全机制分析 SNMPv3的安全机制包括:认证、加密、访问控制
7.3.1
基于用户的安全模型(USM)
SNMPv3提出了四个安全目标: 1)对每一个接收到的SNMP消息进行认证检查,确认 其在传输过程中没有被修改(包括非故意修改),即数 据完整性认证; 2)提供对发送消息的用户的身份认证,防止伪装用 户; 3)提供对过时消息的检测,防止消息的重定向、延 迟或重发;
相关文档
最新文档