Hi Deb,
 
thank you for the review. Please see inline.
 
Thank you for your work on this draft.  I found it to be well written and easy 
to read (and super nice to be able to read a technical draft that I 
understand!).
 
I have a few comments that I'd like you to address:
 
Section 1, para 2:  Perhaps consider adding a phrase in the middle of this 
sentence to say what the goal of this specification is: '...the data to be 
authenticated in IKEv2 to prevent particular downgrade attacks, and thus.....' 
[nothing else in the intro gives even a hint of the plan]
 
         Done.

Section 4:  Consider making two subsections, one for each attack type, just to 
add clarity.
 
         I’m a bit unsure whether this would help. First, the attacks are 
almost identical, with very minor difference.
         The prerequisites and the impact are different, but the attack steps 
are the same and for this reason
         only KCI attack is described in full details. Then, frankly we are not 
sure that this list of two attacks
         is exhaustive (and thus use “at least two attacks” wordings). Putting 
them into subsections
         will implicitly indicate that no other attacks are known.
 
         I’d rather hear from Chris and others whether this change is needed.

Section 4, first # list, 3:  Will either (initiator or responder) work?  Or do 
we really need the attacker know/be able to break the initiator's auth key?
 
         The attack is described for the case the initiator’s key is 
compromised, since this is the most 
         straightforward downgrade attack. If the responder’s key is 
compromised (a mirror situation), then the negotiated
         algorithms cannot be downgraded. However, for some IKE extensions, 
when the responder sends
         its preferences first in IKE_SA_INIT response, not in a response to 
initiator’s proposals (e.g., Certificate Request, Auth Announce),
         the attacker can change them unnoticed. This seems not as severe, as 
the downgrade attack, but still.
         We have some text about this later.
 
         Do you think a clarification is needed in the list item?
 
Section 4, second # list:  Are there initiator proposed protocol extensions 
that can be removed/added to help the attacker?
 
         I don’t think so. The attack is applied to the core IKEv2, irrelevant 
to the proposed extensions.

Section 4, third # list, step 6:  The attacker either knows the initiator's 
long-term auth key, or must be able to break it in real time.  At the expense 
of brevity, I would add the additional phrase here. Perhaps 'and knows or can 
break the initiator's long-term authentication key.'
 
         How about:
 
      The attacker is able to do this because it knows the
      session keys and either knows the initiator's long-term
       authentication key or can break its authentication algorithm.
 
         This is a bit more accurate, since if attacker could be able forge the 
signature without breaking the key.
 
Section 4, para after third # list: Is this in addition to knowing/breaking the 
initiator's auth key?   The attacker can still choose the weak key exchange if 
they know/can break the responder's auth key?
 
         No, this is an alternative use case. The attacker knows only one 
long-term key – either the initiator’s one or the responder’s one.
         We described attack in detail for the first case, but mention here, 
that for the second case, while less severe, some attacks are also plausible. 
 
         If the attacker knows both long-term keys and can break into session 
keys too, we are helpless…

Section 4, second to last para:  I'm assuming that the attacker is not required 
to be on the path for the whole session.  If I am correct, consider a small 
addition 'be able to passively read'.  [if there is a more appropriate word for 
'passively', I'm fine with that, it is just the way I think about it.]


         Done.

Section 4, last para:  Consider replacing 'because peers would disable' with 
'which encouraged peers to disable', or something similar.  I would remove 'on 
the other hand', as this is part of the discussion - uncertainty about whether 
algorithms are secure or insecure.  During a migration period, it is harder to 
determine which algorithms are secure/insecure, which makes these attacks more 
relevant.


         Done.

Section 5, second to last para:  Not all attacks are a result of 
knowing/breaking the initiator auth key, there is at least one variant where 
the responder's auth key is know/breakable.  Consider changing 'In particular, 
for the attacks' to 'For example, for the attacks... 


         Done. 

Section 5 or 6:  Spelling out the actual detection mechanism:  Can we add 
something that says how the impersonated entity can determine that they have 
been attacked by determining that Message1 (or Message2) is different than what 
was originally sent?  Presumably they have to construct the hash and then 
validate the signature.


         Yes, but not as some separate check. With this extension the way 
authentication data (e.g. signatures) is calculated in IKEv2
         is modified, so that both initial messages are now included under 
signature. Thus we make sure that their modification
         will be detected at least by one peer when it verifies the IKEv2 
authentication data sent by the peer . And if the verification fails, 
         the peer cannot tell that it is due to the attempted impersonation 
attack or due to any other reason (e.g., misconfigured long-term keys).
 
          Should we add any clarification, and if yes, can you propose some 
text, please?

Section 8, Note between para 3 and 4:  This doesn't read properly, 'one of the 
long term authentication information', but I can't quite figure out how to 
suggest it be corrected.


         Perhaps “credentials”?

Section 8, para 4 and 5: I would flip these paragraphs, start with 'avoid using 
the same key for different purposes', and then talk about what the risk is. 


         OK.

Nits: 
Section 4, before second numbered list:  'In case the'/'In the case where the'. 
 
 
         Fixed.
 
         Thanks again for your review! I created a PR:
         https://github.com/smyslov/ikev2-downgrade-prevention/pull/42
 
         Regards,
         Valery.
          
 
Deb Cooley 
Sec AD
_______________________________________________
IPsec mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to