<?xml version="1.0" encoding="US-ASCII"?>
<!--used v2 -->
<?rfc rfcedstyle='yes'?>
<?rfc compact='yes'?>
<?rfc subcompact='no'?>
<?rfc rfcprocack='yes'?>
<?rfc toc='yes'?>
<?rfc symrefs='yes'?>
<?rfc sortrefs='yes'?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' [

      <!ENTITY rfc793      SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.0793.xml'>
      <!ENTITY rfc2119     SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
      <!ENTITY rfc4960     SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4960.xml'>
      <!ENTITY rfc2759     SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2759.xml'>
      <!ENTITY rfc3748     SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3748.xml'>
      <!ENTITY rfc5191     SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5191.xml'>
      <!ENTITY rfc5216     SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5216.xml'>
<!ENTITY rfc4005     SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4005.xml'>
<!ENTITY rfc6677 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6677.xml">
<!ENTITY rfc2616 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
<!ENTITY rfc5321 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5321.xml">
<!ENTITY rfc7029 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7029.xml">
    ]>
<rfc submissionType="IETF" ipr='trust200902' number='7057' category='std' consensus='yes' updates='3748'>
  <front>
    <title abbrev="EAP Applicability" >Update to the Extensible Authentication Protocol (EAP) Applicability&nbsp;Statement for&nbsp;Application&nbsp;Bridging&nbsp;for&nbsp;Federated&nbsp;Access&nbsp;Beyond&nbsp;Web&nbsp;(ABFAB)</title>
    <author fullname="Stefan Winter" initials="S." surname="Winter" >
	<organization abbrev="RESTENA" >Fondation RESTENA</organization>
	<address>
		<postal>
			<street>6, rue Richard Coudenhove-Kalergi</street>
			<city>Luxembourg</city>
			<code>1359</code>
			<country>LUXEMBOURG</country>
		</postal>
		<phone>+352 424409 1</phone>
		<facsimile>+352 422473</facsimile>
		<email>stefan.winter@restena.lu</email>
		<uri>http://www.restena.lu.</uri>
	</address>
    </author>
    <author fullname="Joseph Salowey" initials="J." surname="Salowey" >
	<organization abbrev="Cisco" >Cisco Systems</organization>
	<address>
		<postal>
			<street>2901 3rd Ave</street>
			<city>Seattle</city>
			<region>Washington</region>
			<code>98121</code>
			<country>USA</country>
		</postal>
		<email>jsalowey@cisco.com</email>
	</address>
    </author>
    <date month="December" year="2013" />
    <area>Security Area</area>
    <workgroup>ABFAB Working Group</workgroup>
    <keyword>EAP</keyword>
    <keyword>AAA</keyword>



    <abstract>
	    <t>This document updates the  Extensible Authentication Protocol (EAP) applicability statement from RFC 3748 to reflect recent usage of the EAP protocol in the Application Bridging for Federated Access Beyond web (ABFAB) architecture.</t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction" anchor="intro">
<t>The EAP applicability statement in <xref target="RFC3748" /> defines the scope of the Extensible Authentication Protocol to be "for use in network access authentication, where IP layer connectivity may not be available", and states that "Use of EAP for other purposes, such as bulk data transport, is NOT RECOMMENDED".</t>
<t>While some of the reasons for the recommendation against usage of EAP for bulk data transport are still valid, some of the other provisions in the applicability statement have turned out to be too narrow. <xref target="otheruses" /> describes the example where EAP is used to authenticate application-layer access.  <xref target="newstatement" /> provides new text to update Section 1.3., "Applicability", in <xref target="RFC3748" />.</t>
	<section title="Requirements Language" anchor="reqlang">
		<t>In this document, several words are used to signify the
requirements of the specification.  The key words "MUST", "MUST NOT",
"REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",
and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119" />.</t>
	</section>
    </section>
    <section title="Uses of EAP for Application-Layer Access" anchor="otheruses">

<t>Ongoing work in the IETF specifies the use of EAP over Generic Security Service Application Program Interface (GSS-API) for generic application layer access <xref target="RFC7055" />. In the past, using EAP in this context has met resistance due to the lack of channel bindings <xref target="RFC6677" />. Without channel bindings, a peer cannot verify if an authenticator is authorized to provide an advertised service.</t>
<t>However, as additional services use EAP for authentication, the
  distinction of which service is being contacted becomes more
  important.   Application services might have different properties. 
  Consider an environment with multiple printers, some of which provide a confidential service to output documents to a controlled location. If a peer
  sent a document to the wrong service, then potentially sensitive
  information might be printed in an uncontrolled location and be disclosed.  In addition, it
  might be more likely that a low-value service is compromised than
  some high-value service.  If the high-value service could be
  impersonated by a low-value service then the security of the overall
  system would be limited by the security of the lower-value service.</t>
<t>This distinction is present in any environment where peers' security depends on which service they reach. However, it is particularly acute in a federated environment where multiple organizations are involved. It is very likely that these organizations will have different security policies and practices. It is very likely that the goals of these organizations will not entirely be aligned. In many situations, one organization could gain value by being able to impersonate another. In this environment, authenticating the EAP server is insufficient: the peer must also validate that the contacted host is authorized to provide the requested service.</t>
<t>In environments where EAP is used for purposes other than network access
authentication:
<list style="symbols">
<t>All EAP servers and all application access EAP peers MUST
		support channel bindings.  All network access EAP peers
		SHOULD support channel bindings.</t>
<t>Channel binding MUST be used for all application authentication.
The EAP server MUST require that either the correct EAP lower-layer
attribute or another attribute indicating the purpose of the authentication
be present in the channel binding data for application authentication.</t>
<t>Channel binding SHOULD be used for all network access authentication,
		and when channel binding data is present, the EAP server MUST
		require that it contain the correct EAP lower-layer attribute
		to explicitly identify the reason for authentication.</t>
<t>Any new usage of EAP MUST use channel bindings including the
		EAP lower-layer attribute to prevent confusion with network
		access usage.</t>
</list>
Operators need to carefully consider the security implications before relaxing these requirements. One potentially serious attack exists when channel binding is not required and EAP authentication is introduced into an existing service other than network access. A device can be created that impersonates a Network Access Service (NAS) to peers, but actually proxies the authentication to the new application service that accepts EAP authentications.  This may decrease the security of this service even for users who previously used non-EAP means of authentication to the service. </t>
<t>It is REQUIRED for the application layer to prove that both the EAP peer and EAP authenticator possess the
 EAP Master Session Key (MSK).  Failing to validate the possession of the EAP MSK can allow an attacker to insert himself into the conversation and impersonate the peer or authenticator.  In addition, the application should define channel binding attributes that are sufficient to validate that the application service is being correctly represented to the peer. </t>
<section title="Retransmission">
<t>In EAP, the authenticator is responsible for retransmission. By default,
EAP assumes that the lower layer (the application in this context) is
unreliable. The authenticator can send a packet whenever its
retransmission timer triggers. In this mode, applications need to be able to receive and process 
EAP messages at any time during the authentication conversation.
</t>
<t>Alternatively, EAP permits a lower layer to set the retransmission timer
to infinite. When this happens, the lower layer becomes responsible for
reliable delivery of EAP messages. Applications that use a lock-step or
client-driven authentication protocol might benefit from this approach.
</t>
<t>In addition to retransmission behavior, applications need to deal with
discarded EAP messages. For example, whenever some EAP methods receive  erroneous
input, these methods discard the input rather than generating an error
response. If the erroneous input was generated by an attacker,
legitimate input can sometimes be received after the erroneous
input. Applications MUST handle discarded EAP messages,
although the specific way in which discarded messages will be handled
depends on the characteristics of the application. Options include
failing the authentication at the application level, requesting an EAP 
retransmit and waiting for additional EAP input.   </t>
<t>Applications designers that incorporate EAP into their application need to determine how retransmission and message discards are handled.
</t>
</section>
<section title="Re-authentication">
<t>EAP lower layers MAY provide a mechanism for re-authentication to happen
within an existing session <xref target="RFC3748" />. Re-authentication permits security associations to be updated
without establishing a new session. For network access, this can be
important because interrupting network access can disrupt connections
and media.</t>
<t>Some applications might not need re-authentication support. For example,
if sessions are relatively short-lived or if sessions can be replaced
without significant disruption, re-authentication might not provide
value. Protocols like  <xref target="RFC2616" >HyperText Transfer Protocol (HTTP)</xref> and <xref target="RFC5321" >Simple
Mail Transport Protocol (SMTP)</xref> are examples of protocols where
establishing a new connection to update security associations is likely
to be sufficient.
</t>
<t>Re-authentication is likely to be valuable if sessions or connections
are long-lived or if there is a significant cost to disrupting them.
</t>
<t>Another factor may make re-authentication important. Some protocols only
permit one party in a protocol (for example, the client) to establish a
new connection. If another party in the protocol needs the security
association refreshed, then re-authentication can provide a mechanism to
do so.
</t>
<t>Application designers need to determine whether re-authentication support is needed and
which parties can initiate it.
</t>
</section>
        </section>
<section title="Revised EAP Applicability Statement" anchor="newstatement">
<t>The following text is appended to the EAP applicability statement in <xref target="RFC3748" />.  </t>
<t>In cases where EAP is used for application authentication, support for EAP channel bindings is REQUIRED on the EAP peer and EAP server to validate that the host is authorized to provide the services requested.   In addition, the application MUST define channel binding attributes that are sufficient to validate that the application service is being correctly represented to the peer. The protocol carrying EAP MUST prove possession of the EAP MSK
  between the EAP peer and EAP authenticator. In the context of EAP for application access the application is providing the EAP lower layer.   Applications protocols vary so their specific behavior and transport characteristics needs to be considered when determining their retransmission and re-authentication behavior. Circumstances might	
			require that applications need to perform conversion of identities	
			from an application specific character set to UTF-8 or another	
			character set required by a particular EAP method.
                        See also <xref target="RADEXT-NAI" />, Section 2.6, for information 
                        about normalization of identifiers. </t>
    </section>
    <section title="Security Considerations" anchor="security">
<t>In addition to the requirements discussed in the main sections of the document, applications should take into account how server authentication is achieved.  Some deployments may allow for weak server authentication that is then validated with an additional existing exchange that provides mutual authentication. In order to fully mitigate the risk of NAS impersonation when these mechanisms are used, it is RECOMMENDED that mutual channel bindings be used to bind the authentications together as described in <xref target="RFC7029"></xref>. When doing channel binding it is REQUIRED that the authenticator is not able to modify the channel binding data passed between the peer to the authenticator as part of the authentication process.</t>
    </section>
    <section title="Acknowledgements" anchor="acks"><t>Large amounts of helpful text and insightful thoughts were contributed by Sam Hartman, Painless Security. David Black contributed to the text clarifying channel bindings usage.  </t></section>
  </middle>
  <back>
	  <references title="Normative References">
		  &rfc2119;
		  &rfc3748;
		  &rfc6677;
          </references>	
	  <references title="Informative References">

                   &rfc7029;

<!-- draft-ietf-abfab-gss-eap; companion document RFC7055-->
<reference anchor='RFC7055'>
<front>
<title>A GSS-API Mechanism for the Extensible Authentication Protocol</title>

<author initials='S' surname='Hartman' fullname='Sam Hartman' role='editor'>
    <organization />
</author>

<author initials='J' surname='Howlett' fullname='Josh Howlett'>
    <organization />
</author>

<date month='December' year='2013' />

<abstract><t>This document defines protocols, procedures, and conventions to be employed by peers implementing the Generic Security Service Application Program Interface (GSS-API) when using the Extensible Authentication Protocol mechanism.  Through the GS2 family of mechanisms defined in RFC 5801, these protocols also define how Simple Authentication and Security Layer (SASL, RFC 4422) applications use the Extensible Authentication Protocol.</t></abstract>

</front>

<seriesInfo name='RFC' value='7055' />

</reference>

		  &rfc2616;
		  &rfc5321;

<!--draft-ietf-radext-nai; in Last Call as of 12/20/13 -->

<reference anchor='RADEXT-NAI'>
<front>
<title>The Network Access Identifier</title>

<author initials='A' surname='DeKok' fullname='Alan DeKok'>
    <organization />
</author>

<date month='November' day='06' year='2013' />

<abstract><t>In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each others users.  This document defines the syntax for the Network Access Identifier (NAI), the user identity submitted by the client prior to accessing network resources. This document is a revised version of RFC 4282 [RFC4282], which addresses issues with international character sets, as well as a number of other corrections to the previous document.</t></abstract>

</front>

<seriesInfo name='Work in' value='Progress' />

</reference>

	  </references>
  </back>
</rfc>
