2.2.1 ISAKMP Header Format Packet
The Authenticated Internet Protocol messages are Internet Security Association and Key Management Protocol (ISAKMP) messages, as specified in [RFC2408] section 3, and [RFC3947] sections 3.2 and 5.2. Except where otherwise specified, each Authenticated Internet Protocol message consists of an ISAKMP header and a single Crypto payload that encapsulates a sequence of Authenticated Internet Protocol payloads. The payloads that are encapsulated by the Crypto payload are encrypted when the MM session keys are available. Prior to encryption, the Crypto payload is in clear text.
This protocol defines additional values for the Exchange_Type field of an ISAKMP message.
The ISAKMP message packet is used in the establishment, negotiation, modification, and deletion of security associations (SAs).
The following diagram shows the format of an ISAKMP message.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ISAKMP_Header (28 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Payload (variable) |
|||||||||||||||||||||||||||||||
... |
ISAKMP_Header (28 bytes): Contains the information that is required by the protocol to maintain state, process payloads, and possibly prevent denial-of-service or replay attacks. This is the standard ISAKMP header. For more details about the ISAKMP header, see [RFC2408].
-
The following diagram shows the subfields that are contained in the ISAKMP_Header.
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1Initiator_Cookie
...
Responder_Cookie
...
Next_Payload
Major_Version
Minor_Version
Exchange_Type
Flags
Message_ID
Length
-
Initiator_Cookie (8 bytes): The cookie of entity that initiated security association (SA) establishment, SA notification, or SA deletion. This is identical to those cookies specified in [RFC2408] section 3.1.
-
Responder_Cookie (8 bytes): The cookie of entity that is responding to an SA establishment request, SA notification, or SA deletion. On the first message, the responder cookie is zero. This is identical to those cookies specified in [RFC2408] section 3.1. Each AuthIP negotiation is uniquely identified by the pair of initiator and responder cookies (plus UDP port and IP address).
-
Next_Payload (1 byte): Indicates the payload type of the first payload in the message. This is identical to the payload types specified in [RFC2408] section 3.1. The Authenticated Internet Protocol uses additional payloads in the PrivateUse range. The additional payloads are described in section 2.2.3.
-
ISAKMP payload type
Value
None
0x00
SecurityAssociation
0x01
Proposal
0x02
Transform
0x03
KeyExchange
0x04
Identification
0x05
Certificate
0x06
CertificateRequest
0x07
Hash
0x08
Signature
0x09
Nonce
0x0A
Notification
0x0B
Delete
0x0C
VendorID
0x0D
NAT Discovery Payload
0x14
NAT Original Address Payload
0x15
Reserved
0x0E — 0x7F
PrivateUse
0x80 — 0xFF
-
-
Major_Version (4 bits): Indicates the major version of the ISAKMP protocol in use. Implementations MUST set the major version to >= 1.
-
Minor_Version (4 bits): Indicates the minor version of the ISAKMP protocol in use. Implementations SHOULD set the minor version to 0. Packets that have a minor version number that is larger than 0 MUST be accepted.
-
Exchange_Type (1 byte): The Authenticated Internet Protocol exchange types are in the private use range, as specified in [RFC2408] section 3.1.
-
The Authenticated Internet Protocol main mode (MM) exchange corresponds to the IKEv1 identity protection exchange, as specified in [RFC2408] section 4.5.
-
The Authenticated Internet Protocol quick mode exchange corresponds to the IKEv1 quick mode exchange (as specified in [RFC2409] section 5.5).
-
The Authenticated Internet Protocol extended mode (EM) exchange corresponds to the identity protection exchange, as specified in section 3.7.
-
The Authenticated Internet Protocol notify exchange corresponds to the IKEv1 informational exchange, as specified in [RFC2408] section 4.8.
-
This protocol defines the exchange types that are shown in the following table.
-
Value
Meaning
0xF3
MM exchange type
0xF4
QM exchange type
0xF5
EM exchange type
0xF6
Notify exchange type
-
-
Flags (1 byte): Identical to those specified in [RFC2408] section 3.1. Only the E(encryption) flag is used. Use of the encryption flag is the same as [RFC2408]. The encryption flag MUST be set as specified in [RFC2408], section 3.1. The encryption flag MUST be set whenever an encrypted payload is sent. Encrypted payloads are denoted as HDR* in the diagrams in this specification. All other flags MUST be set to 0. In particular, there is no C(Commit) bit functionality as defined in [RFC2408], section 3.1.
-
Message_ID (4 bytes): The unique message identifier that is used to demultiplex messages from concurrent quick mode negotiations. This field MUST be set to 0 during main mode negotiations and MUST be set to 1 during Extended Mode negotiations. This value is generated by the initiator of the quick mode negotiation. This is identical to those specified in [RFC2408] section 3.1. This is set from the Current state field in the SA. See section 3.1.1 for details.
-
Length (4 bytes): The length, in bytes, of the total message (header + payloads). This is identical to those specified in [RFC2408] section 3.1.
Payload (variable): MUST contain a valid ISAKMP payload. The payload is used to transfer information such as SA data, or key generation and authentication data.