Frank,

I think you missed the point. During engine discover in the situation that was 
originally described, SNMP4J sent a discovery packet. The manager then 
responded with a packet contain three key items: engine id, engine boots, and 
engine time. Then SNMP4J discarded two of the three values before sending 
another packet which resulted in the same return triple tuple.

Jochen stated that both the engine boots and engine time were discarded because 
not doing was insecure. Well if you can't accept two of the three values then 
why accept any of them? The worst that can happen is denial of service by 
having the wrong triple tuple that the manager uses to determine timeliness. 
Any encrypted data is still encrypted because the USM uses a shared private 
key. Any attacker wishing to decode the information would need the shared 
secret to decrypt the data.

>From section 1.1 of RFC 3414 it states

"There are at least two threats that an SNMP Security Model need not
   protect against.  The security protocols defined in this memo do not
   provide protection against:

   - Denial of Service This SNMP Security Model does not attempt to
     address the broad range of attacks by which service on behalf of
     authorized users is denied.  Indeed, such denial-of-service attacks
     are in many cases indistinguishable from the type of network
     failures with which any viable network management protocol must
     cope as a matter of course.
"
So if the RFC states that a denial of service is out of scope then I find it 
difficult to accept that net-snmp's model of accept the initial SNMP engine id, 
boots, and time to be insecure within the specifications boundaries. 

-- Brian


On Aug 10, 2010, at 4:51 PM, Frank Fock wrote:

> Hi Brian,
> Well, why are you using SNMPv3 then? Without security, SNMPv1 is sufficient. 
> The Engine ID Discovery can be disabled in SNMP4J to not accidentially learn 
> a wrong engine ID.
> 
> Best regards,
> Frank
> 
> Am 10.08.2010 um 22:13 schrieb Brian Weaver <[email protected]>:
> 
>> OK, I'll give you that it might be insecure, but if you are going to yell 
>> "insecure" then why even accept the Engine ID from initial query? If someone 
>> is monitoring traffic (man in the middle) is it not just as likely they can 
>> give you the wrong Engine ID too.
>> 
>> Regards,
>> 
>> Brian
>> 
>> On Aug 10, 2010, at 3:54 PM, Jochen Katz wrote:
>> 
>>> Hi,
>>> 
>>> please see Franks recent response with subject "Initial SNMPv3 handshake
>>> extra step?"
>>> 
>>>> Can SNMP4J be configured to have similar behavior?  Not only is the
>>>> Net-SNMP behavior more efficient
>>> 
>>> but also it is insecure! If you are using SNMPv3 without authentication,
>>> the NET-SNMP behaviour is ok, as everybody who is able to sniff and
>>> insert packets can send valid responses.
>>> 
>>> But if you are using authentication, the NET-SNMP behaviour allows an
>>> attacker to prevent all communication between agent and manager. He just
>>> has to answer with an unknownEngineID report with very high boot
>>> counter. If the manager accepts this unauthenicated report it won't be
>>> able to communicate with the agent.
>>> 
>>> Regards,
>>> Jochen
>>> _______________________________________________
>>> SNMP4J mailing list
>>> [email protected]
>>> http://lists.agentpp.org/mailman/listinfo/snmp4j
>> 
>> _______________________________________________
>> SNMP4J mailing list
>> [email protected]
>> http://lists.agentpp.org/mailman/listinfo/snmp4j

_______________________________________________
SNMP4J mailing list
[email protected]
http://lists.agentpp.org/mailman/listinfo/snmp4j

Reply via email to