788 lines
29 KiB
Plaintext
788 lines
29 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
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]
|
||
|