可以为同一个USM用户添加不同的身份验证和隐私算法吗?

时间:2013-02-06 04:17:15

标签: snmp4j

  

在我的代码中,我正在配置usm用户并为SNMP添加用户   V3。我想以一种它将支持的方式配置用户   以下是一组算法。

     

SHA-1 + AES128,   SHA-1 + DES,   MD5 + AES128,   MD5 + DES

     

让我们说同一个usm用户能够支持这4个用户   同时组合。现在,当我尝试从管理层   控制台,我想选择以上4和SNMP的任意组合   代理人应该工作。

     

注意:我不想添加新的usm用户。我希望同一个用户   同时配置了上述4种组合。

UsmUser user = new UsmUser(new OctetString(m_usmUser),
                         snmpAuthenticationAlgorithm,
                         snmpAuthenticationPassword,
                         snmpPrivacyAlgorithm,
                         snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);
  

而不是上述内容,我想使用下面的内容。

UsmUser user = new UsmUser(new OctetString(m_usmUser),
                         AuthMD5.ID,
                         snmpAuthenticationPassword,
                         PrivDES.ID,
                         snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);
user = new UsmUser(new OctetString(m_usmUser),
                         AuthMD5.ID,
                         snmpAuthenticationPassword,
                         PrivAES128.ID,
                         snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);
user = new UsmUser(new OctetString(m_usmUser),
                         AuthSHA.ID,
                         snmpAuthenticationPassword,
                         PrivAES128.ID,
                         snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);
user = new UsmUser(new OctetString(m_usmUser),
                         AuthSHA.ID,
                         snmpAuthenticationPassword,
                         PrivDES.ID,
                         snmpPrivacyPassword);
usm.addUser(user.getSecurityName(), user.getLocalizationEngineID(), user);

1 个答案:

答案 0 :(得分:2)

根据定义的RFC 3414,SNMPv3标准在USM配置中不支持每个USM用户多于一个auth + priv组合。此限制是由usmUserTable的结构和索引引起的。 但是,使用SNMP4J,您可以为每个代理定义多个USM实例,并为每个USM实例分配其自己的usmUserTable实例,并在其自己的SNMPv3上下文中注册每个表实例。

虽然这样可行,但可以更容易理解和实现SNMPv3用户名中的安全协议后缀(或前缀),如“myUser.AES128”与“myUser.DES”等。