Panwei (William) writes:
> It seems like a rare scene but I think it needs to be considered.
> Compared with ignoring cookie payload, how about adding N(COOKIE2)
> in the 9th message? Then when Initiator received the 12th message,
> it'll know which cookie this message matches with.

Actually I think the best option is to include the N(COOKIE) in the
Initiators IKE_AUTH too. I.e.:

   Initiator                         Responder
   -------------------------------------------------------------------
1. HDR(A,0), SAi1, KEi, Ni  -->
2.                       delayed<--  HDR(A,0), N(COOKIE1)
3. HDR(A,0), SAi1, KEi, Ni  -->
4.                              <--  HDR(A,0), N(COOKIE2)
5. HDR(A,0), N(COOKIE2), SAi1,
       KEi, Ni  -->
6. delayed received here
7. HDR(A,0), N(COOKIE1), SAi1,
       KEi, Ni  --> lost
8.                              <--  HDR(A,B), SAr1, KEr,
                                         Nr, [CERTREQ]
9. HDR(A,B), SK {IDi, [CERT,]
       [CERTREQ,] [IDr,] AUTH,
       SAi2, TSi, TSr,
       N(COOKIE1)}  -->
       ^^^^^^^^^^ Added here.
10.                             <--  HDR(A,B), SK {IDr, [CERT,]
                                         AUTH, SAr2, TSi, TSr}

Now when Responder receives IKE_AUTH at step 9, it will decrypt that
and it can see that Initiator thinks the cookie is COOKIE1, and it can
then reconstruct the packets initiator is using for his calculations.
Of course it needs to assume that initiator did not change order of
payloads or anything else when it swiched from COOKIE2 to COOKIE1,
i.e., that only difference in step 5 and step 7 packets is the cookie
payload contents.

This kind of change would most likely be backward compatible, i.e.,
old responders would simply ignore the extra notify payload in
IKE_AUTH and old initiators would not simply even send it.
-- 
kivi...@iki.fi

_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to