The org.snmp4j.security
package contains three groups of
classes and interfaces:
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.
All SNMP4J authentication protocol implementations have to implement the
AuthenticationProtocol
interface. SNMP4J provides implementation
for the following authentication protocols:
AuthMD5
andAuthSHA
.
All SNMP4J privacy protocol implementations have to implement the
PrivacyProtocol
interface. SNMP4J provides implementation
for the following privacy protocols:
PrivDES
andPrivAES128
.
PrivAES192
.
PrivAES256
. In
order to be able to use 256bit strong encryption, the strong encryption
enhancement package has to be downloaded and installed.
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):