SNMPV3协议开发方法
由于项目需要SNMPV3支持,但手中没有现成的V3库,所以需要重新开发,现在将对v3开发说一下思路性的东西
在开发过程中,觉得包的结构不是重点,比较简单,可以参考
http://www.comsoc.org/livepubs/surveys/public/4q98issue/stallings.html (SNMPv3 A Security Enhancement for SNMP)
重点在加密上,snmpv3请参考
http://www.ietf.org/rfc/rfc2271.txt --- http://www.ietf.org/rfc/rfc2274.txt
我硬是看了rfc2天,才揣摩出来,由于是公司代码,不方便公布出来,说说snmpv3加密的思路
snmpv3 分为 noAuthNoPriv, authNoPriv(), authPriv
noAuthNoPriv 为不验证,其结构就是snmpv3的原始结构,其中authParameters 为12个0,authParameters必须为12位,怎么才能得到这12位,下面将阐述一下
这里只是说一下 authNoPriv 模式,这个模式理解了,其他都好理解了
authNoPriv 分为 hmac -md5 -96 和 hmac – sha-96 加密方式,
关于 md5 可以参考 http://www.ietf.org/rfc/rfc1321.txt ,网页下面有c语言的demo
hmac -md5 -96 是在 md5基础上进行hash运算的算法,可以参考
http://www.ietf.org/rfc/rfc2104.txt,网页下面有c语言的demo
这两个文档,就可以写出一个下面的函数。
本文地址:http://www.45fan.com/a/question/71250.html