RFC 6738

Diameter IKEv2 SK: Using Shared Keys to Support Interaction between IKEv2 Servers and Diameter Servers

πŸ“… published October 2012, from ietf

RFC 6738: Diameter IKEv2 SK, Using Shared Keys to Support Interaction between IKEv2 Servers and Diameter Servers ✨

Okay bestie, this is the spec for letting an IKEv2 server talk to a Diameter server when the peer logs in with a Shared Key (SK)! πŸŽ€

Who wrote it: V. Cakulev (Alcatel Lucent), A. Lior (Bridgewater Systems), and S. Mizikovsky (Alcatel Lucent) πŸ‘‘

Category: Standards Track, which is the IETF's real-deal "this is how the Internet works" tier πŸ’…

Date: October 2012. ISSN 2070-1721 🌸

Obsoletes and updates: Nothing is listed in the header, so this doc doesn't obsolete or update any other RFCs πŸ¦‹


Abstract πŸ’–

So IKEv2 is part of the IPsec architecture, and its whole job is mutual authentication plus setting up and keeping up the IPsec SAs between two parties πŸ”. It's flexible about how you prove who you are, with support for EAP, certificates, and Shared Key (SK) ✨.

Diameter interworking for Mobile IPv6 already exists between the Home Agent (HA), acting as a Diameter client, and a Diameter server 🧚. The catch is that the existing spec was all about EAP and never covered SK-based auth with IKEv2 πŸ™ˆ. This doc fills that gap by specifying the IKEv2-server-to-Diameter-server communication for when the IKEv2 peer authenticates with IKEv2 using SK 🫢.


Status of This Memo 🌈

This is an Internet Standards Track document πŸ’œ.

It's a product of the Internet Engineering Task Force (IETF), so it represents the consensus of the IETF community. It went through public review and got the green light from the Internet Engineering Steering Group (IESG) πŸ”₯. More info on Internet Standards lives in Section 2 of RFC 5741.

Want the current status, any errata, or a way to send feedback? Check http://www.rfc-editor.org/info/rfc6738 πŸ¦‹.


Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved πŸ’….

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info), as in effect on the date of publication. Read these carefully, because they spell out your rights and restrictions for this document πŸ“œ. Code Components pulled out of this document must include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Simplified BSD License describes πŸ“.


Table of Contents πŸ—ΊοΈ

   1. Introduction ....................................................3
   2. Requirements Notation ...........................................4
      2.1. Abbreviations ..............................................4
   3. Application Identifier ..........................................5
   4. Protocol Description ............................................5
      4.1. Support for IKEv2 and Shared Keys ..........................5
      4.2. Session Management .........................................7
           4.2.1. Session-Termination-Request/Answer ..................7
           4.2.2. Abort-Session-Request/Answer ........................7
   5. Command Codes for Diameter IKEv2 with SK ........................7
      5.1. IKEv2-SK-Request (IKESKR) Command ..........................8
      5.2. IKEv2-SK-Answer (IKESKA) Command ...........................9
   6. Attribute-Value Pair Definitions ...............................10
      6.1. IKEv2-Nonces ..............................................10
           6.1.1. Ni .................................................10
           6.1.2. Nr .................................................10
      6.2. IKEv2-Identity ............................................10
           6.2.1. Initiator-Identity .................................10
           6.2.2. Responder-Identity .................................11
   7. AVP Occurrence Tables ..........................................12
   8. AVP Flag Rules .................................................13
   9. IANA Considerations ............................................14
      9.1. Command Codes .............................................14
      9.2. AVP Codes .................................................14
      9.3. AVP Values ................................................14
      9.4. Application Identifier ....................................14
   10. Security Considerations .......................................15
   11. References ....................................................16
      11.1. Normative References .....................................16
      11.2. Informative References ...................................16

1. Introduction πŸŽ€

Okay so IKEv2 [RFC5996] is what mutually authenticates two parties and sets up a Security Association (SA) that secures the traffic between the IKEv2 peer and the server πŸ”. You can protect that traffic with Encapsulating Security Payload (ESP) [RFC4303], Authentication Header (AH) [RFC4302], or both. IKEv2 lets the peer authenticate in a bunch of ways, including EAP, certificates, and SK ✨.

From a service provider's point of view, it's super important that a user is actually allowed to use the services πŸ‘‘. So the IKEv2 server has to check that the peer is authorized for whatever it's requesting, and it might ask the operator's Diameter servers for help πŸ’…. [RFC5778] covers the home agent as a Diameter-client-to-Diameter-server setup, for when the mobile node authenticates with IKEv2 using EAP [RFC3748] or the Mobile IPv6 Authentication Protocol [RFC4285]. This document picks up the other case: the IKEv2-server-to-Diameter-server communication when the IKEv2 peer authenticates with IKEv2 using SK πŸ¦‹.

Figure 1 shows the reference architecture for this document 🌸.

                                       +--------+
                                       |Diameter|
                                       |Server  |
                                       +--------+
                                           ^
                                  Back-End | IKEv2 Server<->HAAA Server
                                  Support  | Interaction
                                  Protocol | (this document)
                                           v
   +---------+                      +---------------+
   | IKEv2   |  Front-End Protocol  |IKEv2 Server/  |
   | Peer    |<-------------------->|Diameter Client|
   +---------+       IKEv2          +---------------+

                      Figure 1: Architecture Overview

Here's a real use case: Mobile IPv6 deployments where the Mobile IPv6 signaling between the Mobile Node and the Home Agent is protected with IPsec 🧚. The Mobile Node plays the IKEv2 peer, and the Home Agent plays the IKEv2 server. In this setup, IKEv2 with SK-based initiator authentication sets up the IPsec SAs, and the HA gets the SK through the Diameter application defined in this document πŸ’–.

This doc assumes that the SK handed to the IKEv2 peer and the SK delivered to the IKEv2 server by the Diameter server are established or derived using the same rules 🫢. It also assumes that the external protocols on both sides agree on those rules: the peer side that gives the key to the IKEv2 peer, and the Diameter server side that gives the key to the IKEv2 server πŸ”₯. This document lets the SK be obtained for one specific IKEv2 session and passed between the IKEv2 server and the Home Authentication, Authorization, and Accounting (HAAA) server πŸ’œ. The protocol carries IKEv2 attributes so the HAAA can compute a session-specific SK if it wants to (see Section 10) ✨. All of this runs over a new Diameter application built for IKEv2 authorization decisions πŸ‘‘.

This document focuses on the IKEv2 server acting as a Diameter client that talks to the Diameter server, and it defines the Diameter application needed for that talk πŸ’…. Other protocols that use this Diameter application MAY specify their own SK derivation scheme. See [X.S0047] and [X.S0058] for examples 🌈. This document defines the default procedure for deriving the SK used in IKEv2 authentication, for when protocols using this Diameter application don't define their own derivation procedure πŸ“. Which procedure applies (the default or another one) is decided by the external protocol between the Peer and the Diameter Server, and that choice is outside the scope of this document πŸ¦‹.


2. Requirements Notation 🌸

Here's the deal with the key words. "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be read as described in [RFC2119] 🧚.

2.1. Abbreviations πŸ’…

   AH        Authentication Header

   AVP       Attribute-Value Pair

   EAP       Extensible Authentication Protocol

   ESP       Encapsulating Security Payload

   HAAA      Home Authentication, Authorization, and Accounting

   IKEv2     Internet Key Exchange Protocol version 2

   NAI       Network Access Identifier

   PSK       Pre-Shared Key
   SA        Security Association

   SK        Shared Key

   SPI       Security Parameter Index

3. Application Identifier πŸ‘‘

This spec defines a brand-new Diameter application and its Application Identifier πŸ’–:

      Diameter IKE SK  (IKESK)  11

The IKESK Application Identifier gets used when the IKEv2 peer is supposed to be authenticated and authorized using IKEv2 with SK-based authentication 🫢.


4. Protocol Description ✨

4.1. Support for IKEv2 and Shared Keys ✨

okay so when IKEv2 uses SK-based initiator authentication πŸ”, the IKEv2-SK-Request/Answer Diameter commands from this doc are how the IKEv2 server and the Home AAA (HAAA) server team up to authorize the IKEv2 peer πŸ’–. When the IKE_AUTH message lands, the IKEv2 server checks IDi [RFC5996] to figure out who the peer is, plus the SPI (if there is one) to find the right SK for that peer πŸ¦‹. If no SK is tied to this peer, the IKEv2 server MUST send an Authorize-Only (Auth-Request-Type set to "Authorize-Only") Diameter IKEv2-SK-Request message to the HAAA to go get it πŸ™.

If the IDi payload has an identity that means something to the Diameter infrastructure, like a Network Access Identifier (NAI), the IKEv2 server SHALL use it to fill in the User-Name AVP πŸŽ€. Otherwise, how the IKEv2 server maps the IDi value to User-Name, and whether User-Name gets included at all in the IKEv2-SK-Request message, is not something this doc covers πŸ€·β€β™€οΈ. In that same Diameter message, the IKEv2 server SHALL also include the IKEv2-Nonces AVP with the initiator and responder nonces (Ni and Nr) from the initial IKEv2 exchange 🌸. Finally, the IKEv2 server SHALL include the IKEv2-Identity AVP, and the Initiator-Identity AVP SHALL be filled in with the IDi from the IKE_AUTH message ✨. If the IKEv2 peer sent an IDr payload in IKE_AUTH, the IKEv2 server SHALL also include a Responder-Identity AVP with that received IDr 🧚.

The IKEv2 server sends the IKEv2-SK-Request message to the IKEv2 peer's HAAA, and the Diameter message gets routed to the correct HAAA per [RFC6733] πŸš€.

On the HAAA side, when it gets an IKEv2-SK-Request from the IKEv2 server, the HAAA SHALL use the User-Name AVP (if present) and/or the Initiator-Identity AVP to look up the matching keying material πŸ”‘. When the default SK-generation procedure from this doc is used, both the side handing the SK to the IKEv2 peer and the Diameter server SHALL run the same SK derivation. It's similar to what's in Section 3.1 of [RFC5295], and it goes like this πŸ‘‘:

SK = KDF(PSK, key label | "\0" | Ni | Nr | IDi | length)

Where:

  • KDF is the default key derivation function based on HMAC-SHA-256 as specified in Section 3.1.2 of [RFC5295].
  • Pre-Shared Key (PSK) is the key available to the protocol leveraging this Diameter application, e.g., the long-term shared secret, or the Extended Master Session Key (EMSK) as the result of prior EAP authentication, etc. Selection of this value is left up to the protocol leveraging this Diameter application.
  • Key label is set to 'sk4ikev2@ietf.org'.
  • | denotes concatenation.
  • "\0" is a NULL octet (0x00 in hex).
  • Length is a 2-octet unsigned integer in network byte order of the output key length, in octets.

When applications using this protocol define their own SK-generation algorithm, it is strongly RECOMMENDED that the nonces Ni and Nr be used in the computation 🌈. It is also RECOMMENDED that IDi be used πŸ’œ. IDr SHOULD NOT be used in the SK generation algorithm πŸ™ˆ.

Apps that want to use IDr in the computation need to be careful πŸ’€. The IDr asserted by the IKEv2 peer may not match the IDr returned by the IKEv2 responder, and that mismatch will produce different SKs.

The HAAA returns the SK to the IKEv2 server using the Key AVP as specified in [RFC6734] πŸŽ€.

Once the IKEv2 server gets the SK from the HAAA, it verifies the IKE_AUTH message from the IKEv2 peer. If the AUTH verification succeeds, the IKEv2 server sends the IKE message back to the IKEv2 peer πŸ¦‹.


4.2. Session Management

The HAAA may maintain Diameter session state or may be stateless πŸ’…. You can tell which one it is by whether the Auth-Session-State AVP shows up in the answer message πŸ‘€. The IKEv2 server MUST support the Authorization Session State Machine defined in [RFC6733] πŸ‘‘.

4.2.1. Session-Termination-Request/Answer

When the HAAA is maintaining session state and the IKEv2 server terminates the SA, the IKEv2 server SHALL send a Session-Termination-Request (STR) message [RFC6733] to tell the HAAA the authorized session is over 🌸.

The HAAA sends back a Session-Termination-Answer (STA) message [RFC6733] to acknowledge that the session has been terminated 🫢.

4.2.2. Abort-Session-Request/Answer

The HAAA sends an Abort-Session-Request (ASR) message [RFC6733] to the IKEv2 server to end the authorized session πŸ’₯. When the IKEv2 server gets the ASR, it MUST delete the corresponding IKE_SA and all CHILD_SAs set up through it 😭.

The IKEv2 server replies to an ASR with an Abort-Session-Answer (ASA) message [RFC6733] 🧚.


5. Command Codes for Diameter IKEv2 with SK

This section defines new Command Code values that MUST be supported by all Diameter implementations conforming to this specification πŸ”₯.

+------------------+---------+------+-----------------+-------------+
|   Command Name   | Abbrev. | Code |     Section     | Application |
|                  |         |      |    Reference    |             |
+------------------+---------+------+-----------------+-------------+
| IKEv2-SK-Request |  IKESKR |  329 |   Section 5.1   |    IKESK    |
|                  |         |      |                 |             |
|  IKEv2-SK-Answer |  IKESKA |  329 |   Section 5.2   |    IKESK    |
+------------------+---------+------+-----------------+-------------+

                      Table 1: Command Codes

5.1. IKEv2-SK-Request (IKESKR) Command

The IKEv2-SK-Request message is the one with Command Code 329 and the 'R' bit set in the Command Flags field 🌟. The IKEv2 server sends it to the HAAA to kick off IKEv2 with SK authorization πŸš€. In this case, the Application-Id field of the Diameter header MUST be set to the Diameter IKE SK Application-Id (11) πŸ’–.

Message format:

<IKEv2-SK-Request> ::= < Diameter Header: 329, REQ, PXY >
                        < Session-Id >
                        { Auth-Application-Id }
                        { Origin-Host }
                        { Origin-Realm }
                        { Destination-Realm }
                        { Auth-Request-Type }
                        [ Destination-Host ]
                        [ NAS-Identifier ]
                        [ NAS-IP-Address ]
                        [ NAS-IPv6-Address ]
                        [ NAS-Port ]
                        [ Origin-State-Id ]
                        [ User-Name ]
                        [ Key-SPI ]
                        { IKEv2-Identity }
                        [ Auth-Session-State ]
                        { IKEv2-Nonces }
                      * [ Proxy-Info ]
                      * [ Route-Record ]
                        ...
                      * [ AVP ]

The IKEv2-SK-Request message MUST include an IKEv2-Nonces AVP containing the Ni and Nr nonces swapped during initial IKEv2 exchange πŸŽ€. It MAY contain a Key-SPI AVP (Key-SPI AVP is specified in [RFC6734]) 🌈. If it's there, the Key-SPI AVP holds the SPI that the HAAA SHALL use, along with the other parameters (e.g., Initiator-Identity), to identify the right SK πŸ”‘. The IKEv2-SK-Request message MUST include the IKEv2-Identity AVP 🫢. The Initiator-Identity AVP SHALL contain the IDi as received in the IKE_AUTH message πŸ¦‹. The Responder-Identity AVP SHALL be included in the IKEv2-SK-Request message if the IDr payload was in the IKE_AUTH message from the IKEv2 peer 🧚. When it's included, the Responder-Identity AVP contains the received IDr πŸ’œ.

5.2. IKEv2-SK-Answer (IKESKA) Command

The IKEv2-SK-Answer (IKESKA) message has the Command Code field set to 329 and the 'R' bit cleared in the Command Flags field 🌸. The HAAA sends it back to the IKEv2 server in response to an IKESKR command πŸ’Œ. Again, the Application-Id field of the Diameter header MUST be set to the Diameter IKE SK Application-Id (11) ✨.

Message format:

<IKEv2-SK-Answer> ::= < Diameter Header: 329, PXY >
                       < Session-Id >
                       { Auth-Application-Id }
                       { Auth-Request-Type }
                       { Result-Code }
                       { Origin-Host }
                       { Origin-Realm }
                       [ User-Name ]
                       [ Key ]
                       [ Responder-Identity ]
                       [ Auth-Session-State ]
                       [ Error-Message ]
                       [ Error-Reporting-Host ]
                     * [ Failed-AVP ]
                       [ Origin-State-Id ]
                     * [ Redirect-Host ]
                       [ Redirect-Host-Usage ]
                       [ Redirect-Max-Cache-Time ]
                     * [ Proxy-Info ]
                     * [ Route-Record ]
                       ...
                     * [ AVP ]

If the authorization succeeds, the IKEv2-SK-Answer message SHALL include the Key AVP as specified in [RFC6734] πŸ†. The Key-Type AVP's value SHALL be set to IKEv2 SK (3) πŸ’–. The Keying-Material AVP SHALL contain the SK πŸ”. If the Key-SPI AVP came in the IKEv2-SK-Request, the Key-SPI AVP SHALL be included in the Key AVP πŸŽ€. The Key-Lifetime AVP may be included, and if it is, the associated key SHALL NOT be used by the receiver of the answer once the lifetime has expired ⏰. Last but not least, the Responder-Identity AVP may be included 🧚.


6. Attribute-Value Pair Definitions

This section defines new AVPs for IKEv2 with SK 🌈.

6.1. IKEv2-Nonces

The IKEv2-Nonces AVP (Code 587) is of type Grouped 🧩. It holds the nonces exchanged between the IKEv2 peer and the IKEv2 server during the IKEv2 initial exchange 🌸. Those nonces are used for SK generation πŸ”‘.

IKEv2-Nonces ::= < AVP Header: 587 >
                 {Ni}
                 {Nr}
                *[AVP]

6.1.1. Ni

The Ni AVP (AVP Code 588) is of type OctetString πŸ’«. It contains the IKEv2 initiator nonce as carried in the Nonce Data field πŸ¦‹.

6.1.2. Nr

The Nr AVP (AVP Code 589) is of type OctetString πŸ’«. It contains the IKEv2 responder nonce as carried in the Nonce Data field πŸ¦‹.

6.2. IKEv2-Identity

The IKEv2-Identity AVP (Code 590) is of type Grouped πŸŽ€. It carries the Initiator identity and possibly the Responder identity, as included in the IKE_AUTH message sent from the IKEv2 peer to the IKEv2 server 🫢.

IKEv2-Identity ::= < AVP Header: 590 >
                   {Initiator-Identity}
                   [Responder-Identity]
                  *[AVP]

6.2.1. Initiator-Identity ✨

okay so the Initiator-Identity AVP (AVP Code 591) is Grouped πŸŽ€ and it carries the identity type and identification data from the IDi payload of the IKE_AUTH message πŸ’–

               Initiator-Identity ::= < AVP Header: 591 >
                                {ID-Type}
                                {Identification-Data}
                               *[AVP]

6.2.1.1. ID-Type

the ID-Type AVP (AVP Code 592) is Enumerated and holds the ID type value from the IDi payload of the IKE_AUTH message πŸ¦‹

6.2.1.2. Identification-Data

the Identification-Data AVP (AVP Code 593) is OctetString and holds the Identification Data field from the IDi payload of the IKE_AUTH message 🌸

6.2.2. Responder-Identity 🧚

the Responder-Identity AVP (AVP Code 594) is Grouped and carries the identity type and identification data from the IDr payload of the IKE_AUTH message πŸ’œ

               Responder-Identity ::= < AVP Header: 594 >
                                {ID-Type}
                                {Identification-Data}
                               *[AVP]

6.2.2.1. ID-Type

the ID-Type AVP (AVP Code 592) is Enumerated and holds the ID type value from the IDr payload of the IKE_AUTH message πŸ“

6.2.2.2. Identification-Data

the Identification-Data AVP (AVP Code 593) is OctetString and holds the Identification Data field from the IDr payload of the IKE_AUTH message 🫢


7. AVP Occurrence Tables πŸ“‹

okay the tables below show the AVPs defined or used in this document and where they can show up in Diameter messages πŸ’… heads up, AVPs that can only live inside a Grouped AVP don't get a row here πŸ™ˆ

the symbols work like this:

0:       The AVP MUST NOT be present in the message.

0+:      Zero or more instances of the AVP MAY be present in the
         message.

0-1:     Zero or one instance of the AVP MAY be present in the
         message.

1:       One instance of the AVP MUST be present in the message.
                                     +-------------------+
                                     |   Command Code    |
                                     |---------+---------+
      AVP Name                       | IKESKR  | IKESKA  |
      -------------------------------|---------+---------+
      Key                            |    0    |   0-1   |
      Key-SPI                        |   0-1   |    0    |
      IKEv2-Nonces                   |    1    |    0    |
      IKEv2-Identity                 |    1    |    0    |
      Responder-Identity             |    0    |   0-1   |
                                     +---------+---------+

                   IKESKR and IKESKA Commands AVP Table

8. AVP Flag Rules 🚩

this table lays out the Diameter AVPs, their AVP Code values, types, and possible flag values πŸŽ€ the Diameter base protocol [RFC6733] is where the AVP Flag rules for AVPs live, specifically in Section 4.5 of that document ✨

                                                 +---------+
                                                 |AVP Flag |
                                                 |  Rules  |
                                                 +----+----+
                       AVP  Section              |    |MUST|
    Attribute Name     Code Defined   Value Type |MUST| NOT|
   +---------------------------------------------+----+----+
   |Key                 581  Note 1   Grouped    |  M | V  |
   +---------------------------------------------+----+----+
   |Keying-Material     583  Note 1   OctetString|  M | V  |
   +---------------------------------------------+----+----+
   |Key-Lifetime        584  Note 1   Integer64  |  M | V  |
   +---------------------------------------------+----+----+
   |Key-SPI             585  Note 1   Unsigned32 |  M | V  |
   +---------------------------------------------+----+----+
   |Key-Type            582  Note 1   Enumerated |  M | V  |
   +---------------------------------------------+----+----+
   |IKEv2-Nonces        587  6.1      Grouped    |  M | V  |
   +---------------------------------------------+----+----+
   |Ni                  588  6.1.1    OctetString|  M | V  |
   +---------------------------------------------+----+----+
   |Nr                  589  6.1.2    OctetString|  M | V  |
   +---------------------------------------------+----+----+
   |IKEv2-Identity      590  6.2      Grouped    |  M | V  |
   +---------------------------------------------+----+----+
   |Initiator-Identity  591  6.2.1    Grouped    |  M | V  |
   +---------------------------------------------+----+----+
   |ID-Type             592  6.2.1.1  Enumerated |  M | V  |
   +---------------------------------------------+----+----+
   |Identification-Data 593  6.2.1.2  OctetString|  M | V  |
   +---------------------------------------------+----+----+
   |Responder-Identity  594  6.2.2    Grouped    |  M | V  |
   +---------------------------------------------+----+----+

                           AVP Flag Rules Table

Note 1: the Key, Keying-Material, Key-Lifetime, Key-SPI, and Key-Type AVPs are defined in [RFC6734] πŸ“–


9. IANA Considerations 🌈

9.1. Command Codes

IANA has allocated a Command Code value for the new command below, taken from the Command Code namespace defined in [RFC6733] πŸ“

   Command Code                     | Value
   ---------------------------------+------
   IKEv2-SK-Request/Answer          | 329

9.2. AVP Codes

this specification requires IANA to register the following new AVPs from the AVP Code namespace defined in [RFC6733] πŸ—‚οΈ

  • IKEv2-Nonces - 587
  • Ni - 588
  • Nr - 589
  • IKEv2-Identity - 590
  • Initiator-Identity - 591
  • ID-Type - 592
  • Identification-Data - 593
  • Responder-Identity - 594

the AVPs are defined in Section 6 🧁

9.3. AVP Values

IANA is requested to create a new value for the Key-Type AVP πŸŽ€ the new value 3 signifies that IKEv2 SK is being sent ✨

9.4. Application Identifier

this specification requires IANA to allocate one new value, "Diameter IKE SK", from the Application Identifier namespace defined in [RFC6733] πŸ’…

   Application Identifier         | Value
   -------------------------------+------
   Diameter IKE SK (IKESK)        | 11

10. Security Considerations πŸ”

bestie, this part is SERIOUS 😭 read it all!

the security considerations of the Diameter base protocol [RFC6733] apply to this document too (e.g., it is expected that the Diameter protocol is used with a security mechanism and that Diameter messages are secured) πŸ”’

on top of that, the assumption is that the IKEv2 server and the Diameter server, where the SK is generated, are in a trusted relationship 🀝 so there's also an assumed appropriate security mechanism protecting the communication between these servers πŸ›‘οΈ for example, the IKEv2 server and the Diameter server could be deployed in the same secure network, or they could use transport-layer security as specified in [RFC6733] πŸ”

Diameter messages between the IKEv2 server and the HAAA may be carried through one or more AAA brokers or Diameter agents πŸ›°οΈ in that case, the IKEv2 server to Diameter server AAA communication is hop-by-hop protected, so it depends on the security properties of the intermediating AAA inter-connection networks, AAA brokers, and Diameter agents 🫣 and any agents that process IKEv2-SK-Answer messages can see the contents of the Key AVP πŸ‘€

to mitigate the threat of exposing a long-lived PSK, this specification expects that the HAAA derives the associated SK and returns it to the IKEv2 server πŸ”‘ since SK derivation is super security-critical, this specification recommends using short-lived secrets, possibly based on a previous network access authentication, if such secrets are available ⏳ to keep keys fresh and limit their scope, this specification strongly recommends using nonces included in the IKEv2-SK-Request 🌸

the specifics of key derivation depend on the security characteristics of the system leveraging this specification (for example, see [X.S0047] and [X.S0058]) 🧩 so this specification does not define how the Diameter server derives the required keys for those systems πŸ™…β€β™€οΈ for systems and protocols that use this Diameter application but don't specify a key derivation procedure, this document specifies a default key derivation procedure that preserves the expected security characteristics πŸ’–


11. References πŸ“š

11.1. Normative References

  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC4302] Kent, S., "IP Authentication Header", RFC 4302, December 2005.
  • [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC 4303, December 2005.
  • [RFC5295] Salowey, J., Dondeti, L., Narayanan, V., and M. Nakhjiri, "Specification for the Derivation of Root Keys from an Extended Master Session Key (EMSK)", RFC 5295, August 2008.
  • [RFC5996] Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen, "Internet Key Exchange Protocol Version 2 (IKEv2)", RFC 5996, September 2010.
  • [RFC6733] Fajardo, V., Arkko, J., Loughney, J., and G. Zorn, "Diameter Base Protocol", RFC 6733, October 2012.
  • [RFC6734] Zorn, G., Wu, W., and V. Cakulev, "Diameter Attribute-Value Pairs for Cryptographic Key Transport", RFC 6734, October 2012.

11.2. Informative References

  • [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. Levkowetz, "Extensible Authentication Protocol (EAP)", RFC 3748, June 2004.
  • [RFC4285] Patel, A., Leung, K., Khalil, M., Akhtar, H., and K. Chowdhury, "Authentication Protocol for Mobile IPv6", RFC 4285, January 2006.
  • [RFC5778] Korhonen, J., Tschofenig, H., Bournelle, J., Giaretta, G., and M. Nakhjiri, "Diameter Mobile IPv6: Support for Home Agent to Diameter Server Interaction", RFC 5778, February 2010.
  • [X.S0047] 3GPP2: X.S0047, "Mobile IPv6 Enhancements", February 2009.
  • [X.S0058] 3GPP2: X.S0058, "WiMAX-HRPD Interworking: Core Network Aspects", June 2010.

Authors' Addresses πŸ’Œ

   Violeta Cakulev
   Alcatel Lucent
   600 Mountain Ave.
   3D-517
   Murray Hill, NJ  07974
   US

   Phone: +1 908 582 3207
   EMail: violeta.cakulev@alcatel-lucent.com


   Avi Lior
   Bridgewater Systems
   303 Terry Fox Drive
   Ottawa, Ontario  K2K 3J1
   Canada

   Phone: +1 613-591-6655
   EMail: avi.ietf@lior.org


   Semyon Mizikovsky
   Alcatel Lucent
   600 Mountain Ave.
   3C-506
   Murray Hill, NJ  07974
   US

   Phone: +1 908 582 0729
   EMail: Simon.Mizikovsky@alcatel-lucent.com
πŸ“¦ where this page comes from