问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

snmp的交互方式有哪三类?实现机制分别是怎样的

发布网友 发布时间:2022-05-18 04:22

我来回答

1个回答

热心网友 时间:2023-10-09 05:16

在snmp发展到V3版本后,把snmp的安全性提升到一个新高度,这同时也带来了实现上的复杂性。在02年,03年我都曾经想进一步的了解它的实现,但都没什么进展。
这次在实现Csnmp的过程中,又一次的接触到V3的底层实现机理。现把我们在实现Csnmp中的V3模块的时候,对V3的一些实现细节做一总结,希望能缩短一些朋友掌握SNMPV3的时间和难度。(本文针对的朋友是对snmpV3有个接触的,故对v3术语不做解释)
我们先把加密和HMAC部分先放一下,等我们先讲几个别的问题后,再来看加密和HMAC这部分的时候,就会非常清晰了。
现在先把读写控制权限这部分(VACM)做一分析。VACM这部分在Csnmp中实现的时候有如下三个Vector每个分别装如下一个类:SecuToGroupTableItem、VacmAccessTableItem、ViewTreeFamiTableItem它们分别代表VacmSecurityToGroupTable、VacmAccessTable、VacmViewTreeFamilyTable这三张V3协议中的表。这三张表是配合起来一起完成对读写Mib信息的权限控制的。 首先,用securityName和securityModel从SecuToGroupVector取出其对应的groupName, 其次用刚才取到的groupName加上SecurityModel、SecurityLevel以及是读、还是写操作这四个参数从VacmAccessVector取出其相应的viewName。最后一步是VACM的关键,通过刚才上一步取到的ViewName,再加上request OID进行如下权限判断:对于ViewNameVector中的每一条记录首先判断其ViewName是否和我们取出来的ViewName相同,相同的话,看request OID是否是以该条记录中的subtree为开头的,如果是的话,再判断该条记录的familyType是included(1)还是excluded(2),如果是“included(1)“的话则继续判断按同样的步骤判断下一条记录,直到没有符合ViewName相同的记录。如果是“excluded(2)”的话,则退出,并向Manager(管理端)发出AuthError的错误Response。
也许上面的文档写的不怎么清楚,但请各位稍微仔细掠一下的,就会发现VACM这部分其实较为简单,因为在我们实现的过程中这一块真正核心的代码估计不超过100行。
下面我会花较大篇幅把各位关心的V3的加密和HMAC部分做一分析。首先讲解一下Key Localization也就是密钥的具体化,即该管理端下的每个Agent都有一个不同于其他Agent的Key。之所以要key Localization,这主要是V3协议考虑到一个管理端要管理多个Agent,如果管理端对每个Agent的密钥都要取记住的话,这将是非常不方便的,第二个原因是即使有一个Agent的key被attacker取到了,他也无法知道其他的Agent的key。在实现Key Localization的时候,为满足上面的一般都这么做:先用用户的password,通过(MD5)处理得到对应的User key0,然后把刚才的User key0+你要通讯的Agent的EngineID,再一次通过MD5处理,这就获得了你所需要的Localized Key。
这个Localized Key在接下来的加密和认证过程中都要用到(这是因为管理者可以只用一个password来产生加密的Key和认证的Key, 也就是加密的Key == 认证的key,但出于更好的安全性考虑的话,建议用两个不同的password来分别产生加密Key和认证Key)。
好,现在先就V3的Authentication的处理做一分析: 首先按SNMPV3 PDU的要求把所有部分都加上,但把USM部分中的msgAuthenticationParameters部分用连续的12个(byte)0x00填充。等所有部分都填充好后,用刚才讲到的认证Key+这个Request PDU一起,送入MD5,产生出一个12个byte的msgAuthenticationParameters,并用这个替换掉开始放入的12个空白byte,其实我们可以把msgAuthenticationParameters看作一个MAC它起到一个电子指纹的作用,这样一个V3版本的Request PDU就可以发给某一Agent了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
父母残疾,带病出生的庞众望,744分考上清华,7年后咋样了 父亲精神病母亲瘫痪,寒门庞众望四年前考入清华,如今怎样了? 鬼谷八荒魅力最高是什么 怎么捏脸到仙姿 鬼谷八荒如何减魅力 北京八维学校好吗是真的吗 八维学校是不是传销? 北京八维学校的招生体系是传销吗? 自圆其说的意思自圆其说 沐澄什么意思 键盘按键错乱。按I出现IO,反正全都不正确吗,前几分中上QQ还能用,电脑卡... 试论历史规律的实现机制 道德的激励功能的实现机制分为哪几类? 生态产品价值实现机制是什么? 求问各位大佬python3.6怎么使用opencv,用哪个版本 有没有冰箱门锁 历届奥运会主场馆的第19届奥运会主场馆 2022年第24界奥运会是北京,第十九届奥运会是哪一年? 俄罗斯举办过几次奥运会? 谁知道第19届奥运会在哪里举办?是多少年? 第十九届奥运会在哪召开? 第十九届奥运会是在哪个国家举行的 任字姓氏读音是什么? “任”读几声? “任丘”的“任”声调是第几声? 梁任公的任的读音,要理由 任有那几种读音? 任 有几种读音 JP已收件是什么意思 lol怎么换日语语音包 LOL日服注册详解 游戏中跨服的实现机制 C语言变参函数Printf实现机制是什么? java序列化的实现机制是什么?Serialize接口文件中没有接口方法,是空接口,那么序列化具体是如何实现的? typeid的实现机制是怎样的 影响气候的因素有哪些?(3个) 影响气候的三因素 影响气候的主要因素是什么? 影响气候的3个主要因素 影响气候的因素包括哪几方面 影响气候的因素主要包括哪几方面 分别有着怎样的影响呢? 万方数据库中论文导出 求万方数据库论文一篇 魏璎珞的文章来源于万方数据库论文大约有多少篇? 网络卡顿非常严重。 我装的是300M的宽带,我只要在家里用了电脑,其他设备都会变得异常卡顿,咋办啊? 500M宽带上网看视频卡顿厉害 被别人盗用了怎么办? 被盗用了该怎么办 我被别人用了怎么办? 我被别人用了? 我的被人盗用了怎么办?