RE: SNMPv3 security
"Fleischman, Eric" <[email protected]> Thu, 7 Aug 2003 13:22:39 -0700
| Newsgroups | gmane.ietf.snmpv3 |
|---|---|
| Message-ID | <5B58696DB20B9140AD20E0685C573A6402992DCA@xch-nw-09.nw.nos.boeing.com> |
From: Randy Presuhn [mailto:[email protected]] >??? Key lifetime is under control of the user / security administrator. If you want to update >your keys every ten minutes, you can, though it doesn't address the more fundamental >question of the strength of the crypto algorithm >From my knothole, the most important information I have conveyed is that one must have Session Keys with very short lifetimes in order to reduce the amount of available ciphertext that can be used for cryptanalysis. Because SNMPv3 keys have indefinitely long lifetimes, a great deal of relevant ciphertext accumulates. For SNMPv3, the cracker knows that any communication between the same source and destination IP addresses has a high degree of probability of using the same DES encryption key -- especially if the attacker has operational information about the types of systems (e.g., single user or multi-user) residing at each IP address, which is not difficult to obtain. Thus, the cracker has plenty of ciphertexts from which to apply cryptanalysis in order to break the DES encryption keys. Once the session key has been broken, then the attacker can concentrate on cracking the authentication keys, which are "the keys to the kingdom", especially because of the weak authenticati! on ! approach used by SNMPv3 (e.g., no capability for two factor authentication thus anybody knowing the authentication key can freely pretend to be that administrator). It is therefore essential that the Session Key have a short lifetime in order to reduce the amount of available ciphertext encrypted by the same key and to introduce doubts whether any two ciphertexts were encrypted by the same or different keys. This is the most fundamental defense available to us as SNMPv3 end users. Your statement above is disingenuous -- as I trust you knew when you wrote it. No user or security administrator can bear the overhead of redistributing tens of thousands of SNMPv3 passwords. They certainly can't regularly do this within an adequately short key lifetime quantum in order to make the current SNMPv3 approach begin to be viable. Egads!!! >> All you are doing by transitioning from using DES to AES is perhaps delaying the bad guys a few >> hours before these keys are broken. That's almost nothing -- a false sense of security that >>accomplishes little. >You must know something about AES that I don't. Any references to back up this claim >of relative lack of strength vis-a-vis DES? Randy, I am confident that you already know that TRIPLE-DES is usually stronger than DES and that AES with long keys is stronger than TRIPLE-DES. However, you seem to think that any of these algorithms is adequately strong to defeat cryptanalysis done by a security professional, even in environments with long key life and an abundance of ciphertext. I am not at liberty to discuss this type of issue with you. I realize that this may seem unfriendly or non-professional to you and I apologize for this perception. Rather, let's just recall together that communities exist who are not tremendously impressed with the strength of non-classified algorithms, particularly in environments with substantial amount of ciphertext available to the well-financed cracker. >> The interrelationship of the keys means that breaking one key greatly eases the breaking of them all, >> even if we are talking about dozens-of-remote-admins * thousands-of-SNMP-agents worth of keys, >> as we are in our system. The whole thing can be rolled up fairly quickly by security professionals >> because encryption in SNMPv3 is being applied in a barefoot manner. >It sounds like you're assuming that the key localization algorithm is insufficiently one-way. >I know there's been some speculation that MD5 might be inadequate for this purpose, >but has anyone actually demonstrated it? In any case, I think Uri's AES i-d addresses >this (at least earlier versions did). The current approach presumes that SHA-1 or MD5 hashes provide enough key randomization to thwart the underlying algorithmic relationship between these keys. I can understand why you may think this. However, if you spent some time figuring out how to break these keys, then a possibility exists that you perhaps may agree with me that this underlying relationship provides a helpful mechanism to exploit for breaking these keys, particularly with a great abundance of ciphertext to work with. >> The only way this can be remedied is not by doing minor tweaks of encryption algorithms >> but rather by redesigning the security system to place it upon a solid footing. Session >> Keys should have very short, finite lifetimes. >Nice in theory, but brings other costs and other risks, like >the possibility that session establishment will fail in highly >stressed networks. Yes, you are correct. I simplified a difficult problem. However, until SNMPv3 can have session keys with short lifetimes, the protocol is essentially unsecurable -- which is why I am currently seeking to secure SNMPv3 at a lower protocol layer (i.e., the beginning of this email thread). >The decision to use key localization was made because implementation and >deployment experience with various flavours of SNMPv2 showed that using >totally independent keys scaled badly. The assertion that key localization >presents a point of attack is based on the assumption that compromising a localized >key would provide information that would be useful in deriving either the initial >passphrase or some other localized key. As far as I know, no one has been able >to justify such an assumption. Yes, it is obvious that something had to be done to reduce the overhead burden of distributing two symmetric keys between each SNMP-agent and network-administrator pairing. SNMP adopted a creative solution to this problem. However, if the protocol were to be redesigned today, other solutions would be available, including the ones I mentioned in my email, which would offer greater protections and lower the existing administrative burden. For example, if SNMP were secured in a parallel manner as even one other IETF protocol, then the administrative burden for administrators supporting both protocols would be materially eased. The fact that the algorithmic relationship between the keys can be leveraged to break additional keys, once an original key has been broken, may or may not be evident to the readers of this email. Certainly, I am offering no proof, other than implying I have an idea for how to do so. However, this fact is far less important than fixing the primary weakness of the system, which is the lack of a viable session key mechanism, which exposes all the SNMPv3 keys to compromise, even if they hadn't had an underlying algorithmic relationship to leverage. >> These keys should be distributable >> via already existing key distribution systems (e.g., Kerberos, PKI), perhaps by using "seed >> key values", or else composite keys. In addition, whatever you do at the SNMPv3 application >> layer should be designed to work with security provisions at another layer. >Sure, the architecture allows you to define other security models like these, but >see the SNMPv3 WG archives for lots of reasons why one wouldn't want to mandate this. I am not telling your working group what algorithm or approach to use because these are weighty issues, far outside the scope of my posting. Rather, I am merely saying that the existing system is unsecurable unless supplemented by the security provisions of additional protocol layers. As you may recall, my original intent was not to question or debate SNMPv3 security at all, but rather to query the IETF list to see whether SSH port forwarding had been successfully used by others to partially secure SNMP. Has anybody on this list used SSH port forwarding for SNMP? If so, do you believe the approach to be viable or not? Was any other approach more successful? (Please respond directly to me because I am not yet a member of the snmpv3 list.) --Eric