<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC6733 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6733.xml">
<!ENTITY RFC4072 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4072.xml">
<!ENTITY RFC4301 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4301.xml">
<!ENTITY RFC5246 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5246.xml">
<!ENTITY RFC6083 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6083.xml">
]>

<?rfc toc="yes" ?>
<?rfc tocdepth="2" ?> 
<?rfc symrefs="no" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc sortrefs="yes" ?>


<rfc number="7966" 
     category='info'
     submissionType="IETF"
     consensus="yes"
     ipr='trust200902'>
     

  <front>

    <title abbrev="Diameter AVP-Level Security">Security at the
    Attribute-Value Pair (AVP) Level for
    Non-neighboring Diameter&nbsp;Nodes:&nbsp;Scenarios and
    Requirements</title>

       <author initials="H.T." surname="Tschofenig" fullname="Hannes Tschofenig">
        <organization></organization>
      <address>
        <postal>
          <street>Hall in Tirol 6060</street>
          <country>Austria</country>
        </postal>
        <email>Hannes.tschofenig@gmx.net </email>
        <uri>http://www.tschofenig.priv.at</uri>
      </address>
    </author>
 
    <author role="editor" initials='J.' surname="Korhonen" fullname='Jouni Korhonen'>
   <organization>Broadcom Limited</organization>
    <address>
	<postal>
	    <street>3151 Zanker Rd.</street>
		<city>San Jose, CA</city>
	    <code>95134</code>
	    <country>United States of America</country>
	</postal>
	<email>jouni.nospam@gmail.com</email>
	</address>
	</author>
		
	<author initials='G.' surname="Zorn" fullname='Glen Zorn'>
           <organization abbrev="Network Zen">Network Zen</organization>
            <address>
                <postal>
                    <street>227/358 Thanon Sanphawut</street>
					<city>Bang Na, Bangkok</city>
                    <code>10260</code>
                    <country>Thailand</country>
                </postal>
                <email>glenzorn@gmail.com</email>
             </address>
    </author>
		
	<author initials='K.' surname="Pillay" fullname='Kervin Pillay'>
           <organization>Internet Solutions</organization>
            <address>
             <postal>
              <street></street>
              <country>South Africa</country>
             </postal>
             <email>kervin.pillay@gmail.com</email>
            </address>
    </author>

	
    <date month="September" year='2016'/>
    <area>OPS</area>
    <workgroup>DIME</workgroup>
    <keyword>Diameter</keyword>
    <keyword>End-to-End Security</keyword>

    <abstract>
      <t>This specification specifies requirements for providing Diameter
      security at the level of individual Attribute-Value Pairs (AVPs).</t>
  </abstract>
  </front>
  <middle>
    
  
 
    <section title='Introduction'>
    
    <t>The Diameter base protocol specification <xref target="RFC6733"/> defines
    security protection between neighboring Diameter peers. Diameter
    mandates that peer connections must be protected by Transport Layer
    Security (TLS) <xref target="RFC5246"/> for TCP, by Datagram TLS (DTLS) <xref
    target="RFC6083"/> for the Stream Control Transmission
    Protocol (SCTP), or by
    security mechanisms that are independent of Diameter (such as IPsec <xref
    target="RFC4301"/>). 
These security protocols offer a wide range of security
    properties, including entity authentication, data-origin authentication,
    integrity protection, confidentiality protection, and replay protection. They also
    support a large number of cryptographic algorithms, algorithm negotiation,
    and different types of credentials. It should be understood that
    TLS/DTLS/IPsec in the Diameter context does not provide end-to-end security
    unless the Diameter nodes are direct peers, i.e., neighboring Diameter nodes.
    The current Diameter security is realized hop by hop.</t>

    <t>The need to also offer additional security protection of
    AVPs between non-neighboring Diameter nodes was recognized very early
    in the work on Diameter. This led to work on Diameter security using the
    Cryptographic Message Syntax (CMS) <xref
    target="DIAMETER-CMS"/>. However, due to the lack of deployment interest
    at that time (and the complexity of the developed solution), the
    specification was never completed.</t>

    <t>In the meanwhile, Diameter had received a lot of deployment interest from
    the cellular operator community, and because of the sophistication of those
    deployments, the need for protecting Diameter AVPs between non-neighboring
    nodes resurfaced. 
    Since the early 2000s (when the work on <xref
    target="DIAMETER-CMS"/> was discontinued), the Internet
    community has seen advances in cryptographic algorithms (for example,
    authenticated encryption algorithms), and new security building blocks
    have been
    developed.</t>

<t>This document specifies requirements for developing a solution to protect
Diameter AVPs between non-neighboring Diameter nodes.</t>

  </section>
	  
      <section title='Terminology'>
        <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 RFC 2119 <xref target='RFC2119'/>.
        </t>
	<t>This document reuses terminology from the Diameter base specification <xref target="RFC6733"/>.</t>
        
        <t>In the figures below, AVP refers to an
        unprotected AVP, and {AVP}k refers to an AVP that experiences security
        protection (using key "k") without further distinguishing between
        integrity and confidentiality protection.</t>

        <t>The following terms are also used in this document:

         <list style="hanging">
          <t hangText="AAA broker"><vspace blankLines="1"/> 
           An entity that manages Authentication, Authorization, and
	   Accounting (AAA) traffic between roaming 
           partner networks.
          </t>
          <t hangText="AAA broker network"><vspace blankLines="1"/>
              A network operated by a AAA broker, which
              consists of necessary AAA functions to provide AAA
              brokering services for its customer AAA networks. 
          </t>
          <t hangText="Diameter firewall"><vspace blankLines="1"/>
          A Diameter firewall is a proxy (or a
           relay) agent that acts similarly to conventional IP traffic firewalls
           but only at the Diameter AVP and command level. A Diameter firewall may, for
	   example, discard AVPs that violate security policy, thus preventing
	   them from traversing the firewall. The Diameter firewall may even discard entire
           Diameter messages based on the security policy.
          </t>
         </list>
        </t>

        <t>
        </t>
        
      </section>

    
    <section title="Security Threats">

  <t> This section describes various security threats
   that raise the need for protecting Diameter Attribute-Value Pairs
   (AVPs). <xref target="example"/> illustrates an example of a Diameter-based roaming 
   architecture in which Diameter clients within the visited networks 
   need to interact with Diameter servers in the home domain. 
   AAA domains are interconnected using a Diameter-based AAA interconnection network
   labeled as "AAA broker network".
      </t>
	    
	    <t>
<figure title="Example Diameter Deployment" anchor="example">
            <artwork>
              <![CDATA[
   +oooooooooooooooooo+              +====================+
   |   Example.net    |              |                    |
   |                  |              |                    |
+--------+      +--------+        +--------+        +--------+
|Diameter|      |Diameter+--------+Diameter|        |Diameter|
|Client 1|      |Proxy A1|        |Proxy B |        |Proxy C |
| (NAS)  +------+        | +------+        +--------+        |----+
+--------+      +--------+ |      +--------+        +--------+    |
   |                  |    |         |                    |       |
   | Visited Domain 1 |    |         | AAA Broker Network |       |
   +oooooooooooooooooo+    |         +====================+       |
                           |                                      |
                           |                                      |
                           |                                      |
                           |            +\\\\\\\\\\\\\\\\\\\\+    |
                           |     +--------+  Example.com     |    |
                           |     |Diameter|                  |    |
   +oooooooooooooooooo+    |     |Server X+--+         +--------+ |
   |   Example.org    |    |     +--------+  |         |Diameter| |
   |                  |    |     +--------+  +---------+Proxy D |-+
+--------+      +--------+ |     |Diameter|  |         +--------+
|Diameter|      |Diameter| |     |Server Y+--+               |
|Client 2+------+Proxy A2+-+     +--------+    Home Domain   |
| (NAS)  |      |        |              +////////////////////+
+--------+      +--------+              
   |                  |
   | Visited Domain 2 |
   +oooooooooooooooooo+
]]>
            </artwork>
          </figure>
	    </t>
	          
      <t><list style="hanging">
        <t hangText="Eavesdropping:">Some Diameter applications carry
        information that is only intended for consumption by end points, either
        by the Diameter client or by the Diameter server but not by
        intermediaries. As an example, consider the Diameter Extensible
	Authentication Protocol (EAP) application
        <xref target="RFC4072"/> that allows the transport of keying material
        between the Diameter server to the Diameter client (using the
        EAP-Master-Session-Key AVP) for the protection of the air interface
        (i.e., the wireless link) between the end device (such as a mobile
        phone; not shown in the figure) and the Network Access Server (NAS).
        The content of the EAP-Master-Session-Key AVP should benefit from
        protection against eavesdropping by intermediaries. Other AVPs (for
        example, those listed in Section 13.3 of <xref target="RFC6733"/>) might
        also carry sensitive personal data that, when collected by
        intermediaries, allow for traffic analysis. 
        
        <vspace blankLines="1"/>In the context of the deployment shown
        in <xref target="example"/>, the adversary could, for example, be in the
        AAA broker network. </t>
        
        <t hangText="Injection and Manipulation:">The Diameter base protocol
        specification mandates security protection between neighboring nodes,
        but Diameter agents may be compromised or misconfigured and
        inject or manipulate AVPs. To detect such actions, additional security
        protection needs to be applied at the Diameter layer.
        <vspace blankLines="1"/>
        Nodes that could launch such an attack are any Diameter
        agents along the end-to-end communication path.</t>
        
        <t hangText="Impersonation:">Imagine a case where a Diameter message
        from Example.net contains information claiming to be from Example.org.
        This would either require strict verification at the edge of the AAA
        broker network or cryptographic assurance at the Diameter layer to
        prevent a successful impersonation attack.
        <vspace blankLines="1"/>
        Any
        Diameter realm could launch such an attack aiming for financial
        benefits or to disrupt service availability.</t>
      
      </list></t>      
    </section>
    
    <section anchor="use-case" title="Scenarios for Diameter AVP-Level Protection">
        <t>This scenario outlines a number of cases for deploying security
        protection of individual Diameter AVPs. 
		  </t>
		
        <t>In the first scenario, shown in <xref target="e2e-usecase"/>,
        end-to-end security protection is provided between the Diameter client
        and the Diameter server with any number of intermediate Diameter agents.
        Diameter AVPs exchanged between these two Diameter nodes may be protected
        end to end (notation '{AVP}k') or unprotected (notation 'AVP').</t>
	    <t>
        <figure title="End-to-End Diameter AVP Security Protection" anchor="e2e-usecase">
            <artwork>
              <![CDATA[
+--------+                                                +--------+
|Diameter| AVP, {AVP}k                                    |Diameter|
|Client  +-----------------........... -------------------+Server  |
+--------+                                                +--------+
]]>
        </artwork>
        </figure>
        </t>
		
        <t>In the second scenario, shown in <xref target="m2e-usecase"/>, a
        Diameter proxy acts on behalf of the Diameter client with regard to
        security protection. It applies security protection to outgoing
        Diameter AVPs and verifies incoming AVPs. Typically, the proxy 
        enforcing the security protection belongs to the same domain as the
        Diameter client/server without end-to-end security features.
        </t>
	    <t>
        <figure title="Middle-to-End Diameter AVP Security Protection" anchor="m2e-usecase">
            <artwork>
              <![CDATA[
+--------+     +--------+                                 +--------+
|Diameter| AVP |Diameter|   AVP, {AVP}k                   |Diameter|
|Client  +-----+Proxy A +---------- .......... -----------+Server  |
+--------+     +--------+                                 +--------+
]]>
        </artwork>
        </figure>
        </t>
		
        <t>In the third scenario, shown in <xref target="e2m-usecase"/>, a
        Diameter proxy acts on behalf of the Diameter server.</t>
	    <t>
        <figure title="End-to-Middle Diameter AVP Security Protection" anchor="e2m-usecase">
            <artwork>
              <![CDATA[
+--------+                                 +--------+     +--------+
|Diameter| AVP, {AVP}k                     |Diameter| AVP |Diameter|
|Client  +-----------------........... ----+Proxy D +-----+Server  |
+--------+                                 +--------+     +--------+
]]>
        </artwork>
        </figure>
        </t>
        <t>The fourth and the final scenario (see <xref target="m2m-usecase"/>)
        is a combination of the middle-to-end and the end-to-middle scenarios
        shown in Figures <xref target="m2e-usecase" format="counter"/> and <xref
        target="e2m-usecase" format="counter"/>. From a deployment point of view, this scenario is
        easier to accomplish for two reasons. First, Diameter clients and
        Diameter servers remain unmodified. This ensures that no modifications
        are needed to the installed Diameter infrastructure, except for the
        security-enabled proxies, obviously. Second, the key management is also
        simplified since a fewer number of keys need to be negotiated and
        provisioned. The assumption here is that the number of security-enabled
        proxies would be significantly less than unprotected Diameter nodes in
        the installed base.</t>
	    <t>
        <figure title="Middle-to-Middle Diameter AVP Security Protection" anchor="m2m-usecase">
            <artwork>
              <![CDATA[
+--------+     +--------+                  +--------+     +--------+
|Diameter| AVP |Diameter|   AVP, {AVP}k    |Diameter| AVP |Diameter|
|Client  +-----+Proxy A +-- .......... ----+Proxy D +-----+Server  |
+--------+     +--------+                  +--------+     +--------+                      
]]>
        </artwork>
        </figure>
        </t>
	  </section>
	  
      <section title='Requirements'>
	 
	 <t><list style="hanging"> 
       <t hangText="Requirement #1:">The solution MUST support an extensible set
       of cryptographic algorithms.
       <list style="empty">
         <t>Motivation: Solutions MUST be able to evolve to adapt to evolving
         cryptographic algorithms and security requirements. This may include
         the provision of a modular mechanism to allow cryptographic algorithms
         to be updated without substantial disruption to deployed
         implementations.
         </t>
       </list>
     </t>

     <t  hangText="Requirement #2:">The solution MUST support confidentiality,
     integrity, and data-origin authentication. Solutions for integrity
     protection MUST work in a backwards-compatible way with existing Diameter
     applications and therefore be able to traverse legacy proxy and relay agents.</t>

     <t  hangText="Requirement #3:">The solution MUST support replay protection.
     </t>

     <t  hangText="Requirement #4:">The solution MUST support the ability to
     delegate security functionality to another entity.
     <list style="empty">
       <t>Motivation: As described in <xref target="use-case"/>, the ability to
       let a Diameter proxy perform security services on behalf of all
       clients within the same administrative domain is important for
       incremental deployability. The same applies to the other communication
       side where a load balancer terminates security services for the servers
       it interfaces.
       </t>
      </list>
     </t>


     <t hangText="Requirement #5:">The solution MUST be able to selectively apply
     its cryptographic protection to certain Diameter AVPs.  
     <list style="empty">
       <t>Motivation: Some Diameter applications assume that certain AVPs are added,
       removed, or modified by intermediaries. As such, it must be possible to apply
       security protection selectively. Furthermore, there are AVPs that must not be
       confidentiality protected but may still be integrity protected, such as those
       required for Diameter message routing.
       </t>
     </list>
    </t>

    <t hangText="Requirement #6:">The solution MUST define a mandatory-to-implement
      cryptographic algorithm.
      <list style="empty">
        <t>Motivation: For
        interoperability purposes, it is beneficial to have a mandatory-to-implement
        cryptographic algorithm specified (unless profiles for specific usage
        environments specify otherwise).
        </t>
      </list>
    </t>

    <t hangText="Requirement #7:">The solution MUST support symmetric keys and asymmetric keys.
      <list style="empty">
        <t>Motivation: Symmetric and asymmetric cryptographic algorithms
        provide different security services. Asymmetric algorithms, for
        example, allow non-repudiation services to be offered.</t>
      </list>
    </t>

    <t hangText="Requirement #8:">A solution for dynamic key management MUST be
    included in the overall solution framework.
     <list style="empty">
      <t>However, it is assumed that no
        "new" key management protocol needs to be developed; instead, existing ones
        are reused, if at all possible. Rekeying could be triggered by (a)
        management actions and (b) expiring keying material.</t>
     </list>
    </t>
 </list> 
 </t>
        
    </section>

    <section title='Security Considerations' anchor='Security'>
     <t>This entire document focuses on the discussion of new functionality for
      securing Diameter AVPs selectively between non-neighboring nodes.
     </t>
     
     <t>Various security threats are mitigated by selectively applying security
      protection for individual Diameter AVPs. 
      Without protection, there is the
      possibility for password sniffing, confidentiality violation, and AVP
      insertion, deletion, or modification. Additionally, applying a digital
      signature offers non-repudiation capabilities, a feature not yet available
      in today's Diameter deployment. Modification of certain Diameter AVPs may
      not necessarily be the act of malicious behavior but could also be the
      result of misconfiguration. An over-aggressively configured firewalling
      Diameter proxy may also remove certain AVPs. 
   In most cases, data-origin authentication and integrity protection of AVPs
   will provide the most benefits for existing deployments with minimal overhead and
   (potentially) operate in a full-backwards compatible manner.

     </t>
    </section>

  </middle>

  <back>

    <references title='Normative References'>
      &RFC2119; 
      &RFC6733;
    </references>

    <references title='Informative References'>
      

      <reference anchor="DIAMETER-CMS">
        <front>
          <title>Diameter CMS Security Application</title>

          <author initials="P." surname="Calhoun" fullname="Pat	Calhoun">
	    <organization>Black Storm Networks</organization>
	  </author>
	  
	  <author initials="S." surname="Farrell" fullname="Stephen Farrell">
	 <organization>Baltimore Technologies</organization>
	  </author>

	  <author initials="W." surname="Bulley" fullname="William Bulley">
	    <organization>Merit Network, Inc.</organization>
	  </author>

          <date month="March" year="2002" />
        </front>
	<seriesInfo name="Work in Progress," value="draft-ietf-aaa-diameter-cms-sec-04"/>

      </reference>



      &RFC4072; 
      &RFC4301;
      &RFC5246;
      &RFC6083;
    </references>

<section title='Acknowledgments' numbered="no">
<t>We would like to thank Guenther Horn, Martin Dolly, Steve Donovan, 
Lionel Morand, and Tom Taylor (rest in peace, Tom) for their review comments.</t>

<t>The authors also thank Qin Wu, Christer Holmberg, Ben Campbell,
and Radia Perlman, who provided additional reviews during the Last Call.</t>
</section>

</back>
</rfc>
