pasi.ero...@nokia.com writes:
> RFC 4543 specifies how to use AES-GMAC mode in AH and ESP and how to
> negotiate them in IKEv1 and IKEv2 (see Section 5, 1st paragraph).
> 
> However, as Soo-Fei Chew pointed out, the IANA considerations text in
> the final document didn't actually ask IANA to assign the numbers for
> IKEv1. 
> 
> Here's my proposal for fixing the situation:
> 
> (1) ask IANA to assign the four missing numbers (after IESG approval).
> 
> (2) submit an RFC Editor errata, saying something like this:
>  
>    The following text should have been included in Section 9:
> 
>    For the negotiation of AES-GMAC in AH with IKEv1, the following
>    values have been assigned in the IPsec AH Transform Identifiers
>    registry (in isakmp-registry). Note that IKEv1 and IKEv2 use
>    different transform identifiers.
> 
>       "TBD1" for AH_AES_128_GMAC
> 
>       "TBD2" for AH_AES_192_GMAC
> 
>       "TBD3" for AH_AES_256_GMAC
> 
>    For the negotiation of AES-GMAC in ESP with IKEv1, the following
>    value has been assigned from the IPsec ESP Transform Identifiers
>    registry (in isakmp-registry). Note that IKEv1 and IKEv2 use a
>    different transform identifier.
>    
>       "TBD4" for ESP_NULL_AUTH_AES_GMAC
> 
> (where we will in TBD1..4 after we know the numbers)

When I was checking out this thing more I found that we need to do
even more for GMAC. The reason is that In IKEv1 the AH_* "Transform
Identifiers" MUST include "Authentication Algorithm" attribute also.
I.e. it is not enough to just set "AH Transform Identifier" to
AH_AES_128_GMAC, but in addition to that the proposal MUST include
"Authentication Algorithm" attribute with suitable value.

Text from RFC2407:
----------------------------------------------------------------------
4.4.3 IPSEC AH Transform Identifiers
...
   Note: the Authentication Algorithm attribute MUST be specified to
   identify the appropriate AH protection suite.  For example, AH_MD5
   can best be thought of as a generic AH transform using MD5.  To
   request the HMAC construction with AH, one specifies the AH_MD5
   transform ID along with the Authentication Algorithm attribute set to
   HMAC-MD5.  This is shown using the "Auth(HMAC-MD5)" notation in the
   following sections.

       Transform ID                        Value
       ------------                        -----
       RESERVED                            0-1
       AH_MD5                              2
       AH_SHA                              3
       AH_DES                              4
...
4.4.3.1 AH_MD5
...
   All implementations within the IPSEC DOI MUST support AH_MD5 along
   with the Auth(HMAC-MD5) attribute.  This suite is defined as the
   HMAC-MD5-96 transform described in [HMACMD5].

   The AH_MD5 type along with the Auth(KPDK) attribute specifies the AH
   transform (Key/Pad/Data/Key) described in RFC-1826.

   Use of AH_MD5 with any other Authentication Algorithm attribute value
   is currently undefined.

4.4.3.2 AH_SHA

   The AH_SHA type specifies a generic AH transform using SHA-1.  The
   actual protection suite is determined in concert with an associated
   SA attribute list.  A generic SHA transform is currently undefined.

   All implementations within the IPSEC DOI MUST support AH_SHA along
   with the Auth(HMAC-SHA) attribute.  This suite is defined as the
   HMAC-SHA-1-96 transform described in [HMACSHA].

   Use of AH_SHA with any other Authentication Algorithm attribute value
   is currently undefined.
...
         Authentication Algorithm
           RESERVED                0
           HMAC-MD5                1
           HMAC-SHA                2
           DES-MAC                 3
           KPDK                    4

           Values 5-61439 are reserved to IANA.  Values 61440-65535 are
           for private use.

           There is no default value for Auth Algorithm, as it must be
           specified to correctly identify the applicable AH or ESP
           transform, except in the following case.

           When negotiating ESP without authentication, the Auth
           Algorithm attribute MUST NOT be included in the proposal.

           When negotiating ESP without confidentiality, the Auth
           Algorithm attribute MUST be included in the proposal and the
           ESP transform ID must be ESP_NULL.
...
----------------------------------------------------------------------

I.e it is not enough to add the AH_AES_*_GMAC values, but we also need
to specify the corresponding "Authentication Algorithm" attribute
values.

As those "Authentication Algorithm" numbers requires more text
explaining for example that they are no other Authentication Algorithm
than AES_128_GMAC is to be allowed with AH_AES_128_GMAC, this might
actually require more than just errata...

There is also multiple ways to define those, i.e. we might for example
just make one "IPSEC AH Transform Identifier" called AH_AES_GMAC which
is used for 3 different "Authentication Algorithms" for different key
lengths, or we can keep the current practice which makes one Transform
ID to have one allowed Authenticating Algorithm (except for MD5, where
the KPDK is also allowed).

Actually only AH_MD5, AH_SHA1 and AH_DES restrict valid
"Authentication Algorithms", none of the other documents adds such
limitations, so actually it would be valid to be using AH_SHA2-256
with Auth(KPDK) or even with HMAC-MD5, in which case I guess HMAC-MD5
algorithm would actually be used...

I am not more sure how we should fix this problem, as the deeper we
get there the more we need to fix, and we already have solution called
IKEv2 to fix these problems... :)
-- 
kivi...@iki.fi
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to