[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IKEv2: SA attribute processing rules



William:

>The following topics are addressed in this mail for IKEv2:
>
>A.) How to handle unrecognized attribute types
>B.) Gap in private use range
>C.) Regarding how we indicate "mutually consenting parties" - vendor ID
>can't be used.
>D.) No real clarification on SA attribute handling
>E.) Implied requirement for 1536, should be 2048 or 3072.
>F.) Be clear what fails the negotiation and what doesn't.

I agree with the bulk of your comments.  However, I do want to respond to 
item E.

>E.) Implied requirement for 1536, should be 2048 or 3072.  The example
>suite given suggests that DH1536 would be a "default".  It doesn't say
>whether it's a MUST support.  I think we need something greater than
>DH1024, but why does IKEv2 need to specify it ?  Given the strength
>calculation in Tero's MODP draft, DH1536 supports by one calculation
>only 90bits entropy, which is still much less than 3DES ~112bits entropy
>(from Schneier's Applied Cryptography) which is included in that suite,
>and insuffient for keying 128bit AES.  So DH2048 or DH3072 should be the
>choice to ensure IKE DH is not the weakest point, and thus force the
>attack to the 3DES keys, which of course is being rekeyed far more often
>than the DH is generated in most cases.

There has been some discussion of this in a separate thread, but it has not 
reached an obvious conclusion.  However, I want to correct one aspect of 
your description.  Maybe you already understand this, and you used loose 
wording, but I know that many people miss this important point.

If one wants, say, 80 bits of protection, then it is appropriate to select 
mechanisms that each provide this level of protection, or more.  Achieving 
80-bit security would allow many choices:

         Diffie-Hellman: 1024, 1280, 1536, 2048, and so on
         Encryption:     3DES, AES-128, AES-192, AES-256, others

Alternatively, if one want 90 bits of protection, as you point out, 
Diffie-Hellman with 1024-bit keys is no longer appropriate, but all of the 
encryption algorithm alternatives are still viable.

One would not normally select a symmetric cipher that provides exactly 
desired protection.  There are not that many quality algorithms floating 
around, each with different key sizes.  Although there are a few that take 
variable length keys, these are not the most widely adopted by teh IPsec 
community.  Further, it is not a good practice to roll your own symmetric 
cipher.  It is not likely to be secure, and even if it is secure, it is not 
likely to be widely implemented.  For this reason, one normally selects a 
symmetric cipher that is well known, widely implemented, and provides 
adequate performance.  For this reason, I expect to see movement from 3DES 
to AES-128.  Not because 112 bits of security is problematic, rather 
because AES is fast.  More security and fewer cycles.

The Diffie-Hellman key size selection is different.  One choose exactly the 
desired level of protection, without the same interoperability 
concerns.  Yet, there is a huge performance penalty for selecting a bigger 
key than necessary.  Some hardware implementations may have a maximum 
buffer size, and many of these will resort to software if the hardware 
buffer size is exceeded.  This means that there is a huge performance cliff 
if the hardware buffer size is exceeded.

In summary, one should select the fastest, widely deployed, well studied 
symmetric cipher that exceeds the security requirements; however, one 
should select the Diffie-Hellman key size that provides the desired 
security, and no more.

So, what should IKEv2 impose as the MUST implement Diffie-Hellman key 
sizes?  In my opinion, 1024 should be on the list for backward 
compatibility with the currently fielded devices.  Further, either 1280 of 
1536 should be required.  This allows us to move incrementally forward, 
without imposing a huge performance hit.  Of course, support for even 
bigger keys is encouraged, but not required.

Russ