I started editting the draft to incorporate this change, and I ran into a 
conflict with another part of the protocol: incremental rollout.  I'd like some 
quick advice about how to deal with the conflict.

Here's the feature it's in conflict with: in order to support 'brown-field' 
deployments (that is, an existing IKE infrastructure that people will be 
deploying this to), the current draft specifically allows an IKE implementation 
to be in a state where it works both with peers that implement this, and peers 
that do not; the idea being that the administrator would first upgrade all 
their nodes to work in this special intermediate mode; and once they've done 
they, they then upgrade their nodes to 'do QR-only' mode.  This is twice as 
much work for the administrators; however at no point of time is any network 
blockage (as two peers will always be able to negotiate).

Currently, whether we're using a PPK is negotiated by the N(PPK_NOTIFY) 
notifies that is sent in the first encrypted message; the responder learns 
whether or not the initiator supports this draft (and has a PPK) by whether the 
notify is there.  However, that same encrypted message includes the AUTH 
payload; which is generated using the SK_pi.  And, if the initiator isn't sure 
if we're using the PPK, it wouldn't know whether to use SK_pi' or prf(PPK, 
SK_pi')

Some obvious ways to address this:

- Move the notifies to the prior messages (that is, in the clear).  If we do 
this, then by the time we derive keys, we know whether we're using a PPK (even 
if the responder doesn't know which one it is until it hears the initiator's 
id).  This would mean that anyone could tell whether the two sides are using a 
PPK

- Drop this intermediate mode; that is, make it determanistic to whether we're 
uisng the PPK (based on the peer identity).  This would make roll-out more 
challenging, but it would simplify the implementations.

- For the initiator's AUTH payload, use SK_pi' always.  However, I suspect this 
would partially mess up the reason we're strirring it into SK_pi in the first 
place.


Opinions?  Does any other options come to mind?

> -----Original Message-----
> From: IPsec [mailto:ipsec-boun...@ietf.org] On Behalf Of Tero Kivinen
> Sent: Wednesday, March 29, 2017 7:11 PM
> To: ipsec@ietf.org
> Subject: [IPsec] Quantum Resistance SK_d, SK_pi, SK_pr etc mixing
> 
> So I have proposed earlier that we should mix the ppk to SK_d, SK_pi, and
> SK_pr, i.e., something like this:
> 
>    SKEYSEED = prf(Ni | Nr, g^ir)
> 
>    {SK_d' | SK_ai | SK_ar | SK_ei | SK_er | SK_pi' | SK_pr'}
>                       = prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr)
> 
>    If no PPK available, then
> 
>    SK_d = SK_d'
>    SK_pi = SK_pi'
>    SK_pr = SK_pr'
> 
>    If PPK is available then
> 
>    SK_d = prf(PPK, SK_d')
>    SK_pi = prf(PPK, SK_pi')
>    SK_pr = prf(PPK, SK_pr')
> 
> This has the follolowing benefits. The SK_d modification will mean that IKEv2
> SA will gain protection against Quantum Resistance after the IKEv2 SA irs
> rekeyed, as rekeyed SA will be using SK_d to derive new keys. SK_d also
> used to derive the KEYMAT, meaning the Child SA will gain protection.
> 
> Modifying the SK_pi, and SK_pr will mean that if the PPK is wrong the
> IKEv2 authentication will fail, and we will get exactly same failure for wrong
> PPK than we do with wrong shared key or digital signature failures. This
> means that attacker do not gain any information which part of the
> authentication failed.
> 
> I do so that in the early cases the PPKs are going to be configured manually 
> in
> the system and there is quite big propability they being wrong, and catching
> the misconfigurations with proper error code is better, than just getting the
> random garbage on the Child SA data.
> --
> kivi...@iki.fi
> 
> _______________________________________________
> IPsec mailing list
> IPsec@ietf.org
> https://www.ietf.org/mailman/listinfo/ipsec

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

Reply via email to