From: IPsec <[email protected]> On Behalf Of Valery Smyslov
Sent: Wednesday, July 25, 2018 9:03 AM
To: 'Daniel Van Geest' <[email protected]>; Scott Fluhrer (sfluhrer)
<[email protected]>; [email protected]
Subject: Re: [IPsec] IKE_AUX comments
Hi Daniel,
On the other hand, if later some new QSKE method appear, that
will have small enough public keys, so that it can be used in IKE_SA_INIT,
and IKE_AUX would be used for some purposes other then QSKE,
then again the key would not be known to attacker and there would be
no reason to restrict the choice of PRFs.
In this example, assuming that one is using a QSKE because they want quantum
safety, the PRFs will still have to be restricted simply because
PRF_AES128_XCBC and PRF_AES128_CMAC only provide 64 bits of protection against
a quantum computer.
Sorry, I should have been more clear. I meant that if tomorrow a new PRF appears
that will provide 128 (or more) bits of security against quantum computers, but
will not be second preimage resistant in case of known key, then this PRF
can be used if IKE_SA_INIT key exchange uses quantum safe methods
and we change all-zero key to SK_pi/SK_pr. I didn’t mean PRF_AES128_XCBC/CMAC,
just some imaginary PRF with the same properties, but quantum safe.
So, my suggestions:
1. use SK_pi/SK_pr as keys for PRF that authenticate IKE_AUX messages
If using IKE_AUX in a non-QSKE use-case then any encrypted payload is already
protected by the encryption algorithm + integrity algorithm (or AEAD
encryption), but any unencrypted payloads + the IKE header wouldn’t be
protected using a 0 key, so your proposal sounds reasonable.
Good.
The reason that the ‘all-0-bits’ suggestion was put out there was an attempt to
avoid confusion as to which SK_pi/pr keys to use (as they get updated in our
draft after each QSKE IKE_AUX message). If we expect that implementations will
be able to handle it, then I see no reason not to use the current key values.
2. don't impose any restrictions on the choice of PRF in the IKE_AUX draft
(but probably write some words in the Security Considerations)
3. in QSKE document add a restriction on PRF choice, excluding those,
that a) are not secure in PQ world and b) are not secure against
preimage attack in case of known key.
Sounds reasonable, since in order to establish a QS SA there will have to be
restrictions on encryption/integrity algorithms anyways, with the caveat that
for encryption/integrity we only have to say “use something with 256 bits of
security”, whereas for PRF that wouldn’t be sufficient if for example
PRF_AES256_CMAC became a thing.
OK, if nobody disagrees, I’ll update IKE_AUX draft accordingly.
No disagreement here.
I do have one issue I’ve been pondering, though; we do an IKE_AUX exchange, and
then follow it up with an IKE_AUTH exchange. At least with my accent, those
are phonetically quite close. It would be nice if we could come up with an
alternative name to IKE_AUX that was just as descriptive, but wasn’t such a
near collision (and no, I don’t have any immediate suggestions).
Regards,
Valery.
Any opinions? Scott, Daniel, what do you think about this?
Regards,
Valery.
All three work (that is, they prevent any undetected modifications to the
IKE_AUX payloads); I quite understand if (1) would be considered an
undesirable option. As for (2) and (3), they are largely the same; (3) limits
the PRF’s to the ones which include second-preimage-resistant hash functions.
I can see the attraction of not requiring a separate negotiation; I’m just
worried about someone ignoring our ‘don’t use XCBC/CMAC’ mandate…
Also, for (3), you have to be careful to specify which SK_p[ir] to use; in our
draft, the IKE_AUX message updates them; the obvious thing to do is specify
that you’ll use the SK_p[ir] values that were in effect at the beginning of the
IKE_AUX message in question. Actually, for security, we don’t need a secret
key, having both sides use, say, an all zero key, would achieve the same
security goal, however that does feel weird…
Using an all zero key does feel weird, however it could help avoid potential
incompatible implementation errors. There are two sets of SK_p[ir] available
to use in the case where an IKE_AUX includes a key exchange, the values in
effect at the beginning of the IKE_AUX exchange, and the updated values
resulting from the IKE_AUX exchange. Depending on the order in which
implementations recalculate the SKEYSEED and SK_* keys, vs when they perform
the PRF on the IXE_AUX data, the “current” SK_p[ir] values could be the old or
new values and so some implementations may have to maintain both the old and
new keys until the IKE_AUX digest is calculated. All this is to say, if it
doesn’t affect the security it may just be simpler and easier for compatibility
to use an all zero key.
Regards,
Valery.
Thanks,
Daniel
_______________________________________________
IPsec mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ipsec