<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.1 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-davis-mmusic-srtp-assurance-01" category="std" consensus="true" submissionType="IETF" updates="4568" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="SRTP Assurance">Signaling Additional SRTP Context information via SDP</title>
    <seriesInfo name="Internet-Draft" value="draft-davis-mmusic-srtp-assurance-01"/>
    <author initials="K. R." surname="Davis" fullname="Kyzer R. Davis">
      <organization>Cisco Systems</organization>
      <address>
        <email>kydavis@cisco.com</email>
      </address>
    </author>
    <author initials="E." surname="Valverde" fullname="Esteban Valverde">
      <organization>Cisco Systems</organization>
      <address>
        <email>jovalver@cisco.com</email>
      </address>
    </author>
    <author initials="G." surname="Salgueiro" fullname="Gonzalo Salgueiro">
      <organization>Cisco Systems</organization>
      <address>
        <email>gsalguei@cisco.com</email>
      </address>
    </author>
    <date year="2023"/>
    <area>ART</area>
    <workgroup>mmusic</workgroup>
    <abstract>
      <?line 55?>
<t>This document specifies additional cryptographic attributes for signaling additional Secure Real-time Transport Protocol (SRTP) cryptographic context information via the Session Description Protocol (SDP)
in alongside those defined by RFC4568.</t>
      <t>The SDP extension defined in this document address situations where the receiver needs to quickly and robustly synchronize with a given sender.
The mechanism also enhances SRTP operation in cases where there is a risk of losing sender-receiver synchronization.</t>
    </abstract>
  </front>
  <middle>
    <?line 62?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="discussion" removeInRFC="true">
        <name>Discussion Venues</name>
        <t>Source for this draft and an issue tracker can be found at https://github.com/kyzer-davis/srtp-assurance-rfc-draft.</t>
      </section>
      <section anchor="changelog" removeInRFC="true">
        <name>Changelog</name>
        <t>draft-01</t>
        <ul spacing="compact">
          <li>
            <t>Change contact name from IESG to IETF in IANA Considerations #2</t>
          </li>
          <li>
            <t>Discuss RFC4568 "Late Joiner" in problem statement: #3</t>
          </li>
          <li>
            <t>Split Serial forking scenario into its own section #4</t>
          </li>
          <li>
            <t>Add MIKEY considerations to Protocol Design section #6</t>
          </li>
          <li>
            <t>Change doc title #7</t>
          </li>
          <li>
            <t>Add SEQ abbreviation earlier #8</t>
          </li>
          <li>
            <t>Discuss why this can't be a RTP Header Extension #11</t>
          </li>
          <li>
            <t>Add Appendix further discussing why SDP Security Session Parameters extension not used #5</t>
          </li>
          <li>
            <t>Method to Convey Multiple SSRCs for a given stream #1</t>
          </li>
          <li>
            <t>Discuss why SEQ is signaled in the SDP #9</t>
          </li>
        </ul>
      </section>
      <section anchor="Problem">
        <name>Problem Statement</name>
        <t>While <xref target="RFC4568"/> provides most of the information required to instantiate an SRTP cryptographic context for RTP Packets, 
the state of a few crucial items in the SRTP cryptographic context are missing.
One such item is the Rollover Counter (ROC) defined by Section 3.2.1 <xref target="RFC3711"/>
which is not signaled in any packet across the wire and shared between applications.</t>
        <t>The ROC is one item that is used to create the SRTP Packet Index along with the the <xref target="RFC3550"/> transmitted sequence numbers (SEQ) for a given synchronization sources (SSRC).
The Packet index is integral to the encryption, decryption and authentication process of SRTP key streams.
Failure to synchronize the value properly at any point in the SRTP media exchange leads to encryption or decryption failures, degraded user experience 
and at cross-vendor interoperability issues with many hours of engineering time spent debugging a value that is never negotiated on the wire 
(and oftentimes not even logged in application logs.)</t>
        <t>The current method of ROC handling is to instantiate a new media stream's cryptographic context at 0 as per Section 3.3.1 of <xref target="RFC3711"/>. 
Then track the state ROC for a given cryptographic context as the time continues on and the stream progresses.</t>
        <t><xref target="RFC4568"/>, states 'there is no concept of a "late joiner" in SRTP security descriptions' as the main reason for not conveying the ROC, SSRC, or SEQ via the key management protocol but as one will see below; this argument is not true in practice.</t>
        <t>When joining ongoing streams, resuming held/transferred streams, or devices without embedded application logic for clustering/high availability where a given cryptographic context is resumed; 
without any explicit signaling about the ROC state, devices must make an educated guess as defined by Section 3.3.1 of <xref target="RFC3711"/>.
The method specially estimates the received ROC by calculating ROC-1, ROC, ROC+1 to see which performs a successful decrypt.
While this may work on paper, this process usually only done at the initial instantiation of a cryptographic context rather than at later points later during the session.
Instead many applications take the easy route and set the value at 0 as if this is a new stream.
While technically true from that receivers perspective, the sender of this stream may be encrypting packets with a ROC greater than 0.
Further this does not cover scenarios where the ROC is greater than +1.</t>
        <t>Where possible the ROC state (and the rest of the cryptographic context) is usually synced across clustered devices or high availability pairs via proprietary methods rather than open standards.</t>
        <t>These problems detailed technically above lead to a few very common scenarios where the ROC may become out of sync. 
These are are briefly detailed below with the focus on the ROC Value.</t>
        <t>Joining an ongoing session:</t>
        <ul spacing="compact">
          <li>
            <t>When a receiver joins an ongoing session, such as a broadcast conference, there is no signaling method which can quickly allow the new participant to know the state of the ROC assuming the state of the stream is shared across all participants.</t>
          </li>
        </ul>
        <t>Hold/Resume, Transfer Scenarios:</t>
        <ul spacing="compact">
          <li>
            <t>A session is created between sender A and receiver B. ROC is instantiated at 0 normally and continues as expected.</t>
          </li>
          <li>
            <t>At some point the receiver is put on hold while the sender is connected to some other location such as music on hold or another party altogether.</t>
          </li>
          <li>
            <t>At some future point the receiver is reconnected to the sender and the original session is resumed.</t>
          </li>
          <li>
            <t>The sender may re-assume the original cryptographic context rather rather than create one net new.</t>
          </li>
          <li>
            <t>Here if the sender starts the stream from the last observed sequence number the receiver observed the ROC will be in sync.</t>
          </li>
          <li>
            <t>However there are scenarios where the sender may have been transmitting packets on the previous cryptographic context and if a ROC increment occurred; the receiver would never know. This can lead to problems when the streams are reconnected as the ROC is now out of sync between both parties.</t>
          </li>
          <li>
            <t>Further, a sender may be transferred to some upstream device transparently to them. If the sender does not reset their cryptographic context that new receiver will now be out of sync with possible ROC values.</t>
          </li>
        </ul>
        <t>Serial Forking Case:</t>
        <ul spacing="compact">
          <li>
            <t><xref target="RFC4568"/> itself cites a problematic scenario in their own Appendix A, Scenario B, Problem 3 where a ROC out of sync scenario could occur.</t>
          </li>
          <li>
            <t>The proposed solution for problem 3 involves a method to convey the ROC however known the problem; the authors still did not include this in the base SDP Security specification.</t>
          </li>
        </ul>
        <t>Application Failover (without stateful syncs):</t>
        <ul spacing="compact">
          <li>
            <t>In this scenario a cryptographic context was was created with Device A and B of a high availability pair.</t>
          </li>
          <li>
            <t>An SRTP stream was created and ROC of 0 was created and media streamed from the source towards Device A.</t>
          </li>
          <li>
            <t>Time continues and the sequence wraps from 65535 to 0 and the ROC is incremented to 1.</t>
          </li>
          <li>
            <t>Both the sender and device A are tracking this locally and the encrypt/decrypt process proceeds normally.</t>
          </li>
          <li>
            <t>Unfortunate network conditions arise and Device B must assume sessions of Device A transparently.</t>
          </li>
          <li>
            <t>Without any proprietary syncing logic between Device A and B which disclose the state of the ROC, Device B will likely instantiate the ROC at 0.</t>
          </li>
          <li>
            <t>Alternatively Device B may try to renegotiate the stream over the desired signaling protocol however this does not ensure the remote sender will change their cryptographic context and reset the ROC to 0.</t>
          </li>
          <li>
            <t>The transparent nature of the upstream failover means the local application will likely proceed using ROC 1 while upstream receiver has no method of knowing ROC 1 is the current value.</t>
          </li>
        </ul>
        <t>Secure SIPREC Recording:</t>
        <ul spacing="compact">
          <li>
            <t>If a SIPREC recorder is brought into recording an ongoing session through some form of transfer or on-demand recording solution the ROC may have incremented.</t>
          </li>
          <li>
            <t>Without an SDP mechanism to share this information the SIPREC will be unaware of the full SRTP context required to ensure proper decrypt of media streams being monitored.</t>
          </li>
        </ul>
        <t>Improper SRTP context resets:</t>
        <ul spacing="compact">
          <li>
            <t>As defined by Section 3.3.1 of <xref target="RFC3711"/> an SRTP re-key <bcp14>MUST NOT</bcp14> reset the ROC within SRTP Cryptographic context.</t>
          </li>
          <li>
            <t>However, some applications may incorrectly use the re-key event as a trigger to reset the ROC leading to out-of-sync encrypt/decrypt operations.</t>
          </li>
        </ul>
        <t>Out of Sync Sliding Windows / Sequence Numbers:</t>
        <ul spacing="compact">
          <li>
            <t>There is corner case situation where two devices communicating via a Back to Back User Agent (B2BUA) which is performing RTP-SRTP inter-working.</t>
          </li>
          <li>
            <t>In this scenario the B2BUA is also a session border controller (SBC) tasked with topology abstraction. That is, the signaling itself is abstracted from both parties.</t>
          </li>
          <li>
            <t>In this scenario a hold/resume where a sequence rolls can not only cause problems with the ROC; but can also cause sliding window issues.</t>
          </li>
          <li>
            <t>To be more specific, assume that both parties did have access to the cryptographic context and resumed the old ROC value after the hold thus ROC is not out of sync.</t>
          </li>
          <li>
            <t>What should the sliding window and sequence be set to in this scenario?</t>
          </li>
          <li>
            <t>The post-hold call could in theory have a problem where the sequence number of received packets is lower than what was originally observed before the hold.</t>
          </li>
          <li>
            <t>Thus the sliding window would drop packets until the sequence number gets back to the last known sequence and the sliding window advances.</t>
          </li>
          <li>
            <t>Advertising the Sequence in some capacity to reinitialize the sliding window (along with advertising the ROC) can ensure a remote application can properly re-instantiate the cryptographic context in this scenario.</t>
          </li>
        </ul>
        <t>This is a problem that other SRTP Key Management protocols (MIKEY, DTLS-SRTP, EKT-SRTP) have solved but SDP Security has lagged behind in solution parity. 
For a quick comparison of all SRTP Key Management negotiations refer to <xref target="RFC7201"/> and <xref target="RFC5479"/>.</t>
      </section>
      <section anchor="prevWork">
        <name>Previous Solutions</name>
        <t>As per RFC3711, "Receivers joining an on-going session <bcp14>MUST</bcp14> be given the current ROC value using out-of-band signaling such as key-management signaling."
<xref target="RFC4771"/> aimed to solve the problem however this solution has a few technical shortcomings detailed below.</t>
        <t>First, this specifies the use of Multimedia Internet KEYing (MIKEY) defined by <xref target="RFC3830"/> as the out-of-band signaling method. 
A proper MIKEY implementation requires more overhead than is needed to convey and solve this problem.
By selecting MIKEY as the out-of-band signaling method the authors may have inadvertently inhibited significant adoption by the industry.</t>
        <t>Second, <xref target="RFC4771"/> also transforms the SRTP Packet to include the four byte value after the encrypted payload and before an optional authentication tag. 
This data about the SRTP context is unencrypted on the wire and not covered by newer SRTP encryption protocols such as <xref target="RFC6904"/> and <xref target="RFC9335"/>.
Furthermore this makes the approach incompatible with AEAD SRTP Cipher Suites which state that trimming/truncating the authentication tag weakens the security of the protocol in Section 13.2 of <xref target="RFC7714"/>.</t>
        <t>Third, this is not in line with the standard method of RTP Packet modifications. 
The proposal would have benefited greatly from being an RTP Header Extension rather than a value appended after payload. 
But even an RTP header extension proves problematic in where modern SRTP encryption such as Cryptex defined by <xref target="RFC9335"/> are applied. 
That is, the ROC is a required input to decrypt the RTP packet contents. It does not make sense to convey this data as an RTP Header Extension 
obfuscated by the very encryption it is required to decrypt.</t>
        <t>Lastly, there is no defined method for applications defined for applications to advertise the usage of this protocol via any signaling methods.</t>
        <t><xref target="RFC5159"/> also defined some SDP attributes namely the "a=SRTPROCTxRate" attribute however this does not cover other important values in the SRTP Cryptographic context and has not seen widespread implementation.</t>
        <t><xref target="RFC8870"/> solves the problem for DTLS-SRTP <xref target="RFC5763"/>/<xref target="RFC5764"/> implementations.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="design">
      <name>Protocol Design</name>
      <t>A few points of note are below about this specifications relationship to other SRTP Key Management protocols or SRTP protocols as to leave no ambiguity.</t>
      <dl newline="true">
        <dt>Session Description Protocol (SDP) Security Descriptions for Media Streams:</dt>
        <dd>
          <t>The authors have chosen to avoid modifying RFC4568 a=crypto offers as to avoid backwards compatibility issues with a non-versioned protocol. 
Instead this specification adds to what is defined in SDP Security Framework <xref target="RFC4568"/> by allowing applications
to explicitly negotiate additional items from the cryptographic context such as the packet index ingredients: ROC, SSRC and Sequence Number via a new SDP Attribute.
By coupling this information with the applicable "a=crypto" offers; a receiving application can properly instantiate 
an SRTP cryptographic context at the start of a session, later in a session, after session modification or when joining an ongoing session.</t>
        </dd>
        <dt>Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP):</dt>
        <dd>
          <t>This specifications makes no attempt to be compatible with the Key Management Extension for SDP "a=key-mgmt" defined by <xref target="RFC4567"/></t>
        </dd>
        <dt>ZRTP: Media Path Key Agreement for Unicast Secure RTP:</dt>
        <dd>
          <t>This specifications makes no attempt to be compatible with the Key Management via SDP for ZRTP "a=zrtp-hash" defined by <xref target="RFC6189"/>.</t>
        </dd>
        <dt>MIKEY:</dt>
        <dd>
          <t>This specifications makes no attempt to be compatible with the SRTP Key Management via MIKEY <xref target="RFC3830"/>.</t>
        </dd>
        <dt>DTLS-SRTP, EKT-SRTP, Privacy Enhanced Conferencing items (PERC):</dt>
        <dd>
          <t>All DTLS-SRTP items including Privacy Enhanced Conferencing items (PERC) [ <xref target="RFC8723"/> and <xref target="RFC8871"/> ] are out of scope for the purposes of this specification.</t>
        </dd>
        <dt>Secure Real Time Control Protocol (SRTCP):</dt>
        <dd>
          <t>This specification is  not required by SRTCP since the packet index is carried within the SRTCP packet and does not need an out-of-band equivalent.</t>
        </dd>
        <dt>Source-Specific Media Attributes in the Session Description Protocol (SDP):</dt>
        <dd>
          <t>The authors of this specification vetted <xref target="RFC5576"/> SSRC Attribute "a=ssrc" but felt that it would require too much modification and additions to the SSRC Attribute
specification to allow unknown SSRC values and the other information which needs to be conveyed.
Further, requiring implementation of the core SSRC Attribute RFC could pose as a barrier entry and separating the two into different SDP Attributes is the better option.
An implementation <bcp14>SHOULD NOT</bcp14> send RFC5576 SSRC Attributes alongside SRTP Context SSRC Attributes. 
If both are present in SDP, a receiver <bcp14>SHOULD</bcp14> utilize prioritize the SRTP Context attributes over SSRC Attributes since these attributes will provide better SRTP cryptographic context initialization.</t>
        </dd>
        <dt>Completely Encrypting RTP Header Extensions and Contributing Sources:</dt>
        <dd>
          <t>SRTP Context is compatible with <xref target="RFC9335"/> "a=cryptex" media and session level attribute.</t>
        </dd>
      </dl>
      <section anchor="syntax">
        <name>SDP Considerations</name>
        <t>This specification introduces a new SRTP Context attribute defined as "a=srtpctx".</t>
        <t>The presence of the "a=srtpctx" attribute in the SDP (in either an offer or an answer) indicates that the endpoint is 
signaling explicit cryptographic context information and this data <bcp14>SHOULD</bcp14> be used in place of derived values such as those obtained from late binding or some other mechanism.</t>
        <t>The SRTP Context value syntax utilizes standard attribute field=value pairs separated by semi-colons as seen in <xref target="sampleBase"/>.
The implementation's goal is extendable allowing for additional vendor specific field=value pairs alongside the ones defined in this document or room for future specifications to add additional field=value pairs.</t>
        <figure anchor="sampleBase">
          <name>Base SRTP Context Syntax</name>
          <artwork><![CDATA[
a=srtpctx:<a-crypto-tag> \
  <att_field_1>=<value_1>;<att_field_1>=<att_value_2>
]]></artwork>
        </figure>
        <t>This specification specifically defines SRTP Context Attribute Fields of SSRC, ROC, and SEQ shown in <xref target="sampleSyntax"/>.</t>
        <figure anchor="sampleSyntax">
          <name>Example SRTP Context Syntax</name>
          <artwork><![CDATA[
a=srtpctx:<a-crypto-tag> \
  ssrc=<ssrc_value_hex>;roc=<roc_value_hex>;seq=<last_known_tx_seq_hex>
]]></artwork>
        </figure>
        <t>Note that long lines in this document have been broken into multiple lines using the "The Single Backslash Strategy ('')" defined by <xref target="RFC8792"/>.</t>
        <t>The formal definition of the SRTP Context Attribute, including custom extension field=value pairs is provided by the following ABNF <xref target="RFC5234"/>:</t>
        <sourcecode type="abnf"><![CDATA[
srtp-context   = srtp-attr
                 srtp-tag
                 [srtp-ssrc";"]
                 [srtp-roc";"]
                 [srtp-seq";"]
                 [srtp-ext";"]
srtp-attr      = "a=srtpctx:"
srtp-tag       = 1*9DIGIT 1WSP 
srtp-ssrc      = "ssrc=" ("0x"1*8HEXDIG / "unknown")
srtp-roc       = "roc=" ("0x"1*4HEXDIG / "unknown")
srtp-seq       = "seq=" ("0x"1*4HEXDIG / "unknown")
srtp-ext       = 1*VCHAR "=" (1*VCHAR / "unknown")
ALPHA          = %x41-5A / %x61-7A   ; A-Z / a-z
DIGIT          = %x30-39
HEXDIG         = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
VCHAR          = %x21-7E
]]></sourcecode>
        <t>Leading 0s may be omitted and the alphanumeric hex may be upper or lowercase but at least one 0 must be present. 
Additionally the "0x" provided additional context that these values are hex and not integers.
Thus as per <xref target="sampleCompare"/> these two lines are functionally identical:</t>
        <figure anchor="sampleCompare">
          <name>Comparison with and without Leading 0s</name>
          <artwork><![CDATA[
a=srtpctx:1 ssrc=0x00845FED;roc=0x00000000;seq=0x005D
a=srtpctx:1 ssrc=0x845fed;roc=0x0;seq=0x05d
]]></artwork>
        </figure>
        <t>When SSRC, ROC, or Sequence information needs to be conveyed about a given stream, the a=srtpctx attribute is coupled with the relevant a=crypto attribute in the SDP.</t>
        <t>In <xref target="sampleAttribute"/> the sender has shares the usual cryptographic information as per a=crypto but has included 
other information such as the 32 bit SSRC, 32 bit ROC, and 16 bit Last Known Sequence number as Hex values within the a=srtpctx attribute.
Together these two attributes provide better insights as to the state of the SRTP cryptographic context from the senders perspective.</t>
        <figure anchor="sampleAttribute">
          <name>Example SRTP Context attribute</name>
          <artwork><![CDATA[
a=crypto:1 AEAD_AES_256_GCM \
  inline:3/sxOxrbg3CVDrxeaNs91Vle+wW1RvT/zJWTCUNP1i6L45S9qcstjBv+eo0=\
  |2^20|1:32
a=srtpctx:1 ssrc=0x00845FED;roc=0x0000;seq=0x0150
]]></artwork>
        </figure>
        <t>The value of "unknown" <bcp14>MAY</bcp14> be used in place of any of the fields to indicate default behavior <bcp14>SHOULD</bcp14> be utilized
by the receiving application (usually falling back to late binding or locally derived/stored cryptographic contact information for the packet index.)
The example shown in <xref target="sampleUnknown"/> indicates that only the SSRC of the stream is unknown to the sender at the time of the SDP exchange but 
values for ROC and Last Known Sequence are present. Alternatively, the attribute key and value <bcp14>MAY</bcp14> be omitted entirely.</t>
        <t>This <bcp14>MAY</bcp14> be updated via signaling at any later time but applications <bcp14>SHOULD</bcp14> ensure any offer/answer has the appropriate SRTP Context attribute.</t>
        <t>Applications <bcp14>SHOULD NOT</bcp14> include SRTP Context attribute if all three values are unknown or would be omitted.
For example, starting a new sending session instantiation or for advertising potential cryptographic attributes that are part of a new offer.</t>
        <t><xref target="sampleUnknown"/> shows that tag 1 does not have any SRTP Context parameters rather than rather an SRTP Context attribute with all three values set to "unknown".
This same example shows an unknown value carried with tag 2 and seq has been committed leaving only the ROC as a value shared with the second a=crypto tag.</t>
        <figure anchor="sampleUnknown">
          <name>Example SRTP Context with unknown mappings</name>
          <artwork><![CDATA[
a=crypto:1 AES_CM_128_HMAC_SHA1_32 \
  inline:k4x3YXkTD1TWlNL3BZpESzOFuxkBZmTo0vGa1omW
a=crypto:2 AES_CM_128_HMAC_SHA1_80 \
  inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR
a=srtpctx:2 ssrc=unknown;roc=0x0001
]]></artwork>
        </figure>
        <t>The tag for an SRTP Context attribute <bcp14>MUST</bcp14> follow the peer SDP Security a=crypto tag for a given media stream (m=).
The example in shown in <xref target="sampleTag"/> the sender is advertising an explicit packet index mapping for a=crypto tag 2 for the audio stream and tag 1 for the video media stream. 
Note that some SDP values have been truncated for the sake of simplicity.</t>
        <figure anchor="sampleTag">
          <name>Example crypto and SRTP Context tag mapping</name>
          <artwork><![CDATA[
c=IN IP4 192.0.0.1
m=audio 49170 RTP/SAVP 0
a=crypto:1 AES_CM_128_HMAC_SHA1_80 \
  inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32
a=crypto:2 AEAD_AES_256_GCM \
  inline:HGAPy4Cedy/qumbZvpuCZSVT7rNDk8vG4TdUXp5hkyWqJCqiLRGab0KJy1g=
a=srtpctx:2 ssrc=0xBFBDD;roc=0x0001;seq=0x3039
m=video 49172 RTP/SAVP 126
a=crypto:1 AEAD_AES_128_GCM \
  inline:bQJXGzEPXJPClrd78xwALdaZDs/dLttBLfLE5Q==
a=srtpctx:1 ssrc=0xDD147C14;roc=0x0001;seq=0x3039
]]></artwork>
        </figure>
        <t>It is unlikely a sender will send SRTP Context attributes for every crypto attribute since many will be fully unknown (such as the start of a session.)
However it is theoretically possible for every a=crypto tag to have a similar a=srtpctx attribute for additional details.</t>
        <t>For scenarios where RTP Multiplexing are concerned, EKT-SRTP (<xref target="RFC8870"/>) <bcp14>SHOULD</bcp14> be used in lieu of SDP Security as per <xref target="RFC8872"/> Section 4.3.2.
If SRTP Context attributes are to be used, multiple SSRC/ROC/SEQ values can be "bundled" in a list using parenthesis as a delimter.
This can be observed in <xref target="ExampleMultiSSRC"/> where three SSRC and the respective ROC/SEQ are provided as a list within the a=srtpctx attribute:</t>
        <figure anchor="ExampleMultiSSRC">
          <name>Example SRTP Context with Multiple SSRC</name>
          <artwork><![CDATA[
a=crypto:1 AES_CM_128_HMAC_SHA1_80 \
inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSo
a=srtpctx:1 (ssrc=0x01;roc=0x0;seq=0x1234), \
(ssrc=0x02;roc=0x1;seq=0xABCD), \
(ssrc=0x845fed;roc=0x0000;seq=unknown)
]]></artwork>
        </figure>
        <t>For scenarios where SDP Bundling are concerned, SRTP Context attributes follow the same bundling guidelines defined by <xref target="RFC8859"/>, section 5.7 for SDP Securities a=crypto attribute.</t>
      </section>
      <section anchor="sender">
        <name>Sender Behavior</name>
        <t>Senders utilizing SDP Security via "a=crypto" <bcp14>MUST</bcp14> make an attempt to signal any known packet index values to the peer receiver.
The exception being when all values are unknown, such as at the very start of medias stream negotiation.</t>
        <t>For best results all sending parties of a given session stream <bcp14>SHOULD</bcp14> advertise known packet index values for all media streams.
This should continue throughout the life of the session to ensure any errors or out of sync errors can be quickly corrected via new signaling methods. 
See <xref target="frequency"/> for update frequency recommendations.</t>
      </section>
      <section anchor="receiver">
        <name>Receiver Behavior</name>
        <t>Receivers <bcp14>SHOULD</bcp14> utilize the signaled information in application logic to instantiate the SRTP cryptographic context.
In the even there is no SRTP Context attributes present in SDP receivers <bcp14>MUST</bcp14> fallback to <xref target="RFC3711"/> for guesting 
the ROC and <xref target="RFC4568"/> logic for late binding to gleam the SSRC and sequence numbers (SEQ).</t>
      </section>
      <section anchor="frequency">
        <name>Update Frequency</name>
        <t>Senders <bcp14>SHOULD</bcp14> provide SRTP Context SDP when SDP Crypto attributes are negotiated.
There is no explicit time or total number of packets in which a new update is required from sender to receiver.
This specification will not cause overcrowding on the session establishment protocol's signaling channel if natural session updates, session changes, and session liveliness checks are followed.</t>
      </section>
      <section anchor="extendability">
        <name>Extendability</name>
        <t>As stated in <xref target="syntax"/>, the SRTP Context SDP implementation's goal is extendability allowing for additional vendor specific field=value pairs alongside the ones defined in this document.
This ensures that a=crypto SDP security may remain compatible with future algorithms that need to signal cryptographic context information outside of what is currently specified in <xref target="RFC4568"/>.</t>
        <t>To illustrate, imagine a new example SRTP algorithm and crypto suite is created named "FOO_CHACHA20_POLY1305_SHA256" and the application needs to signal "Foo, "Bar", and "Nonce" values to properly instantiate the SRTP context.
Rather than modify a=crypto SDP security or create a new unique SDP attribute, one can simply utilize SRTP Context SDP's key=value pairs to convey the information. Implementations <bcp14>MUST</bcp14> define how to handle default scenarios where the value is not present or set to "unknown".</t>
        <artwork><![CDATA[
a=crypto:1 FOO_CHACHA20_POLY1305_SHA256 \
 inline:1ef9a49f1f68f75f95feca6898921db8c73bfa53e71e33726c4c983069dd7d44
a=srtpctx:1 foo=1;bar=abc123;nonce=8675309
]]></artwork>
        <t>With this extendable method, all that is now required in the fictional RFC defining "FOO_CHACHA20_POLY1305_SHA256" is to include an "SDP parameters" section which details the expected "a=srtpctx" values and their usages.
This approach is similar to how Media Format Parameter Capability ("a=fmtp") is utilized in modern SDP. An example is <xref target="RFC6184"/>, Section 8.2.1 for H.264 video Media Format Parameters.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>When SDP carries SRTP Context attributes additional insights are present about the SRTP cryptographic context.
Due to this an intermediary <bcp14>MAY</bcp14> be able to analyze how long a session has been active by the ROC value.</t>
      <t>Since the SRTP Context attribute is carried in plain-text (alongside existing values like the SRTP Master Key for a given session)
care <bcp14>MUST</bcp14> be taken as per the <xref target="RFC8866"/> that keying material must not be sent over unsecure channels unless the SDP can be both private (encrypted) and authenticated.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document updates the "attribute-name (formerly "att-field")" sub-registry of the "Session Description Protocol (SDP) Parameters" registry (see Section 8.2.4 of <xref target="RFC8866"/>). 
Specifically, it adds the SDP "a=srtpctx" attribute for use at the media level.</t>
      <table anchor="ianaForm">
        <name>IANA SDP Registration Form</name>
        <thead>
          <tr>
            <th align="left">Form</th>
            <th align="left">Value</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Contact name</td>
            <td align="left">IETF</td>
          </tr>
          <tr>
            <td align="left">Contact email address</td>
            <td align="left">kydavis@cisco.com</td>
          </tr>
          <tr>
            <td align="left">Attribute name</td>
            <td align="left">srtpctx</td>
          </tr>
          <tr>
            <td align="left">Attribute value</td>
            <td align="left">srtpctx</td>
          </tr>
          <tr>
            <td align="left">Attribute syntax</td>
            <td align="left">Provided by ABNF found in <xref target="syntax"/></td>
          </tr>
          <tr>
            <td align="left">Attribute semantics</td>
            <td align="left">Provided by sub-sections of <xref target="design"/></td>
          </tr>
          <tr>
            <td align="left">Usage level</td>
            <td align="left">media</td>
          </tr>
          <tr>
            <td align="left">Charset dependent</td>
            <td align="left">No</td>
          </tr>
          <tr>
            <td align="left">Purpose</td>
            <td align="left">Provide additional insights about SRTP context information not conveyed required by a receiver to properly decrypt SRTP.</td>
          </tr>
          <tr>
            <td align="left">O/A procedures</td>
            <td align="left">SDP O/A procedures are described in <xref target="syntax"/>, specifically sections <xref target="sender"/> and <xref target="receiver"/> of this document.</td>
          </tr>
          <tr>
            <td align="left">Mux Category</td>
            <td align="left">TRANSPORT</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Paul Jones for reviewing early draft material and providing valuable feedback.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="RFC4568">
          <front>
            <title>Session Description Protocol (SDP) Security Descriptions for Media Streams</title>
            <author fullname="F. Andreasen" initials="F." surname="Andreasen"/>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <date month="July" year="2006"/>
            <abstract>
              <t>This document defines a Session Description Protocol (SDP) cryptographic attribute for unicast media streams. The attribute describes a cryptographic key and other parameters that serve to configure security for a unicast media stream in either a single message or a roundtrip exchange. The attribute can be used with a variety of SDP media transports, and this document defines how to use it for the Secure Real-time Transport Protocol (SRTP) unicast media streams. The SDP crypto attribute requires the services of a data security protocol to secure the SDP message. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4568"/>
          <seriesInfo name="DOI" value="10.17487/RFC4568"/>
        </reference>
        <reference anchor="RFC8859">
          <front>
            <title>A Framework for Session Description Protocol (SDP) Attributes When Multiplexing</title>
            <author fullname="S. Nandakumar" initials="S." surname="Nandakumar"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>The purpose of this specification is to provide a framework for analyzing the multiplexing characteristics of Session Description Protocol (SDP) attributes when SDP is used to negotiate the usage of a single 5-tuple for sending and receiving media associated with multiple media descriptions.</t>
              <t>This specification also categorizes the existing SDP attributes based on the framework described herein.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8859"/>
          <seriesInfo name="DOI" value="10.17487/RFC8859"/>
        </reference>
        <reference anchor="RFC8866">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP). SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. This document obsoletes RFC 4566.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8866"/>
          <seriesInfo name="DOI" value="10.17487/RFC8866"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="RFC3830">
          <front>
            <title>MIKEY: Multimedia Internet KEYing</title>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="F. Lindholm" initials="F." surname="Lindholm"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="August" year="2004"/>
            <abstract>
              <t>This document describes a key management scheme that can be used for real-time applications (both for peer-to-peer communication and group communication). In particular, its use to support the Secure Real-time Transport Protocol is described in detail. Security protocols for real-time multimedia applications have started to appear. This has brought forward the need for a key management solution to support these protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3830"/>
          <seriesInfo name="DOI" value="10.17487/RFC3830"/>
        </reference>
        <reference anchor="RFC4567">
          <front>
            <title>Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP)</title>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="F. Lindholm" initials="F." surname="Lindholm"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <date month="July" year="2006"/>
            <abstract>
              <t>This document defines general extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP) to carry messages, as specified by a key management protocol, in order to secure the media. These extensions are presented as a framework, to be used by one or more key management protocols. As such, their use is meaningful only when complemented by an appropriate key management protocol.</t>
              <t>General guidelines are also given on how the framework should be used together with SIP and RTSP. The usage with the Multimedia Internet KEYing (MIKEY) key management protocol is also defined. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4567"/>
          <seriesInfo name="DOI" value="10.17487/RFC4567"/>
        </reference>
        <reference anchor="RFC4771">
          <front>
            <title>Integrity Transform Carrying Roll-Over Counter for the Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="V. Lehtovirta" initials="V." surname="Lehtovirta"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document defines an integrity transform for Secure Real-time Transport Protocol (SRTP; see RFC 3711), which allows the roll-over counter (ROC) to be transmitted in SRTP packets as part of the authentication tag. The need for sending the ROC in SRTP packets arises in situations where the receiver joins an ongoing SRTP session and needs to quickly and robustly synchronize. The mechanism also enhances SRTP operation in cases where there is a risk of losing sender-receiver synchronization. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4771"/>
          <seriesInfo name="DOI" value="10.17487/RFC4771"/>
        </reference>
        <reference anchor="RFC5159">
          <front>
            <title>Session Description Protocol (SDP) Attributes for Open Mobile Alliance (OMA) Broadcast (BCAST) Service and Content Protection</title>
            <author fullname="L. Dondeti" initials="L." role="editor" surname="Dondeti"/>
            <author fullname="A. Jerichow" initials="A." surname="Jerichow"/>
            <date month="March" year="2008"/>
            <abstract>
              <t>This document provides descriptions of Session Description Protocol (SDP) attributes used by the Open Mobile Alliance's Broadcast Service and Content Protection specification. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5159"/>
          <seriesInfo name="DOI" value="10.17487/RFC5159"/>
        </reference>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC5479">
          <front>
            <title>Requirements and Analysis of Media Security Management Protocols</title>
            <author fullname="D. Wing" initials="D." role="editor" surname="Wing"/>
            <author fullname="S. Fries" initials="S." surname="Fries"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="F. Audet" initials="F." surname="Audet"/>
            <date month="April" year="2009"/>
            <abstract>
              <t>This document describes requirements for a protocol to negotiate a security context for SIP-signaled Secure RTP (SRTP) media. In addition to the natural security requirements, this negotiation protocol must interoperate well with SIP in certain ways. A number of proposals have been published and a summary of these proposals is in the appendix of this document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5479"/>
          <seriesInfo name="DOI" value="10.17487/RFC5479"/>
        </reference>
        <reference anchor="RFC5576">
          <front>
            <title>Source-Specific Media Attributes in the Session Description Protocol (SDP)</title>
            <author fullname="J. Lennox" initials="J." surname="Lennox"/>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="T. Schierl" initials="T." surname="Schierl"/>
            <date month="June" year="2009"/>
            <abstract>
              <t>The Session Description Protocol (SDP) provides mechanisms to describe attributes of multimedia sessions and of individual media streams (e.g., Real-time Transport Protocol (RTP) sessions) within a multimedia session, but does not provide any mechanism to describe individual media sources within a media stream. This document defines a mechanism to describe RTP media sources, which are identified by their synchronization source (SSRC) identifiers, in SDP, to associate attributes with these sources, and to express relationships among sources. It also defines several source-level attributes that can be used to describe properties of media sources. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5576"/>
          <seriesInfo name="DOI" value="10.17487/RFC5576"/>
        </reference>
        <reference anchor="RFC5763">
          <front>
            <title>Framework for Establishing a Secure Real-time Transport Protocol (SRTP) Security Context Using Datagram Transport Layer Security (DTLS)</title>
            <author fullname="J. Fischl" initials="J." surname="Fischl"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies how to use the Session Initiation Protocol (SIP) to establish a Secure Real-time Transport Protocol (SRTP) security context using the Datagram Transport Layer Security (DTLS) protocol. It describes a mechanism of transporting a fingerprint attribute in the Session Description Protocol (SDP) that identifies the key that will be presented during the DTLS handshake. The key exchange travels along the media path as opposed to the signaling path. The SIP Identity mechanism can be used to protect the integrity of the fingerprint attribute from modification by intermediate proxies. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5763"/>
          <seriesInfo name="DOI" value="10.17487/RFC5763"/>
        </reference>
        <reference anchor="RFC5764">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Extension to Establish Keys for the Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document describes a Datagram Transport Layer Security (DTLS) extension to establish keys for Secure RTP (SRTP) and Secure RTP Control Protocol (SRTCP) flows. DTLS keying happens on the media path, independent of any out-of-band signalling channel present. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5764"/>
          <seriesInfo name="DOI" value="10.17487/RFC5764"/>
        </reference>
        <reference anchor="RFC6184">
          <front>
            <title>RTP Payload Format for H.264 Video</title>
            <author fullname="Y.-K. Wang" initials="Y.-K." surname="Wang"/>
            <author fullname="R. Even" initials="R." surname="Even"/>
            <author fullname="T. Kristensen" initials="T." surname="Kristensen"/>
            <author fullname="R. Jesup" initials="R." surname="Jesup"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>This memo describes an RTP Payload format for the ITU-T Recommendation H.264 video codec and the technically identical ISO/IEC International Standard 14496-10 video codec, excluding the Scalable Video Coding (SVC) extension and the Multiview Video Coding extension, for which the RTP payload formats are defined elsewhere. The RTP payload format allows for packetization of one or more Network Abstraction Layer Units (NALUs), produced by an H.264 video encoder, in each RTP payload. The payload format has wide applicability, as it supports applications from simple low bitrate conversational usage, to Internet video streaming with interleaved transmission, to high bitrate video-on-demand.</t>
              <t>This memo obsoletes RFC 3984. Changes from RFC 3984 are summarized in Section 14. Issues on backward compatibility to RFC 3984 are discussed in Section 15. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6184"/>
          <seriesInfo name="DOI" value="10.17487/RFC6184"/>
        </reference>
        <reference anchor="RFC6189">
          <front>
            <title>ZRTP: Media Path Key Agreement for Unicast Secure RTP</title>
            <author fullname="P. Zimmermann" initials="P." surname="Zimmermann"/>
            <author fullname="A. Johnston" initials="A." role="editor" surname="Johnston"/>
            <author fullname="J. Callas" initials="J." surname="Callas"/>
            <date month="April" year="2011"/>
            <abstract>
              <t>This document defines ZRTP, a protocol for media path Diffie-Hellman exchange to agree on a session key and parameters for establishing unicast Secure Real-time Transport Protocol (SRTP) sessions for Voice over IP (VoIP) applications. The ZRTP protocol is media path keying because it is multiplexed on the same port as RTP and does not require support in the signaling protocol. ZRTP does not assume a Public Key Infrastructure (PKI) or require the complexity of certificates in end devices. For the media session, ZRTP provides confidentiality, protection against man-in-the-middle (MiTM) attacks, and, in cases where the signaling protocol provides end-to-end integrity protection, authentication. ZRTP can utilize a Session Description Protocol (SDP) attribute to provide discovery and authentication through the signaling channel. To provide best effort SRTP, ZRTP utilizes normal RTP/AVP (Audio-Visual Profile) profiles. ZRTP secures media sessions that include a voice media stream and can also secure media sessions that do not include voice by using an optional digital signature. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6189"/>
          <seriesInfo name="DOI" value="10.17487/RFC6189"/>
        </reference>
        <reference anchor="RFC6904">
          <front>
            <title>Encryption of Header Extensions in the Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="J. Lennox" initials="J." surname="Lennox"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Secure Real-time Transport Protocol (SRTP) provides authentication, but not encryption, of the headers of Real-time Transport Protocol (RTP) packets. However, RTP header extensions may carry sensitive information for which participants in multimedia sessions want confidentiality. This document provides a mechanism, extending the mechanisms of SRTP, to selectively encrypt RTP header extensions in SRTP.</t>
              <t>This document updates RFC 3711, the Secure Real-time Transport Protocol specification, to require that all future SRTP encryption transforms specify how RTP header extensions are to be encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6904"/>
          <seriesInfo name="DOI" value="10.17487/RFC6904"/>
        </reference>
        <reference anchor="RFC7201">
          <front>
            <title>Options for Securing RTP Sessions</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>The Real-time Transport Protocol (RTP) is used in a large number of different application domains and environments. This heterogeneity implies that different security mechanisms are needed to provide services such as confidentiality, integrity, and source authentication of RTP and RTP Control Protocol (RTCP) packets suitable for the various environments. The range of solutions makes it difficult for RTP-based application developers to pick the most suitable mechanism. This document provides an overview of a number of security solutions for RTP and gives guidance for developers on how to choose the appropriate security mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7201"/>
          <seriesInfo name="DOI" value="10.17487/RFC7201"/>
        </reference>
        <reference anchor="RFC7714">
          <front>
            <title>AES-GCM Authenticated Encryption in the Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="K. Igoe" initials="K." surname="Igoe"/>
            <date month="December" year="2015"/>
            <abstract>
              <t>This document defines how the AES-GCM Authenticated Encryption with Associated Data family of algorithms can be used to provide confidentiality and data authentication in the Secure Real-time Transport Protocol (SRTP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7714"/>
          <seriesInfo name="DOI" value="10.17487/RFC7714"/>
        </reference>
        <reference anchor="RFC8723">
          <front>
            <title>Double Encryption Procedures for the Secure Real-Time Transport Protocol (SRTP)</title>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <author fullname="P. Jones" initials="P." surname="Jones"/>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="A.B. Roach" initials="A.B." surname="Roach"/>
            <date month="April" year="2020"/>
            <abstract>
              <t>In some conferencing scenarios, it is desirable for an intermediary to be able to manipulate some parameters in Real-time Transport Protocol (RTP) packets, while still providing strong end-to-end security guarantees. This document defines a cryptographic transform for the Secure Real-time Transport Protocol (SRTP) that uses two separate but related cryptographic operations to provide hop-by-hop and end-to-end security guarantees. Both the end-to-end and hop-by-hop cryptographic algorithms can utilize an authenticated encryption with associated data (AEAD) algorithm or take advantage of future SRTP transforms with different properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8723"/>
          <seriesInfo name="DOI" value="10.17487/RFC8723"/>
        </reference>
        <reference anchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
        <reference anchor="RFC8870">
          <front>
            <title>Encrypted Key Transport for DTLS and Secure RTP</title>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="F. Andreasen" initials="F." surname="Andreasen"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Encrypted Key Transport (EKT) is an extension to DTLS (Datagram Transport Layer Security) and the Secure Real-time Transport Protocol (SRTP) that provides for the secure transport of SRTP master keys, rollover counters, and other information within SRTP. This facility enables SRTP for decentralized conferences by distributing a common key to all of the conference endpoints.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8870"/>
          <seriesInfo name="DOI" value="10.17487/RFC8870"/>
        </reference>
        <reference anchor="RFC8871">
          <front>
            <title>A Solution Framework for Private Media in Privacy-Enhanced RTP Conferencing (PERC)</title>
            <author fullname="P. Jones" initials="P." surname="Jones"/>
            <author fullname="D. Benham" initials="D." surname="Benham"/>
            <author fullname="C. Groves" initials="C." surname="Groves"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This document describes a solution framework for ensuring that media confidentiality and integrity are maintained end to end within the context of a switched conferencing environment where Media Distributors are not trusted with the end-to-end media encryption keys. The solution builds upon existing security mechanisms defined for the Real-time Transport Protocol (RTP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8871"/>
          <seriesInfo name="DOI" value="10.17487/RFC8871"/>
        </reference>
        <reference anchor="RFC8872">
          <front>
            <title>Guidelines for Using the Multiplexing Features of RTP to Support Multiple Media Streams</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="B. Burman" initials="B." surname="Burman"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="H. Alvestrand" initials="H." surname="Alvestrand"/>
            <author fullname="R. Even" initials="R." surname="Even"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>The Real-time Transport Protocol (RTP) is a flexible protocol that can be used in a wide range of applications, networks, and system topologies. That flexibility makes for wide applicability but can complicate the application design process. One particular design question that has received much attention is how to support multiple media streams in RTP. This memo discusses the available options and design trade-offs, and provides guidelines on how to use the multiplexing features of RTP to support multiple media streams.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8872"/>
          <seriesInfo name="DOI" value="10.17487/RFC8872"/>
        </reference>
        <reference anchor="RFC9335">
          <front>
            <title>Completely Encrypting RTP Header Extensions and Contributing Sources</title>
            <author fullname="J. Uberti" initials="J." surname="Uberti"/>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <author fullname="S. Murillo" initials="S." surname="Murillo"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>While the Secure Real-time Transport Protocol (SRTP) provides confidentiality for the contents of a media packet, a significant amount of metadata is left unprotected, including RTP header extensions and contributing sources (CSRCs). However, this data can be moderately sensitive in many applications. While there have been previous attempts to protect this data, they have had limited deployment, due to complexity as well as technical limitations.</t>
              <t>This document updates RFC 3711, the SRTP specification, and defines Cryptex as a new mechanism that completely encrypts header extensions and CSRCs and uses simpler Session Description Protocol (SDP) signaling with the goal of facilitating deployment.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9335"/>
          <seriesInfo name="DOI" value="10.17487/RFC9335"/>
        </reference>
      </references>
    </references>
    <?line 457?>

<section anchor="protocol-design-overview">
      <name>Protocol Design Overview</name>
      <t>This appendix section is included to details some important itmes integral to the decision process of creating this specification.
This section may be removed by the editors or left for future generations to understand why specific things were done as they are.</t>
      <t>In general, the overall design for this protocol tends to follow the phrase found in RFC6709, Section 1.
"Experience with many protocols has shown that protocols with few
options tend towards ubiquity, whereas protocols with many options
tend towards obscurity.</t>
      <t>Each and every extension, regardless of its benefits, must be
carefully scrutinized with respect to its implementation,
deployment, and interoperability costs."</t>
      <section anchor="why-not-an-rtp-header-extension">
        <name>Why not an RTP Header Extension?</name>
        <t>In order to be compatible with "a=cryptex", a protocol which extends the SRTP encryption over the RTP Extension Headers, the designed specification must ensure that information about the SRTP context is not within these RTP extension headers.
Thus one has to provide this information in an out of band mechanism.</t>
      </section>
      <section anchor="why-not-an-sdp-security-session-parameter">
        <name>Why not an SDP Security Session Parameter?</name>
        <t>While analyzing SDP Security's Session Parameter feature number of interesting details were found.
That is sections 6.3.7, 7.1.1, 9.2, and 10.3.2.2 of <xref target="RFC4568"/> specifically.</t>
        <t>A few illustrative examples below detail what this could look like are provided below, though these <bcp14>MUST NOT</bcp14> be used.</t>
        <artwork><![CDATA[
a=crypto:1 [..omitted..] SSRC=0x00845FED ROC=0x00000000 SEQ=0x005D

a=crypto:1 ..omitted.. -SSRC=0x00845FED -ROC=0x00000000 -SEQ=0x005D

a=crypto:1 AEAD_AES_256_GCM \
 inline:3/sxOxrbg3CVDrxeaNs91Vle+wW1RvT/zJWTCUNP1i6L45S9qcstjBv+eo0=\
 |2^20|1:32 SSRC=0x00845FED ROC=0x0000 SEQ=0x0150

a=crypto:1 AES_CM_128_HMAC_SHA1_80 \
  inline:QUJjZGVmMTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5|2:18\
  ;inline:QUJjZGVmMTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5|21|3:4 \
  KDR=23 FEC_ORDER=SRTP_FEC UNENCRYPTED_SRTP \
  SSRC=0xDD148F16 ROC=0x0 SEQ=0x5A53
a=crypto:2 AES_CM_128_HMAC_SHA1_32 \
  inline:QUJjZGVmMTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5|2^20 \
  FEC_KEY=inline:QUJjZGVmMTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5|2^20|2:4 \
  WSH=60 SSRC=0xD903 ROC=0x0002 SEQ=0xB043
a=crypto:3 AEAD_AES_256_GCM \
  inline:HGAPy4Cedy/qumbZvpuCZSVT7rNDk8vG4TdUXp5hkyWqJCqiLRGab0KJy1g= \
  UNAUTHENTICATED_SRTP SSRC=0x05 ROC=0x02 SEQ=unknown
a=crypto:4 AEAD_AES_128_GCM \
  inline:bQJXGzEPXJPClrd78xwALdaZDs/dLttBLfLE5Q== \
  UNENCRYPTED_SRTCP SSRC=0x6500
]]></artwork>
        <t>To analyze the faults of this method:
First, a unknown and/or unsupported SDP Security Session Parameter is destructive.
If one side where to advertise the ROC value as an SDP Security Session Parameter and the remote party does not understand that specific SDP Security Session Parameter, that entire crypto line is to be considered invalid. If this is the only a=crypto entry then the entire session may fail.
The solution in this document allows for a graceful fallback to known methods to determine these value.
Implementations could get around this by duplicating the a=crypto SDP attribute into two values: one with the postfix and one without to create to potential offers; but at this point we have a second SDP attribute. Instead this specification decided to cut to the chase and format the second attribute in a standardized way and avoid endless duplication (and potentially other harmful issues, see the final item in this document.)</t>
        <t>Second, there is a method to advertise "optional" SDP Security Session Parameters. However, upon further scrutiny, the document contradicts itself in many sections.
To be specific, Section 6.3.7 states that an SDP Security Session Parameter prefixed with a dash character "-" <bcp14>MAY</bcp14> be ignored.
Subsequent sections (9.2 and 10.3.2.2) state that a dash character is illegal and <bcp14>MUST NOT</bcp14> be used.
It is not very well defined as such pursuit of this method has been dropped.</t>
        <t>Further, we know how applications will handle unknown SDP attributes; we do not know how applications will handle new mandatory (or optional) SDP Security Session Parameter values as none have ever been created. See IANA registry which only details those from the original RFC. (https://www.iana.org/assignments/sdp-security-descriptions/sdp-security-descriptions.xhtml#sdp-security-descriptions-4)
Including these could cause larger application issues and are the reason modern protocols use logic like Generate Random Extensions And Sustain Extensibility (GREASE) to catch bad implementation behavior and correct it before it leads to problems like those described in this section.</t>
        <t>In closing, this method has too many challenges but a lot has been learned. These items have influenced the protocol design and sections like <xref target="extendability"/> which aim to avoid making the same mistakes.</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
+TKOrdmiLyrFA/hKSWkT81yFEbkysTRzVufyIpny2bEn+5tMmUCxtO2lAgB5
3W3PyJHYhOSyA8yPLbl/bgCy2wGslwv15Iu1z+09+o4ZMvUj+5cLhUPQyktg
S+FSx7lfQTzkVdlZ5LCl49ssuDUhmJ3RODex46Vq6adOd7Bl70TVyl7Lpsvn
/DjwKyazP/bObj52dvc+vui/YWwRxig1R93t7OHtQzoYdfvvT9MH7V1mh+33
kf777EP7+v52+9OrD7f9d5dX7XDv9c7uzeGffpb/cXL/d520jqmdvzr/r9P6
q33U7XyrcBlRaeP5UIuyUkKrp/CJpawBcaaYAehnlbd60/tlpceA2UlTqMv4
jUok2ItBQOEBcMGyJO8+TFLX92DgDyIukGB1JHnTbAUdwl/80ZSfLfofZlOA
uDDbGRX6rlh4PHjGZXMbEnNCUXjiABJCC8GW0Oc7pgvmGaseG6XSbExmaU+i
CcAs7H5jT4/OBDBcS+cpSYE8iuv6mkgPHUnyluP9q0TOiT00qyX/oq8sV9xJ
qQ4vt6ywsXOo7kFlzcuyNsMCdBJdQDFSZws773XgED1NhKyem/SWtTeVeMQ4
4AFvs+9L+siWkkxTShesZtTFLTuZG8sx5TmPuPQhF7vl41RXrKZZmMRsbStJ
0eTKOeGFOqcm+OQL2tOtmQftjsXq5vRU3MmyLnGa0OEXT50GRqxEC2mzINgV
0cukyBcZEXnUhA0AV7bLOCnXncbzKk2m5YE/bpGJfDZJmmUKsp1dpKGUxlqF
0TTuIB7x5IoR1WgYajPnuUFfGnvHVN4SU5AvhKXezJiY2+SDIKJytxjFDyWw
wNt+y+odKvMqbR9WWD2i228+9t98bHcOPr580+t/vHnZa38EW+eq+Ludh+4v
P9/dnrZvP0SXr7snv07Pbj69PS8e7k5+ndwmrfsXXjuZfHAa7qxu+KBVafjq
pl381H+vdf+878XvJ/4fd9Or+eyPyw9j/5fT1uTnn/MH7/3JtWsYOmwYhJil
VWgvm4J3Ru88YQiIYmZlJiCGWK5YGgVcmGHyFGdQ7p89O9aoWqfVbKq7CJWz
UtzdGmpzcmxO7zGcgwWtizr41htVQRGWGDlyhlW/JkZWyTPI3HgA7og61hh4
4NwmZjwE+UmkzM+IP5LKoFEqS//eFuCIdLgbdKm2TYqCaPBY1IQJGoxR4WDn
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

-->

</rfc>
