view draft-ietf-dime-erp.xml @ 50:75e5efe2c300 -03

Change file name so that it resists versions update
author Sebastien Decugis <sdecugis@nict.go.jp>
date Mon, 08 Mar 2010 11:30:39 +0900
parents draft-ietf-dime-erp-03.xml@805d3895ac9f
children
line wrap: on
line source

<?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-02.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-03.txt" ipr="trust200902">
	<front>
		<title abbrev="Diameter support for ERP">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." surname="Zorn" role="editor">
			<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 &amp; Management</area>

		<keyword>Internet-Draft</keyword>

		<keyword>EAP</keyword>

		<keyword>Diameter</keyword>

		<keyword>Re-authentication</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" in this document to refer to a
				Diameter-EAP-Request command with its Application Id set to Diameter ERP
				application. Similarly, we use the "ERP/DEA", "EAP/DER", and
				"EAP/DEA".
			</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, as described in Diameter EAP application
				<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 section <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"/> 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 section
				<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
				subsections.
			</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"/>
					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"/>
					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"/>. 
					<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"/>
			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
				section <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"/> 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 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 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 section <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>
"Welcome to our mercurial repository"