跳到主要内容

1. 引言

1. 引言

1.1. 概述

本文档描述了一种用于说明 SNMP 管理框架 (SNMP Management Frameworks) 的架构. 该架构采用模块化设计, 以便 SNMP 协议标准能够随时间演进.

该架构的主要部分包括:

  • 一个 SNMP 引擎, 它提供发送和接收消息, 认证和加密消息, 以及控制对被管理对象访问的服务.

  • 一个或多个 SNMP 应用程序, 它们使用 SNMP 引擎的服务来执行特定的管理功能.

该架构允许使用不同的消息格式和安全模型. 它允许安全协议演进, 而不会对 SNMP 实现造成重大干扰.

1.2. SNMP

SNMP 是一种应用层协议, 用于在管理系统和代理之间交换管理信息. SNMP 被广泛用于管理路由器, 交换机, 服务器和工作站等网络设备.

SNMP 的第一个版本称为 SNMPv1, 定义于 RFCs 1155, 1157 和 1212. SNMPv1 使用基于社区字符串的简单安全模型.

SNMP 的第二个版本称为 SNMPv2c, 定义于 RFCs 1901-1908. SNMPv2c 使用与 SNMPv1 相同的安全模型, 但增加了新的协议操作和数据类型.

SNMP 的第三个版本称为 SNMPv3, 定义于 RFCs 3410-3418. SNMPv3 在 SNMPv2c 的基础上增加了安全能力和远程配置能力. 本文档是 SNMPv3 框架的一部分.

1.3. 本架构的目标

本架构的主要目标如下:

  1. 模块化: 该架构旨在允许不同的消息格式, 安全模型和访问控制模型独立使用.

  2. 演进性: 该架构允许添加新功能, 而无需修改现有实现.

  3. 安全性: 该架构为向 SNMP 增加强安全能力提供框架, 包括认证, 隐私保护和访问控制.

  4. 共存性: 该架构允许 SNMPv1, SNMPv2c 和 SNMPv3 在同一网络中共存.

  5. 简单性: 该架构在满足其他目标的同时, 尽可能保持简单.

1.4. 本架构的安全需求

该架构为以下安全服务提供设施:

  1. 数据完整性: 确保消息未以未授权方式被更改或破坏. 这通过使用消息认证码实现.

  2. 数据源认证: 确认消息的来源. 这同样通过使用消息认证码实现.

  3. 消息重放保护: 确保每条消息都是唯一的, 并且不能在之后被重放. 这通过使用时间戳和消息标识符实现.

  4. 数据机密性: 通过加密防止消息负载泄露.

  5. 访问控制: 根据用户身份和正在执行的操作类型, 限制对被管理对象的访问.

该架构还处理以下安全威胁:

  • 冒充: 未授权实体伪装成授权实体.

  • 信息修改: 未授权实体在传输过程中更改消息.

  • 消息流修改: 对消息进行重排序, 延迟或重放.

  • 泄露: 将消息内容释放给未授权实体.

  • 拒绝服务: 阻止授权用户访问管理系统.

该架构不处理以下威胁:

  • 流量分析: 分析消息模式以推断网络相关信息.

  • 消耗代理或管理器资源的拒绝服务攻击.

1.5. 设计决策

在制定本架构时作出了以下设计决策:

  1. 将 PDU 处理与消息处理分离: 该架构将协议数据单元 (PDUs) 的处理与消息处理分离. 这允许不同的消息格式使用相同的 PDU 格式.

  2. 多个安全模型: 该架构允许多个安全模型共存, 从而支持安全协议的演进.

  3. 多个访问控制模型: 该架构允许多个访问控制模型共存, 从而支持不同的访问控制策略.

  4. 将认证与隐私保护分离: 该架构允许认证和隐私保护独立使用. 这使得无需隐私保护的认证成为可能, 某些环境可能需要这种方式.

  5. 使用抽象服务接口: 该架构在主要组件之间定义抽象服务接口. 这允许每个组件的不同实现相互操作.

  6. 强调远程配置: 该架构强调远程配置安全参数和访问控制参数的能力. 这对于大规模部署至关重要.

  7. 向后兼容性: 该架构旨在允许处理 SNMPv3 消息的同一个 SNMP 引擎处理 SNMPv1 和 SNMPv2c 消息.

  8. 向前兼容性: 该架构旨在允许未来添加新的消息格式和安全模型.