我很难理解SNMPv3中的USM模型。我的研究和理解是基于RFC 3414。
我的问题是在SNMP的某些实现中没有强制执行身份验证,在我看来,这破坏了整个安全模型。
用例是:
向配置的USM模型为SNMPv3的陷阱接收器发送带有noAuthNoPriv的authPriv陷阱,其中authPriv必须接受或拒绝接收到的陷阱。
我正在工作的巫婆的实施接受了这个陷阱,我认为必须拒绝这个陷阱。谁是对的?
案文说:
本节描述当SNMP接收到包含代表用户的管理操作on的消息时所遵循的过程,该消息具有特定的securityLevel。。。省略到步骤5的文本
我理解案文中的两个原则:
当我在客户端和服务器上设置身份验证时,我期望双重身份验证(客户机-服务器),或者至少客户机发送的消息是经过身份验证的。如果我错了,系统不得不接受这个陷阱,这意味着任何人都可以代表任何人发送SNMPv3陷阱。
设置此安全参数会产生错误的安全性,只有SNMPv3专家才能理解其错误。在我看来,这是一个糟糕的选择,可能会在多个地方造成许多安全漏洞。
我听说我需要使用通知而不是陷阱来进行完全认证的消息。但这不是我的问题,我真的想了解USM模型。
另外请注意,我希望我是对的,因为否则,我觉得USM SNMPv3写得很糟糕(不是说我可以做得更好),因为设置可以忽略的安全参数,会给人一种错误的安全感觉。
当我在两个客户机+服务器中设置身份验证时,我认为存在双重身份验证。如果我错了,就没有了,而且可以轻易地为另一个系统发送陷阱。
注:我知道有VACM,但我只专注于USM的使用,根据RFC。我想了解USM的含义和用法,而不是执行相同任务的其他方式。
发布于 2022-03-24 08:07:58
免责声明,我不是专家,所以采取以下预防措施。
在SNMPv3中,USM只负责在SNMP权威引擎上进行验证,该引擎取决于消息的类型。
RFC 3414第3.2节描述了信息的接收情况:
6)如果securityLevel指定要对消息进行身份验证,则根据用户的身份验证协议对消息进行身份验证。为此,对根据抽象服务原语实现用户身份验证协议的身份验证模块进行调用
重要的一点是,非权威的SNMP引擎没有安全模型。因此,在步骤6中,securitfyLevel是消息中的一个。这意味着即使不提供身份验证,USM层也接受陷阱。
如果消息必须被解释,那么这就是用户要选择的陷阱的任务。一般来说,PDU或包含信息的对象将安全级别保存在内存中,检查它是用户的任务。
https://networkengineering.stackexchange.com/questions/78304
复制相似问题