SharpSNMP:使用带有AES隐私的SNMP v3

时间:2014-03-18 20:05:50

标签: vb.net aes snmp sharp-snmp

我在SNMP v3服务器(Cisco路由器)上配置了2个用户:

  1. 使用DES作为隐私方法(desuser
  2. 的用户
  3. 使用AES 128作为隐私方法(aesuser
  4. 的用户

    两个用户的隐私密码和身份验证密码设置为相同:12345678用于测试目的。

    使用下面链接中的代码(问题末尾),我能够使用DES作为隐私方法执行SNMP v3查询。为此我使用了以下命令行args:

    -v=3 -l=authPriv -a=MD5 -A=12345678 -x=DES -X=12345678 -u=desuser 10.10.10.1 1.3.6.1.2.1.2.2.1.7.1
    

    以上工作没有任何问题。

    然后我尝试使用AES 128作为隐私方法,方法是在命令行args上更改隐私方法和用户,如下所示:

    -v=3 -l=authPriv -a=MD5 -A=12345678 -x=AES -X=12345678 -u=aesuser 10.10.10.1 1.3.6.1.2.1.2.2.1.7.1
    

    这导致了TimeoutException: TimeoutException

    我可以在其他SNMP代理上同时使用这些用户(aesuserdesuser),而不会出现任何问题。

    请告诉我:

    1. 使用AES 128时,需要在命令行arg -x中指定什么?它应该只是AES还是AES128

    2. 当我查看snmpget的代码(在最后的链接中)时,我注意到分配给命令行arg -x的值被分配给名为{{的变量1}}。但是,在设置privacy对象时,此变量以后永远不会在代码中使用。设置此对象时,只有两个可用的代码路径是IPrivacyProviderDESPrivacyProvider。 (参见下面的代码摘录)难道不应该像DefaultPrivacyProvider那样在代码上启用AES隐私方法吗?

    3. AESPrivacyProvider项目snmpget的代码摘录:

      Program.vb

      https://github.com/lextm/sharpsnmplib/blob/master/Samples/VB.NET/snmpget/

1 个答案:

答案 0 :(得分:1)

http://help.sharpsnmp.com/html/T_Lextm_SharpSnmpLib_Security_AESPrivacyProvider.htm

正如文档所述,AES支持是实验性的。

您可以编写自己的隐私提供程序来处理此类算法,这纯粹是一个加密挑战,并不属于#SNHS的范围(仅涵盖核心SNMP功能)。