<?xml version="1.0"?>
<?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 I-D.ietf-aaa-diameter-cms-sec PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-aaa-diameter-cms-sec.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 inline="yes"?>
<?rfc toc="yes" ?>
<?rfc tocdepth="2" ?> 
<?rfc symrefs="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<?rfc compact="no" ?>
<?rfc sortrefs="yes" ?>
<?rfc colonspace='yes' ?>


<rfc category='info' ipr='trust200902' docName='draft-ietf-dime-e2e-sec-req-05.txt'>

  <front>
    <title abbrev="Diameter AVP Level Security">AVP Level Security for Non-neighboring Diameter Nodes: Scenarios and Requirements</title>

       <author initials="H.T." surname="Tschofenig" fullname="Hannes Tschofenig">
        <organization>ARM Limited</organization>
      <address>
        <postal>
          <street></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,</city>
	    <code>CA 95134</code>
	    <country>USA</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</city>
                    <code>Bangkok 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 year='2016'/>
    <area>OPS</area>
    <workgroup>DIME</workgroup>
    <keyword>I-D</keyword>
    <keyword>Internet-Draft</keyword>
    <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.</t>
  </abstract>
  </front>
  <middle>
    
  
 
    <section title='Introduction'>
    
    <t>The Diameter base protocol specification <xref target="RFC6733"/> defines
    security protection between neighboring Diameter peers. The Diameter
    mandates that peer connections must be protected by TLS (for TCP) <xref
    target="RFC5246"/>, DTLS (for SCTP) <xref target="RFC6083"/> or using
    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, 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 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 Attribute Value
    Pairs (AVP) 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="I-D.ietf-aaa-diameter-cms-sec"/>. Due to lack of deployment interest
    at that time (and the complexity of the developed solution) the
    specification was, however, 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 re-surfaced. Since early 2000 (when the work on <xref
    target="I-D.ietf-aaa-diameter-cms-sec"/> was discontinued) the Internet
    community had seen advances in cryptographic algorithms (for example,
    authenticated encryption algorithms) and new security building blocks were
    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 documents are to be
          interpreted as described in RFC 2119 <xref target='RFC2119' />.
        </t>
		<t>This document re-uses terminology from the Diameter base specification <xref target="RFC6733"/>.</t>
        
        <t>In the figures below Attribute Value Pair (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 AAA traffic between roaming 
           partner networks.
          </t>
          <t hangText="AAA Broker Network"><vspace blankLines="1"/>
              A network operated by an 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 security policy offending AVPs from
           traversing through it. 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>The following description aims to illustrate various security threats
      that raise the need for protecting Diameter Attribute-Value Pairs (AVPs).
      <xref target="example"/> illustrates an example of 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.
      </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 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 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 end-to-middle and the middle-to-end scenario
        shown in <xref target="e2m-usecase"/> and in <xref
        target="m2e-usecase"/>. 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 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 to 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
     their 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 re-used, 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 focused 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, AVP
      insertion, deletion or modification. Additionally, applying 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)
      operating in a full-backwards compatible manner.
     </t>
    </section>

    <section title='IANA Considerations' anchor='IANA'>
	 <t>This document does not require actions by IANA.</t>
    </section>

    <section title='Acknowledgments'>
	 <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>

  </middle>

  <back>

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

    <references title='Informative References'>
      &I-D.ietf-aaa-diameter-cms-sec;  
      &RFC4072; 
      &RFC4301;
      &RFC5246;
      &RFC6083;
    </references>
  </back>

</rfc>
