|
|
|
@ -0,0 +1,787 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Network Working Group D. McGrew
|
|
|
|
|
Request for Comments: 4543 Cisco Systems, Inc.
|
|
|
|
|
Category: Standards Track J. Viega
|
|
|
|
|
McAfee, Inc.
|
|
|
|
|
May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Use of Galois Message Authentication Code (GMAC) in
|
|
|
|
|
IPsec ESP and AH
|
|
|
|
|
|
|
|
|
|
Status of This Memo
|
|
|
|
|
|
|
|
|
|
This document specifies an Internet standards track protocol for the
|
|
|
|
|
Internet community, and requests discussion and suggestions for
|
|
|
|
|
improvements. Please refer to the current edition of the "Internet
|
|
|
|
|
Official Protocol Standards" (STD 1) for the standardization state
|
|
|
|
|
and status of this protocol. Distribution of this memo is unlimited.
|
|
|
|
|
|
|
|
|
|
Copyright Notice
|
|
|
|
|
|
|
|
|
|
Copyright (C) The Internet Society (2006).
|
|
|
|
|
|
|
|
|
|
Abstract
|
|
|
|
|
|
|
|
|
|
This memo describes the use of the Advanced Encryption Standard (AES)
|
|
|
|
|
Galois Message Authentication Code (GMAC) as a mechanism to provide
|
|
|
|
|
data origin authentication, but not confidentiality, within the IPsec
|
|
|
|
|
Encapsulating Security Payload (ESP) and Authentication Header (AH).
|
|
|
|
|
GMAC is based on the Galois/Counter Mode (GCM) of operation, and can
|
|
|
|
|
be efficiently implemented in hardware for speeds of 10 gigabits per
|
|
|
|
|
second and above, and is also well-suited to software
|
|
|
|
|
implementations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 1]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
1. Introduction ....................................................2
|
|
|
|
|
1.1. Conventions Used in This Document ..........................3
|
|
|
|
|
2. AES-GMAC ........................................................3
|
|
|
|
|
3. The Use of AES-GMAC in ESP ......................................3
|
|
|
|
|
3.1. Initialization Vector ......................................4
|
|
|
|
|
3.2. Nonce Format ...............................................4
|
|
|
|
|
3.3. AAD Construction ...........................................5
|
|
|
|
|
3.4. Integrity Check Value (ICV) ................................6
|
|
|
|
|
3.5. Differences with AES-GCM-ESP ...............................6
|
|
|
|
|
3.6. Packet Expansion ...........................................7
|
|
|
|
|
4. The Use of AES-GMAC in AH .......................................7
|
|
|
|
|
5. IKE Conventions .................................................8
|
|
|
|
|
5.1. Phase 1 Identifier .........................................8
|
|
|
|
|
5.2. Phase 2 Identifier .........................................8
|
|
|
|
|
5.3. Key Length Attribute .......................................9
|
|
|
|
|
5.4. Keying Material and Salt Values ............................9
|
|
|
|
|
6. Test Vectors ....................................................9
|
|
|
|
|
7. Security Considerations ........................................10
|
|
|
|
|
8. Design Rationale ...............................................11
|
|
|
|
|
9. IANA Considerations ............................................11
|
|
|
|
|
10. Acknowledgements ..............................................11
|
|
|
|
|
11. References ....................................................12
|
|
|
|
|
11.1. Normative References .....................................12
|
|
|
|
|
11.2. Informative References ...................................12
|
|
|
|
|
1. Introduction
|
|
|
|
|
|
|
|
|
|
This document describes the use of AES-GMAC mode (AES-GMAC) as a
|
|
|
|
|
mechanism for data origin authentication in ESP [RFC4303] and AH
|
|
|
|
|
[RFC4302]. We refer to these methods as ENCR_NULL_AUTH_AES_GMAC and
|
|
|
|
|
AUTH_AES_GMAC, respectively. ENCR_NULL_AUTH_AES_GMAC is a companion
|
|
|
|
|
to the AES Galois/Counter Mode ESP [RFC4106], which provides
|
|
|
|
|
authentication as well as confidentiality. ENCR_NULL_AUTH_AES_GMAC
|
|
|
|
|
is intended for cases in which confidentiality is not desired. Like
|
|
|
|
|
GCM, GMAC is efficient and secure, and is amenable to high-speed
|
|
|
|
|
implementations in hardware. ENCR_NULL_AUTH_AES_GMAC and
|
|
|
|
|
AUTH_AES_GMAC are designed so that the incremental cost of
|
|
|
|
|
implementation, given an implementation is AES-GCM-ESP, is small.
|
|
|
|
|
|
|
|
|
|
This document does not cover implementation details of GCM or GMAC.
|
|
|
|
|
Those details can be found in [GCM], along with test vectors.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 2]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.1. Conventions Used in This Document
|
|
|
|
|
|
|
|
|
|
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
|
|
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
|
|
|
|
document are to be interpreted as described in [RFC2119].
|
|
|
|
|
|
|
|
|
|
2. AES-GMAC
|
|
|
|
|
|
|
|
|
|
GMAC is a block cipher mode of operation providing data origin
|
|
|
|
|
authentication. It is defined in terms of the GCM authenticated
|
|
|
|
|
encryption operation as follows. The GCM authenticated encryption
|
|
|
|
|
operation has four inputs: a secret key, an initialization vector
|
|
|
|
|
(IV), a plaintext, and an input for additional authenticated data
|
|
|
|
|
(AAD). It has two outputs, a ciphertext whose length is identical to
|
|
|
|
|
the plaintext and an authentication tag. GMAC is the special case of
|
|
|
|
|
GCM in which the plaintext has a length of zero. The (zero-length)
|
|
|
|
|
ciphertext output is ignored, of course, so that the only output of
|
|
|
|
|
the function is the Authentication Tag. In the following, we
|
|
|
|
|
describe how the GMAC IV and AAD are formed from the ESP and AH
|
|
|
|
|
fields, and how the ESP and AH packets are formed from the
|
|
|
|
|
Authentication Tag.
|
|
|
|
|
|
|
|
|
|
Below we refer to the AES-GMAC IV input as a nonce, in order to
|
|
|
|
|
distinguish it from the IV fields in the packets. The same nonce and
|
|
|
|
|
key combination MUST NOT be used more than once, since reusing a
|
|
|
|
|
nonce/key combination destroys the security guarantees of AES-GMAC.
|
|
|
|
|
|
|
|
|
|
Because of this restriction, it can be difficult to use this mode
|
|
|
|
|
securely when using statically configured keys. For the sake of good
|
|
|
|
|
security, implementations MUST use an automated key management
|
|
|
|
|
system, such as the Internet Key Exchange (IKE) (either version two
|
|
|
|
|
[RFC4306] or version one [RFC2409]), to ensure that this requirement
|
|
|
|
|
is met.
|
|
|
|
|
|
|
|
|
|
3. The Use of AES-GMAC in ESP
|
|
|
|
|
|
|
|
|
|
The AES-GMAC algorithm for ESP is defined as an ESP "combined mode"
|
|
|
|
|
algorithm (see Section 3.2.3 of [RFC4303]), rather than an ESP
|
|
|
|
|
integrity algorithm. It is called ENCR_NULL_AUTH_AES_GMAC to
|
|
|
|
|
highlight the fact that it performs no encryption and provides no
|
|
|
|
|
confidentiality.
|
|
|
|
|
|
|
|
|
|
Rationale: ESP makes no provision for integrity transforms to
|
|
|
|
|
place an initialization vector within the Payload field; only
|
|
|
|
|
encryption transforms are expected to use IVs. Defining GMAC as
|
|
|
|
|
an encryption transform avoids this issue, and allows GMAC to
|
|
|
|
|
benefit from the same pipelining as does GCM.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 3]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Like all ESP combined modes, it is registered in IKEv2 as an
|
|
|
|
|
encryption transform, or "Type 1" transform. It MUST NOT be used in
|
|
|
|
|
conjunction with any other ESP encryption transform (within a
|
|
|
|
|
particular ESP encapsulation). If confidentiality is desired, then
|
|
|
|
|
GCM ESP [RFC4106] SHOULD be used instead.
|
|
|
|
|
|
|
|
|
|
3.1. Initialization Vector
|
|
|
|
|
|
|
|
|
|
With ENCR_NULL_AUTH_AES_GMAC, an explicit Initialization Vector (IV)
|
|
|
|
|
is included in the ESP Payload, at the outset of that field. The IV
|
|
|
|
|
MUST be eight octets long. For a given key, the IV MUST NOT repeat.
|
|
|
|
|
The most natural way to meet this requirement is to set the IV using
|
|
|
|
|
a counter, but implementations are free to set the IV field in any
|
|
|
|
|
way that guarantees uniqueness, such as a linear feedback shift
|
|
|
|
|
register (LFSR). Note that the sender can use any IV generation
|
|
|
|
|
method that meets the uniqueness requirement without coordinating
|
|
|
|
|
with the receiver.
|
|
|
|
|
|
|
|
|
|
3.2. Nonce Format
|
|
|
|
|
|
|
|
|
|
The nonce passed to the AES-GMAC authentication algorithm has the
|
|
|
|
|
following layout:
|
|
|
|
|
|
|
|
|
|
0 1 2 3
|
|
|
|
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| Salt |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| Initialization Vector |
|
|
|
|
|
| |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
|
|
|
|
|
Figure 1: Nonce Format
|
|
|
|
|
|
|
|
|
|
The components of the nonce are as follows:
|
|
|
|
|
|
|
|
|
|
Salt
|
|
|
|
|
The salt field is a four-octet value that is assigned at the
|
|
|
|
|
beginning of the security association, and then remains constant
|
|
|
|
|
for the life of the security association. The salt SHOULD be
|
|
|
|
|
unpredictable (i.e., chosen at random) before it is selected, but
|
|
|
|
|
need not be secret. We describe how to set the salt for a
|
|
|
|
|
Security Association established via the Internet Key Exchange in
|
|
|
|
|
Section 5.4.
|
|
|
|
|
|
|
|
|
|
Initialization Vector
|
|
|
|
|
The IV field is described in Section 3.1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 4]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.3. AAD Construction
|
|
|
|
|
|
|
|
|
|
Data integrity and data origin authentication are provided for the
|
|
|
|
|
SPI, (Extended) Sequence Number, Authenticated Payload, Padding, Pad
|
|
|
|
|
Length, and Next Header fields. This is done by including those
|
|
|
|
|
fields in the AES-GMAC Additional Authenticated Data (AAD) field.
|
|
|
|
|
Two formats of the AAD are defined: one for 32-bit sequence numbers,
|
|
|
|
|
and one for 64-bit extended sequence numbers. The format with 32-bit
|
|
|
|
|
sequence numbers is shown in Figure 2, and the format with 64-bit
|
|
|
|
|
extended sequence numbers is shown in Figure 3.
|
|
|
|
|
|
|
|
|
|
0 1 2 3
|
|
|
|
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| SPI |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| 32-bit Sequence Number |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| |
|
|
|
|
|
~ Authenticated Payload (variable) ~
|
|
|
|
|
| |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| Padding (0-255 bytes) |
|
|
|
|
|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| | Pad Length | Next Header |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
|
|
|
|
|
Figure 2: AAD Format with 32-bit Sequence Number
|
|
|
|
|
|
|
|
|
|
0 1 2 3
|
|
|
|
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| SPI |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| 64-bit Extended Sequence Number |
|
|
|
|
|
| |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| |
|
|
|
|
|
~ Authenticated Payload (variable) ~
|
|
|
|
|
| |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| Padding (0-255 bytes) |
|
|
|
|
|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| | Pad Length | Next Header |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
|
|
|
|
|
Figure 3: AAD Format with 64-bit Extended Sequence Number
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 5]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The use of 32-bit sequence numbers vs. 64-bit extended sequence
|
|
|
|
|
numbers is determined by the security association (SA) management
|
|
|
|
|
protocol that is used to create the SA. For IKEv2 [RFC4306] this is
|
|
|
|
|
negotiated via Transform Type 5, and the default for ESP is to use
|
|
|
|
|
64-bit extended sequence numbers in the absence of negotiation (e.g.,
|
|
|
|
|
see Section 2.2.1 of [RFC4303]).
|
|
|
|
|
|
|
|
|
|
3.4. Integrity Check Value (ICV)
|
|
|
|
|
|
|
|
|
|
The ICV consists solely of the AES-GMAC Authentication Tag. The
|
|
|
|
|
Authentication Tag MUST NOT be truncated, so the length of the ICV is
|
|
|
|
|
16 octets.
|
|
|
|
|
|
|
|
|
|
3.5. Differences with AES-GCM-ESP
|
|
|
|
|
|
|
|
|
|
In this section, we highlight the differences between this
|
|
|
|
|
specification and AES-GCM-ESP [RFC4106]. The essential difference is
|
|
|
|
|
that in this document, the AAD consists of the SPI, Sequence Number,
|
|
|
|
|
and ESP Payload, and the AES-GCM plaintext is zero-length, while in
|
|
|
|
|
AES-GCM-ESP, the AAD consists only of the SPI and Sequence Number,
|
|
|
|
|
and the AES-GCM plaintext consists of the ESP Payload. These
|
|
|
|
|
differences are illustrated in Figure 4. This figure shows the case
|
|
|
|
|
in which the Extended Sequence Number option is not used. When that
|
|
|
|
|
option is exercised, the Sequence Number field in the figure would be
|
|
|
|
|
replaced with the Extended Sequence Number.
|
|
|
|
|
|
|
|
|
|
Importantly, ENCR_NULL_AUTH_AES_GMAC is *not* equivalent to AES-GCM-
|
|
|
|
|
ESP with encryption "turned off". However, the ICV computations
|
|
|
|
|
performed in both cases are similar because of the structure of the
|
|
|
|
|
GHASH function [GCM].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 6]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+-> +-----------------------+ <-+
|
|
|
|
|
AES-GCM-ESP | | SPI | |
|
|
|
|
|
AAD -------+ +-----------------------+ |
|
|
|
|
|
| | Sequence Number | |
|
|
|
|
|
+-> +-----------------------+ |
|
|
|
|
|
| Authentication | |
|
|
|
|
|
| IV | |
|
|
|
|
|
+->+-> +-----------------------+ +
|
|
|
|
|
AES-GCM-ESP | | | |
|
|
|
|
|
Plaintext -+ ~ ESP Payload ~ |
|
|
|
|
|
| | | |
|
|
|
|
|
| +-----------+-----+-----+ |
|
|
|
|
|
| | Padding | PL | NH | |
|
|
|
|
|
+----> +-----------+-----+-----+ <-+
|
|
|
|
|
|
|
|
|
|
|
ENCR_NULL_AUTH_AES_GMAC AAD --+
|
|
|
|
|
|
|
|
|
|
Figure 4: Differences between ENCR_NULL_AUTH_AES_GMAC and AES-GCM-ESP
|
|
|
|
|
|
|
|
|
|
3.6. Packet Expansion
|
|
|
|
|
|
|
|
|
|
The IV adds an additional eight octets to the packet and the ICV adds
|
|
|
|
|
an additional 16 octets. These are the only sources of packet
|
|
|
|
|
expansion, other than the 10-13 bytes taken up by the ESP SPI,
|
|
|
|
|
Sequence Number, Padding, Pad Length, and Next Header fields (if the
|
|
|
|
|
minimal amount of padding is used).
|
|
|
|
|
|
|
|
|
|
4. The Use of AES-GMAC in AH
|
|
|
|
|
|
|
|
|
|
In AUTH_AES_GMAC, the AH Authentication Data field consists of the IV
|
|
|
|
|
and the Authentication Tag, as shown in Figure 5. Unlike the usual
|
|
|
|
|
AH case, the Authentication Data field contains both an input to the
|
|
|
|
|
authentication algorithm (the IV) and the output of the
|
|
|
|
|
authentication algorithm (the tag). No padding is required in the
|
|
|
|
|
Authentication Data field, because its length is a multiple of 64
|
|
|
|
|
bits.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 7]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 1 2 3
|
|
|
|
|
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| Initialization Vector (IV) |
|
|
|
|
|
| (8 octets) |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
| |
|
|
|
|
|
| Integrity Check Value (ICV) (16 octets) |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
|
|
|
|
|
|
Figure 5: The AUTH_AES_GMAC Authentication Data Format
|
|
|
|
|
|
|
|
|
|
The IV is as described in Section 3.1. The Integrity Check Value
|
|
|
|
|
(ICV) is as described in Section 3.4.
|
|
|
|
|
|
|
|
|
|
The GMAC Nonce input is formed as described in Section 3.2. The GMAC
|
|
|
|
|
AAD input consists of the authenticated data as defined in Section
|
|
|
|
|
3.1 of [RFC4302]. These values are provided as to that algorithm,
|
|
|
|
|
along with the secret key, and the resulting authentication tag given
|
|
|
|
|
as output is used to form the ICV.
|
|
|
|
|
|
|
|
|
|
5. IKE Conventions
|
|
|
|
|
|
|
|
|
|
This section describes the conventions used to generate keying
|
|
|
|
|
material and salt values for use with ENCR_NULL_AUTH_AES_GMAC and
|
|
|
|
|
AUTH_AES_GMAC using the Internet Key Exchange (IKE) versions one
|
|
|
|
|
[RFC2409] and two [RFC4306].
|
|
|
|
|
|
|
|
|
|
5.1. Phase 1 Identifier
|
|
|
|
|
|
|
|
|
|
This document does not specify the conventions for using AES-GMAC for
|
|
|
|
|
IKE Phase 1 negotiations. For AES-GMAC to be used in this manner, a
|
|
|
|
|
separate specification would be needed, and an Encryption Algorithm
|
|
|
|
|
Identifier would need to be assigned. Implementations SHOULD use an
|
|
|
|
|
IKE Phase 1 cipher that is at least as strong as AES-GMAC. The use
|
|
|
|
|
of AES-CBC [RFC3602] with the same AES key size as used by
|
|
|
|
|
ENCR_NULL_AUTH_AES_GMAC or AUTH_AES_GMAC is RECOMMENDED.
|
|
|
|
|
|
|
|
|
|
5.2. Phase 2 Identifier
|
|
|
|
|
|
|
|
|
|
For IKE Phase 2 negotiations, IANA has assigned identifiers as
|
|
|
|
|
described in Section 9.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 8]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.3. Key Length Attribute
|
|
|
|
|
|
|
|
|
|
AES-GMAC can be used with any of the three AES key lengths. The way
|
|
|
|
|
that the key length is indicated is different for AH and ESP.
|
|
|
|
|
|
|
|
|
|
For AH, each key length has its own separate integrity transform
|
|
|
|
|
identifier and algorithm name (Section 9). The IKE Key Length
|
|
|
|
|
attribute MUST NOT be used with these identifiers. This transform
|
|
|
|
|
MUST NOT be used with ESP.
|
|
|
|
|
|
|
|
|
|
For ESP, there is a single encryption transform identifier (which
|
|
|
|
|
represents the combined transform) (Section 9). The IKE Key Length
|
|
|
|
|
attribute MUST be used with each use of this identifier to indicate
|
|
|
|
|
the key length. The Key Length attribute MUST have a value of 128,
|
|
|
|
|
192, or 256.
|
|
|
|
|
|
|
|
|
|
5.4. Keying Material and Salt Values
|
|
|
|
|
|
|
|
|
|
IKE makes use of a pseudo-random function (PRF) to derive keying
|
|
|
|
|
material. The PRF is used iteratively to derive keying material of
|
|
|
|
|
arbitrary size, called KEYMAT. Keying material is extracted from the
|
|
|
|
|
output string without regard to boundaries.
|
|
|
|
|
|
|
|
|
|
The size of the KEYMAT for the ENCR_NULL_AUTH_AES_GMAC and
|
|
|
|
|
AUTH_AES_GMAC MUST be four octets longer than is needed for the
|
|
|
|
|
associated AES key. The keying material is used as follows:
|
|
|
|
|
|
|
|
|
|
ENCR_NULL_AUTH_AES_GMAC with a 128-bit key and AUTH_AES_128_GMAC
|
|
|
|
|
The KEYMAT requested for each AES-GMAC key is 20 octets. The
|
|
|
|
|
first 16 octets are the 128-bit AES key, and the remaining four
|
|
|
|
|
octets are used as the salt value in the nonce.
|
|
|
|
|
|
|
|
|
|
ENCR_NULL_AUTH_AES_GMAC with a 192-bit key and AUTH_AES_192_GMAC
|
|
|
|
|
The KEYMAT requested for each AES-GMAC key is 28 octets. The
|
|
|
|
|
first 24 octets are the 192-bit AES key, and the remaining four
|
|
|
|
|
octets are used as the salt value in the nonce.
|
|
|
|
|
|
|
|
|
|
ENCR_NULL_AUTH_AES_GMAC with a 256-bit key and AUTH_AES_256_GMAC
|
|
|
|
|
The KEYMAT requested for each AES-GMAC key is 36 octets. The
|
|
|
|
|
first 32 octets are the 256-bit AES key, and the remaining four
|
|
|
|
|
octets are used as the salt value in the nonce.
|
|
|
|
|
|
|
|
|
|
6. Test Vectors
|
|
|
|
|
|
|
|
|
|
Appendix B of [GCM] provides test vectors that will assist
|
|
|
|
|
implementers with AES-GMAC.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 9]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7. Security Considerations
|
|
|
|
|
|
|
|
|
|
Since the authentication coverage is different between AES-GCM-ESP
|
|
|
|
|
and this specification (see Figure 4), it is worth pointing out that
|
|
|
|
|
both specifications are secure. In ENCR_NULL_AUTH_AES_GMAC, the IV
|
|
|
|
|
is not included in either the plaintext or the additional
|
|
|
|
|
authenticated data. This does not adversely affect security, because
|
|
|
|
|
the IV field only provides an input to the GMAC IV, which is not
|
|
|
|
|
required to be authenticated (see [GCM]). In AUTH_AES_GMAC, the IV
|
|
|
|
|
is included in the additional authenticated data. This fact has no
|
|
|
|
|
adverse effect on security; it follows from the property that GMAC is
|
|
|
|
|
secure even against attacks in which the adversary can manipulate
|
|
|
|
|
both the IV and the message. Even an adversary with these powerful
|
|
|
|
|
capabilities cannot forge an authentication tag for any message
|
|
|
|
|
(other than one that was submitted to the chosen-message oracle).
|
|
|
|
|
Since such an adversary could easily choose messages that contain the
|
|
|
|
|
IVs with which they correspond, there are no security problems with
|
|
|
|
|
the inclusion of the IV in the AAD.
|
|
|
|
|
|
|
|
|
|
GMAC is provably secure against adversaries that can adaptively
|
|
|
|
|
choose plaintexts, ICVs and the AAD field, under standard
|
|
|
|
|
cryptographic assumptions (roughly, that the output of the underlying
|
|
|
|
|
cipher under a randomly chosen key is indistinguishable from a
|
|
|
|
|
randomly selected output). Essentially, this means that, if used
|
|
|
|
|
within its intended parameters, a break of GMAC implies a break of
|
|
|
|
|
the underlying block cipher. The proof of security is available in
|
|
|
|
|
[GCMP].
|
|
|
|
|
|
|
|
|
|
The most important security consideration is that the IV never
|
|
|
|
|
repeats for a given key. In part, this is handled by disallowing the
|
|
|
|
|
use of AES-GMAC when using statically configured keys, as discussed
|
|
|
|
|
in Section 2.
|
|
|
|
|
|
|
|
|
|
When IKE is used to establish fresh keys between two peer entities,
|
|
|
|
|
separate keys are established for the two traffic flows. If a
|
|
|
|
|
different mechanism is used to establish fresh keys, one that
|
|
|
|
|
establishes only a single key to protect packets, then there is a
|
|
|
|
|
high probability that the peers will select the same IV values for
|
|
|
|
|
some packets. Thus, to avoid counter block collisions, ESP or AH
|
|
|
|
|
implementations that permit use of the same key for protecting
|
|
|
|
|
packets with the same peer MUST ensure that the two peers assign
|
|
|
|
|
different salt values to the security association (SA).
|
|
|
|
|
|
|
|
|
|
The other consideration is that, as with any block cipher mode of
|
|
|
|
|
operation, the security of all data protected under a given security
|
|
|
|
|
association decreases slightly with each message.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 10]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To protect against this problem, implementations MUST generate a
|
|
|
|
|
fresh key before processing 2^64 blocks of data with a given key.
|
|
|
|
|
Note that it is impossible to reach this limit when using 32-bit
|
|
|
|
|
Sequence Numbers.
|
|
|
|
|
|
|
|
|
|
Note that, for each message, GMAC calls the block cipher only once.
|
|
|
|
|
|
|
|
|
|
8. Design Rationale
|
|
|
|
|
|
|
|
|
|
This specification was designed to be as similar to AES-GCM-ESP
|
|
|
|
|
[RFC4106] as possible. We re-use the design and implementation
|
|
|
|
|
experience from that specification. We include all three AES key
|
|
|
|
|
sizes since AES-GCM-ESP supports all of those sizes, and the larger
|
|
|
|
|
key sizes provide future users with more high-security options.
|
|
|
|
|
|
|
|
|
|
9. IANA Considerations
|
|
|
|
|
|
|
|
|
|
IANA has assigned the following IKEv2 parameters. For the use of AES
|
|
|
|
|
GMAC in AH, the following integrity (type 3) transform identifiers
|
|
|
|
|
have been assigned:
|
|
|
|
|
|
|
|
|
|
"9" for AUTH_AES_128_GMAC
|
|
|
|
|
|
|
|
|
|
"10" for AUTH_AES_192_GMAC
|
|
|
|
|
|
|
|
|
|
"11" for AUTH_AES_256_GMAC
|
|
|
|
|
|
|
|
|
|
For the use of AES-GMAC in ESP, the following encryption (type 1)
|
|
|
|
|
transform identifier has been assigned:
|
|
|
|
|
|
|
|
|
|
"21" for ENCR_NULL_AUTH_AES_GMAC
|
|
|
|
|
|
|
|
|
|
10. Acknowledgements
|
|
|
|
|
|
|
|
|
|
Our discussions with Fabio Maino and David Black significantly
|
|
|
|
|
improved this specification, and Tero Kivinen provided us with useful
|
|
|
|
|
comments. Steve Kent provided guidance on ESP interactions. This
|
|
|
|
|
work is closely modeled after AES-GCM, which itself is closely
|
|
|
|
|
modeled after Russ Housley's AES-CCM transform [RFC4309].
|
|
|
|
|
Additionally, the GCM mode of operation was originally conceived as
|
|
|
|
|
an improvement to the CWC mode [CWC] in which Doug Whiting and Yoshi
|
|
|
|
|
Kohno participated. We express our thanks to Fabio, David, Tero,
|
|
|
|
|
Steve, Russ, Doug, and Yoshi.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 11]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11. References
|
|
|
|
|
|
|
|
|
|
11.1. Normative References
|
|
|
|
|
|
|
|
|
|
[GCM] McGrew, D. and J. Viega, "The Galois/Counter Mode of
|
|
|
|
|
Operation (GCM)", Submission to NIST. http://
|
|
|
|
|
csrc.nist.gov/CryptoToolkit/modes/proposedmodes/gcm/
|
|
|
|
|
gcm-spec.pdf, January 2004.
|
|
|
|
|
|
|
|
|
|
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
|
|
|
|
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
|
|
|
|
|
|
|
|
|
[RFC3602] Frankel, S., Glenn, R., and S. Kelly, "The AES-CBC Cipher
|
|
|
|
|
Algorithm and Its Use with IPsec", RFC 3602, September
|
|
|
|
|
2003.
|
|
|
|
|
|
|
|
|
|
11.2. Informative References
|
|
|
|
|
|
|
|
|
|
[CWC] Kohno, T., Viega, J., and D. Whiting, "CWC: A high-
|
|
|
|
|
performance conventional authenticated encryption mode",
|
|
|
|
|
Fast Software Encryption.
|
|
|
|
|
http://eprint.iacr.org/2003/106.pdf, February 2004.
|
|
|
|
|
|
|
|
|
|
[GCMP] McGrew, D. and J. Viega, "The Security and Performance of
|
|
|
|
|
the Galois/Counter Mode (GCM)", Proceedings of INDOCRYPT
|
|
|
|
|
'04, http://eprint.iacr.org/2004/193, December 2004.
|
|
|
|
|
|
|
|
|
|
[RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange
|
|
|
|
|
(IKE)", RFC 2409, November 1998.
|
|
|
|
|
|
|
|
|
|
[RFC4106] Viega, J. and D. McGrew, "The Use of Galois/Counter Mode
|
|
|
|
|
(GCM) in IPsec Encapsulating Security Payload (ESP)", RFC
|
|
|
|
|
4106, June 2005.
|
|
|
|
|
|
|
|
|
|
[RFC4302] Kent, S., "IP Authentication Header", RFC 4302, December
|
|
|
|
|
2005.
|
|
|
|
|
|
|
|
|
|
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC
|
|
|
|
|
4303, December 2005.
|
|
|
|
|
|
|
|
|
|
[RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC
|
|
|
|
|
4306, December 2005.
|
|
|
|
|
|
|
|
|
|
[RFC4309] Housley, R., "Using Advanced Encryption Standard (AES) CCM
|
|
|
|
|
Mode with IPsec Encapsulating Security Payload (ESP)", RFC
|
|
|
|
|
4309, December 2005.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 12]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Authors' Addresses
|
|
|
|
|
|
|
|
|
|
David A. McGrew
|
|
|
|
|
Cisco Systems, Inc.
|
|
|
|
|
510 McCarthy Blvd.
|
|
|
|
|
Milpitas, CA 95035
|
|
|
|
|
US
|
|
|
|
|
|
|
|
|
|
Phone: (408) 525 8651
|
|
|
|
|
EMail: mcgrew@cisco.com
|
|
|
|
|
URI: http://www.mindspring.com/~dmcgrew/dam.htm
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
John Viega
|
|
|
|
|
McAfee, Inc.
|
|
|
|
|
1145 Herndon Parkway, Suite 500
|
|
|
|
|
Herndon, VA 20170
|
|
|
|
|
|
|
|
|
|
EMail: viega@list.org
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 13]
|
|
|
|
|
|
|
|
|
|
RFC 4543 GMAC in IPsec ESP and AH May 2006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full Copyright Statement
|
|
|
|
|
|
|
|
|
|
Copyright (C) The Internet Society (2006).
|
|
|
|
|
|
|
|
|
|
This document is subject to the rights, licenses and restrictions
|
|
|
|
|
contained in BCP 78, and except as set forth therein, the authors
|
|
|
|
|
retain all their rights.
|
|
|
|
|
|
|
|
|
|
This document and the information contained herein are provided on an
|
|
|
|
|
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
|
|
|
|
|
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
|
|
|
|
|
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
|
|
|
|
|
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
|
|
|
|
|
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
|
|
|
|
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
|
|
|
|
|
Intellectual Property
|
|
|
|
|
|
|
|
|
|
The IETF takes no position regarding the validity or scope of any
|
|
|
|
|
Intellectual Property Rights or other rights that might be claimed to
|
|
|
|
|
pertain to the implementation or use of the technology described in
|
|
|
|
|
this document or the extent to which any license under such rights
|
|
|
|
|
might or might not be available; nor does it represent that it has
|
|
|
|
|
made any independent effort to identify any such rights. Information
|
|
|
|
|
on the procedures with respect to rights in RFC documents can be
|
|
|
|
|
found in BCP 78 and BCP 79.
|
|
|
|
|
|
|
|
|
|
Copies of IPR disclosures made to the IETF Secretariat and any
|
|
|
|
|
assurances of licenses to be made available, or the result of an
|
|
|
|
|
attempt made to obtain a general license or permission for the use of
|
|
|
|
|
such proprietary rights by implementers or users of this
|
|
|
|
|
specification can be obtained from the IETF on-line IPR repository at
|
|
|
|
|
http://www.ietf.org/ipr.
|
|
|
|
|
|
|
|
|
|
The IETF invites any interested party to bring to its attention any
|
|
|
|
|
copyrights, patents or patent applications, or other proprietary
|
|
|
|
|
rights that may cover technology that may be required to implement
|
|
|
|
|
this standard. Please address the information to the IETF at
|
|
|
|
|
ietf-ipr@ietf.org.
|
|
|
|
|
|
|
|
|
|
Acknowledgement
|
|
|
|
|
|
|
|
|
|
Funding for the RFC Editor function is provided by the IETF
|
|
|
|
|
Administrative Support Activity (IASA).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
McGrew & Viega Standards Track [Page 14]
|
|
|
|
|
|