view draft-ietf-dime-erp-05.xml @ 54:b817687af36c

Initial version: based on -04 as found in tools.ietf.org
author Sebastien Decugis <sdecugis@nict.go.jp>
date Thu, 21 Oct 2010 16:22:23 +0900
parents
children 4890fc91096d
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-07.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes"?>
<?rfc comments="no"?>
<?rfc inline="yes"?>
<?rfc editing="no"?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc rfcedstyle="yes"?>
<?rfc rfcprocack="no"?>
<?rfc tocindent="yes"?>
<rfc category="std" docName="draft-ietf-dime-erp-04.txt" ipr="trust200902">
  <front>
    <title abbrev="Diameter ERP Application">Diameter Support for the EAP
    Re-authentication Protocol (ERP)</title>

    <author fullname="Julien Bournelle" initials="J." surname="Bournelle">
      <organization abbrev="Orange Labs">Orange Labs</organization>

      <address>
        <postal>
          <street>38-40 rue du general Leclerc</street>

          <city>Issy-Les-Moulineaux</city>

          <code>92794</code>

          <country>France</country>
        </postal>

        <email>julien.bournelle@orange-ftgroup.com</email>
      </address>
    </author>

    <author fullname="Lionel Morand" initials="L." surname="Morand">
      <organization abbrev="Orange Labs">Orange Labs</organization>

      <address>
        <postal>
          <street>38-40 rue du general Leclerc</street>

          <city>Issy-Les-Moulineaux</city>

          <code>92794</code>

          <country>France</country>
        </postal>

        <email>lionel.morand@orange-ftgroup.com</email>
      </address>
    </author>

    <author fullname="Sebastien Decugis" initials="S." role="editor"
            surname="Decugis">
      <organization abbrev="NICT">NICT</organization>

      <address>
        <postal>
          <street>4-2-1 Nukui-Kitamachi</street>

          <city>Tokyo</city>

          <code>184-8795</code>

          <country>Koganei, Japan</country>
        </postal>

        <email>sdecugis@nict.go.jp</email>
      </address>
    </author>

    <author fullname="Qin Wu" initials="Q." surname="Wu">
      <organization abbrev="Huawei">Huawei Technologies Co.,
      Ltd</organization>

      <address>
        <postal>
          <street>Site B, Floor 12F, Huihong Mansion, No.91 Baixia
          Rd.</street>

          <city>Nanjing</city>

          <code>210001</code>

          <country>China</country>
        </postal>

        <email>sunseawq@huawei.com</email>
      </address>
    </author>

    <author fullname="Glen Zorn" initials="G." role="editor" surname="Zorn">
      <organization>Network Zen</organization>

      <address>
        <postal>
          <street>1463 East Republican Street</street>

          <city>Seattle</city>

          <region>Washington</region>

          <code>98112</code>

          <country>USA</country>
        </postal>

        <phone>+1 206 931 0768</phone>

        <email>gwz@net-zen.net</email>
      </address>
    </author>

    <date year="2010" />

    <area>Operations &amp; Management</area>

    <keyword>Internet-Draft</keyword>

    <keyword>EAP</keyword>

    <keyword>Diameter</keyword>

    <keyword>Re-authentication</keyword>

    <keyword>AAA</keyword>

    <keyword>inter-authenticator roaming</keyword>

    <abstract>
      <t>The EAP Re-authentication Protocol (ERP) defines extensions to the
      Extensible Authentication Protocol (EAP) to support efficient
      re-authentication between the peer and an EAP Re-authentication (ER)
      server through a compatible authenticator. This document specifies
      Diameter support for ERP. It defines a new Diameter ERP application to
      transport ERP messages between an ER authenticator and the ER server,
      and a set of new AVPs that can be used to transport the cryptographic
      material needed by the re-authentication server.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="Introduction" title="Introduction">
      <t><xref target="RFC5296">RFC 5296</xref> defines the EAP
      Re-authentication Protocol (ERP). It consists of the following steps:
      <list style="hanging">
          <t hangText="Bootstrapping"><vspace blankLines="0" /> A root key for
          re-authentication is derived from the Extended Master Session Key
          (EMSK) created during EAP authentication <xref
          target="RFC5295"></xref>. This root key is transported from the EAP
          server to the ER server.</t>

          <t hangText="Re-authentication"><vspace blankLines="0" /> A
          one-round-trip exchange between the peer and the ER server,
          resulting in mutual authentication. To support the EAP
          reauthentication functionality, ERP defines two new EAP codes -
          EAP-Initiate and EAP-Finish.</t>
        </list> This document defines how Diameter transports the ERP messages
      during the re-authentication process. For this purpose, we define a new
      Application Identifier for ERP, and re-use the Diameter EAP commands
      (DER/DEA). <vspace blankLines="1" /> This document also discusses the
      distribution of the root key during bootstrapping, in conjunction with
      either the initial EAP authentication (implicit bootstrapping) or the
      first ERP exchange (explicit bootstrapping). Security considerations for
      this key distribution are detailed in <xref target="RFC5295">RFC
      5295</xref>.</t>
    </section>

    <section title="Terminology">
      <t>This document uses terminology defined in <xref target="RFC3748">RFC
      3748</xref>, <xref target="RFC5295">RFC 5295</xref>, <xref
      target="RFC5296">RFC 5296</xref>, and <xref target="RFC4072">RFC
      4072</xref>. <vspace blankLines="1" /> "Root key" (RK) or "bootstrapping
      material" refer to the rRK or rDSRK derived from an EMSK, depending on
      the location of the ER server in home or foreign domain. <vspace
      blankLines="1" /> We use the notation "ERP/DER" and "ERP/DEA" in this
      document to refer to Diameter-EAP-Request and Diameter-EAP-Answer
      commands with the Application Id set to "Diameter ERP Application" <xref
      target="IANA_AppId"></xref>; the same commands are denoted "EAP/DER" and
      "EAP/DEA" when the Application Id in the message is set to "Diameter EAP
      Application" <xref target="RFC4072"></xref>.</t>

      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref
        target="RFC2119"></xref>.</t>
      </section>
    </section>

    <section title="Assumptions">
      <t>This document assumes the existence of at most one logical ER server
      entity in a domain. If several physical servers are deployed for
      robustness, a replication mechanism must be deployed to synchronize the
      ERP states (root keys<cref>FFS: authorization attributes</cref>) between
      these servers. This replication mechanism is out of the scope of this
      document. If multiple ER servers are deployed in the domain, we assume
      that they can be used interchangeably.</t>
    </section>

    <section anchor="Overview" title="Protocol Overview">
      <t>The following figure shows the components involved in ERP, and their
      interactions. <figure align="center" anchor="Fig-Overview"
          title="Diameter ERP Overview">
          <artwork><![CDATA[
                        Diameter                    +--------+
        +-------------+   ERP   +-----------+  (*)  |  Home  |
Peer <->|Authenticator|<=======>| ER server | <---> |  EAP   |
        +-------------+         +-----------+       | server |
                                                    +--------+
(*) Diameter EAP application, explicit bootstrapping scenario only.
]]></artwork>
        </figure> The ER server is located either in the home domain (same as
      EAP server) or in the visited domain (same as authenticator, when it
      differs from the home domain). <list style="hanging">
          <t hangText="QUESTION:"><vspace blankLines="0" /> Can the ER server
          be located in a third domain (ex: broker's) according to ERP
          mechanism?</t>
        </list> <vspace blankLines="1" /> When the peer initiates an ERP
      exchange, the authenticator creates a Diameter-EAP-Request message <xref
      target="RFC4072"></xref>. The Application Id of the message is set to
      that of the Diameter ERP application (code: TBD) in the message. The
      generation of the ERP/DER message is detailed in <xref
      target="Re-authentication"></xref>. <vspace blankLines="1" /> If there
      is an ER server in the same domain as the authenticator (local domain),
      Diameter routing MUST <list style="hanging">
          <t hangText="QUESTION:"><vspace blankLines="0" /> Should this say
          "SHOULD: instead of "MUST"?</t>
        </list> be configured so that this ERP/DER message reachs this server,
      even if the Destination-Realm is not the local domain. <vspace
      blankLines="1" /> If there is no local ER server, the message is routed
      according to its Destination-Realm AVP content, extracted from the realm
      component of the keyName-NAI attribute. As specified in <xref
      target="RFC5296">RFC 5296</xref>, this realm is the home domain of the
      peer in case of a bootstrapping exchange (the 'B' flag is set in the ERP
      message) or the domain of the bootstrapped ER server otherwise. <list
          style="hanging">
          <t hangText="NOTE:"><vspace blankLines="0" /> This actually might
          allow the ER server to be in a third party realm.</t>
        </list> <vspace blankLines="1" /> If no ER server is available in the
      home domain either, the ERP/DER message cannot be delivered, and an
      error DIAMETER_UNABLE_TO_DELIVER is generated <xref
      target="RFC3588"></xref> and returned to the authenticator. The
      authenticator may cache this information (with limited duration) to
      avoid further attempts for ERP with this realm. It may also fallback to
      full EAP authentication to authenticate the peer. <vspace
      blankLines="1" /> When an ER server receives the ERP/DER message, it
      searches its local database for a root key <list style="hanging">
          <t hangText="FFS:"><vspace blankLines="0" /> and authorization
          state?</t>
        </list> matching the keyName part of the User-Name AVP. If such key is
      found, the ER server processes the ERP message as described in <xref
      target="RFC5296">RFC 5296</xref> then creates the ERP/DEA answer as
      described in <xref target="Re-authentication"></xref>. The rMSK is
      included in this answer. <vspace blankLines="1" /> Finally, the
      authenticator extracts the rMSK from the ERP/DEA as described in <xref
      target="RFC5296">RFC 5296</xref>, and forwards the content of the
      EAP-Payload AVP, the EAP-Finish/Re-Auth message, to the peer. <vspace
      blankLines="1" /> If the EAP-Initiate/Re-Auth message has its 'B' flag
      set (Bootstrapping exchange), the ER server should not possess the root
      key in its local database <list style="hanging">
          <t hangText="COMMENT:"><vspace blankLines="0" /> This may not be
          true in future RFC5296bis?</t>
        </list> In this case, the ER server acts as a proxy, and forwards the
      message to the home EAP server after changing its Application Id to
      Diameter EAP and adding an AVP to request the root key. See <xref
      target="Bootstrapping"></xref> for more detail on this process.</t>
    </section>

    <section anchor="Bootstrapping" title="Bootstrapping the ER Server">
      <t>The bootstrapping process involves the home EAP server and the ER
      server, but also impacts the peer and the authenticator. In ERP, the
      peer must derive the same keying material as the ER server. To achieve
      this, it must learn the domain name of the ER server. How this
      information is acquired is outside the scope of this specification, but
      it may involves that the authenticator is configured to advertize this
      domain name, especially in the case of re-authentication after a
      handover. <vspace blankLines="1" /> The bootstrapping of an ER server
      with a given root key happens either during the initial EAP
      authentication of the peer when the EMSK -- from which the root key is
      derived -- is created, during the first re-authentication, or sometime
      between those events. We only consider the first two possibilities in
      this specification, in the following sub-sections.</t>

      <section title="Bootstrapping During the Initial EAP authentication">
        <t>Bootstrapping the ER server during the initial EAP authentication
        (also known as implicit bootstrapping) offers the advantage that the
        server is immediatly available for re-authentication of the peer, thus
        minimizing re-authentication delay. On the other hand, it is possible
        that only a small number of peers will use re-authentication in the
        visited domain. Deriving and caching key material for all the peers
        (for example, for the peers that do not support ERP) is a waste of
        resources and SHOULD be avoided. <vspace blankLines="1" /> To achieve
        implicit bootstrapping, the ER server must act as a Diameter EAP Proxy
        as defined in the Diameter Base Protocol <xref
        target="RFC3588"></xref>, and routing must be configured so that
        Diameter messages of a full EAP authentication are routed through this
        proxy. The figure bellow illustrates this mechanism. <figure
            align="center" anchor="Implict"
            title="ERP Bootstrapping During Full EAP Authentication">
            <artwork><![CDATA[
                         ER server &
Authenticator             EAP Proxy               Home EAP server
=============            ===========              ===============
     ------------------------->
         Diameter EAP/DER
          (EAP-Response)
                               ------------------------->
                                  Diameter EAP/DER
                                   (EAP-Response)
                                  (ERP-RK-Request)

     <==================================================>
        Multi-round Diameter EAP exchanges, unmodified

                               <-------------------------
                                   Diameter EAP/DEA
                                    (EAP-Success)
                                        (MSK)
                                   (Key AVP (rRK))
     <-------------------------
         Diameter EAP/DEA
           (EAP-Success)
               (MSK)
            [ERP-Realm]
]]></artwork>
          </figure> The ER server proxies the first DER of the full EAP
        authentication and adds the ERP-RK-Request AVP inside, if this AVP is
        not already in the message (which might happen if there are ER servers
        in the visited and the home domains), then forwards the request.
        <vspace blankLines="1" /> If the EAP server does not support the ERP
        extensions, it will simply ignore this grouped AVP and continue as
        specified in <xref target="RFC4072">RFC 4072</xref>. If the server
        supports the ERP extensions, it caches the ERP-Realm value with the
        session data, and continues the EAP authentication. When the
        authentication is complete, if it is successful and the EAP method
        generated an EMSK, the server MUST derive the rRK as specified in
        <xref target="RFC5296">RFC 5296</xref>, and include an instance of the
        Key AVP <xref target="KAVP"></xref> in the Diameter-EAP-Answer
        message. <vspace blankLines="1" /> When the ER server proxies a
        Diameter-EAP-Answer message with a Session-Id corresponding to a
        message to which it added an ERP-RK-Answer, and the Result-Code is
        DIAMETER_SUCCESS, it MUST examine the message, extract and remove any
        Key AVP <xref target="KAVP"></xref> from the message, and save its
        content. If the message does not contain an ERP-RK-Answer AVP, the ER
        server MAY cache this information to avoid possible subsequent
        re-authentication attempts for this session. In any case, the
        information stored SHOULD NOT have a lifetime greater than the EMSK
        lifetime <list style="hanging">
            <t hangText="QUESTION:"><vspace blankLines="0" /> How does the ER
            server knows the EMSK lifetime, if there is no ERP-RK-Answer? What
            is the lifetime of the MSK for example?</t>
          </list> <vspace blankLines="1" /> If the ER server is successfully
        bootstrapped, it MAY also add the ERP-Realm AVP after removing the
        ERP-RK-Answer AVP in the EAP/DEA message. This could be used by the
        authenticator to notify the peer that ERP is bootstrapped, with the ER
        domain information. How this information can be transmitted to the
        peer is outside the scope of this document. <list style="hanging">
            <t hangText="QUESTION:"><vspace blankLines="0" /> Is this
            possible? It might be useful...</t>
          </list></t>
      </section>

      <section title="Bootstrapping During the First Re-authentication">
        <t>Bootstrapping the ER server during the first re-authentication
        (also known as explicit bootstrapping) offers several advantages: it
        saves resources, since we generate and cache only root keys that we
        actually need, and it can accomodate inter-domain handovers or ER
        servers that lose their state (for example after reboot). <list
            style="hanging">
            <t hangText="COMMENT:"><vspace blankLines="0" /> This last point
            might not be true currently, since the peer would not issue a
            bootstrapping exchange... But this might change also with
            RFC5296bis AFAIU</t>
          </list> On the other hand, the first re-authentication with the ER
        server requires a one-round-trip exchange with the home EAP server,
        which adds some delay to the process (but it is more efficient than a
        full EAP authentication in any case). It also requires some
        synchronization between the peer and the visited domain: since the ERP
        message used is different <list style="hanging">
            <t hangText="QUESTION:"><vspace blankLines="0" /> and the root key
            used also?</t>
          </list> for the explicit bootstrapping exchange than for normal
        re-authentication; explicit bootstrapping should not be used if
        implicit bootstrapping was already performed. <list style="hanging">
            <t hangText="QUESTION:"><vspace blankLines="0" /> What should we
            do if the ER server receives an explicit bootstrapping request but
            already possess the rDSRK? Can it answer without going to the home
            server? That would be simpler -- planned in rfc5296bis ?</t>
          </list> <vspace blankLines="1" /> The ER server receives the ERP/DER
        message containing the EAP-Initiate/Re-Auth message with the 'B' flag
        set. It proxies this message, and performs the following processing in
        addition to standard proxy operations: <list>
            <t>Changes the Application Id in the header of the message to
            Diameter EAP Application (code 5).</t>

            <t>Change the content of Application-Auth-Id accordingly. <list
                style="hanging">
                <t hangText="QUESTION:"><vspace blankLines="0" /> Is t better
                to leave it unmodified?</t>
              </list></t>

            <t>Add the ERP-RK-Request AVP, which contains the name of the
            domain where the ER server is located.</t>

            <t><list style="hanging">
                <t hangText="QUESTION:"><vspace blankLines="0" /> Add the
                Destination-Host to reach the appropriate EAP server, the one
                with the EMSK. How does the ER server know this
                information?</t>
              </list></t>
          </list> Then the server forwards the EAP/DER request, which is
        routed to the home EAP server. <vspace blankLines="1" /> If the home
        EAP server does not support the ERP extensions, it replies with an
        error since the encapsulated EAP-Initiate/Re-auth command is not
        understood. Otherwise, it processes the ERP request as described in
        <xref target="RFC5296"></xref>. In particular, it includes the
        Domain-Name TLV attribute with the content from the ERP-Realm AVP. It
        creates the EAP/DEA reply message <xref target="RFC4072"></xref>.
        including an instance of the Key AVP <xref target="KAVP"></xref>.
        <list style="hanging">
            <t hangText="QUESTION:"><vspace blankLines="0" /> What about
            authorization AVPs?</t>
          </list> <vspace blankLines="1" /> The ER server receives this
        EAP/DEA and proxies it as follows, in addition to standard proxy
        operations: <list>
            <t>Set the Application Id back to Diameter ERP (code TBD)</t>

            <t>Extract and cache the content of the Key AVP. <list
                style="hanging">
                <t hangText="QUESTION:"><vspace blankLines="0" /> And
                authorization AVPs ?</t>
              </list></t>
          </list> The DEA is then forwarded to the authenticator, that can use
        the rMSK as described in <xref target="RFC5296">RFC 5296</xref>.
        <vspace blankLines="1" /> The figure below captures this proxy
        behavior: <figure align="center" anchor="FigExplicit"
            title="ERP Explicit Bootstrapping Message Flow">
            <artwork><![CDATA[
Authenticator            ER server             Home EAP server
=============            =========             ===============
      ----------------------->
          Diameter ERP/DER
           (EAP-Initiate)
                              ------------------------>
                                    Diameter EAP/DER
                                     (EAP-Initiate)
                                    (ERP-RK-Request)

                              <------------------------
                                    Diameter EAP/DEA
                                      (EAP-Finish)
                                       (Key AVP)
      <----------------------
          Diameter ERP/DEA
            (EAP-Finish)
             (Key AVP)
]]></artwork>
          </figure></t>
      </section>
    </section>

    <section anchor="Re-authentication" title="Re-Authentication">
      <t>This section describes in detail a re-authentication exchange with a
      (bootstrapped) ER server. The following figure summarizes the
      re-authentication exchange. <figure align="center" anchor="FigReauth"
          title="Diameter ERP Re-authentication Exchange">
          <artwork><![CDATA[
                                                     ER server
                                                   (bootstrapped)
 Peer                 Authenticator            (local or home domain)
 ====                 =============            ======================
 [ <------------------------         ]               
 [optional EAP-Initiate/Re-auth-start]               

   ----------------------->
     EAP-Initiate/Re-auth
                           ===============================>
                              Diameter ERP, cmd code DER
                                User-Name: Keyname-NAI
                           EAP-Payload: EAP-Initiate/Re-auth
 
                           <===============================
                              Diameter ERP, cmd code DEA
                            EAP-Payload: EAP-Finish/Re-auth
                                     Key AVP: rMSK
    <----------------------
      EAP-Finish/Re-auth
]]></artwork>
        </figure> In ERP, the peer sends an EAP-Initiate/Re-auth message to
      the ER server via the authenticator. Alternatively, the authenticator
      may send an EAP-Initiate/Re-auth-Start message to the peer to trigger
      the start of ERP. In this case, the peer responds with an
      EAP-Initiate/Re-auth message. <vspace blankLines="1" /> If the
      authenticator does not support ERP (pure <xref target="RFC4072"></xref>
      support), it discards the EAP packets with an unknown ERP-specific code
      (EAP-Initiate). The peer may fallback to full EAP authentication in this
      case. <vspace blankLines="1" /> When the authenticator receives an
      EAP-Initiate/Re-auth message from the peer, it process as described in
      <xref target="RFC5296"></xref> with regards to the EAP state machine. It
      creates a Diameter EAP Request message following the general process of
      <xref target="RFC4072">DiameterEAP</xref>, with the following
      differences: <list>
          <t>The Application Id in the header is set to Diameter ERP (code
          TBD).</t>

          <t>The value in Auth-Application-Id AVP is also set to Diameter ERP
          Application.</t>

          <t>The keyName-NAI attribute from ERP message is used to create the
          content of User-Name AVP and Destination-Realm AVP.</t>

          <t><list style="hanging">
              <t hangText="FFS:"><vspace blankLines="0" /> What about
              Session-ID AVP -- in case of re-auth at the same place, and in
              case of handover?</t>
            </list></t>

          <t>The Auth-Request-Type AVP content is set to [Editor's note: FFS].
          <list style="hanging">
              <t hangText="QUESTION:"><vspace blankLines="0" /> Do we really
              do authorization with Diameter ERP ? -- need to pass the
              authorization attrs to the ER server in that case. Idea FFS: we
              do authorization only for explicit bootstrapping
              exchanges...</t>
            </list></t>

          <t>The EAP-Payload AVP contains the ERP message,
          EAP-Initiate/Re-Auth.</t>
        </list> Then this ERP/DER message is sent as described in <xref
      target="Overview"></xref>. <vspace blankLines="1" /> The ER server
      receives and processes this request as described in <xref
      target="Overview"></xref>. It then creates an ERP/DEA message following
      the general processing described in <xref target="RFC4072">RFC
      4072</xref>, with the following differences: <list>
          <t>The Application Id in the header is set to Diameter ERP (code
          TBD).</t>

          <t>The value of the Auth-Application-Id AVP is also set to Diameter
          ERP Application.</t>

          <t>The EAP-Payload AVP contains the ERP message,
          EAP-Finish/Re-auth.</t>

          <t>In case of successful authentication, an instance of the Key AVP
          containing the Re-authentication Master Session Key (rMSK) derived
          by ERP is included. <list style="hanging">
              <t hangText="QUESTION:"><vspace blankLines="0" /> What about all
              the authorization attributes? If we want to include them, they
              have to be present on the ER server...</t>
            </list></t>
        </list> When the authenticator receives this ERP/DEA answer, it
      processes it as described in <xref target="RFC4072">Diameter EAP</xref>
      and <xref target="RFC5296">RFC 5296</xref>: the content of EAP-Payload
      AVP content is forwarded to the peer, and the contents of the
      Keying-Material AVP <xref target="I-D.ietf-dime-local-keytran"></xref>
      is used as a shared secret for Secure Association Protocol.</t>
    </section>

    <section anchor="ApplicationId" title="Application Id">
      <t>We define a new Diameter application in this document, Diameter ERP
      Application, with an Application Id value of TBD. Diameter nodes
      conforming to this specification in the role of ER server MUST advertise
      support by including an Auth-Application-Id AVP with a value of Diameter
      ERP Application in the of the Capabilities-Exchange-Request and
      Capabilities-Exchange-Answer commands <xref target="RFC3588"></xref>.
      <vspace blankLines="1" /> The primary use of the Diameter ERP
      Application Id is to ensure proper routing of the messages, and that the
      nodes that advertise the support for this application do understand the
      new AVPs defined in <xref target="AVPs"></xref>, although these AVP have
      the 'M' flag cleared.</t>
    </section>

    <section anchor="AVPs" title="AVPs">
      <t>This section discusses the AVPs used by the Diameter ERP
      application.</t>

      <section title="ERP-RK-Request AVP">
        <t>The ERP-RK-Request AVP (AVP Code TBD) is of type grouped AVP. This
        AVP is used by the ER server to indicate its willingness to act as ER
        server for a particular session. <vspace blankLines="1" /> This AVP
        has the M and V bits cleared. <figure align="center" anchor="ERRABNF"
            title="ERP-RK-Request ABNF">
            <artwork><![CDATA[
      ERP-RK-Request ::= < AVP Header: TBD >
                         { ERP-Realm }
                       * [ AVP ]
]]></artwork>
          </figure></t>
      </section>

      <section title="ERP-Realm AVP">
        <t>The ERP-Realm AVP (AVP Code TBD) is of type DiameterIdentity. It
        contains the name of the realm in which the ER server is located.
        <list style="hanging">
            <t hangText="FFS:"><vspace blankLines="0" /> We may re-use
            Origin-Realm here instead? On the other hand, ERP-Realm may be
            useful if the ER server is in a third-party realm, if this is
            possible.</t>
          </list> <vspace blankLines="1" /> This AVP has the M and V bits
        cleared.</t>
      </section>

      <section anchor="KAVP" title="Key AVP">
        <t>The Key AVP <xref target="I-D.ietf-dime-local-keytran"></xref> is
        of type "Grouped" and is used to carry the rMSK and associated
        attributes. The usage of the Key AVP and its constituent AVPs in this
        application is specified in the following sub-sections.</t>

        <section title="Key-Type AVP">
          <t>The value of the Key-Type AVP MUST be set to 3 for rRK.</t>
        </section>

        <section title="Keying-Material AVP">
          <t>The Keying-Material AVP contains rRK sent by the home EAP server
          to the ER server, in answer to a request containing an
          ERP-RK-Request AVP. How this material is derived and used is
          specified in <xref target="RFC5296">RFC 5296</xref>.</t>
        </section>

        <section title="Key-Name AVP">
          <t>This AVP contains the EMSKname which identifies the keying
          material. The derivation of this name is specified in <xref
          target="RFC5296">RGC 5296</xref>.</t>
        </section>

        <section title="Key-Lifetime AVP">
          <t>The Key-Lifetime AVP contains the lifetime of the keying material
          in seconds. It MUST NOT be greater than the remaining lifetime of
          the EMSK from which the material was derived.</t>
        </section>
      </section>
    </section>

    <section anchor="Issues" title="Open issues">
      <t>This document does not address some known issues in Diameter ERP
      mechanism. The authors would like to hear ideas about how to address
      them. <vspace blankLines="1" /> The main issue is the use of ERP for
      authentication after a handover of the peer to a new authenticator (or
      different authenticator port). Diameter ERP is not meant to be a
      mobility protocol. A number of issues appear when we try to do handover
      in Diameter ERP (alone): how to manage the Session-Id AVP; how does the
      ER server provide the Authorization AVPs; how does the peer learn the
      ERP domain of the new authenticator; how does the home server reachs the
      peer to for example terminate the session; and so on... Therefore, the
      management of the session for a mobile peer is not (yet) addressed in
      this document. It must be studied how Diameter ERP can be for example
      used in conjunction with a mobility application (Diameter MIP4, Diameter
      MIP6) to support the optimized re-authentication in such situation.
      <vspace blankLines="1" /> Another issue concerns the case where the home
      realm contains several EAP servers. In multi rounds full EAP
      authentication, the Destination-Host AVP provides the solution to reach
      the same server across the exchanges. Only this server possess the EMSK
      for the session. In case of explicit bootstrapping, the ER server must
      therefore be able to reach the correct server to request the DSRK. A
      solution might consist in saving the Origin-Host AVP of all successful
      EAP/DEA in the ER server, which is a bit similar to the implicit
      bootstrapping scenario described here -- only we save the server name
      instead of the root key, and we must then be able to match the DSRK with
      the user name. <vspace blankLines="1" /> Finally, this document
      currently lacks a description of what happens when a Re-Auth-Request is
      received for a peer on the authenticator.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Hannes Tschofenig wrote the initial draft for this document and
      provided useful reviews. <vspace blankLines="1" /> Vidya Narayanan
      reviewed a rough draft version of the document and found some errors.
      <vspace blankLines="1" /> Lakshminath Dondeti contributed to the early
      versions of the document. <vspace blankLines="1" /> Many thanks to these
      people!</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document requires IANA registration of the following new
      elements in the <eref
      target="http://www.iana.org/assignments/aaa-parameters/">Authentication,
      Authorization, and Accounting (AAA) Parameters</eref> registries.</t>

      <section anchor="IANA_AppId" title="Diameter Application Identifier">
        <t>This specification requires IANA to allocate a new value "Diameter
        ERP" in the "Application IDs" registry <xref target="RFC3588"> using
        the policy specified in Section 11.3 of RFC 3588</xref>.</t>
      </section>

      <section anchor="IANA_AVP" title="New AVPs">
        <t>This specification requires IANA to allocate new values from the
        "AVP Codes" registry <xref target="RFC3588">according to the policy
        specified in Section 11.1 of RFC 3588</xref> for the following AVPs:
        <list>
            <t>ERP-RK-Request</t>

            <t>ERP-Realm</t>
          </list>These AVPs are defined in <xref target="AVPs"></xref>.</t>
      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The security considerations from the following documents also apply
      here: <list style="symbols">
          <t><xref target="RFC3588">RFC 3588</xref></t>

          <t><xref target="RFC4072">RFC 4072</xref></t>

          <t><xref target="RFC5247">RFC 5247</xref></t>

          <t><xref target="RFC5295">RFC 5295</xref></t>

          <t><xref target="RFC5296"></xref></t>
        </list> <list style="hanging">
          <t hangText="FFS:"><vspace blankLines="0" /> Do we really respect
          these security considerations with the mechanism we describe here?
          Is it safe to use ERP-RK-Request / Answer AVPs? What is the worst
          case?</t>
        </list> EAP channel bindings may be necessary to ensure that the
      Diameter client and the server are in sync regarding the key Requesting
      Entity's Identity. Specifically, the Requesting Entity advertises its
      identity through the EAP lower layer, and the user or the EAP peer
      communicates that identity to the EAP server (and the EAP server
      communicates that identity to the Diameter server) via the EAP method
      for user/peer to server verification of the Requesting Entity's
      Identity. <list style="hanging">
          <t hangText="QUESTION:"><vspace blankLines="0" /> What does this
          paragraph actually mean?</t>
        </list></t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &RFC2119;

      &RFC3588;

      &RFC4072;

      &RFC5295;

      &RFC5296;

      &I-D.ietf-dime-local-keytran;

      &RFC3748;
    </references>

    <references title="Informative References">
      &RFC5247;
    </references>
  </back>
</rfc>
"Welcome to our mercurial repository"