<?xml version="1.0" encoding="UTF-8"?>
<!-- Edited by John Mattsson for use with xml2rfc -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" []>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc strict="yes" ?>
<?rfc toc="yes" ?>
<?rfc tocdepth="3" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc iprnotified="no" ?>

<rfc category="std" ipr="trust200902" docName="draft-cheng-avtcore-srtp-cloud-00">

<!-- ***** FRONT MATTER ***** -->

<front>

<title abbrev="SRTP Cloud"> Secure Real-time Transport Protocol (SRTP) for Cloud Services</title>

	 <author initials='Y.C' surname="Cheng" fullname='Yi Cheng'>
		<organization abbrev="Ericsson">Ericsson AB</organization>
        <address>
            <postal>
                <street>SE-164 80 Stockholm</street>
                <country>Sweden</country>
            </postal>
            <phone>+46 10 71 17 589</phone>
            <email>yi.cheng@ericsson.com</email>
        </address>
    </author>

	<author initials='J.M' surname="Mattsson" fullname='John Mattsson'>
		<organization abbrev="Ericsson">Ericsson AB</organization>
		<address>
			<postal>
				<street>SE-164 80 Stockholm</street>
				<country>Sweden</country>
			</postal>
			<phone>+46 10 71 43 501</phone>
			<email>john.mattsson@ericsson.com</email>
		</address>
	</author>

	 <author initials='M.N' surname="Naslund" fullname='Mats Naslund'>
		<organization abbrev="Ericsson">Ericsson AB</organization>
        <address>
            <postal>
                <street>SE-164 80 Stockholm</street>
                <country>Sweden</country>
            </postal>
            <phone>+46 10 71 33 739</phone>
            <email>mats.naslund@ericsson.com</email>
        </address>
    </author>
   
	<date />

	<area />

	<workgroup />

	<keyword />

	<abstract>

	<t>In order to support use cases when two or more end-points communicate via one (or more) cloud service (e.g. virtualized cloud-based conferencing) that are not 
	trusted to access the media content, this document describes the use of so called end-to-end (inner) and hop-by-hop (outer) cryptographic transforms within the Secure Real-time Transport Protocol (SRTP). 
	One of the main aspects of the transforms is to make the confidentiality and message authentication independent of the RTP header. Another central aspect is to enable identification of the cryptographic contexts (keys etc.).  Besides the security of the end-points, also trust assumptions regarding the cloud services are addressed.</t>


</abstract>

</front>


<!--  ***** THE MIDDLE ***** -->


<middle>

<section title="Introduction"> <!-- 1. -->

<t>The Secure Real-time Transport Protocol (SRTP) <xref target="RFC3711"/> is a profile of RTP, which can provide confidentiality, 
message authentication, and replay protection to the RTP traffic and to the RTP Control Protocol (RTCP).  The basic SRTP profile in <xref target="RFC3711"/> addresses 
real-time end-to-end use cases, and does not consider use cases where a sender delivers media to one or more receivers via a cloud-based service. One typical example of such use cases is multi-party conferencing, where a middlebox (conference server) forwards media received from one participant to all other participants. <xref target="f1"/> below shows a conference with four participants. </t>

<figure anchor="f1" title="Multi-party conference with a middlebox">
    <artwork align="center"><![CDATA[
+---+      +------------+      +---+
| A |<---->|            |<---->| B |
+---+      |            |      +---+
           | Middlebox  |
+---+      |            |      +---+
| C |<---->|            |<---->| D |
+---+      +------------+      +---+
    ]]></artwork>
</figure>

<t>The cloud based middlebox
   is typically considered as semi-trusted, meaning that the middlebox
   will deliver media as requested, but it cannot be excluded
   that the middlebox will also try to extract the information in the media(e.g.
   infringement of copyrighted content, legal or illegal intercept).
   The reason to not use a fully trusted middlebox is mainly cost and
   convenience, the same forces that drives out-sourcing and cloud
   computing.  The trust model will be made more formal later in this
   document.  What causes problems for standard end-to-end SRTP in these
   settings is its dependence on the actual RTP transport parameters
   which will differ when RTP is used on different hops, i.e., sender-middlebox and middlebox-receiver.</t>

   <t>SRTP is a framework that allows new security functions and new
   transforms to be added and this document defines 
extensions to SRTP to meet the additional use cases
   considered.  One of the main aspects of the transform is to make the
   confidentiality and message authentication independent of the RTP
   header.  This allows for end-to-end protection to be achieved also
   when cloud based middleboxes assign values to the RTP headers, independently
   on each hop.</t>

   <t>Another aspect is that identification of the cryptographic context
   (keys etc.) between the end-points must be extended, as the
   parameters used in <xref target="RFC3711"/> are available only during transport of
   RTP packets over a "hop".  For instance, <xref target="RFC3711"/> specifies that the
   receiver's IP address shall be part of the context identifier, but
   this value may of course not be known to the sender when
   communicating messages via a cloud based middlebox. 
   One may also 
   want to avoid using IP address as context identifier due to privacy considerations.
   Another part of the cryptographic context identifier
   is the SSRC, which may be modified by middleboxes. </t>

   <t>While there certainly are differences between this document and
   <xref target="RFC3711"/> on mechanism level, it is worth noticing that the kind of
   extensions defined herein are conceptually almost identical to the
   SRTP extensions previously defined in <xref target="RFC4383"/>, which adds source
   origin authentication support to SRTP.  Moreover, as far as the
   cryptographic processing is concerned, the cloud based middleboxes may use
   <xref target="RFC3711"/> compliant processing and changes in cryptographic
   processing are thus only needed in the end-points.</t>

<section title="Scope of this Document">

<t>The scope of this document is to specify extensions to SRTP
   (parameters, processing, and cryptographic transforms) to support use cases where a cloud
    based middlebox is involved and to describe the associated trust model. </t>

<t>The existence of cloud based middlebox implies a different trust model than that originally
   considered when designing SRTP.  This manifests itself in terms of
   the need to ensure only authorized access to the different cryptographic
   keys involved, i.e. the extensions defined herein MUST have support
   from some key management scheme.  Similar to the original SRTP
   specification, the actual definition of the key management solution
   is out of scope of this document. </t>
</section>

<section title="Conventions used in this Document">

<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"/>.</t>

<t>Definitions:</t>

	<t><list>
	<t>DoS:	Denial of service</t>
	<t>e2e:	end-to-end</t>
	<t>hbh:	hop-by-hop</t>
	</list></t>


</section>


</section> <!-- Introduction -->






<section title="SRTP Cloud Overview"> <!-- 2. -->


		<section title="Overview">

			<t>A high-level description of the proposed new SRTP functionality is as follows: The first step is to perform a transport independent media protection operation.  The coverage of this transform is the RTP payload only.  This operation is  done with an Authenticated Encryption with Associated Data (AEAD) transform. The media protection should rely on two explicit values for cryptographic synchronization, the Packet Unique Value (PUV) and the SRTP Source (SSS), which are included and forwarded in the payload. </t>

			<t>After the steps making up the transport independent media protection have been performed, the protection processing proceeds as currently defined by <xref target="RFC3711"/>, which results in the addition of the required transport protection.</t>

			<t>Keying for transport protection is performed as described in <xref target="RFC3711"/> and uses the SRTP internal key derivation function.  The key derivation function operates on a master key and a master salt, where the master key (and salt) is here denoted hbh key (and hbh salt).</t>

			<t>The keying for the media protection is defined in an equivalent way, producing keying material for the media transform.  The e2e keying material is based on another master key, the e2e key, which is independent of the hbh key.  Also for the e2e context, a master salt (e2e salt) is defined.  The key derivations used to derive the e2e keying material could preferable use the key derivation function defined in <xref target="RFC3711"/>.</t>


	<t>Note that with the approach taken, only the media protection endpoints will have to implement the handling of two security contexts. One of the defined transforms of <xref target="RFC3711"/> is used for the transport protection (using the hbh key). A cloud middlebox should be able to reuse a <xref target="RFC3711"/> compliant implementation of SRTP to first receive and then resend the media.</t>

			<t>For RTCP, the solution principles described for RTP applies.  However, the main applications for RTCP in a multi-party conference is to both control the traffic over one hop, as well as performing conference media control <xref target="RFC5104"/>, which means that e2e encryption cannot be applied in general.  However, note that there are RTCP application messages, which might benefit from having e2e integrity protection.</t>

		</section>

		<section title="SRTP Cloud Cryptographic Contexts">

			<t>SRTP maintains a cryptographic context, containing master key(s), cryptographic transforms, etc., for the associated SRTP session. Exactly how the parameters in the cryptographic context are agreed upon is a session setup issue and out of scope of SRTP.  SRTP assumes that a cryptographic context or rather the master key therein, is shared only between mutually trusted parties.</t>

<figure anchor="ConSha" title="Context sharing (Sender, Middlebox, Receiver)">
<artwork align="center"><![CDATA[
           e2e context (media protection)            
  <----------------------------------------------->  
+---+                   +---+                   +---+
| S |                   | M |                   | R |
+---+                   +---+                   +---+
  <----------------------> <---------------------->  
       hbh context 1             hbh context 2       
   (transport protection)   (transport protection)   
]]></artwork>
</figure>

<t>Note that in <xref target="ConSha"/>, R represents multiple receivers in the case of multi-party conferencing. Also M may represent several cascading middleboxes.</t>

			<t>The SRTP cryptographic context concept is reusable for the proposed solution.  Conceptually, the originator and the intended end-receiver(s) share an e2e media security context, while a hbh transport security context is shared by an endpoint and an intermediary or by two intermediaries, see <xref target="ConSha"/>.</t>

			<t>The master key(s) in the e2e context MUST be cryptographically independent of, and MUST NOT be deducible from, the master key of any hbh context.  The key management protocol(s) used MUST therefore be able to negotiate keys satisfying these requirements.</t>

			<t>The identification of the hbh context is as defined in <xref target="RFC3711"/>, while the used e2e context is implicitly identified in the session setup.</t>

			<t>A sender will use two cryptographic contexts: an e2e context used for payload protection to the end-receiver(s), and a hbh context used to secure the SRTP transport to the (first) intermediary.  Similarly, the end-receiver(s) will use two contexts.  An intermediary node however, will only use one standard SRTP context for each session.  In other words, an e2e context is used to achieve transport independent media protection, and an hbh context is similarly used to achieve transport protection.</t>

			<t>For both e2e and hbh contexts, it is assumed that cryptographic context parameters, such as master key and salt (if needed) are included.  From these, session keys/salts are derived similarly to <xref target="RFC3711"/>.</t>

		</section>

		<section title="SRTP Cloud Packet Format">

		<t>The packet format is composed of an "inner" e2e (sender-receiver) part embedded in an "outer" hbh (sender-middlebox or middlebox-receiver) part.</t>

		<t>The SRTP Cloud packet format looks approximately like <xref target="SAFPacFor"/></t>

<figure anchor="SAFPacFor"  title="SRTP Cloud packet format">
<artwork align="center"><![CDATA[
+------------+-------------------+-----+-----+-----+-----+
|    hbh     |        e2e        | e2e | e2e | hbh | hbh |
| RTP Header | Protected Payload | PUV | SSS | MKI | MAC |
+------------+-------------------+-----+-----+-----+-----+
]]></artwork>
</figure>

		<t>The additional fields added by the inner e2e security processing are:</t>

		<t><list style="symbols">

			<t>SSS: SRTP Source is a value used by the e2e transform as an identifier for the source within a e2e session. Thus, SSS MUST be unique for all sources within the session.</t>

			<t>PUV: Packet Unique Value for the e2e transform. The PUV shall be unique for each e2e protected payload being generated by a source within a e2e session.</t>

		</list></t>

		<t>The RTP header, hbh MAC, and hbh MKI are in one-to-one correspondence with respective fields of <xref target="RFC3711"/> and will not be discussed further.</t>

		</section>


		<section title="Replay Protection" anchor="KDF">

			<t>When the RTP data is hbh transport protected between server and receiver, replay protection on the transport level is provided as the hbh protection offers the same security features as <xref target="RFC3711"/>.  It is assumed that the server is trusted not to attempt replay of data on media level, unless the user requests it and thus, this is in line with the trust model.</t>

			<t>It is possible to implement replay protection on the media level for e2e transforms when the PUV is a counter. This has to be done on the application layer for the applications that requires it.</t>

		</section>



</section> <!-- 2 -->





<section title="SRTP Cloud Specification">

<section title="The Cloud Extension">

<t>The Cloud extension consists of a new packet format (<xref target="SecPacFor"/>), an
   extended cryptographic context concept (<xref target="ExtCryCon"/>), and new SRTP
   processing at sender/receiver (<xref target="SecCloPro"/>).  Considering only the
   cryptographic processing, cloud based middleboxes are compatible with
   <xref target="RFC3711"/>, and the necessary additional processing is defined in
   <xref target="SecCloProMid"/>.  Senders/receivers need to support new cryptographic
   transforms (see <xref target="SecCryTra"/>).</t>

</section> 

<section title="Terminology">

<t>An e2e session is defined as the set of e2e protected data
   produced under a single e2e context (a security association between
   sender and the ultimate receiver(s), see Section 3.5.1 for the exact
   definition of e2e context).  A e2e session may comprise several
   sources, i.e. several distinct logical e2e media
   streams to be protected by the same e2e context.</t>

<t>A hbh session is defined as the set of hbh protected data
   produced under a single hbh context (a security association between
   two entities, see <xref target="ExtCryCon"/> for the exact definition of hbh
   context).</t>

<t>The cryptographic transforms, keys, etc., used for the e2e and hbh
   protection, respectively, are denoted e2e transform, hbh transform,
   e2e key, hbh key, etc.</t>
   
   <t>Throughout the specification all protocol data fields are assumed to
   be byte aligned, i.e. all defined bit-sizes SHALL be multiples of 8.</t>


</section> 


<section title="Trust Model">

	<t>For the purpose of this document we use the following definitions:</t>

	<t>A is said to trust B with information I, if A is willing to share I with B. In the sequel we will simply say that A trusts B.</t> 

	<t>A is said to have sender-semi-trust in B if A considers B to be "honest-but-curious" in the following sense. A trust B to maintain information I provided by A, and (later) redistribute it to the intended recipients as specified by A (parties that A trust with I). However, A does not trust that B will not also try to extract the information I for him/herself and/or to attempt to distribute I also to other parties, e.g. parties that A does not trust with I.</t> 

	<t>A is similarly said to have receiver-semi-trust in B, if A trusts B to maintain information intended for A and to (later) distribute this information to A if and only if A so requests. However, A does not trust that B will not also attempt to distribute the information to other parties and/or try to extract it him/herself.</t> 

	<t>When it is obvious from the context (or irrelevant) we shall omit the directivity (sender/receiver) and simply say that A semi-trusts B.</t> 

	<t><xref target="FigTruMod"/> shows the assumed trust model in terms of previous definitions.</t>

	<t>In practice, the model means that</t>

	<t><list style="symbols">

		<t>S trusts R,</t>

		<t>S semi-trusts M to deliver information to R, and,</t>

		<t>R semi-trusts M to forward any information intended for R.</t>

	</list></t>

<figure anchor="FigTruMod" title="Trust Model (Sender, Middlebox, Receiver)">
<artwork align="center"><![CDATA[
                      Trust
  -------------------------------------------->
+---+                 +---+                 +---+
| S |                 | M |                 | R |
+---+                 +---+                 +---+
  ---------------------> <---------------------
    Sender-semi-trust      Receiver-semi-trust
]]></artwork>
</figure>

    <t>Note in the case of multi-party conferencing R represents multiple receivers.</t>

	<t>As noted in the use cases above, S may be more concerned with who gets access to the information than R is. Still, this trust model, assuming a bare minimum of sender- and receiver-semi-trust as defined above, has been chosen since it is a simple trust model and seems to apply (qualitatively) as a common denominator for all the use cases where a cloud based middlebox is involved. Note also that the trust between S and R may often be mutual, but we do not require this.</t>

	<t>M does not need to trust either of S or R. However, the trust model also assumes the existence of other parties (not shown) that are not trusted by any of S, M, or R, and which may attempt to intervene with the communication between them and the services provided by M. Thus, depending on the application and the security requirements, authentication of S and R may be needed by some middleboxes in order to detect impersonation and prevent unauthorized access.</t>

	<t>When there are several middleboxes in the path between S and R, it is necessary to assume that the middleboxes semi-trust each other, at least in a transitive sense.  Also, we may then have a situation where S and R does not (directly) semi-trust a common M.</t>

</section> 


<section title="SRTP Cloud Packet Format" anchor="SecPacFor">

<t><xref target="FigSafPac"/> illustrates the format of the SRTP packet with the Cloud extension.</t>

<t>The packet format is composed of an "inner" e2e (sender-receiver)
   part embedded in an "outer" hbh (sender-middlebox or middlebox-
   receiver) part.</t>  

<t>The e2e protected portion provides e2e encryption and authentication of the payload, RTP
   padding, and RTP pad count.  The e2e protected portion also defines
   two new fields (PUV and SSS) for cryptographic synchronization. These two fields, together with the padding flag P in the RTP header, are e2e authenticated.</t>

<figure anchor="FigSafPac" align="left" title="The format of the SRTP Cloud packet.">
<artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<---+
  |V=2|P|X|  CC   |M|     PT      |        sequence number        |    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |
  |                           timestamp                           |    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |
  |           synchronization source (SSRC) identifier            |    |
  +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+    |
  |            contributing source (CSRC) identifiers             |    |
  |                             ....                              |    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |
  |                   RTP extension (OPTIONAL)                    |    |
+>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ |
| |                          payload  ...                         |  | |
| |                               +-------------------------------+  | |
| |                               |  RTP padding  | RTP pad count |  | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  | |
| ~                        e2e PUV (MANDATORY)                    ~  | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  | |
| ~                        e2e SSS (OPTIONAL)                     ~  | |
+>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+-+
| ~                        hbh MKI (OPTIONAL)                     ~  | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  | |
| ~                        hbh MAC (RECOMMENDED)                  ~  | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  | |
|                                                                    | |
+-- hbh Encrypted Portion                   e2e Protected Portion ---+ |
                                                                       |
                                        hbh Authenticated Portion -----+
]]></artwork>
</figure>

   <t>Default e2e transforms, which provide both encryption and
   authentication, and which SHALL be supported are defined in
   Section 3.8.3.</t>

   <t>The e2e protected portion is opaque from the cloud based middlebox point-of-view.</t>

   <t>Thus, by treating the inner e2e protected portion as the (hbh) "encrypted portion"
   of <xref target="RFC3711"/>, the overall SRTP Cloud packet format conforms to standard
   <xref target="RFC3711"/> compliant SRTP.  (Note that the additional fields added in
   the inner e2e part could just as well have been added by a new
   transform defined for SRTP, e.g. padding and/or crypto synch fields.)
   Hence, the hbh MAC and hbh MKI are in one-to-one correspondence with
   the MAC and MKI of <xref target="RFC3711"/> and will not be discussed further.</t>

   <t>The additional fields added by the inner e2e security processing are:</t>
   
   	<t><list style="symbols">

	<t>SSS: SRTP Source is a value used by the SRTP Cloud transform as
      an identifier for the source within an e2e session.  Thus,
      SSS MUST be unique for all sources within the e2e session.
      Since there may be only one such source, the SSS field is
      OPTIONAL and of configurable length.  SSS resembles the SSRC usage
      in RTP/SRTP in the sense that it ensures that two-time pads do not
      occur under the same e2e master key, see Sections 3.8 and 4.2.
      The implementation of the necessary anti-collision mechanism is
      outside the scope of this specification.  The format is
      implementation specific, but the values 0, 1, 2, ..., n-1 MAY be
      used if there are n sources.</t>

	<t>PUV: Packet Unique Value for the e2e transform.  PUV is transform
      dependent, of configurable length, and MANDATORY.  The format is
      transform dependent and security aspects need to be considered
      when defining the format, see Sections 4.2 and 4.4.  For a given
      e2e session and source, the PUV SHALL be unique for each
      generated e2e protected portion.  The PUV is used as input to the
      IV formation for the e2e authenticated encryption transform.</t>

    </list></t>

	<t>Parameters which are configurable have default values (see
   Section 3.8.4), and are otherwise negotiated during e2e/hbh
   session establishment, agreed upon out of band, or hard coded for a
   specific application.  The new fields are of configurable length for
   maximum data compactness (see Table 3.1).</t>

<figure >
<artwork align="center"><![CDATA[
Field       SRTP Counterpart                Typical Size (bytes)
----------------------------------------------------------------
PUV         SRTP Index                                         3
SSS         SSRC (IV formation)                              0-1
----------------------------------------------------------------
Total                                                        3-4
                                                                
                Table 3.1: Additional parameters                
]]></artwork>
</figure>
   
   
</section> 

<section title="Extension of the SRTP Cryptographic Context" anchor="ExtCryCon">

	<t>A SRTP Cloud cryptographic context SHALL consist of two main parts.</t>

	<t><list style="numbers">

	<t>A hbh context.  The hbh context SHALL be an SRTP cryptographic
       context conforming to <xref target="RFC3711"/> and SHALL be used for the hbh
       protection between sender and middlebox, between
       middlebox and receiver, or, between two middleboxes.  The hbh
       context SHALL thus be identified by the &lt;SSRC, destination network address, destination port number&gt; triplet exactly as
       defined in <xref target="RFC3711"/>.</t>

	<t>An e2e context: this part of the context is defined
       below and SHALL be used for the e2e protection between sender and
       receiver(s).</t>

	</list></t>

<section title="Definition of e2e Context">

<t>The e2e context SHALL contain the following e2e transform independent
   parameters.</t>
   
	<t><list style="symbols">
	
<t>an identifier for the e2e authenticated encryption algorithm, i.e., the AEAD cipher, see Section 3.8.3 for the default e2e transform specification,</t>

<t>an identifier for the e2e pseudo-random function,</t>

<t>an e2e master key, which MUST be random and secret to all except
      sender and receiver(s).  The e2e master key MUST be cryptographically
      independent of any hbh key,</t>

<t>an e2e master salt.  Use of e2e master salt is strongly
      RECOMMENDED.  This value, when used, MUST be random, but MAY be
      public.</t>

<t>non-negative integers n_e, and n_s determining the
      length of the e2e session key for authenticated encryption and the e2e session salt.</t>

<t>non-negative integers n_PUV, and n_SSS determining the length of
      the PUV, and SSS fields, respectively.</t>

	</list></t>   

   <t>There may also be need to include e2e transform dependent parameters,
   see Section 3.8.4 for the parameters associated with the default e2e
   transforms.</t>

   <t>Observe that there is no replay protection data in the e2e context,
   see Section 3.6.3.1.  Also note that unlike <xref target="RFC3711"/> cryptographic
   contexts, the e2e context SHALL only contain parameters for RTP
   protection, and SHALL NOT contain parameters for RTCP protection, see
   Section 3.7.</t>

   <t>Only end-points need to support e2e contexts, i.e. senders and
   receivers.</t>     

</section> 

<section title="Identification of e2e Context">

<t>The e2e context SHALL be identified by out-of-band (outside the SRTP
   Cloud Packet) and in-band (in the SRTP Cloud Packet) signaling.</t>


<section title="Out-of-band Signaling">

<t>The e2e context MAY be identified by simply transferring the entire
   context out-of-band (e.g. in the SIP signaling).  Only half-roundtrip
   key management protocols can be used and the e2e context MUST be e2e
   protected so that middleboxes or other unauthorized entities cannot
   access or modify it.</t>
   
<figure anchor="OOBCTX" align="left" title="Transferring the entire e2e context via the middlebox">
<artwork><![CDATA[
                 e2e context                   e2e context           
SIP     +---------------------------+ +---------------------------+  
        |                           v |                           v  
      +---+                        +---+                        +---+
SRTP  | S |----------------------->| M |----------------------->| R |
      +---+                        +---+                        +---+
]]></artwork>
</figure>

</section> 


<section title="In-band Signaling">

<t>The in-band context identification is similar to that of <xref target="RFC3711"/>
   and SHALL be defined as follows.  The e2e context is uniquely
   identified by the triplet context identifier:</t>

<figure align="center">
<artwork><![CDATA[
<SSS, destination network address, destination port number>]]></artwork>
</figure>

<t>The e2e context is here
   implicit from the triplet.  
Just like in <xref target="RFC3711"/> the entire triplet MAY not
   be needed to uniquely identify the e2e context. In the case of multi-party conferencing where there are multiple receivers, SSS alone identifies the e2e context.</t>

</section> 

</section> 

</section> 


<section title="SRTP Cloud Processing" anchor="SecCloPro">

<t>In what follows, it is assumed that the sender and receiver(s) agree
   out-of-band on the e2e cryptographic context.</t>

<t>It is similarly assumed that sender-middlebox and middlebox-receiver,
   respectively, agree on the hbh cryptographic context.</t>

<section title="Sender">

<t>The sender SHALL first, out-of-band, establish the necessary 
hbh context parameters with the middlebox as discussed
   above.  The rest of sender's processing is identical to <xref target="RFC3711"/>
   with the following exceptions and extensions.</t>

	<t><list style="format S%d">

	<t>In analogy with step 1 of <xref target="RFC3711"/>, the sender SHALL determine
       both the hbh context and the e2e context as discussed in
       <xref target="ExtCryCon"/>.  Next, and prior to performing step 2 of <xref target="RFC3711"/>,
       the sender SHALL perform step S2-S4 as defined below.</t>

	<t>The sender SHALL from the e2e master key and master salt derive
       the e2e session key/salt as described in Section 3.8.2.</t>

	<t>The sender SHALL next apply the e2e transform as
       described in Section 3.8.3.</t>

	<t>The sender SHALL then form the e2e protected portion of the SRTP
       Cloud packet by concatenating the result of S3, the PUV, and the SSS.</t>
	
	</list></t>
	
<t>The rest of the sender's processing conforms to <xref target="RFC3711"/>, steps 2-8,
   by treating the result of S5 as the part to be encrypted ("encrypted
   portion" of <xref target="RFC3711"/>) and using the hbh context.</t>
	
</section> 





<section title="Middlebox" anchor="SecCloProMid">

<t>Middleboxes do not have access to the e2e contexts and may even
   be unaware of their definition.  Hence, "context" in this section
   refers to standard <xref target="RFC3711"/> cryptographic contexts, which in turn
   agrees with the hbh contexts defined herein.</t>

<t>Generally, the middlebox SHALL first, out-of-band, establish the
   necessary hbh context parameters with the source or
   destination.</t>

<section title="Acting as Receiver">

	<t><list style="format MR%d">
	
<t>When receiving media from a sender, the middlebox SHALL
        retrieve the correct context and process the packet exactly
        according to the receiver behavior of <xref target="RFC3711"/>.</t>

<t>The middlebox SHALL store sufficient information to later be
        able to map the correct content to the intended receiver, e.g.
        e2e context, or the intended receiver's identity (ID).
        ID format and usage is otherwise out of scope for this
        specification, but could, e.g., be retrieved during the session
        establishment.</t>

<t>The middlebox SHALL store information sufficient to later
        reconstruct the e2e protected portion of the packets
        (corresponding to <xref target="FigSafPac"/>) and to allow the receiver to
        uniquely identify the correct e2e context, e.g. by storing the
        the e2e context.  Note that header information (e.g.  P,
        M, PT, and timestamp) is needed for rendering and information
        from RTCP SR is used for synchronization between streams e.g. in
        a multimedia video/audio session.  Such information also has to
        be stored by the middlebox.</t>

	</list></t>

</section> 

<section title="Acting as Sender">

	<t><list style="format MS%d">
	
	<t>When forwarding media to the receiver, the middlebox SHALL
        retrieve the correct hbh context as specified in <xref target="RFC3711"/>.</t>

   <t>The e2e protected portion SHALL be used as the payload.</t>

<t>An RTP Header SHALL be formed with the P and M fields
    identical to when the payload was stored. The PT field must refer to a PT definition that is equivalent to the one received. The original
    timestamp MAY be used.  The SEQ and SSRC SHOULD be defined
    strictly on hbh basis.</t>

   <t>The middlebox SHALL then concatenate the payload from MS2
        with the RTP header from MS3 and process the packet exactly
        according to the sender behavior of <xref target="RFC3711"/> using the
        retrieved context.  As noted above, certain information from
        RTCP messages, originating from the sender (e.g.  RTCP SRs), may
        also need to be forwarded (and sometimes modified as discussed
        in Section 4.6).  These (and other RTCP messages) SHALL be
        processed according to the SRTCP specification of <xref target="RFC3711"/>.</t>

	</list></t>

</section> 

<section title="Multiple Middleboxes">

<t>When more than one middlebox is present, we consider a pair of
   adjacent middleboxes M1 and M2, where M1 forwards media to M2.</t>

<t>M1 SHALL act as a middlebox sender (Section 3.6.2.2) treating M2
   as a receiver.  M2 SHALL act as a middlebox receiver (Section
   3.6.2.1) treating M1 as a sender.</t>

</section> 


</section> 




<section title="Receiver">

	<t><list style="format R%d" counter="receiver">
	
	<t>The receiver SHALL first, out-of-band, establish the necessary
       hbh context parameters with the middlebox.</t>

   	<t>Step 1 to 8 of <xref target="RFC3711"/> SHALL then be applied, using the hbh
       context to perform hbh processing.</t>

	</list></t>

	<t>The remainder of the processing concerns the e2e protection.  The
   result after performing the hbh authentication check and decryption
   as described above MAY be stored at the receiver for later
   application of the e2e processing.  If so, the receiver MUST store
   the e2e protected portion in order to be able to perform
   the further steps as described below.</t>

	<t><list style="format R%d" counter="receiver">

	<t>The receiver SHALL next determine the e2e context as discussed in
       Section 3.5.2.</t>  

	<t>The receiver SHALL derive the e2e session encryption key as described in Section 3.8.2 using the e2e
       master key and salt.</t>

	<t>The receiver SHALL verify authentication and decrypt the e2e
       protected portion as specified by the e2e transform(s), see
       Section 3.8.3.  If the result of authentication is "FAILURE", the
       packet MUST be discarded from further processing and the event
       SHOULD be logged.  Note that there is no replay protection for
       the e2e context (see Section 4.4).</t>

	<t>The receiver removes PUV, and SSS as appropriate.</t>

	</list></t>

<section title="Replay Protection">

<t>For reasons discussed in Appendix A, it is in general not meaningful
   or desirable to provide application independent replay protection for
   the e2e part.  Some of the identified use cases make this clear by
   having a requirement that the receiver should be able to jump back/
   forward in the e2e media stream.  See Section 4.4 for security
   considerations.</t>

</section> 

</section> 



</section> 



<section title="Use of SRTCP with SRTP Cloud">

<t>SRTCP protection SHALL be provided hbh, conforming to <xref target="RFC3711"/>, and
   SHALL NOT be provided e2e, as this covers most/all use cases
   currently identified.  Protecting e.g. the synchronization
   information e2e would prevent use cases where several stored streams
   are spliced together.  Further RFCs may specify additional e2e
   functionality for SRTCP Cloud.</t>

<t>As noted, it may still be needed to forward information from some of
   the inbound RTCP messages (e.g.  RTCP SR and APP).  Note that if
   several stored streams are spliced together, the timestamps and
   therefore also the synchronization information has to be modified.
   Also note that it may in general not be possible for the 
   middlebox to reproduce RTCP reports accurately reflecting the ongoing
   hbh session.  For instance, since the e2e encryption hides any
   possible RTP padding, there may be a discrepancy between sender's
   byte counts on the S-M and M-R links, respectively.  After decryption
   at R, however, the correct values will be possible to reconstruct.</t>

</section> 




<section title="Cryptographic Transforms" anchor="SecCryTra">

<t>We define a set of pre-defined SRTP Cloud e2e transforms.  Note that
   middleboxes do not need to support any cryptographic transform
   outside what is already defined in <xref target="RFC3711"/>.  The hbh protection may
   reuse any of the existing SRTP transforms such as those defined in
   the original specification <xref target="RFC3711"/>, or, transforms that have been
   added later.  The e2e protection may use the transforms defined in
   Section 3.8.1, or, transforms that have been added later (see
   Section 3.8.5).</t>


<section title="Pre-Defined e2e Transforms">

<t>For e2e protection we use Authenticated Encryption with Associated Data (AEAD) algorithms. Specifically, the AES-GCM (AES Galois/Counter Mode) transforms as specified in <xref target="I-D.ietf-avtcore-srtp-aes-gcm"/> are used as the pre-defined e2e cryptographic transforms, with the following modifications.</t>

<t>Instead of forming the initialization vector as specified in Section 9.1 of <xref target="I-D.ietf-avtcore-srtp-aes-gcm"/>, the IV SHALL be formed  by first concatenating 2-octets of zeroes, a 4-octet SSS (the original SSS padded with as many leading zeros as needed) and a 6-octet PUV (the original PUV padded with as many leading zeros as needed).  The resulting 12-octet value is then bitwise-XORed to the 12-octet session salt to form the 12-octet IV.</t>

<t>SSS and PUV are the SSS/PUV
    fields from the packet.  The PUV is a counter, initially set to zero
    and then increasing by one (1) for each packet.  The maximum allowed
    size of the PUV for AES-GCM SHALL be 48 bits.  If the SSS field is not
    present, the value 0 (zero) SHALL be used.  The maximum allowed size
    of the SSS for AES-GCM SHALL be 32 bits.</t>


   <t>The associated data specified in Section 9.2 of <xref target="I-D.ietf-avtcore-srtp-aes-gcm"/> is redefined as:</t>

   <t>Associated Data: The padding flag P (1 bit), PUV (n_PUV bits) and SSS (if used, n_SSS bits)</t>

</section> 

<section title="Session Key Derivation">

<t>For the hbh security processing, session key derivation SHALL be done
   exactly as in <xref target="RFC3711"/> using the hbh master key and salt.</t>

<t>For the e2e security processing the key derivation is also identical
   to <xref target="RFC3711"/> with the following exceptions</t>
   
   	<t><list style="symbols">

	<t>The e2e master key and salt, SHALL be used together with the
      defined labels of <xref target="RFC3711"/> for derivation of the different keys.</t>

	<t>The key derivation rate SHALL be zero.</t>

	</list></t>

   

</section> 

<section title="Default Transforms">

<t>The default hbh encryption transform SHALL be the NULL encryption
   algorithm, the default hbh authentication transform SHALL be HMAC-
   SHA1, and the default hbh pseudo-random function SHALL be AES-CM.
   The transforms are defined in Sections 4.1.1, 4.2.1, and 4.3.3 of
   <xref target="RFC3711"/>.</t>

<t>The default e2e cryptographic transforms SHALL be AES-GCM as defined in
   Section 3.8.1. The default e2e pseudo-random
   function SHALL be AES-CM as defined in <xref target="RFC3711"/>, Section 4.3.3.</t>

</section> 

<section title="SRTP Cloud Default Parameters">

<t>The default hbh parameters SHALL be identical to <xref target="RFC3711"/>.</t>

<t>The default e2e parameters for master and session key lengths are the
   same as in <xref target="RFC3711"/> with the differences in transform definition as
   defined above and the following additional exception.</t>

   	<t><list style="symbols">

	<t>Replay window size: N/A (or 0).</t>

	</list></t>

<t>We also add the following additional bit-length parameters:</t>


<figure >
<artwork align="center"><![CDATA[
   parameter | min | default    
   ----------+-----+--------    
   n_PUV     |  16 |      24    
   n_SSS     |   0 |       0    
                                
Table 3.2: Additional parameters
]]></artwork>
</figure>


</section> 

<section title="Adding Future e2e Transforms">

   <t>Adding transforms for the hbh protection SHALL follow the existing
   guidelines of <xref target="RFC3711"/>.  Indeed, any current (or future, as far as
   we can see) transform specification for SRTP is applicable for usage
   with the hbh protection.</t>

   <t>To add an e2e transform, the accompanying specification MUST, besides
   specifying the cryptographic operations, define the format and usage
   of the PUV field and, if used, for the SSS field and any possible
   additional field, e.g. padding.</t>

</section> 


</section> 

</section> 





<section title="Security Considerations">

<section title="General">

<t>Though it may seem that there are quite a few differences between the
   cryptography and key management used in <xref target="RFC3711"/> and the
   corresponding functions defined here, the differences are actually
   smaller than one may think and the security considerations turn out
   to be essentially equivalent.</t>

<t>As noted, a problem of SRTP in applications with cloud based middlebox is the transforms'
   dependence of the SSRC.  The SSRC is part of IV formation and crypto
   context identification in <xref target="RFC3711"/>.</t>

<t>In this specification two new in-band parameters, PUV and
   SSS, are specified.  Note that SSS is used in exactly the
   same way the SSRC is used in <xref target="RFC3711"/>: 
IV formation.  Basically, one can think of 
the SSS as the e2e source identifier.  The SSS is e2e protected.</t>  

</section> 

<section title="Keystream Reuse">

<t>A main concern of <xref target="RFC3711"/> is to avoid keystream reuse.  This
   concern is present also here.  The currently defined encryption transforms are additive stream ciphers, which are sensitive to
   keystream reuse.  It is therefore RECOMMENDED that each session
   utilizes random and cryptographically independent e2e and hbh keys.</t>

<t>When sender and receiver share an e2e master key it may be convenient
   to reuse the key for several e2e sessions/messages via the
   middlebox.  Another situation when key reuse may be beneficial is if
   sender and receiver use the middlebox in a "chat-like" fashion
   (with bi-directional communication using the same e2e master key in
   both directions).  In this case there may be a risk that a message in
   one direction (e.g.  "A-to-B") reuses keystream of some message in
   the other direction ("B-to-A").  For the predefined e2e encryption
   transform such reuse will only be secure if the sender and receiver
   keep state to prohibit reuse of IVs.</t>

<t>Unique IVs MAY be assured by putting requirement on the
   implementation of the sender to ensure that unique SSS values are
   used each time the same e2e master key is reused.  For the
   bidirectional case (as well as for the more general case where a
   group key is used as e2e master key), some out-of-band signaling that
   assures that end-points use distinct SSSs is, as mentioned, REQUIRED.</t>

<t>The situation is essentially equivalent to that of SRTP.  As noted in
   the security considerations of <xref target="RFC3711"/>, keys may be reused (with
   the predefined transforms) if (and only if) unique SSRC values can be
   guaranteed.  Due to the risks of misuse, reuse of master keys between
   sessions is, just as in <xref target="RFC3711"/>, therefore NOT RECOMMENDED.</t>

</section> 

<section title="Authentication and Authorization">

<t>For reasons already discussed, it is RECOMMENDED that middleboxes
   authorize senders and receivers (typically involving authentication)
   before accepting/forwarding messages.  While the content is protected
   by keys supposedly only known to the receiver(s), this provides extra
   protection if the e2e keys have fallen into the wrong hands and it
   also avoids that the middlebox wastes resources, responding to
   spoofed requests.  It is also RECOMMENDED to have e2e authentication
   between sender and receiver(s), which is achieved by applying
   authentication/integrity to the e2e protected portion.</t>

</section> 

<section title="Replay Protection">

<t>Replay protection is provided on an hbh basis by use of an hbh
   transform including message authentication.  It is RECOMMENDED to use
   hbh message authentication as it protects from outsiders attempting
   to change the order of packets.</t>

<t>Since some scenarios considered makes it reasonable to expect that
the receiver may wish to jump (fast-forward or rewind) in the e2e
   protected media flow, it is not meaningful to strictly enforce replay
   protection on an e2e basis.  Note however that our trust model
   assumes that the middleboxes are trusted enough not to attempt to
   replay or reorder media unless the receiver so requests.</t>

<t>It is however still possible (and RECOMMENDED) to provide e2e
   authentication of the packets in combination with inclusion of a
   sequence number in the PUV (as the default e2e transform does).  It
   then becomes infeasible even for the middlebox to fake the
   relative association between a particular packet and its sequence
   number.  This means that the receiver will be able to detect a replay
   that occurs without the receiver actually having requested it.</t>

</section> 

<section title="Key Management Considerations">

   <t>Key management is outside the scope of this specification which is an
   intentional design choice in order not to introduce any dependency on
   using a specific key management scheme.  Nevertheless, some
   considerations need to be highlighted and taken into account when
   deploying this specification in practice.</t>

   <t>To implement the targeted trust model, the main concern is that the
   e2e keys MUST be independent from the hbh keys.  In other words
   knowledge of any hbh key MUST NOT reveal non-trivial information
   about any e2e key.</t>

   <t>This can be achieved by ensuring that key management for hbh and e2e
   protection is carried out independently using fresh, random and
   independent keys each time.  This is the RECOMMENDED approach.</t>

   <t>Another alternative which may be attractive in some cases is to use
   the slightly weaker notion of cryptographic independence.  Here, the
   hbh keys MAY be derived from the e2e keys by applying a sufficiently
   strong pseudo-random function.</t>

   <t>Even if hbh keys are random and independent each time, it is still
   RECOMMENDED that e2e keys are not cached/reused (see Section 4.2 for
   discussion on keystream reuse).</t>

</section> 


<section title="Privacy">

<t>In order for a cloud based middlebox to deliver the correct media (produced
   with the correct e2e context) to the receiver(s), some applications
   may choose to store information regarding the identity of the sender
   and will be able to deduce the communication taking part between the
   two.</t>

<t>To enhance privacy, senders/receivers may use agreed pseudonyms or
   other similar Privacy Enhancing Techniques (PET)s. 
  Complete anonymity may be in conflict with
   the requirement that the middlebox needs protection from flooding
   by garbage or other forms of unwanted traffic.</t>

</section> 

<section title="RTCP Considerations">

<t>As specified, RTCP is only protected on hbh basis.  This is motivated
   by the assumption that a middlebox indeed is a true store-and-
   forward entity (as opposed to performing a more intelligent
   function).  The inbound/outbound RTP sessions are then different and
   RTCP then reports only on the current RTP session.  As noted though,
   it may still be useful to forward e.g. (modified) sender reports to
   the receiver using hbh RTCP protection.</t>

</section> 

<section title="Malicious middleboxes">

<t>Middleboxes are semi-trusted which implies that they are assumed
   to (at least) forward data as requested by the sender/receiver.
   Malicious middleboxes therefore falls outside the trust model.
   Nevertheless, even if a middlebox is malicious beyond our
   assumptions, such attacks will only have DoS effects if e2e
   authentication is used (RECOMMENDED) and could as easily have been
   done by some other party (non-middlebox).  If hbh authentication is
   used (RECOMMENDED), it can even be detected that it is the middlebox
   that modified the e2e protected part.</t>

<t>By modifying RTCP, a malicious middleboxes could perform attacks that
   are not detected but which would be detected if done by some other
   party (non-middlebox).  By incorrectly altering RTCP SR packets, a
   malicious middlebox could forward only parts of messages or mess with
   the synchronization information without being detected.  However, for
   the intended use cases, there seems to be no gain to the middlebox
   owner (typically a cloud service provider or network operator) to perform such attacks to its
   paying customers.</t>

</section> 


</section> 



<section title="Acknowledgements"> <!-- 8. -->

	<t>The authors would like to give special thanks to Magnus Westerlund for his valuable comments and feedback.</t>


</section> <!-- 8 -->



<section title="IANA Considerations"> 

<t>To signal that the new transforms are used, each relevant key
   management protocol needs to register the new transforms including
   numbering scheme and syntax with IANA.</t>

</section>



</middle>


<!--  ***** BACK MATTER ***** -->


<back>


<references title='Normative References'>

<?rfc include="reference.RFC.3711.xml"?>
<?rfc include="reference.RFC.2119.xml"?>
<?rfc include="reference.I-D.draft-ietf-avtcore-srtp-aes-gcm-14.xml"?>

</references>

<references title=' Informative References'>

<?rfc include="reference.RFC.4383.xml"?>
<?rfc include="reference.RFC.5104.xml"?>

</references>

<section title="Use Cases"> <!-- 3. -->

<section title="Problem Statement">

<t>We consider RTP communication solutions that include semi-trusted
   middleboxes, i.e. middleboxes that should not have access to
   cleartext media, but still should be able to have access to other
   data in order to retransmit media according to RTP standard
   procedures.  Below, we provide some use cases where S, M, and R refer
   to Sender, Middlebox, and Receiver.  For each use case, we
   comment on aspects of the trust-model defined above.</t>

<t>Cloud based conferencing: A conference participant (S) talks to other participants (R) via a conference bridge (M) that is hosted in the cloud. Since the participants have no control over the cloud environment which might be under pervasive monitoring, S and R do not want the content of their communications to be disclosed to M. M is only trusted to be a forwarder of (encrypted) media.</t>

<t>Caching Protected Media in the Network: A content provider (S) broadcasts high value encrypted media (e.g.  Internet Protocol Television
   (IPTV), and radio) to clients (R).  A network
   node (M) is enhancing distribution by caching of the media, but is not
   trusted by the content provider and has therefore no access to the
   encryption keys.  A client that missed the beginning of a program
   might stream the media from the network cache instead of listening to
   the broadcast.  Due to the trust model where the content provider
   only trusts the clients, the media needs to be e2e protected.
   Nevertheless, the media also needs to be hbh integrity protected to
   protect against denial-of-service (DoS) attacks.</t>


<t>The typical use case is thus to require that media is (at least)
   confidentiality protected end-to-end (e2e) between the sender and the
   receiver.  At the same time the communication should be protected
   hop-by-hop (hbh) to prevent malicious users from performing denial of
   service attacks by sending bogus data to middleboxes or replaying previous packets.</t>

</section> 








<section title="Security Requirements">

<t>The security requirements for SRTP Cloud are:</t>

	<t><list style='symbols'>

		<t>Transport independent media protection
		<vspace blankLines="1" />

		It SHALL be possible to have media protection that is independent of RTP parameters.
		<vspace blankLines="1" />

		To allow retransmission of received protected media, a transform for protecting the RTP payload that is independent of RTP transport parameters is needed. 
		<vspace blankLines="1" />

		The media protection MUST cover both message authentication and confidentiality protection.
		<vspace blankLines="1" />

		It SHALL be possible to protect several e2e protected media streams with a single e2e context.

		</t>


		<t>Media source authentication
		<vspace blankLines="1" />

		It SHALL be possible to provide e2e source authentication of the media stream.
		<vspace blankLines="1" />

		In a group setting, source authentication is here meant to ensure that the message originated from a member of the group. This requirement is fulfilled if media has authentication protection in a transport independent manner.

		</t>


		<t>Support of playback of protected media streams
		<vspace blankLines="1" />

		A client SHALL be able to do random seek in a protected media stream.
		<vspace blankLines="1" />

		Note that as playback functions like retransmission and random seek capability are features in the described use cases, replay protection cannot be required for transport independent media protection. 
		</t>


		<t>Transport protection
		<vspace blankLines="1" />

		It SHALL be possible to provide transport protection that is independent of the media protection. 
		<vspace blankLines="1" />

		The transport protection MUST be able to provide confidentiality, authentication, and replay protection for RTP and at least authentication and replay protection for RTCP. 
		<vspace blankLines="1" />

		This requirement maps well against SRTP as of <xref target="RFC3711"/>. Transport protection is also a means to provide replay protection of the media on a hop-by-hop basis.</t>


		<t>Separation of security contexts 
		<vspace blankLines="1" />

		It MUST be possible to have independent security contexts for the transport independent media protection and the transport protection.
		<vspace blankLines="1" />

		This means in particular that there has to be two distinct master keys, one for e2e media protection and one for hbh transport protection.
		<vspace blankLines="1" /></t>

	</list></t>

</section> 






<section title="Problems with SRTP in Cloud Based Scenarios">

<t>It would be desirable to be able to offer use of SRTP as a general,
   lightweight mechanism to achieve the above type of protection, but
   trying to do so reveals two main problems.</t>

<t>The first problem is due to the fact that RTP streams received and
   later resent by an middlebox in general are independent; received
   SRTP-encrypted payloads cannot just be retransmitted
   as a new SSRC is most likely used when retransmitting.  And if
   several recorded streams are spliced together, an offset must be
   added to the SEQ and timestamp so that they form a continuous
   sequence.  This in particular implies that SRTP with currently
   defined transforms cannot be applied end-to-end as they depend on the
   RTP header.</t>

<t>The second problem is that in order to provide both e2e and hbh
   protection, two independent security contexts with associated
   protection mechanisms have to coexist; a feature unavailable in SRTP
   as currently specified.  While it is not too difficult to imagine how
   two contexts in place of one might be used, a problem arises when
   specifying how the e2e part of the context should be identified and
   signaled, as current SRTP context definition rests on parameters
   which are not constant end-to-end in the scenario where a middlebox is involved, namely SSRC and receiver's IP address and port.</t>

<t>The SRTP extensions defined in this document address these
   problems.</t>

</section> 




<section title="Design Rationale">

<t>As noted above, different use cases may have slightly different
   security requirements and trust levels and there may be many
   different possibilities to extend SRTP in different directions to
   handle a specific use case (or some subset of use cases).  For
   example, the problems related to the most basic trust model extension
   (need to provide confidentiality e2e and integrity hbh) are due to
   the fact that in SRTP, parties always know both the encryption key
   and the authentication key.  This could be addressed (mainly) by just
   separating encryption and authentication keys (i.e. modifying SRTP
   key derivation and cryptographic context).  However, the solution
   would then become severely limited, e.g. it would not support pre-
   encryption of data or re-transmission of stored data.  Similarly, as
   will be seen below, SRTP Cloud adds some additional in-band data
   fields, though some use cases above could probably be handled without
   them.  Again, the solution would be limited to these use-cases and
   would then not allow e.g. the secure fast-forward/rewind use cases,
   which requires in-band synchronization data.  By making the added
   fields optional, it is possible to support these features as needed,
   yet keeping bandwidth low when such features are not needed.</t>

<t>Another approach would be to use some already defined standard like
   S/MIME or OpenPGP, which are mostly used for secure email.  This
   works well when the entire message is e2e protected and transferred
   as a file from sender to middlebox and from middlebox to receiver,
   but it does not support streaming.  Another drawback is that both
   S/MIME and OpenPGP require the use of public keys.  Protecting each
   RTP packet with both SRTP, and S/MIME or OpenPGP would support
   streaming but would add significant overhead.  Use of (D)TLS or IPsec
   is clearly ruled out since it would only provide hbh protection.</t>

<?rfc subcompact="yes"?>
<t>This specification is rather based on</t>
	<t><list style="hanging" hangIndent="3">
		<t hangText="-">identifying the common denominator(s) to the cloud based middlebox problems, captured in the trust model and requirements of Section 3.2</t>
		<t hangText="-">proposing a single extension of the SRTP framework (see Section 4.1) powerful enough to handle all foreseen middlebox use cases, which, by</t>
		<t hangText="-">simple configuration of the extended framework (Section 4.3) can be adopted to support the requirements of the specific use case at hand.</t>
<?rfc subcompact="no"?>
		</list></t>
		
<t>Considering that the impacts of the present specification on SRTP are
   very similar to those of <xref target="RFC4383"/>, there does not appear to be any
   disadvantage in having a single extension compared to having per-
   use-case extensions.</t>


</section> 



</section> <!-- 3 -->












</back>

</rfc>

