Module org.snmp4j

Package org.snmp4j.security

Provides classes and interfaces for authentication and privacy of SNMP(v3) messages.

The org.snmp4j.security package contains three groups of classes and interfaces:

  • The authentication protocols group contains interfaces and classes for authentication of SNMP(v3) messages.
  • The privacy protocols group contains interfaces and classes for encryption and decryption of SNMP(v3) messages.
  • The security model group combines authentication and privacy protocols to provide security services to message processing models.

Authentication as well as privacy protocols are security protocols and thus both are derived from the common interface SecurityProtocol. In order to be able to use a security protocol with SNMP4J, the protocol implementation class has to be registered with the SecurityProtocols singleton, which provides access to authentication and privacy protocols.

Authentication Protocols

All SNMP4J authentication protocol implementations have to implement the AuthenticationProtocol interface. SNMP4J provides implementation for the following authentication protocols:

  • MD5, which is implemented by AuthMD5 and
  • SHA, which is implemented by AuthSHA.

Privacy Protocols

All SNMP4J privacy protocol implementations have to implement the PrivacyProtocol interface. SNMP4J provides implementation for the following privacy protocols:

  • DES in CBC mode, which is implemented by PrivDES and
  • AES with 128bit key, which is implemented by PrivAES128.
  • AES with 192bit key, which is implemented by PrivAES192.
  • AES with 256bit key, which is implemented by PrivAES256. In order to be able to use 256bit strong encryption, the strong encryption enhancement package has to be downloaded and installed.

Security Models

All SNMP4J security models have to implement the SecurityModel interface. Before a security model can be used with SNMP4J, it has to be registered with the SecurityModels singleton which provides access to security models. SNMP4J implements a single security model, the User Based Security Model (USM).

The USM class uses a user name table (which contains user names) and a user table (which contains localized user information) to store user information. A time table is used to store time information about SNMP engines to protect SNMP communication against replay attacks if the corresponding security level has chosen.

The following UML class diagram shows the most important classes of the org.snmp4j.security package and their relationships (relationships to other packages are not shown):

UML Class Diagram security package