11.1. Recommended Practices (推荐做法)
11.1. Recommended Practices (推荐做法)
本节描述了使用基于用户的安全模型以最大化安全性的推荐做法.
Password Selection (密码选择)
应选择密码以最大化安全性:
-
Length (长度): 密码应该至少 8 个字符长.更长的密码提供更好的安全性.
-
Complexity (复杂性): 密码应该包含以下混合:
- 大写字母
- 小写字母
- 数字
- 特殊字符
-
Avoid Patterns (避免模式): 密码不应该是:
- 字典单词
- 简单模式 (例如, "12345678", "password")
- 个人信息 (姓名, 生日等)
- 重复字符串 (例如, "aaaaaaaa")
Key Management (密钥管理)
-
Key Storage (密钥存储): 认证和隐私密钥必须安全存储并防止未经授权的访问.
-
Key Distribution (密钥分发): 初始密钥分发应该通过安全的带外机制执行.
-
Key Updates (密钥更新): 密钥应该定期更改.频率取决于部署的安全要求.
-
Key Localization (密钥本地化): 始终使用本地化密钥 (每个 SNMP 引擎特定的密钥) 而不是全局密钥.
Time Synchronization (时间同步)
-
Initial Synchronization (初始同步): 非权威 SNMP 引擎在发送已认证消息之前必须与权威引擎执行时间同步.
-
Clock Accuracy (时钟准确性): SNMP 引擎应该保持合理准确的时钟.较大的时钟偏差可能导致合法消息被拒绝.
-
Boots Counter (启动计数器): 每当 SNMP 引擎重新初始化时, msgAuthoritativeEngineBoots 计数器必须递增.此计数器必须在重启后保持.
User Management (用户管理)
-
User Creation (用户创建): 创建用户时, 始终指定认证和隐私协议, 即使隐私不会立即使用.
-
User Deletion (用户删除): 删除用户时, 确保所有关联的密钥和配置数据都被安全擦除.
-
Template Users (模板用户): 使用模板用户 (在权威引擎上配置的用户) 进行克隆以在非权威引擎上创建新用户.
Message Security Levels (消息安全级别)
为每个消息选择适当的安全级别:
-
noAuthNoPriv: 仅用于发现消息或非敏感信息.不建议用于操作使用.
-
authNoPriv: 提供认证但不提供隐私.适用于不需要机密性但需要消息完整性和源认证的情况.
-
authPriv: 提供认证和隐私.建议用于所有敏感操作.
Implementation Considerations (实现考虑)
-
Random Number Generation (随机数生成): 实现必须使用加密强度的随机数生成器来生成密钥和初始化向量.
-
Clock Synchronization (时钟同步): 实现应该提供与外部时间源 (例如, NTP) 同步的机制以保持准确的时间.
-
Audit Logging (审计日志): 实现应该记录与安全相关的事件, 包括认证失败和时间同步失败.
-
Error Handling (错误处理): 实现必须安全地处理错误条件, 避免可能帮助攻击者的信息泄漏.