You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This theoretically tests IKE SA rekeying by validating sKeySeedReKey from the response vectors. However in the real scenario every time a new SKEYSEED is generated (the first one or after rekeying), the new keying material is generated too (this is not tested by ACVP in rekeying SAs scenario). Then from single IKE SA, multiple CHILD_SAs are being generated. According to section 2.17 of RFC4306, each time child SA is generated, it takes SK_d from existing IKE SA Derived Keying Material. Also to perform IKE_SAs rekeying (section 2.18 of RFC4306) the SK_d is needed too.
Because current form of test cases do not test full rekeying scenario and kind of enforces not-usable IKEv2 KDF implementation (if you implement KDF basing only on ACVP testing requirements, it probably won't be usable to derive multiple child's SAs or derive keying material after SA rekeying, as you have to supply SK_d as an input for the KDF algorithm, which is not provided by current tests), I suggest to split current test case into two scenarios (cases):
deriving first SA, and
rekeying
This could be represented by the following vectors:
When performing rekeying (rekeying: true) then gir, not girNew, should be used to derive a new sKeySeed.
This is only a suggestion, but I think it will result in better tested algorithm implementations as well they will be more suited to real life use cases.
The text was updated successfully, but these errors were encountered:
Hi @null0link, I apologize, but due to circumstances out of our control we were unable to respond and handle these. This is a priority for us, I will have a response for this soon.
Currently IKEv2 KDF is tested by the following test cases:
expecting the following responses:
This theoretically tests IKE SA rekeying by validating
sKeySeedReKey
from the response vectors. However in the real scenario every time a newSKEYSEED
is generated (the first one or after rekeying), the new keying material is generated too (this is not tested by ACVP in rekeying SAs scenario). Then from single IKE SA, multiple CHILD_SAs are being generated. According to section 2.17 of RFC4306, each time child SA is generated, it takesSK_d
from existing IKE SA Derived Keying Material. Also to perform IKE_SAs rekeying (section 2.18 of RFC4306) theSK_d
is needed too.Because current form of test cases do not test full rekeying scenario and kind of enforces not-usable IKEv2 KDF implementation (if you implement KDF basing only on ACVP testing requirements, it probably won't be usable to derive multiple child's SAs or derive keying material after SA rekeying, as you have to supply
SK_d
as an input for the KDF algorithm, which is not provided by current tests), I suggest to split current test case into two scenarios (cases):This could be represented by the following vectors:
tests cases:
responses:
Summary of changes:
rekeying
SK_d
whenrekeying
is truesKeySeedReKey
When performing rekeying (
rekeying: true
) thengir
, notgirNew
, should be used to derive a newsKeySeed
.This is only a suggestion, but I think it will result in better tested algorithm implementations as well they will be more suited to real life use cases.
The text was updated successfully, but these errors were encountered: