Mercurial > hg > ietf
changeset 54:b817687af36c
Initial version: based on -04 as found in tools.ietf.org
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Thu, 21 Oct 2010 16:22:23 +0900 |
parents | 6fb888615123 |
children | 4890fc91096d |
files | draft-ietf-dime-erp-05.xml |
diffstat | 1 files changed, 765 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/draft-ietf-dime-erp-05.xml Thu Oct 21 16:22:23 2010 +0900 @@ -0,0 +1,765 @@ +<?xml version="1.0" encoding="US-ASCII"?> +<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ +<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"> +<!ENTITY RFC3748 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3748.xml"> +<!ENTITY RFC3588 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3588.xml"> +<!ENTITY RFC4072 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4072.xml"> +<!ENTITY RFC5247 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5247.xml"> +<!ENTITY RFC5295 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5295.xml"> +<!ENTITY RFC5296 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5296.xml"> +<!ENTITY I-D.ietf-dime-local-keytran SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-dime-local-keytran-07.xml"> +]> +<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> +<?rfc strict="yes"?> +<?rfc comments="no"?> +<?rfc inline="yes"?> +<?rfc editing="no"?> +<?rfc toc="yes"?> +<?rfc tocompact="yes"?> +<?rfc tocdepth="3"?> +<?rfc symrefs="yes"?> +<?rfc sortrefs="yes"?> +<?rfc compact="yes"?> +<?rfc subcompact="no"?> +<?rfc rfcedstyle="yes"?> +<?rfc rfcprocack="no"?> +<?rfc tocindent="yes"?> +<rfc category="std" docName="draft-ietf-dime-erp-04.txt" ipr="trust200902"> + <front> + <title abbrev="Diameter ERP Application">Diameter Support for the EAP + Re-authentication Protocol (ERP)</title> + + <author fullname="Julien Bournelle" initials="J." surname="Bournelle"> + <organization abbrev="Orange Labs">Orange Labs</organization> + + <address> + <postal> + <street>38-40 rue du general Leclerc</street> + + <city>Issy-Les-Moulineaux</city> + + <code>92794</code> + + <country>France</country> + </postal> + + <email>julien.bournelle@orange-ftgroup.com</email> + </address> + </author> + + <author fullname="Lionel Morand" initials="L." surname="Morand"> + <organization abbrev="Orange Labs">Orange Labs</organization> + + <address> + <postal> + <street>38-40 rue du general Leclerc</street> + + <city>Issy-Les-Moulineaux</city> + + <code>92794</code> + + <country>France</country> + </postal> + + <email>lionel.morand@orange-ftgroup.com</email> + </address> + </author> + + <author fullname="Sebastien Decugis" initials="S." role="editor" + surname="Decugis"> + <organization abbrev="NICT">NICT</organization> + + <address> + <postal> + <street>4-2-1 Nukui-Kitamachi</street> + + <city>Tokyo</city> + + <code>184-8795</code> + + <country>Koganei, Japan</country> + </postal> + + <email>sdecugis@nict.go.jp</email> + </address> + </author> + + <author fullname="Qin Wu" initials="Q." surname="Wu"> + <organization abbrev="Huawei">Huawei Technologies Co., + Ltd</organization> + + <address> + <postal> + <street>Site B, Floor 12F, Huihong Mansion, No.91 Baixia + Rd.</street> + + <city>Nanjing</city> + + <code>210001</code> + + <country>China</country> + </postal> + + <email>sunseawq@huawei.com</email> + </address> + </author> + + <author fullname="Glen Zorn" initials="G." role="editor" surname="Zorn"> + <organization>Network Zen</organization> + + <address> + <postal> + <street>1463 East Republican Street</street> + + <city>Seattle</city> + + <region>Washington</region> + + <code>98112</code> + + <country>USA</country> + </postal> + + <phone>+1 206 931 0768</phone> + + <email>gwz@net-zen.net</email> + </address> + </author> + + <date year="2010" /> + + <area>Operations & Management</area> + + <keyword>Internet-Draft</keyword> + + <keyword>EAP</keyword> + + <keyword>Diameter</keyword> + + <keyword>Re-authentication</keyword> + + <keyword>AAA</keyword> + + <keyword>inter-authenticator roaming</keyword> + + <abstract> + <t>The EAP Re-authentication Protocol (ERP) defines extensions to the + Extensible Authentication Protocol (EAP) to support efficient + re-authentication between the peer and an EAP Re-authentication (ER) + server through a compatible authenticator. This document specifies + Diameter support for ERP. It defines a new Diameter ERP application to + transport ERP messages between an ER authenticator and the ER server, + and a set of new AVPs that can be used to transport the cryptographic + material needed by the re-authentication server.</t> + </abstract> + </front> + + <middle> + <section anchor="Introduction" title="Introduction"> + <t><xref target="RFC5296">RFC 5296</xref> defines the EAP + Re-authentication Protocol (ERP). It consists of the following steps: + <list style="hanging"> + <t hangText="Bootstrapping"><vspace blankLines="0" /> A root key for + re-authentication is derived from the Extended Master Session Key + (EMSK) created during EAP authentication <xref + target="RFC5295"></xref>. This root key is transported from the EAP + server to the ER server.</t> + + <t hangText="Re-authentication"><vspace blankLines="0" /> A + one-round-trip exchange between the peer and the ER server, + resulting in mutual authentication. To support the EAP + reauthentication functionality, ERP defines two new EAP codes - + EAP-Initiate and EAP-Finish.</t> + </list> This document defines how Diameter transports the ERP messages + during the re-authentication process. For this purpose, we define a new + Application Identifier for ERP, and re-use the Diameter EAP commands + (DER/DEA). <vspace blankLines="1" /> This document also discusses the + distribution of the root key during bootstrapping, in conjunction with + either the initial EAP authentication (implicit bootstrapping) or the + first ERP exchange (explicit bootstrapping). Security considerations for + this key distribution are detailed in <xref target="RFC5295">RFC + 5295</xref>.</t> + </section> + + <section title="Terminology"> + <t>This document uses terminology defined in <xref target="RFC3748">RFC + 3748</xref>, <xref target="RFC5295">RFC 5295</xref>, <xref + target="RFC5296">RFC 5296</xref>, and <xref target="RFC4072">RFC + 4072</xref>. <vspace blankLines="1" /> "Root key" (RK) or "bootstrapping + material" refer to the rRK or rDSRK derived from an EMSK, depending on + the location of the ER server in home or foreign domain. <vspace + blankLines="1" /> We use the notation "ERP/DER" and "ERP/DEA" in this + document to refer to Diameter-EAP-Request and Diameter-EAP-Answer + commands with the Application Id set to "Diameter ERP Application" <xref + target="IANA_AppId"></xref>; the same commands are denoted "EAP/DER" and + "EAP/DEA" when the Application Id in the message is set to "Diameter EAP + Application" <xref target="RFC4072"></xref>.</t> + + <section title="Requirements Language"> + <t>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 <xref + target="RFC2119"></xref>.</t> + </section> + </section> + + <section title="Assumptions"> + <t>This document assumes the existence of at most one logical ER server + entity in a domain. If several physical servers are deployed for + robustness, a replication mechanism must be deployed to synchronize the + ERP states (root keys<cref>FFS: authorization attributes</cref>) between + these servers. This replication mechanism is out of the scope of this + document. If multiple ER servers are deployed in the domain, we assume + that they can be used interchangeably.</t> + </section> + + <section anchor="Overview" title="Protocol Overview"> + <t>The following figure shows the components involved in ERP, and their + interactions. <figure align="center" anchor="Fig-Overview" + title="Diameter ERP Overview"> + <artwork><![CDATA[ + Diameter +--------+ + +-------------+ ERP +-----------+ (*) | Home | +Peer <->|Authenticator|<=======>| ER server | <---> | EAP | + +-------------+ +-----------+ | server | + +--------+ +(*) Diameter EAP application, explicit bootstrapping scenario only. +]]></artwork> + </figure> The ER server is located either in the home domain (same as + EAP server) or in the visited domain (same as authenticator, when it + differs from the home domain). <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> Can the ER server + be located in a third domain (ex: broker's) according to ERP + mechanism?</t> + </list> <vspace blankLines="1" /> When the peer initiates an ERP + exchange, the authenticator creates a Diameter-EAP-Request message <xref + target="RFC4072"></xref>. The Application Id of the message is set to + that of the Diameter ERP application (code: TBD) in the message. The + generation of the ERP/DER message is detailed in <xref + target="Re-authentication"></xref>. <vspace blankLines="1" /> If there + is an ER server in the same domain as the authenticator (local domain), + Diameter routing MUST <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> Should this say + "SHOULD: instead of "MUST"?</t> + </list> be configured so that this ERP/DER message reachs this server, + even if the Destination-Realm is not the local domain. <vspace + blankLines="1" /> If there is no local ER server, the message is routed + according to its Destination-Realm AVP content, extracted from the realm + component of the keyName-NAI attribute. As specified in <xref + target="RFC5296">RFC 5296</xref>, this realm is the home domain of the + peer in case of a bootstrapping exchange (the 'B' flag is set in the ERP + message) or the domain of the bootstrapped ER server otherwise. <list + style="hanging"> + <t hangText="NOTE:"><vspace blankLines="0" /> This actually might + allow the ER server to be in a third party realm.</t> + </list> <vspace blankLines="1" /> If no ER server is available in the + home domain either, the ERP/DER message cannot be delivered, and an + error DIAMETER_UNABLE_TO_DELIVER is generated <xref + target="RFC3588"></xref> and returned to the authenticator. The + authenticator may cache this information (with limited duration) to + avoid further attempts for ERP with this realm. It may also fallback to + full EAP authentication to authenticate the peer. <vspace + blankLines="1" /> When an ER server receives the ERP/DER message, it + searches its local database for a root key <list style="hanging"> + <t hangText="FFS:"><vspace blankLines="0" /> and authorization + state?</t> + </list> matching the keyName part of the User-Name AVP. If such key is + found, the ER server processes the ERP message as described in <xref + target="RFC5296">RFC 5296</xref> then creates the ERP/DEA answer as + described in <xref target="Re-authentication"></xref>. The rMSK is + included in this answer. <vspace blankLines="1" /> Finally, the + authenticator extracts the rMSK from the ERP/DEA as described in <xref + target="RFC5296">RFC 5296</xref>, and forwards the content of the + EAP-Payload AVP, the EAP-Finish/Re-Auth message, to the peer. <vspace + blankLines="1" /> If the EAP-Initiate/Re-Auth message has its 'B' flag + set (Bootstrapping exchange), the ER server should not possess the root + key in its local database <list style="hanging"> + <t hangText="COMMENT:"><vspace blankLines="0" /> This may not be + true in future RFC5296bis?</t> + </list> In this case, the ER server acts as a proxy, and forwards the + message to the home EAP server after changing its Application Id to + Diameter EAP and adding an AVP to request the root key. See <xref + target="Bootstrapping"></xref> for more detail on this process.</t> + </section> + + <section anchor="Bootstrapping" title="Bootstrapping the ER Server"> + <t>The bootstrapping process involves the home EAP server and the ER + server, but also impacts the peer and the authenticator. In ERP, the + peer must derive the same keying material as the ER server. To achieve + this, it must learn the domain name of the ER server. How this + information is acquired is outside the scope of this specification, but + it may involves that the authenticator is configured to advertize this + domain name, especially in the case of re-authentication after a + handover. <vspace blankLines="1" /> The bootstrapping of an ER server + with a given root key happens either during the initial EAP + authentication of the peer when the EMSK -- from which the root key is + derived -- is created, during the first re-authentication, or sometime + between those events. We only consider the first two possibilities in + this specification, in the following sub-sections.</t> + + <section title="Bootstrapping During the Initial EAP authentication"> + <t>Bootstrapping the ER server during the initial EAP authentication + (also known as implicit bootstrapping) offers the advantage that the + server is immediatly available for re-authentication of the peer, thus + minimizing re-authentication delay. On the other hand, it is possible + that only a small number of peers will use re-authentication in the + visited domain. Deriving and caching key material for all the peers + (for example, for the peers that do not support ERP) is a waste of + resources and SHOULD be avoided. <vspace blankLines="1" /> To achieve + implicit bootstrapping, the ER server must act as a Diameter EAP Proxy + as defined in the Diameter Base Protocol <xref + target="RFC3588"></xref>, and routing must be configured so that + Diameter messages of a full EAP authentication are routed through this + proxy. The figure bellow illustrates this mechanism. <figure + align="center" anchor="Implict" + title="ERP Bootstrapping During Full EAP Authentication"> + <artwork><![CDATA[ + ER server & +Authenticator EAP Proxy Home EAP server +============= =========== =============== + -------------------------> + Diameter EAP/DER + (EAP-Response) + -------------------------> + Diameter EAP/DER + (EAP-Response) + (ERP-RK-Request) + + <==================================================> + Multi-round Diameter EAP exchanges, unmodified + + <------------------------- + Diameter EAP/DEA + (EAP-Success) + (MSK) + (Key AVP (rRK)) + <------------------------- + Diameter EAP/DEA + (EAP-Success) + (MSK) + [ERP-Realm] +]]></artwork> + </figure> The ER server proxies the first DER of the full EAP + authentication and adds the ERP-RK-Request AVP inside, if this AVP is + not already in the message (which might happen if there are ER servers + in the visited and the home domains), then forwards the request. + <vspace blankLines="1" /> If the EAP server does not support the ERP + extensions, it will simply ignore this grouped AVP and continue as + specified in <xref target="RFC4072">RFC 4072</xref>. If the server + supports the ERP extensions, it caches the ERP-Realm value with the + session data, and continues the EAP authentication. When the + authentication is complete, if it is successful and the EAP method + generated an EMSK, the server MUST derive the rRK as specified in + <xref target="RFC5296">RFC 5296</xref>, and include an instance of the + Key AVP <xref target="KAVP"></xref> in the Diameter-EAP-Answer + message. <vspace blankLines="1" /> When the ER server proxies a + Diameter-EAP-Answer message with a Session-Id corresponding to a + message to which it added an ERP-RK-Answer, and the Result-Code is + DIAMETER_SUCCESS, it MUST examine the message, extract and remove any + Key AVP <xref target="KAVP"></xref> from the message, and save its + content. If the message does not contain an ERP-RK-Answer AVP, the ER + server MAY cache this information to avoid possible subsequent + re-authentication attempts for this session. In any case, the + information stored SHOULD NOT have a lifetime greater than the EMSK + lifetime <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> How does the ER + server knows the EMSK lifetime, if there is no ERP-RK-Answer? What + is the lifetime of the MSK for example?</t> + </list> <vspace blankLines="1" /> If the ER server is successfully + bootstrapped, it MAY also add the ERP-Realm AVP after removing the + ERP-RK-Answer AVP in the EAP/DEA message. This could be used by the + authenticator to notify the peer that ERP is bootstrapped, with the ER + domain information. How this information can be transmitted to the + peer is outside the scope of this document. <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> Is this + possible? It might be useful...</t> + </list></t> + </section> + + <section title="Bootstrapping During the First Re-authentication"> + <t>Bootstrapping the ER server during the first re-authentication + (also known as explicit bootstrapping) offers several advantages: it + saves resources, since we generate and cache only root keys that we + actually need, and it can accomodate inter-domain handovers or ER + servers that lose their state (for example after reboot). <list + style="hanging"> + <t hangText="COMMENT:"><vspace blankLines="0" /> This last point + might not be true currently, since the peer would not issue a + bootstrapping exchange... But this might change also with + RFC5296bis AFAIU</t> + </list> On the other hand, the first re-authentication with the ER + server requires a one-round-trip exchange with the home EAP server, + which adds some delay to the process (but it is more efficient than a + full EAP authentication in any case). It also requires some + synchronization between the peer and the visited domain: since the ERP + message used is different <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> and the root key + used also?</t> + </list> for the explicit bootstrapping exchange than for normal + re-authentication; explicit bootstrapping should not be used if + implicit bootstrapping was already performed. <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> What should we + do if the ER server receives an explicit bootstrapping request but + already possess the rDSRK? Can it answer without going to the home + server? That would be simpler -- planned in rfc5296bis ?</t> + </list> <vspace blankLines="1" /> The ER server receives the ERP/DER + message containing the EAP-Initiate/Re-Auth message with the 'B' flag + set. It proxies this message, and performs the following processing in + addition to standard proxy operations: <list> + <t>Changes the Application Id in the header of the message to + Diameter EAP Application (code 5).</t> + + <t>Change the content of Application-Auth-Id accordingly. <list + style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> Is t better + to leave it unmodified?</t> + </list></t> + + <t>Add the ERP-RK-Request AVP, which contains the name of the + domain where the ER server is located.</t> + + <t><list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> Add the + Destination-Host to reach the appropriate EAP server, the one + with the EMSK. How does the ER server know this + information?</t> + </list></t> + </list> Then the server forwards the EAP/DER request, which is + routed to the home EAP server. <vspace blankLines="1" /> If the home + EAP server does not support the ERP extensions, it replies with an + error since the encapsulated EAP-Initiate/Re-auth command is not + understood. Otherwise, it processes the ERP request as described in + <xref target="RFC5296"></xref>. In particular, it includes the + Domain-Name TLV attribute with the content from the ERP-Realm AVP. It + creates the EAP/DEA reply message <xref target="RFC4072"></xref>. + including an instance of the Key AVP <xref target="KAVP"></xref>. + <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> What about + authorization AVPs?</t> + </list> <vspace blankLines="1" /> The ER server receives this + EAP/DEA and proxies it as follows, in addition to standard proxy + operations: <list> + <t>Set the Application Id back to Diameter ERP (code TBD)</t> + + <t>Extract and cache the content of the Key AVP. <list + style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> And + authorization AVPs ?</t> + </list></t> + </list> The DEA is then forwarded to the authenticator, that can use + the rMSK as described in <xref target="RFC5296">RFC 5296</xref>. + <vspace blankLines="1" /> The figure below captures this proxy + behavior: <figure align="center" anchor="FigExplicit" + title="ERP Explicit Bootstrapping Message Flow"> + <artwork><![CDATA[ +Authenticator ER server Home EAP server +============= ========= =============== + -----------------------> + Diameter ERP/DER + (EAP-Initiate) + ------------------------> + Diameter EAP/DER + (EAP-Initiate) + (ERP-RK-Request) + + <------------------------ + Diameter EAP/DEA + (EAP-Finish) + (Key AVP) + <---------------------- + Diameter ERP/DEA + (EAP-Finish) + (Key AVP) +]]></artwork> + </figure></t> + </section> + </section> + + <section anchor="Re-authentication" title="Re-Authentication"> + <t>This section describes in detail a re-authentication exchange with a + (bootstrapped) ER server. The following figure summarizes the + re-authentication exchange. <figure align="center" anchor="FigReauth" + title="Diameter ERP Re-authentication Exchange"> + <artwork><![CDATA[ + ER server + (bootstrapped) + Peer Authenticator (local or home domain) + ==== ============= ====================== + [ <------------------------ ] + [optional EAP-Initiate/Re-auth-start] + + -----------------------> + EAP-Initiate/Re-auth + ===============================> + Diameter ERP, cmd code DER + User-Name: Keyname-NAI + EAP-Payload: EAP-Initiate/Re-auth + + <=============================== + Diameter ERP, cmd code DEA + EAP-Payload: EAP-Finish/Re-auth + Key AVP: rMSK + <---------------------- + EAP-Finish/Re-auth +]]></artwork> + </figure> In ERP, the peer sends an EAP-Initiate/Re-auth message to + the ER server via the authenticator. Alternatively, the authenticator + may send an EAP-Initiate/Re-auth-Start message to the peer to trigger + the start of ERP. In this case, the peer responds with an + EAP-Initiate/Re-auth message. <vspace blankLines="1" /> If the + authenticator does not support ERP (pure <xref target="RFC4072"></xref> + support), it discards the EAP packets with an unknown ERP-specific code + (EAP-Initiate). The peer may fallback to full EAP authentication in this + case. <vspace blankLines="1" /> When the authenticator receives an + EAP-Initiate/Re-auth message from the peer, it process as described in + <xref target="RFC5296"></xref> with regards to the EAP state machine. It + creates a Diameter EAP Request message following the general process of + <xref target="RFC4072">DiameterEAP</xref>, with the following + differences: <list> + <t>The Application Id in the header is set to Diameter ERP (code + TBD).</t> + + <t>The value in Auth-Application-Id AVP is also set to Diameter ERP + Application.</t> + + <t>The keyName-NAI attribute from ERP message is used to create the + content of User-Name AVP and Destination-Realm AVP.</t> + + <t><list style="hanging"> + <t hangText="FFS:"><vspace blankLines="0" /> What about + Session-ID AVP -- in case of re-auth at the same place, and in + case of handover?</t> + </list></t> + + <t>The Auth-Request-Type AVP content is set to [Editor's note: FFS]. + <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> Do we really + do authorization with Diameter ERP ? -- need to pass the + authorization attrs to the ER server in that case. Idea FFS: we + do authorization only for explicit bootstrapping + exchanges...</t> + </list></t> + + <t>The EAP-Payload AVP contains the ERP message, + EAP-Initiate/Re-Auth.</t> + </list> Then this ERP/DER message is sent as described in <xref + target="Overview"></xref>. <vspace blankLines="1" /> The ER server + receives and processes this request as described in <xref + target="Overview"></xref>. It then creates an ERP/DEA message following + the general processing described in <xref target="RFC4072">RFC + 4072</xref>, with the following differences: <list> + <t>The Application Id in the header is set to Diameter ERP (code + TBD).</t> + + <t>The value of the Auth-Application-Id AVP is also set to Diameter + ERP Application.</t> + + <t>The EAP-Payload AVP contains the ERP message, + EAP-Finish/Re-auth.</t> + + <t>In case of successful authentication, an instance of the Key AVP + containing the Re-authentication Master Session Key (rMSK) derived + by ERP is included. <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> What about all + the authorization attributes? If we want to include them, they + have to be present on the ER server...</t> + </list></t> + </list> When the authenticator receives this ERP/DEA answer, it + processes it as described in <xref target="RFC4072">Diameter EAP</xref> + and <xref target="RFC5296">RFC 5296</xref>: the content of EAP-Payload + AVP content is forwarded to the peer, and the contents of the + Keying-Material AVP <xref target="I-D.ietf-dime-local-keytran"></xref> + is used as a shared secret for Secure Association Protocol.</t> + </section> + + <section anchor="ApplicationId" title="Application Id"> + <t>We define a new Diameter application in this document, Diameter ERP + Application, with an Application Id value of TBD. Diameter nodes + conforming to this specification in the role of ER server MUST advertise + support by including an Auth-Application-Id AVP with a value of Diameter + ERP Application in the of the Capabilities-Exchange-Request and + Capabilities-Exchange-Answer commands <xref target="RFC3588"></xref>. + <vspace blankLines="1" /> The primary use of the Diameter ERP + Application Id is to ensure proper routing of the messages, and that the + nodes that advertise the support for this application do understand the + new AVPs defined in <xref target="AVPs"></xref>, although these AVP have + the 'M' flag cleared.</t> + </section> + + <section anchor="AVPs" title="AVPs"> + <t>This section discusses the AVPs used by the Diameter ERP + application.</t> + + <section title="ERP-RK-Request AVP"> + <t>The ERP-RK-Request AVP (AVP Code TBD) is of type grouped AVP. This + AVP is used by the ER server to indicate its willingness to act as ER + server for a particular session. <vspace blankLines="1" /> This AVP + has the M and V bits cleared. <figure align="center" anchor="ERRABNF" + title="ERP-RK-Request ABNF"> + <artwork><![CDATA[ + ERP-RK-Request ::= < AVP Header: TBD > + { ERP-Realm } + * [ AVP ] +]]></artwork> + </figure></t> + </section> + + <section title="ERP-Realm AVP"> + <t>The ERP-Realm AVP (AVP Code TBD) is of type DiameterIdentity. It + contains the name of the realm in which the ER server is located. + <list style="hanging"> + <t hangText="FFS:"><vspace blankLines="0" /> We may re-use + Origin-Realm here instead? On the other hand, ERP-Realm may be + useful if the ER server is in a third-party realm, if this is + possible.</t> + </list> <vspace blankLines="1" /> This AVP has the M and V bits + cleared.</t> + </section> + + <section anchor="KAVP" title="Key AVP"> + <t>The Key AVP <xref target="I-D.ietf-dime-local-keytran"></xref> is + of type "Grouped" and is used to carry the rMSK and associated + attributes. The usage of the Key AVP and its constituent AVPs in this + application is specified in the following sub-sections.</t> + + <section title="Key-Type AVP"> + <t>The value of the Key-Type AVP MUST be set to 3 for rRK.</t> + </section> + + <section title="Keying-Material AVP"> + <t>The Keying-Material AVP contains rRK sent by the home EAP server + to the ER server, in answer to a request containing an + ERP-RK-Request AVP. How this material is derived and used is + specified in <xref target="RFC5296">RFC 5296</xref>.</t> + </section> + + <section title="Key-Name AVP"> + <t>This AVP contains the EMSKname which identifies the keying + material. The derivation of this name is specified in <xref + target="RFC5296">RGC 5296</xref>.</t> + </section> + + <section title="Key-Lifetime AVP"> + <t>The Key-Lifetime AVP contains the lifetime of the keying material + in seconds. It MUST NOT be greater than the remaining lifetime of + the EMSK from which the material was derived.</t> + </section> + </section> + </section> + + <section anchor="Issues" title="Open issues"> + <t>This document does not address some known issues in Diameter ERP + mechanism. The authors would like to hear ideas about how to address + them. <vspace blankLines="1" /> The main issue is the use of ERP for + authentication after a handover of the peer to a new authenticator (or + different authenticator port). Diameter ERP is not meant to be a + mobility protocol. A number of issues appear when we try to do handover + in Diameter ERP (alone): how to manage the Session-Id AVP; how does the + ER server provide the Authorization AVPs; how does the peer learn the + ERP domain of the new authenticator; how does the home server reachs the + peer to for example terminate the session; and so on... Therefore, the + management of the session for a mobile peer is not (yet) addressed in + this document. It must be studied how Diameter ERP can be for example + used in conjunction with a mobility application (Diameter MIP4, Diameter + MIP6) to support the optimized re-authentication in such situation. + <vspace blankLines="1" /> Another issue concerns the case where the home + realm contains several EAP servers. In multi rounds full EAP + authentication, the Destination-Host AVP provides the solution to reach + the same server across the exchanges. Only this server possess the EMSK + for the session. In case of explicit bootstrapping, the ER server must + therefore be able to reach the correct server to request the DSRK. A + solution might consist in saving the Origin-Host AVP of all successful + EAP/DEA in the ER server, which is a bit similar to the implicit + bootstrapping scenario described here -- only we save the server name + instead of the root key, and we must then be able to match the DSRK with + the user name. <vspace blankLines="1" /> Finally, this document + currently lacks a description of what happens when a Re-Auth-Request is + received for a peer on the authenticator.</t> + </section> + + <section anchor="Acknowledgements" title="Acknowledgements"> + <t>Hannes Tschofenig wrote the initial draft for this document and + provided useful reviews. <vspace blankLines="1" /> Vidya Narayanan + reviewed a rough draft version of the document and found some errors. + <vspace blankLines="1" /> Lakshminath Dondeti contributed to the early + versions of the document. <vspace blankLines="1" /> Many thanks to these + people!</t> + </section> + + <section anchor="IANA" title="IANA Considerations"> + <t>This document requires IANA registration of the following new + elements in the <eref + target="http://www.iana.org/assignments/aaa-parameters/">Authentication, + Authorization, and Accounting (AAA) Parameters</eref> registries.</t> + + <section anchor="IANA_AppId" title="Diameter Application Identifier"> + <t>This specification requires IANA to allocate a new value "Diameter + ERP" in the "Application IDs" registry <xref target="RFC3588"> using + the policy specified in Section 11.3 of RFC 3588</xref>.</t> + </section> + + <section anchor="IANA_AVP" title="New AVPs"> + <t>This specification requires IANA to allocate new values from the + "AVP Codes" registry <xref target="RFC3588">according to the policy + specified in Section 11.1 of RFC 3588</xref> for the following AVPs: + <list> + <t>ERP-RK-Request</t> + + <t>ERP-Realm</t> + </list>These AVPs are defined in <xref target="AVPs"></xref>.</t> + </section> + </section> + + <section anchor="Security" title="Security Considerations"> + <t>The security considerations from the following documents also apply + here: <list style="symbols"> + <t><xref target="RFC3588">RFC 3588</xref></t> + + <t><xref target="RFC4072">RFC 4072</xref></t> + + <t><xref target="RFC5247">RFC 5247</xref></t> + + <t><xref target="RFC5295">RFC 5295</xref></t> + + <t><xref target="RFC5296"></xref></t> + </list> <list style="hanging"> + <t hangText="FFS:"><vspace blankLines="0" /> Do we really respect + these security considerations with the mechanism we describe here? + Is it safe to use ERP-RK-Request / Answer AVPs? What is the worst + case?</t> + </list> EAP channel bindings may be necessary to ensure that the + Diameter client and the server are in sync regarding the key Requesting + Entity's Identity. Specifically, the Requesting Entity advertises its + identity through the EAP lower layer, and the user or the EAP peer + communicates that identity to the EAP server (and the EAP server + communicates that identity to the Diameter server) via the EAP method + for user/peer to server verification of the Requesting Entity's + Identity. <list style="hanging"> + <t hangText="QUESTION:"><vspace blankLines="0" /> What does this + paragraph actually mean?</t> + </list></t> + </section> + </middle> + + <back> + <references title="Normative References"> + &RFC2119; + + &RFC3588; + + &RFC4072; + + &RFC5295; + + &RFC5296; + + &I-D.ietf-dime-local-keytran; + + &RFC3748; + </references> + + <references title="Informative References"> + &RFC5247; + </references> + </back> +</rfc>