Black, David writes:
> Well, RFC 5282 actually prohibits the responder from selecting that
> combination, but requiring separate proposals for combined-mode and normal
> ciphers is a cleaner and simpler approach.

Yes, and RFC5996 restricted that even more, saying that you need to
use separate proposals to do that, which will make it clear that you
cannot select such combination and still following the generic IKEv2
rules how to select algorithms.

I.e., RFC 5282 changed the generic rules in IKEv2, and when the we did
do update on the IKEv2, i.e., from RFC4306 -> RFC5996, it decided that
changing generic rules is bad idea, and we can get the same effect by
forcing implementations to do two proposals, while also specifying how
to negotiate the AEAD ciphers for the ESP.

Note, that using two proposals is completely ok for the RFC5282 point
of view, i.e., nothing in the RFC5282 forbid using multiple proposals,
so in sense the RFC5996 did not change RFC5282 text, it just
restricted some of the options allowed by the RFC5282. 

This was discussed in the IPsec list during the 5996 rewrite, and
there was ticket #20 assigned for this:

https://trac.ietf.org/trac/ipsecme/ticket/20

Of course the RFC5282 only talks when negotiating AEAD algorithm for
IKEv2 use, not at all when using AEAD algorithm for ESP, i.e., when
negotiating AEAD algorithm to be used for ESP, which is the much more
common case. How to negotiate them in ESP was unclear before RFC5996,
as RFC4106 did not specify anything for IKEv2, and RFC4306 did not
really specify how they are negotiated. 

> It looks like RFC 7296 should have updated RFC 5282, but didn’t. I
> need to look at the relevant text in both RFCs more carefully, and
> plan to respond to Andrew’s email later today with my 0.02 on what
> should be done.

I am not sure if RFC5996 should have updated RFC5282, as it only
restricted some of the options allowed by RFC5282, but what is
specified in the RFC5996 is still completely inside the what RFC5282
implementation will accept.

RFC5996 did restrict some options from the RFC4306 also, i.e., things
that were allowed in RFC4306, were no longer allowed in RFC5996.

If someone would have pointed that out during the RFC5996 cycle, we
would most likely had done something to it... 

>     On 12 Sep 2017, at 1:19, Black, David <david.bl...@dell.com> wrote:
> 
>     [Adding the IPsec mailing list.]
> 
>         Notes
>         -----
>         RFC-7296 and RFC-5282 contradict each other (yet RFC-7296 cites
>         RFC-5282 without any clarification):

They do not really contradict, the RFC5996 and RFC7296 restrict the
options which were allowed in the RFC5282, but RFC5996 initiator will
still talk to the RFC5282 responder. If RFC5282 initiator tries to
talk to the RFC5996 responder, and does not use multiple proposals,
then the RFC5996 specification is silent what to do for that. Some
implementations will most likely accept it, and some will return
error. 

>         - RFC-7296 explicitly disallows mixing AEAD and non-AEAD
>         algorithms in a single proposal; RFC-5282 does not (and
>         strongly implies it is allowed)

RFC582 might imply so, but does not require or even suggest such
behavior, and using two proposals solves the issue in a way which is
acceptable for the RFC5282 too.

Btw, note, that RFC5996 and 7296 does not use upper case MUST, it just
states the facts, i.e. "two proposals are needed" (section 2.7), and
that if proposing both AEAD and non-AEAD ciphers, then "it must
include two proposals".

I.e. those are not new requirements, they are just facts based on the
requirements derived from the requirements elsewhere in the
specification. 

>         - RFC-7296 allows 'none' integrity in an AEAD-only proposal; RFC-5282
>         does not.

Yes. We had discussion about this when RFC5996 was being made, and I
think the reason why we do allow it was that there were some
implementations doing that (for ESP), and we did not want to make them
non-compilent by saying MUST NOT. Note, that RFC5996/7296 text covers
both cases when negotiating the AEAD for IKEv2 and ESP. The RFC5282
case only really covers IKEv2 case.

>         Corrected Text
>         --------------
>         8.  IKEv2 Algorithm Selection
>        
>         IKEv2 [rfc7296], section 3.3. Security Association Payload, specifies
>         AEAD algorithm selection.

This corrected text is good, and I think we can safely mark this as
errata ok, as the text specifying how to negotiate the AEAD ciphers
has in fact been incorporated in to the base IKEv2 specification.
-- 
kivi...@iki.fi

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

Reply via email to