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. 本架构的目标
本架构的主要目标如下:
-
模块化: 该架构旨在允许不同的消息格式, 安全模型和访问控制模型独立使用.
-
演进性: 该架构允许添加新功能, 而无需修改现有实现.
-
安全性: 该架构为向 SNMP 增加强安全能力提供框架, 包括认证, 隐私保护和访问控制.
-
共存性: 该架构允许 SNMPv1, SNMPv2c 和 SNMPv3 在同一网络中共存.
-
简单性: 该架构在满足其他目标的同时, 尽可能保持简单.
1.4. 本架构的安全需求
该架构为以下安全服务提供设施:
-
数据完整性: 确保消息未以未授权方式被更改或破坏. 这通过使用消息认证码实现.
-
数据源认证: 确认消息的来源. 这同样通过使用消息认证码实现.
-
消息重放保护: 确保每条消息都是唯一的, 并且不能在之后被重放. 这通过使用时间戳和消息标识符实现.
-
数据机密性: 通过加密防止消息负载泄露.
-
访问控制: 根据用户身份和正在执行的操作类型, 限制对被管理对象的访问.
该架构还处理以下安全威胁:
-
冒充: 未授权实体伪装成授权实体.
-
信息修改: 未授权实体在传输过程中更改消息.
-
消息流修改: 对消息进行重排序, 延迟或重放.
-
泄露: 将消息内容释放给未授权实体.
-
拒绝服务: 阻止授权用户访问管理系统.
该架构不处理以下威胁:
-
流量分析: 分析消息模式以推断网络相关信息.
-
消耗代理或管理器资源的拒绝服务攻击.
1.5. 设计决策
在制定本架构时作出了以下设计决策:
-
将 PDU 处理与消息处理分离: 该架构将协议数据单元 (PDUs) 的处理与消息处理分离. 这允许不同的消息格式使用相同的 PDU 格式.
-
多个安全模型: 该架构允许多个安全模型共存, 从而支持安全协议的演进.
-
多个访问控制模型: 该架构允许多个访问控制模型共存, 从而支持不同的访问控制策略.
-
将认证与隐私保护分离: 该架构允许认证和隐私保护独立使用. 这使得无需隐私保护的认证成为可能, 某些环境可能需要这种方式.
-
使用抽象服务接口: 该架构在主要组件之间定义抽象服务接口. 这允许每个组件的不同实现相互操作.
-
强调远程配置: 该架构强调远程配置安全参数和访问控制参数的能力. 这对于大规模部署至关重要.
-
向后兼容性: 该架构旨在允许处理 SNMPv3 消息的同一个 SNMP 引擎处理 SNMPv1 和 SNMPv2c 消息.
-
向前兼容性: 该架构旨在允许未来添加新的消息格式和安全模型.