11.1. Recommended Practices
11.1. Recommended Practices
This section describes recommended practices for using the User-based Security Model to maximize security.
Password Selection
Passwords should be chosen to maximize security:
-
Length: Passwords SHOULD be at least 8 characters long. Longer passwords provide better security.
-
Complexity: Passwords SHOULD contain a mix of:
- Uppercase letters
- Lowercase letters
- Digits
- Special characters
-
Avoid Patterns: Passwords SHOULD NOT be:
- Dictionary words
- Simple patterns (e.g., "12345678", "password")
- Personal information (names, birthdays, etc.)
- Repetitive strings (e.g., "aaaaaaaa")
Key Management
-
Key Storage: Authentication and privacy keys MUST be stored securely and protected from unauthorized access.
-
Key Distribution: Initial key distribution SHOULD be performed through secure, out-of-band mechanisms.
-
Key Updates: Keys SHOULD be changed periodically. The frequency depends on the security requirements of the deployment.
-
Key Localization: Always use localized keys (keys specific to each SNMP engine) rather than global keys.
Time Synchronization
-
Initial Synchronization: Non-authoritative SNMP engines MUST perform time synchronization with authoritative engines before sending authenticated messages.
-
Clock Accuracy: SNMP engines SHOULD maintain reasonably accurate clocks. Large clock skew can cause legitimate messages to be rejected.
-
Boots Counter: The msgAuthoritativeEngineBoots counter MUST be incremented whenever an SNMP engine re-initializes. This counter MUST persist across reboots.
User Management
-
User Creation: When creating users, always specify both authentication and privacy protocols, even if privacy will not be used immediately.
-
User Deletion: When deleting users, ensure that all associated keys and configuration data are securely erased.
-
Template Users: Use template users (users configured at the authoritative engine) for cloning to create new users at non-authoritative engines.
Message Security Levels
Choose the appropriate security level for each message:
-
noAuthNoPriv: Only for discovery messages or non-sensitive information. Not recommended for operational use.
-
authNoPriv: Provides authentication but not privacy. Suitable when confidentiality is not required but message integrity and origin authentication are needed.
-
authPriv: Provides both authentication and privacy. Recommended for all sensitive operations.
Implementation Considerations
-
Random Number Generation: Implementations MUST use cryptographically strong random number generators for generating keys and initialization vectors.
-
Clock Synchronization: Implementations SHOULD provide mechanisms to synchronize with external time sources (e.g., NTP) to maintain accurate time.
-
Audit Logging: Implementations SHOULD log security-relevant events, including authentication failures and time synchronization failures.
-
Error Handling: Implementations MUST handle error conditions securely, avoiding information leakage that could aid attackers.