On Thu, 28 Nov 2019, Valery Smyslov wrote:

some time ago I've posted a new draft "An Alternative Approach for Postquantum 
Preshared Keys in IKEv2".

AS you all know we have "Postquantum Preshared Keys for IKEv2" 
(draft-ietf-ipsecme-qr-ikev2) draft
that is already in Publication Requested state. This draft defines a mechanism 
to achieve PQ security
by means of additional Preshared Key (PPK) that is mixed up in IKE SA keys 
calculation.
This approach is believed to be a temporary solution until new PK KE primitives 
are standardized.

Yes, PPK is for use with non-PQ algorithms as a stop-gap meassure until
we have PQ algorithms/exchanges. But that means ideally that if or when
IKE_INTERMEDIATE is used, we are using PQ-safe algorithms and PPK's are
not used anymore.  We might also end up with something PA-safe that does
not require IKE_INTERMEDIATE.

The problem is that in the "Group Key Management using IKEv2" 
(draft-yeung-g-ikev2),
that is just adopted as a WG document, the responder (Group Controller / Key 
Server)
transfers session keys to the initiator (Group Member) immediately once IKE SA 
between
them is created. Obviously, keys are sensitive information and they are not 
protected
by PPK in this case. The workaround suggested in draft-yeung-g-ikev2-16 is to 
perform
quite long series of exchanges (consuming more resources) to postpone session
keys transfer until the initial SA is rekeyed.

Understood.

The draft "An Alternative Approach for Postquantum Preshared Keys in IKEv2" 
proposes
an alternative approach for using PPK by utilizing the IKE_INTERMEDIATE 
exchange,
in which PPK IDs are exchanged. This allows an initial IKE SA to be secure
against QC, that would substantially simplify G-IKEv2 implementation if PQ 
security
using PPK is needed.

Wouldn't this introduce the same bad error handling in IKE_INTERMEDIATE
we had in IKEv1 of getting unreadable messages?

This alternative approach can also be used in regular IKEv2. Compared
with draft-ietf-ipsecme-qr-ikev2 it has few advantages and a single
drawback - it requires an additional exchange for IKE SA to set up.

That is likely less problematic than the PPK management involved? And
presumable this goes away when we have PQ-safe algorithms, so it is only
a temporary extra round trip? (still hoping that the new PQ-safe stuff
does not require the IKE_INTERMEDIATE exchange :)

However, if IKE_INTERMEDIATE is used for some other (not yet defined)
purposes too, the PPK IDs can be piggybacked and thus having no such penalty
as an extra exchange.

But ideally, neither PPK or IKE_INTERMEDIATE would be needed for PQ-safe 
exchanges :P

Comments, reviews, opinions are very welcome.
Is it worth to adopt this draft as a WG document?

There is also another solution to your original problem: require PQ-safe
algorithms for Group SA's that need to be PQ-safe and don't use PPKs
at all. Since PPK's are a "stop gap" method meant for existing things,
and group SA's are still being designed, developed and implemented,
by the time the group sa work is done, we might already have PQ-safe
exchanges so PPK is no longer needed.

I'd be tempted to wait a bit for now before we do too much work that
ends up not being needed. I suspect most implementors would wait as
well anyway.

specific comments on the draft:

I don't like returning AUTHENTICATION_FAILED outside of IKE_AUTH as
proposed in your document. Since the only thing that could possibly
cause that is PPK failure, you might as well return a new error
that clearly states that (eg the original IKEv2 assumption to hide
presenting too much info by returning AUTHENTICATION_FAILED in many
cases does not apply here)

   If using PPK is optional for the responder, then she returns the
   empty PPK_IDENTITY notification, thus informing the initiator that
   the IKE SA can be created only without using PPK.

This is a strange concept of "optional" :)

Another issue I see is with connection selection and PPK selection.
At the IKE_INTERMEDIATE exchange, we don't know yet which connection
this will map to, as we haven't seen the AUTH payload nor the IDr
payload. So I think you would at the minimum need to also send the
IDr payload if you are sending a PPK payload. Or you need to overload
or derive this information from the supplied PPK_ID. I feel this might
cause operational problems.

For computing the IKE SA keys, I would prefer to leave this method as
unchanged as possible. Adding PPK mixing into the prf+ differently
from the standard one will make the code more complex. Isn't it enough
to make the PPK part of SKEYSEED? Why do we need to use this from the
additional prf+ calls as well?

Paul
Paul

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

Reply via email to