changeset 49:805d3895ac9f

Retrieved version -03 after Glen edits & submit.
author Sebastien Decugis <sdecugis@nict.go.jp>
date Mon, 08 Mar 2010 11:29:06 +0900
parents a408a79fc457
children 75e5efe2c300
files draft-ietf-dime-erp-03.xml
diffstat 1 files changed, 772 insertions(+), 761 deletions(-) [+]
line wrap: on
line diff
--- a/draft-ietf-dime-erp-03.xml	Sun Nov 08 16:42:04 2009 +0900
+++ b/draft-ietf-dime-erp-03.xml	Mon Mar 08 11:29:06 2010 +0900
@@ -4,15 +4,10 @@
 <!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 RFC4187 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4187.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-hokey-key-mgm SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-hokey-key-mgm-06.xml">
-<!ENTITY I-D.ietf-dime-app-design-guide SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-dime-app-design-guide-08.xml">
-<!ENTITY I-D.gaonkar-radext-erp-attrs SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-gaonkar-radext-erp-attrs-03.xml">
-<!ENTITY I-D.wu-dime-local-keytran SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-wu-dime-local-keytran-00.xml">
-<!ENTITY nbsp "&#160;">
+<!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"?>
@@ -30,335 +25,310 @@
 <?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 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>
+	<front>
+		<title abbrev="Diameter support for ERP">Diameter support for the EAP Re-authentication Protocol (ERP)</title>
 
-          <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>
+		<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>
 
-      <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="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>
+		<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>
 
-        <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.Z." role="editor" surname="Zorn">
-      <organization>Network Zen</organization>
+		<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>
 
-      <address>
-        <postal>
-          <street>1310 East Thomas Street</street>
-
-          <street>#306</street>
-
-          <city>Seattle</city>
-
-          <region>Washington</region>
-
-          <code>98102</code>
-
-          <country>USA</country>
-        </postal>
+		<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>
 
-        <phone>+1 (206) 377-9035</phone>
+		<date year="2010" />
 
-        <email>gwz@net-zen.net</email>
-      </address>
-    </author>
+		<area>Operations &amp; Management</area>
 
-    <date year="2009" />
+		<keyword>Internet-Draft</keyword>
 
-    <area>Operations &amp; Management</area>
+		<keyword>EAP</keyword>
 
-    <workgroup>Diameter Maintenance and Extensions (DIME)</workgroup>
+		<keyword>Diameter</keyword>
 
-    <keyword>Internet-Draft</keyword>
+		<keyword>Re-authentication</keyword>
 
-    <keyword>EAP</keyword>
-
-    <keyword>Diameter</keyword>
+		<keyword>inter-authenticator roaming</keyword>
 
-    <keyword>Re-authentication</keyword>
-
-    <keyword>inter-authenticator roaming</keyword>
-
-    <abstract>
-      <t>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 ER authenticator and 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"></xref> defines the EAP Re-authentication
-      Protocol (ERP). It consists in the following steps:<list style="numbers">
-          <t>Bootstrapping: 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>Re-authentication: a one-round-trip exchange between the peer and
-          the ER server, resulting in mutual authentication. To accomplish the
-          EAP reauthentication functionality, ERP defines two new EAP codes -
-          EAP-Initiate and EAP-Finish.</t>
-        </list></t>
-
-      <t>This document defines how Diameter transports the ERP messages
-      (Re-authentication step). For this purpose, we define a new Application
-      Id for ERP, and re-use the Diameter EAP commands (DER/DEA).</t>
-
-      <t>This document also discusses the distribution of the root key
-      (bootstrapping step), either during the initial EAP authentication
-      (implicit bootstrapping) or during the first ERP exchange (explicit
-      bootstrapping). Security considerations for this key distribution are
-      detailed in <xref target="RFC5295"></xref>.</t>
-    </section>
-
-    <section title="Terminology">
-      <t>This document uses terminology defined in <xref
-      target="RFC3748"></xref>, <xref target="RFC5295"></xref>, <xref
-      target="RFC5296"></xref>, and <xref target="RFC4072"></xref>.</t>
-
-      <t>"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.</t>
-
-      <t>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>
+		<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>
 
-      <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 makes the following assumptions.</t>
-
-      <t>The Home EAP server of a peer that wants to use ERP is extended to
-      support:<list>
-          <t>Cryptographic operations needed to derive the ERP root key from
-          the EMSK. By deriving the ERP root key for a specific domain, the
-          home EAP server implicitly authorizes the use of ERP within this
-          domain.</t>
-
-          <t>Diameter operations needed to include this root key in a response
-          message, when a request for this root key was received in a request
-          message. The two AVP that contain the request for and the root key
-          material are defined in this document.</t>
-
-          <t>(recommended) Ability to answer a DER message with EAP-Payload
-          containing an explicit bootstrapping ERP message.</t>
-        </list></t>
+	<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>
 
-      <t>The Authenticator (NAS) is extended to support:<list>
-          <t>Allow the new ERP command codes (EAP-Initiate and EAP-Finish) in
-          its EAP pass-through mode.</t>
-
-          <t>(optional) Send the EAP-Initiate/Re-Auth-Start message</t>
-
-          <t>(optional) Provide the local domain name via lower layer specific
-          mechanism or via TLV in the EAP-Initiate/Re-Auth-Start message.</t>
-
-          <t>Encapsulate ERP message and receive corresponding Diameter
-          answer, as described in this document.</t>
-        </list></t>
+		<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>
 
-      <t>If one of the components does not match these assumptions, the ERP
-      mechanism will fail. In such situation, a full EAP authentication may be
-      attempted as a fallback mechanism.</t>
+		<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>
 
-      <t>We consider 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 several
-      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.</t>
-
-      <figure title="Figure. Diameter ERP overview.">
-        <artwork><![CDATA[
+		<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 bootstraping scenario only.]]></artwork>
-      </figure>
-
-      <t>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). <cref>Can the ER server be located in a third
-      domain (ex: broker's) according to ERP mechanism?</cref></t>
-
-      <t>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 Diameter ERP application (code: TBD <cref>TBD IANA</cref>) in the
-      message. The exact processing to generate the ERP/DER message is
-      detailed in section <xref target="Re-authentication"></xref>.</t>
-
-      <t>If there is an ER server in the same domain as the authenticator
-      (local domain), Diameter routing MUST <cref>SHOULD ? FFS...</cref> be
-      configured so that this ERP/DER message reachs this server, even if the
-      Destination-Realm is not the local domain.</t>
-
-      <t>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"></xref>, this realm is the home domain of the peer in
-      case of bootstrapping exchange ('B' flag is set in ERP message) or the
-      domain of the bootstrapped ER server otherwise <cref>This actually might
-      allow the ER server to be in a third party realm</cref>.</t>
-
-      <t>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 as specified in <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.</t>
-
-      <t>When an ER server receives the ERP/DER message, it searches its local
-      database for a root key <cref>and authorization state ?</cref> 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"></xref> then creates the ERP/DEA answer as described in
-      <xref target="Re-authentication"></xref>. The rMSK is included in this
-      answer.</t>
+(*) Diameter EAP application, explicit bootstrapping scenario only.
+]]></artwork></figure>
 
-      <t>Finally, the authenticator extracts the rMSK from the ERP/DEA as
-      described in <xref target="RFC5296"></xref>, and forwards the content of
-      the EAP-Payload AVP, the EAP-Finish/Re-Auth message, to the peer.</t>
-
-      <t>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 <cref>This may not be true in future RFC5296bis
-      ?</cref>. 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.</t>
+				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>
 
-      <t>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 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 the 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.</t>
-
-        <t>To achieve implicit bootstrapping, the ER server must act as a
-        Diameter EAP Proxy as defined in 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 captures this mechanism.</t>
-
-        <figure title="Figure. ERP bootstrapping during full EAP authentication">
-          <artwork><![CDATA[
+		<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
 =============            ===========              ===============
@@ -377,117 +347,177 @@
                                    Diameter EAP/DEA
                                     (EAP-Success)
                                         (MSK)
-                                   (ERP-RK-Answer)
+                                   (Key AVP (rRK))
      <-------------------------
          Diameter EAP/DEA
            (EAP-Success)
                (MSK)
             [ERP-Realm]
-]]></artwork>
-        </figure>
-
-        <t>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.</t>
-
-        <t>If the EAP server does not support ERP extensions, it will simply
-        ignore this grouped AVP and continue as specified in <xref
-        target="RFC4072"></xref>. If the server supports the ERP extensions,
-        it caches the ERP-Realm value with the session, and continues the EAP
-        authentication. When the authentication is complete, if it is
-        successful and the EAP method generated an EMSK, the server MUST
-        compute the rRK or rDSRK (depending on the value of ERP-Realm) as
-        specified in <xref target="RFC5296"></xref>, and add an ERP-RK-Answer
-        AVP in the Diameter-EAP-Request message, in addition to the MSK and
-        EAP-Success payloads.</t>
-
-        <t>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 ERP-RK-Answer AVP from the
-        message, and save its content. If the message does not contain an
-        ERP-RK-Answer AVP, the ER server MAY save 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 <cref>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?</cref></t>
-
-        <t>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. <cref>Is it possible? It would be useful...</cref></t>
-      </section>
+]]></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 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 key that we
-        actually need, and it can accomodate inter-domain handovers or ER
-        servers that loose their state (for example after reboot) <cref>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</cref>. 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 is different<cref>and the root key used also ?</cref> for
-        explicit bootstrapping exchange and for normal re-authentication,
-        explicit bootstrapping should not be used if implicit bootstrapping
-        was already performed.</t>
-
-        <t><cref>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 ?</cref></t>
-
-        <t>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 do the following processing in addition to standard proxy
-        operations:<list>
-            <t>Change 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. <cref>Is
-            it better to leave it unmodified?</cref></t>
+			<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:
 
-            <t>Add the ERP-RK-Request AVP, which contains the name of the
-            domain where the ER server is located.</t>
-
-            <t><cref>Add the Destination-Host to reach the appropriate EAP
-            server, the one with the EMSK. How does the ER server know this
-            information ?</cref></t>
-          </list>Then the server forwards the EAP/DER request, which is routed
-        to the home EAP server.</t>
-
-        <t>If the home EAP server does not support 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 following standard processing from
-        <xref target="RFC4072"></xref> (in particular EAP-Master-Session-Key
-        AVP is used to transport the rMSK), and includes the ERP-RK-Answer
-        AVP. <cref>What about authorization AVPs ?</cref></t>
-
-        <t>The ER server receives this EAP/DEA and proxies it as follow, in
-        addition to standard proxy operations:<list>
-            <t>Set the Application Id back to Diameter ERP (code TBD<cref>TBD
-            IANA</cref>)</t>
-
-            <t>Extract and cache the content of the ERP-RK-Answer. <cref>And
-            authorization AVPs ?</cref></t>
-          </list>The DEA is then forwarded to the authenticator, that can use
-        the rMSK as described in <xref target="RFC5296"></xref>.</t>
-
-        <t>The figure below captures this proxy behavior:</t>
-
-        <figure title="Figure. ERP explicit bootstrapping message flow">
-          <artwork><![CDATA[
+<figure align="center" anchor="FigExplicit" title="ERP Explicit Bootstrapping Message Flow"><artwork><![CDATA[
 Authenticator            ER server             Home EAP server
 =============            =========             ===============
       ----------------------->
@@ -501,377 +531,358 @@
                               <------------------------
                                     Diameter EAP/DEA
                                       (EAP-Finish)
-                                     (ERP-RK-Answer)
-                                         (rMSK)
+                                       (Key AVP)
       <----------------------
           Diameter ERP/DEA
             (EAP-Finish)
-               (rMSK)
-]]></artwork>
-        </figure>
-      </section>
-    </section>
+             (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.</t>
-
-      <figure title="Figure. Diameter ERP exchange. ">
-        <artwork><![CDATA[
-                                                        ER server
-                                                      (bootstrapped)
- Peer                 Authenticator               (local or home domain)
- ====                 =============               ======================
+		<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 DER
+                                User-Name: Keyname-NAI
+                           EAP-Payload: EAP-Initiate/Re-auth
  
-                           <==================================
-                                Diameter ERP, cmd code DEA
-                              EAP-Payload: EAP-Finish/Re-auth
-                               EAP-Master-Session-Key: rMSK
+                           <===============================
+                              Diameter ERP, cmd code DEA
+                            EAP-Payload: EAP-Finish/Re-auth
+                                     Key AVP: rMSK
     <----------------------
       EAP-Finish/Re-auth
-]]></artwork>
-      </figure>
-
-      <t>In ERP, the peer sends an EAP-Initiate/Re-auth message to the ER
-      server via the authenticator. Alternatively, the NAS 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 to the NAS.</t>
-
-      <t>If the authenticator does not support ERP (pure <xref
-      target="RFC4072"></xref> support), it discards the EAP packets with
-      unknown ERP-specific code (EAP-Initiate). The peer may fallback to full
-      EAP authentication in such case.</t>
-
-      <t>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">Diameter
-      EAP</xref>, with the following differences:<list>
-          <t>The Application Id in the header is set to Diameter ERP (code TBD
-          <cref>TBD IANA</cref>).</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><cref>FFS: What about Session-ID AVP -- in case of re-auth at the
-          same place, and in case of handover?</cref></t>
-
-          <t>The Auth-Request-Type AVP content is set to [Editor's note:
-          FFS]<cref>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...</cref>.</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>.</t>
-
-      <t>The ER server receives and processes this request as described in
-      <xref target="Overview"></xref>. It then creates a Diameter answer
-      ERP/DEA, following the general processing described in <xref
-      target="RFC4072"></xref>, with the following differences:<list>
-          <t>The Application Id in the header is set to Diameter ERP (code
-          TBD<cref>TBD IANA</cref>).</t>
-
-          <t>The value in Auth-Application-Id AVP is also set to Diameter ERP
-          Application.</t>
+]]></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>
 
-          <t>The Result-Code AVP is set to <cref>version -00 stated a SHOULD
-          here, not sure why ?</cref> an error value in case ERP
-          authentication fails, or to DIAMETER_SUCCESS if ERP is
-          successful.</t>
-
-          <t>The EAP-Payload AVP contains the ERP message,
-          EAP-Finish/Re-auth.</t>
-
-          <t>In case of successful authentication, the EAP-Master-Session-Key
-          AVP contains the Re-authentication Master Session Key (rMSK) derived
-          by ERP.</t>
-
-          <t><cref>What about all the authorization attributes? If we want to
-          include them, they have to be present on the ER server...</cref></t>
-        </list></t>
-
-      <t>When the authenticator receives this ERP/DEA answer, it processes it
-      as described in <xref target="RFC4072">Diameter EAP</xref> and <xref
-      target="RFC5296"></xref>: the content of EAP-Payload AVP content is
-      forwarded to the peer, and the content of EAP-Master-Session-Key AVP 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="ApplicationId" title="Application Id">
-      <t>We define a new Diameter application in this document, Diameter ERP
-      Application, with an Application Id value of TBD<cref>TBD IANA</cref>.
-      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,
-      as described in <xref target="RFC3588"></xref>.</t>
+		<section anchor="AVPs" title="AVPs">
+			<t>
+				This section discusses the AVPs used by the Diameter ERP application.
+			</t>
 
-      <t>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 specification defines the following new AVPs. <cref>FFS: to
-      align with draft-wu-dime-local-keytran-02 if it becomes a WG
-      item</cref></t>
-
-      <section title="ERP-RK-Request AVP">
-        <t>The ERP-RK-Request AVP (AVP Code TBD<cref>TBD IANA</cref>) 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.</t>
-
-        <t>This AVP has the M and V bits cleared.</t>
-
-        <figure title="Figure. ERP-RK-Request ABNF">
-          <artwork><![CDATA[
+			<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>
-      </section>
-
-      <section title="ERP-Realm AVP">
-        <t>The ERP-Realm AVP (AVP Code TBD<cref>TBD IANA</cref>) is of type
-        DiameterIdentity. It contains the name of the realm in which the ER
-        server is located.</t>
-
-        <t><cref>FFS: We may re-use Origin-Realm here instead? On the other
-        hand, ERP-Realm may be useful if the ER server is not in a third-party
-        realm, if this is possible.</cref></t>
-
-        <t>This AVP has the M and V bits cleared.</t>
-      </section>
-
-      <section title="ERP-RK-Answer AVP">
-        <t>The ERP-RK-Answer AVP (AVP Code TBD<cref>TBD IANA</cref>) is of
-        type grouped AVP. It is used by the home EAP server to provide ERP
-        root key material to the ER server.</t>
-
-        <t>This AVP has the M and V bits cleared.</t>
+]]></artwork></figure>
+				</t>
+			</section>
 
-        <figure title="Figure. ERP-RK-Answer ABNF">
-          <artwork><![CDATA[
-       ERP-RK-Answer ::= < AVP Header: TBD >
-                         { ERP-RK }
-                         { ERP-RK-Name }
-                         { ERP-RK-Lifetime }
-                       * [ AVP ]
-]]></artwork>
-        </figure>
-      </section>
-
-      <section title="ERP-RK AVP">
-        <t>The ERP-RK AVP (AVP Code TBD<cref>TBD IANA</cref>) is of type
-        OctetString. It contains the root key (either rRK or rDSRK) sent by
-        the home EAP server to the ER server, in answer to request containing
-        an ERP-RK-Request AVP. How this material is derived and used is
-        specified in <xref target="RFC5296"></xref>.</t>
-
-        <t><cref>Can we re-use EAP-Master-Session-Key here instead? Must check
-        the exact definition...</cref></t>
-
-        <t>This AVP has the M and V bits cleared.</t>
-      </section>
-
-      <section title="ERP-RK-Name AVP">
-        <t>The ERP-RK-Name AVP (AVP Code TBD<cref>TBD IANA</cref>) is of type
-        OctetString. This AVP contains the EMSKname which identifies the
-        keying material. How this name is derived is beyond the scope of this
-        document and defined in <xref target="RFC5296"></xref>.</t>
-
-        <t><cref>Can we re-use EAP-Key-Name here instead ?</cref></t>
+			<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>
 
-        <t>This AVP has the M and V bits cleared.</t>
-      </section>
-
-      <section title="ERP-RK-Lifetime AVP">
-        <t>The ERP-RK-Lifetime AVP (AVP Code TBD<cref>TBD IANA</cref>) is of
-        type Unsigned32 <cref>do we really need 64 as in -00 ? 2^32 secs is
-        already more than 100 years, which is too long for a key lifetime
-        !</cref> and contains the root key material remaining lifetime in
-        seconds. It MUST not be greater than the remaining lifetime of the
-        EMSK it is derived from. <cref>FFS: is it better to pass an absolute
-        value here, for example expiration date? How to express it then (TZ,
-        ...)? Synchronization problems?</cref></t>
-
-        <t>This AVP has the M and V bits cleared.</t>
-      </section>
-    </section>
-
-    <section anchor="Commands" title="Commands">
-      <t>We do not define any new command in this specification. We reuse the
-      Diameter-EAP-Request and Diameter-EAP-Answer commands defined in <xref
-      target="RFC4072"></xref>.</t>
-
-      <t>Since the original ABNF of these commands allow other optional AVPs
-      ("* [ AVP ]"), and the new AVPs defined in this specification do not
-      have the 'M' flag set, the ABNF does not need any change. Anyway, a
-      Diameter node that advertizes support for the Diameter ERP application
-      MUST support the new AVPs defined in this specification.</t>
+			<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>
 
-      <figure title="Figure. Command Codes">
-        <artwork><![CDATA[
-   Command-Name          Abbrev. Code Reference Application
-   ---------------------------------------------------------
-   Diameter-EAP-Request  DER     268  RFC 4072  Diameter ERP
-   Diameter-EAP-Answer   DEA     268  RFC 4072  Diameter ERP
-]]></artwork>
-      </figure>
-    </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.</t>
-
-      <t>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.</t>
+		<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>
 
-      <t>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.</t>
-
-      <t>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.</t>
-
-      <t>Vidya Narayanan reviewed a rough draft version of the document and
-      found some errors.</t>
-
-      <t>Lakshminath Dondeti contributed to the early versions of the
-      document.</t>
-
-      <t>Many thanks to these people!</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 ERP application">
-        <t>This specification requires IANA to allocate a new value "Diameter
-        ERP" in the "Application IDs" registry created by in <xref
-        target="RFC3588"></xref>.</t>
+		<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>
 
-        <figure title="IANA consideration for Diameter ERP application">
-          <artwork><![CDATA[
-   Application Identifier             | Value
-   -----------------------------------+------
-   Diameter ERP                       | TBD
-]]></artwork>
-        </figure>
-      </section>
-
-      <section title="New AVPs">
-        <t>This specification requires IANA to allocate new values from the
-        "AVP Codes" registry defined in <xref target="RFC3588"></xref> for the
-        following AVPs:<list>
-            <t>ERP-RK-Request</t>
-
-            <t>ERP-Realm</t>
-
-            <t>ERP-RK-Answer</t>
+			<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>
 
-            <t>ERP-RK</t>
-
-            <t>ERP-RK-Name</t>
-
-            <t>ERP-RK-Lifetime</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 RFC apply here: <xref
-      target="RFC3588"></xref>, <xref target="RFC4072"></xref>, <xref
-      target="RFC5247"></xref>, <xref target="RFC5295"></xref>, and <xref
-      target="RFC5296"></xref>.</t>
-
-      <t><cref>FFS: 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?</cref></t>
+		<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>
 
-      <t>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.<cref>Editor: I
-      really don't understand this paragraph ^^'...</cref></t>
-    </section>
-  </middle>
-
-  <back>
-    <references title="Normative References">
-      &RFC2119;
-
-      &RFC3588;
-
-      &RFC4072;
+	<back>
+		<references title="Normative References">
+			&RFC2119;
+			&RFC3588;
+			&RFC4072;
+			&RFC5295;
+			&RFC5296;
+			&I-D.ietf-dime-local-keytran;
+			&RFC3748;
+		</references>
 
-      &RFC5295;
-
-      &RFC5296;
-
-      &RFC3748;
-    </references>
-
-    <references title="Informative References">
-      &RFC4187;
-
-      &RFC5247;
-
-      &I-D.ietf-hokey-key-mgm;
-
-      &I-D.wu-dime-local-keytran;
-
-      &I-D.ietf-dime-app-design-guide;
-    </references>
-  </back>
+		<references title="Informative References">
+			&RFC5247;
+		</references>
+	</back>
 </rfc>
"Welcome to our mercurial repository"