<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" >
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-ietf-sipbrandy-osrtp-10" ipr="trust200902">
	<!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN"
     they will automatically be output with "(if approved)" -->

	<!-- ***** FRONT MATTER ***** -->

	<front>

		<title abbrev="OSRTP">An Opportunistic Approach for Secure Real-time Transport Protocol (OSRTP)</title>

		<author fullname="Alan Johnston" initials="A." surname="Johnston">
			<organization>Villanova University</organization>
			<address>
				<postal>
					<street></street>
					<city>Villanova</city>
					<region>PA</region>
					<code></code>
					<country>USA</country>
				</postal>
				<phone></phone>
				<email>alan.b.johnston@gmail.com</email>
			</address>
		</author>


		<author initials="B" surname="Aboba" fullname="Bernard Aboba">
			<organization>Microsoft</organization>
			<address>
				<postal>
					<street>One Microsoft Way</street>
					<city>Redmond</city>
					<region>WA</region>
					<code>98052</code>
					<country>USA</country>
				</postal>
				<email>bernard.aboba@gmail.com</email>
			</address>
		</author>

		<author fullname="Andrew Hutton" initials="A."
            surname="Hutton">
			<organization>Atos</organization>
			<address>
				<postal>
					<street>Mid City Place</street>
					<city>London</city>
					<code>WC1V 6EA</code>
					<country>UK</country>
				</postal>
				<phone></phone>
				<email>andrew.hutton@atos.net</email>
			</address>
		</author>

		<author initials="R" surname="Jesske" fullname="Roland Jesske">
			<organization>Deutsche Telekom</organization>
			<address>
				<postal>
					<street>Heinrich-Hertz-Strasse 3-7</street>
					<city>Darmstadt</city>
					<code>64295</code>
					<country>Germany</country>
				</postal>
				<email>R.Jesske@telekom.de</email>
			</address>
		</author>

		<author initials="T" surname="Stach" fullname="Thomas Stach">
			<organization>Unaffiliated</organization>
			<address>
				<email>thomass.stach@gmail.com</email>
			</address>
		</author>

		<date year="2019" />

		<!-- If the month and year are both specified and are the current ones, xml2rfc will fill
         in the current day for you. If only the current year is specified, xml2rfc will fill
         in the current day and month for you. If the year is not the current one, it is
         necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the
         purpose of calculating the expiry date).  With drafts it is normally sufficient to
         specify just the year. -->

		<!-- Meta-data Declarations -->

		<area>ART</area>

		<workgroup>SIPBRANDY Working Group</workgroup>

		<!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.
         If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

		<keyword>srtp</keyword>
		<keyword>opportunistic security</keyword>
		<keyword>encryption</keyword>
		<keyword>best effort</keyword>
		<keyword>osrtp</keyword>

		<!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

		<abstract>
			<t>
				Opportunistic Secure Real-time Transport Protocol (OSRTP) is an implementation of the Opportunistic Security mechanism, as defined in RFC 7435, applied to					the Real-time Transport Protocol (RTP). OSRTP allows encrypted media to be used in environments where support for encryption is not known in advance, and					not required. OSRTP does not require Session Description Protocol (SDP) extensions or features and is fully backwards compatible with existing implementations using encrypted and authenticated media	and implementations that do not encrypt or authenticate media packets.  OSRTP is not specific to any key management technique for Secure RTP (SRTP).  OSRTP is a	transitional approach useful for migrating existing deployments of real-time communications to a fully encrypted and authenticated state.
			</t>
		</abstract>
	</front>

	<middle>
		<section title="Introduction">
			<t>
				Opportunistic Security <xref target="RFC7435" /> (OS) is an approach to security that defines a third mode for security between "cleartext" and 
				"comprehensive protection" that allows encryption and authentication of media to be used if supported but will not result in failures if it is not supported. 
				In the context of the transport of secure media streams using RTP and is secured derivatives, cleartext is represented by an RTP <xref target="RFC3550" />					media stream which is negotiated with the RTP/AVP (Audio Video Profile)	<xref target="RFC3551" /> or the RTP/AVPF profile <xref target="RFC4585" />,						whereas, comprehensive protection is represented by a Secure RTP <xref target="RFC3711" /> stream, negotiated with a secure profile, such as SAVP or SAVPF					<xref target="RFC5124" />.  OSRTP allows SRTP to be negotiated with the RTP/AVP profile, with fallback to RTP if SRTP is not supported.
			</t>
			<t>
				There have been some extensions to SDP to allow profiles to be negotiated such as SDP Capabilities Negotiation (capneg) <xref target="RFC5939"/>.  However, these approaches are complex and have very limited deployment in communication systems.  Other key management protocols for SRTP have been developed which by design use OS, such as ZRTP <xref target="RFC6189" />.   This approach for OSRTP is based on <xref target="I-D.kaplan-mmusic-best-effort-srtp" /> where it was called "best effort SRTP".  <xref target="I-D.kaplan-mmusic-best-effort-srtp" /> has a full discussion of the motivation and requirements for opportunistic secure media.
			</t>
			<t>
				OSRTP uses the presence of SRTP keying-related attributes in an SDP offer to indicate support for opportunistic secure media.  The presence of SRTP keying-related attributes in the SDP answer indicates that the other party also supports OSRTP and encrypted and authenticated media will be used. OSRTP requires no additional extensions to SDP or new attributes and is defined independently of the key agreement mechanism used.  OSRTP is only usable when media is negotiated using the Offer/Answer protocol <xref target="RFC3264" />.
			</t>
			<section title="Applicability Statement">
				<t>
					OSRTP is a transitional approach that provides a migration path from unencrypted communication (RTP) to fully encrypted communication (SRTP).  It is only to be used in existing deployments which are attempting to transition to fully secure communications.  New applications and new deployments will not use OSRTP.
				</t>
			</section>
		</section>
		<section title="Requirements Language">
			<t>
				The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
				NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
				"MAY", and "OPTIONAL" in this document are to be interpreted as
				described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and only when, they
				appear in all capitals, as shown here.
			</t>
		</section>


		<section title="SDP Offer/Answer Considerations">

			<t>
				This section defines the SDP offer/answer considerations for opportunistic security.
			</t>
			<t>
				The procedures are for a specific m= section describing RTP-based media. If an SDP offer or answer contains multiple such m= sections, the procedures are applied to each m= section individually.
			</t>
			<t>
				"Initial OSRTP offer" refers to the offer in which oportunistic security is offered for an m= section for the first time within an SDP session.
			</t>
			<t>
				It is important to note that OSRTP makes no changes, and has no effect on media sessions in which the offer contains a secure profile of RTP, such as SAVP or SAVPF. As discussed in <xref target="RFC7435" />, that is the "comprehensive protection" for media mode.
			</t>


			<section anchor="InitialOffer" title="Generating the Initial OSRTP Offer">

				<t>
					To indicate support for OSRTP in an SDP offer, the offerer uses the RTP/AVP profile <xref target="RFC3551" /> or the RTP/AVPF profile 
					<xref target="RFC4585" /> but includes SRTP keying attributes. OSRTP is not specific to any key management technique for SRTP and multiple key management techniques can be included on the SDP offer. For example:
				</t>
				<t>
					<list>
						<t>
							If the offerer supports DTLS-SRTP key agreement <xref target="RFC5763" />, then an a=fingerprint attribute will be present, or
						</t>
					</list>
					<list>
						<t>
							If the offerer supports SDP Security Descriptions key agreement <xref target="RFC4568" />, then an a=crypto attribute will be present, or
						</t>
					</list>
					<list>
						<t>
							If the offerer supports ZRTP key agreement <xref target="RFC6189" />, then an a=zrtp-hash attribute will be present.
						</t>
					</list>
				</t>
			</section>

			<section title="Generating the Answer">
				<t>
					To accept OSRTP, an answerer receiving an offer indicating support for OSRTP generates an SDP answer containing SRTP keying attributes which match 
					one of the keying methods in the offer. The answer MUST NOT contain attributes from more than one keying method, even if the offer contained 
					multiple keying method attributes.  The selected SRTP key management approach is followed and SRTP media is used for this session.
					If the SRTP key management fails for any reason, the media session MUST fail.  To decline OSRTP, the answerer generates an SDP answer 
					omitting SRTP keying attributes, and the media session proceeds with RTP with no encryption or authentication used.
				</t>
			</section>

			<section title="Offerer Processing the Answer">
				<t>
					If the offerer of OSRTP receives an SDP answer which does not contain SRTP keying attributes, then the media session proceeds with RTP.  
					If the SDP answer contains SRTP keying attributes then the associated SRTP key management approach is followed and SRTP media is used for this session. 
				    If the SRTP key management fails, the media session MUST fail.
				</t>
			</section>

			<section title="Modifying the Session">
				<t>
					When an offerer generates a subsequent SDP offer it should do so following the principles of <xref target="RFC6337" /> meaning that the decision to create the new SDP offer should not be influenced by what was previously negotiated. For example if a previous OSRTP offer did not result in SRTP being established the offerer may try again and generate a new OSRTP offer as specified in section <xref target="InitialOffer" format="counter"/>.
				</t>
			</section>
		</section>

		<section anchor="Security" title="Security Considerations">
			<t>
				The security considerations of <xref target="RFC4568" /> apply to OSRTP, as well as the security considerations of the particular SRTP key agreement approach used.  However, the authentication requirements of a particular SRTP key agreement approach are relaxed when that key agreement is used with OSRTP, which is consistent with the Opportunistic Security approach described <xref target="RFC7435" />.  For example:
			</t>
			<t>
				<list>
					<t>
						For DTLS-SRTP key agreement <xref target="RFC5763" />, an authenticated signaling channel does not need to be used with OSRTP if it is not available.
					</t>
				</list>
				<list>
					<t>
						For SDP Security Descriptions key agreement <xref target="RFC4568" />, an authenticated signaling channel does not need to be used with OSRTP if it is not available, although an encrypted signaling channel MUST still be used.
					</t>
				</list>
				<list>
					<t>
						For ZRTP key agreement <xref target="RFC6189" />, the security considerations are unchanged, since ZRTP does not rely on the security of the signaling channel.
					</t>
				</list>
			</t>
			<t>
				While OSRTP does not require authentication of the key-agreement mechanism, it does need to avoid exposing SRTP keys to eavesdroppers, since this could enable passive attacks against SRTP. Section 8.3 of <xref target="RFC4568"/> requires that any messages that contain SRTP keys be encrypted, and further says that encryption &quot;SHOULD&quot; provide end-to-end confidentiality protection if intermediaries that could inspect the SDP message are present. At the time of this writing, it is understood that the <xref target="RFC4568"/>  requirement for end-to-end confidentiality protection is commonly ignored. Therefore, if OSRTP is used with SDP Security Descriptions, any such intermediaries (e.g., SIP proxies) must be assumed to have access to the SRTP keys.
			</t>
			<t>
				As discussed in <xref target="RFC7435" />, OSRTP is used in cases where support for encryption by the other party is not known in advance, and not required.  For cases where it is known that the other party supports SRTP or SRTP needs to be used, OSRTP MUST NOT be used.  Instead, a secure profile of RTP is used in the offer.
			</t>
		</section>

		<section title="IANA Considerations">
			<t>
				This document has no actions for IANA.
			</t>
		</section>

		<section title="Acknowledgements">
			<t>
				This document is dedicated to our friend and colleague Francois Audet who is greatly missed in our community.  His work on improving security in SIP and RTP provided the foundation for this work.
			</t>
			<t>
				Thanks to Eric Rescorla, Martin Thomson, Christer Holmberg, and Richard Barnes for their comments.
			</t>
		</section>

	</middle>

	<!--  *****BACK MATTER ***** -->

	<back>

		<references title="Normative References">
			<!-- Here we use entities that we defined at the beginning. -->

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?>
			
			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.7435.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3264.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3550.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3551.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3711.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5124.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6189.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5763.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4568.xml"?>
			
			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4585.xml"?>


		</references>
		<references title="Informative References">

			<?rfc include="reference.I-D.kaplan-mmusic-best-effort-srtp.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.6337.xml"?>

			<?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5939.xml"?>
		</references>
	</back>
</rfc>
