<?xml version="1.0" encoding="US-ASCII"?>
<!--
vim:et:ts=2:sw=2:spell:spelllang=en:tw=80
-->
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY I-D.johnston-dispatch-osrtp SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.johnston-dispatch-osrtp.xml">
<!ENTITY I-D.kaplan-mmusic-best-effort-srtp SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.kaplan-mmusic-best-effort-srtp.xml">
<!ENTITY I-D.ietf-acme-telephone SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-acme-telephone.xml">
<!ENTITY I-D.ietf-ice-rfc5245bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-ice-rfc5245bis.xml">
<!ENTITY I-D.ietf-mmusic-trickle-ice-sip SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-mmusic-trickle-ice-sip.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC6919 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6919.xml">
<!ENTITY RFC7258 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7258.xml">
<!ENTITY RFC3261 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3261.xml">
<!ENTITY RFC3323 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3323.xml">
<!ENTITY RFC3264 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3264.xml">
<!ENTITY RFC3550 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3550.xml">
<!ENTITY RFC3711 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3711.xml">
<!ENTITY RFC4568 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4568.xml">
<!ENTITY RFC4566 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4566.xml">
<!ENTITY RFC5124 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5124.xml">
<!ENTITY RFC5245 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5245.xml">
<!ENTITY RFC5763 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5763.xml">
<!ENTITY RFC6189 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6189.xml">
<!ENTITY RFC7245 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7245.xml">
<!ENTITY RFC7435 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7435.xml">
<!ENTITY RFC7675 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7675.xml">
<!ENTITY RFC7879 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7879.xml">
<!ENTITY RFC6962 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6962.xml">
<!ENTITY RFC4916 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4916.xml">
<!ENTITY RFC8224 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8224.xml">
<!ENTITY RFC8225 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8225.xml">
<!ENTITY RFC8226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8226.xml">
]>
<!--?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="no" ?>
<!-- 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="bcp" docName="draft-ietf-sipbrandy-rtpsec-05"
     ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

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

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->


    <title abbrev="RTP Security">Best Practices for Securing RTP Media Signaled with SIP</title>

    <author initials="J." surname="Peterson" fullname="Jon Peterson">
        <organization abbrev="Neustar">Neustar, Inc.</organization>
        <address>
            <email>jon.peterson@team.neustar</email>
        </address>
    </author>

    <author fullname="Richard Barnes" initials="R." surname="Barnes">
        <organization>Mozilla</organization>
        <address>
            <email>rlb@ipv.sx</email>
        </address>
    </author>
	
    <author fullname="Russ Housley" initials="R." surname="Housley">
        <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
        <address>
            <email>housley@vigilsec.com</email>
        </address>
    </author>

    <date year="2018" />

    <!--    <area>
    ART
    </area>-->

    <keyword>SIP</keyword>
    <keyword>security</keyword>


    <abstract>
      <t>
	  Although the Session Initiation Protocol (SIP) includes a suite of security services that has been expanded by numerous specifications over the years,
	  there is no single place that explains how to use SIP to establish confidential media sessions. Additionally, existing mechanisms have some feature gaps that need to be identified and resolved
	  in order for them to address the pervasive monitoring threat model. This specification describes best practices for negotiating confidential media with SIP, including
	  both comprehensive protection solutions which bind the media to SIP-layer identities as well as opportunistic security solutions. 
	  </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
	<t>
	The <xref target="RFC3261">Session Initiation Protocol (SIP)</xref> includes a suite of security services, ranging from Digest authentication for authenticating entities with a shared secret, to TLS for transport security, to S/MIME (optionally) for body security. SIP is frequently used to establish media sessions, in particular audio or audiovisual sessions, which have their own security mechanisms available, such as <xref target="RFC3711">Secure RTP</xref>. However, the practices needed to bind security at the media layer to security at the SIP layer, to provide an assurance that protection is in place all the way up the stack, rely on a great many external security mechanisms and practices, and require a central point of documentation to explain their optimal use as a best practice.
	</t><t>
	Revelations about widespread pervasive monitoring of the Internet have led to a reevaluation of the threat model for Internet communications <xref target="RFC7258"/>. In order to maximize the use of security features, especially of media confidentiality, opportunistic measures must often serve as a stopgap when a full suite of services cannot be negotiated all the way up the stack. This document explains the limitations that may inhibit the use of comprehensive protection, and provides recommendations for which external security mechanisms implementers should use to negotiate secure media with SIP. It moreover gives a gap analysis of the limitations of existing solutions, and specifies solutions to address them.
	</t><t>
	Various specifications that user agents must implement to support media confidentiality are given in the sections below; a summary of the best current practices appears in <xref target="bcp"/>.
    </t>
    </section> 
	
	    <section anchor="sec-2" title="Terminology">
      <t>In this document, the key words "MUST", "MUST NOT", "REQUIRED",
      "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
      RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described
      in <xref target="RFC2119">RFC 2119</xref> and <xref target="RFC6919">RFC
      6919</xref>.</t>
    </section>
	
	<section title="Security at the SIP and SDP layer">
	
	<t>
	There are two approaches to providing confidentiality for media sessions set up with SIP: comprehensive protection and opportunistic security (as defined in <xref target="RFC7435"/>). 
	</t>

	<section title="Comprehensive Protection">
	<t>
	Comprehensive protection for media sessions established by SIP requires the interaction of three protocols: SIP, the <xref target="RFC4566">Session Description Protocol (SDP)</xref>, and the <xref target="RFC3550">Real-time Protocol (RTP)</xref>, in particular its secure profile <xref target="RFC3711">Secure RTP (SRTP)</xref>. Broadly, it is the responsibility of SIP to provide integrity protection for the media keying attributes conveyed by SDP, and those attributes will in turn identify the keys used by endpoints in the RTP media session(s) that SDP negotiates. Note that this
	framework does not apply to keys that also require confidentiality protection in the signaling layer, such as the SDP "k=" line, which MUST NOT be used in conjunction with this profile.
	In that way, once SIP and SDP have exchanged the necessary information to initiate a session, media endpoints will have a strong assurance that the keys they exchange have not been tampered with by third parties, and that end-to-end confidentiality is available.
	</t><t>
	To establishing the identity of the endpoints of a SIP session, this specification uses <xref target="RFC8224">STIR</xref>. The STIR Identity header has been designed to prevent a class of impersonation attacks that are commonly used in robocalling, voicemail hacking, and related threats. STIR generates a signature over certain features of SIP requests, including header field values that contain an identity for the originator of the request, such as the From header field or P-Asserted-Identity field, and also over the media keys in SDP if they are present. As currently defined, STIR only provides a signature over the "a=fingerprint" attribute, which is a key fingerprint utilized by <xref target="RFC5763">DTLS-SRTP</xref>; consequently, STIR only offers comprehensive protection for SIP sessions, in concert with SDP and SRTP, when DTLS-SRTP is the media security service. The underlying <xref target="RFC8225">PASSporT</xref> object used by STIR is extensible, however, and it would be possible to provide signatures over other SDP attributes that contain alternate keying material. A profile for using STIR to provide media confidentiality is given in <xref target="stirprof"/>.
	</t>
    </section> 
	
	<section title="Opportunistic Security">
	<t>
	Work is already underway on defining approaches to opportunistic media security for SIP in <xref target="I-D.johnston-dispatch-osrtp"/>, which builds on the prior efforts of 
	<xref target="I-D.kaplan-mmusic-best-effort-srtp"/>. The major protocol change proposed by that specification is to signal the use of opportunistic encryption by negotiating the AVP profile in SDP, 
	rather than the SAVP profile (as specified in <xref target="RFC3711"/>) that would ordinarily be used when negotiating SRTP. 
	</t><t>
	Opportunistic encryption approaches typically have no integrity protection for the keying material in SDP. Sending SIP over TLS hop-by-hop between user agents and any intermediaries will reduce the prospect
	that active attackers can alter keys for session requests on the wire. However, opportunistic confidentiality for media will prevent passive attacks of the form most common in the threat of pervasive monitoring.
	</t>
    </section> 
	
	</section>
	
	<section anchor="stirprof" title="STIR Profile for Endpoint Authentication and Verification Services">
	<t>
	<xref target="RFC8224">STIR</xref> defines the Identity header field for SIP, which provides a cryptographic attestation of the source of communications. This profile of STIR assumes that a STIR verification service will act in concert with an SRTP media endpoint to ensure that the key fingerprints, as given in SDP, match the keys exchanged to establish DTLS-SRTP. To satisfy this condition, the verification service function would in this case be implemented in the SIP UAS, which would be composed with the media endpoint. If the STIR authentication service or verification service functions are implemented at an intermediary rather than an endpoint, this introduces the possibility that the intermediary could act as a man in the middle, altering key fingerprints. As this attack is not in STIR's core threat model, which focuses on impersonation rather than man-in-the-middle attacks, STIR offers no specific protections against such interference. 
	</t><t>
	The SIPBRANDY deployment profile of STIR for media confidentiality thus shifts these responsibilities to the endpoints rather than the intermediaries. While intermediaries MAY provide the verification service function of STIR for SIPBRANDY transactions, intermediaries supporting this specification MUST NOT block or otherwise redirects calls if they do not trust the signing
	credential. The SIPBRANDY profile is based on an end-to-end trust model, so it is up to the endpoints to determine if they support signing credentials, not intermediaries.
	</t><t>
	In order to be compliant with best practices for SIP media confidentiality with comprehensive protection, user agent implementations MUST implement both the authentication service and verification service roles described in <xref target="RFC8224"/>. STIR authentication services MUST signal their compliance with this specification by adding the "msec" header element defined in this specification to the PASSporT header. Implementations MUST provide key fingerprints in SDP and the appropriate signatures over them per <xref target="RFC8225"/>.
	</t><t>
	When generating either an offer or an answer, compliant implementations MUST include an "a=fingerprint" attribute containing the fingerprint of an appropriate key (see <xref target="stircred"/>).
	</t>
	<section anchor="stircred" title="Credentials">
	<t>
	In order to implement the authentication service function in the user agent, SIP endpoints will need to acquire the credentials needed to sign for their own identity. That identity is typically carried in the From header field of a
	SIP request, and either contains a greenfield SIP URI (e.g. "sip:alice@example.com") or a telephone number, which can appear in a variety of ways (e.g. "sip:+17004561212@example.com;user=phone"). <xref target="RFC8224"/> Section 8 contains guidance for separating the two, and determining what sort of credential is needed to sign for each.
	</t><t>
	To date, few commercial certificate authorities issue certificates for
	SIP URIs or telephone numbers; though work is ongoing on systems for this purpose (such as <xref target="I-D.ietf-acme-telephone"/>) it is not mature enough to be recommended as a best practice. This is one reason why the STIR standard is architected to permit intermediaries to act as an authentication service on behalf of an entire domain, just as in SIP an proxy server can provide domain-level SIP service. While certificate authorities that offered proof-of-possession certificates similar to those used in the email world could be offered for SIP, either for greenfield identifiers or
	for telephone numbers, this specification does not require their use. 
	</t><t>
	For users who do not possess such certificates, <xref target="RFC5763">DTLS-SRTP</xref> permits the use of self-signed keys. This profile of STIR therefore relaxes the authority requirements
	of <xref target="RFC8224"/>
	to allow the use of self-signed keys for authentication services that are composed with user agents, by generating a certificate (per the guidance of <xref target="RFC8226"/>) with a subject
	corresponding to the user's identity. Such a credential could be used for trust on first use (see <xref target="RFC7435"/>) by relying parties. Note that relying parties SHOULD NOT use certificate revocation mechanisms
	or real-time certificate verification systems for self-signed certificates as they will not increase confidence in the certificate. 
	</t><t>
	Users who wish to remain anonymous can instead generate self-signed certificates as described in <xref target="anon"/>.
	</t><t>
	Generally speaking, without access to out-of-band information about which certificates were issued to whom, it will be very difficult for relying parties to ascertain whether or not the signer of a SIP request is genuinely an "endpoint." Even the term "endpoint" is a problematic one, as SIP user agents can be composed in a variety of architectures and may not be devices under direct user control. While it is possible that techniques based on certificate transparency <xref target="RFC6962"/> or similar practices could help user agents to recognize one another's certificates, those operational systems will need to ramp up with the certificate authorities that issue credentials to end user devices going forward.
	</t>
	</section>
	<section anchor="anon" title="Anonymous Communications">
	<t>
	In some cases, the identity of the initiator of a SIP session may be withheld due to user or provider policy. Per the recommendations of <xref target="RFC3323"/>, this may involve using an identity such as "anonymous@anonymous.invalid" in the identity fields of a SIP request. <xref target="RFC8224"/> does not currently permit authentication services to sign for requests that supply this identity. It
	does however permit signing for valid domains, such as "anonymous@example.com," as a way of implementation an anonymization service as specified in <xref target="RFC3323"/>.
	</t><t>
	Even for anonymous sessions, providing media confidentiality and partial SDP integrity is still desirable. This specification RECOMMENDS using one-time self-signed certificates for anonymous communications, with
	a subjectAltName of "sip:anonymous@anonymous.invalid". After a session is terminated, the certificate SHOULD be discarded, and a new one, with new keying material, SHOULD be generated before each future anonymous
	call. As with self-signed certificates, relying parties SHOULD NOT use certificate revocation mechanisms
	or real-time certificate verification systems for anonymous certificates as they will not increase confidence in the certificate. 
	</t><t>
	Note that when using one-time anonymous self-signed certificates, any man in the middle could strip the Identity header and replace it with one signed by its own one-time certificate, changing the "mkey" parameters of PASSporT and any "a=fingerprint" attributes in SDP as it chooses. This signature only provides protection against non-Identity aware entities that might modify SDP without altering the PASSporT conveyed in the Identity header.
	</t>
	</section>
	<section anchor="stirconnect" title="Connected Identity Usage">
	<t>
	<xref target="RFC8224">STIR</xref> provides integrity protection for the SDP bodies of SIP requests, but not SIP responses. When a session is established, therefore, any SDP body carried by a 200 class response in the backwards direction will not be protected by an authentication service and cannot be verified. Thus, sending a secured SDP body in the backwards direction will require an extra RTT, typically a request sent in the backwards direction. 
	</t><t>
	The problem of providing "Connected Identity" for the original RFC4474 was explored in <xref target="RFC4916"/>, which uses a provisional or mid-dialog UPDATE request in the backwards direction to convey an Identity header for the recipient of an INVITE.
	The procedures in that specification are largely compatible with the revision of the Identity header in 
	<xref target="RFC8224"/>. However, the following updates to <xref target="RFC4916"/> are required:
	<list><t>
	The UPDATE carrying signed SDP with a fingerprint in the backwards direction MUST be sent during dialog establishment, following the receipt of a PRACK after a provisional 1xx response. 
	</t><t>
	For use with this STIR Profile for media confidentiality, the UAS that responds to the INVITE request MUST act as an authentication service for the UPDATE sent in the backwards direction.
	</t><t>
	The text in RFC4916 Section 4.4.1 regarding the receipt at a UAC of error codes 428, 436, 437 and 438 in response to a mid-dialog request RECOMMENDS treating the dialog as terminated. <xref target="RFC8224"/> allows the retransmission of requests with repairable error conditions (see section 6.1.1) in a way that can override that SHOULD in RFC4916. In particular, an authentication service MAY retry a mid-dialog as <xref target="RFC8224"/> allows rather than treating the dialog as terminated, though note that 
	only one such retry is permitted.
	</t><t>
	The examples in RFC4916 are based on the original RFC4474, and will not match signatures using <xref target="RFC8224"/>.
	</t>
    </list></t><t>
	Future work may be done to revise RFC4916 for STIR; that work should take into account any impacts on the profile described in this document. The use of RFC4916 has some further interactions with ICE; see <xref target="ice"/>.
	</t>
	</section>

	<section anchor="authz" title="Authorization Decisions">
	<t>
	<xref target="RFC8224"/> grants STIR verification services a great deal of latitude when making authorization decisions based on the presence of the Identity header field. It is largely a matter of local policy whether an endpoint rejects a call based on absence of an Identity header field, or even the presence of a header that fails an integrity check against the request.
	</t><t>
	For this profile, however, a compliant verification service that receives a dialog-forming SIP request containing an Identity header with a PASSporT type of "msec", after validating the request per the steps described in <xref target="RFC8224"/> Section 6.2, MUST reject the request if there is any failure in that validation process with the appropriate status code per Section 6.2.2. If the request is valid, then if a terminating user accepts the request, it
	MUST then follow the steps in <xref target="stirconnect"/> to act as an authentication service and send a signed request with the "msec" PASSPorT type in its Identity header as well, in order to enable end-to-end bidirectional confidentiality.
	</t><t>
	For the purposes of this profile, the "msec" PASSporT type can be used by authentication services in one of two ways: as a mandatory request for media security, or as a merely opportunistic request for media security. As any verification service that receives an Identity header in a SIP request with an unrecognized PASSporT type will simply ignore that Identity header, an authentication service will know whether or not the terminating side supports "msec" based on whether or not its user agent receives a signed request in the backwards direction per <xref target="stirconnect"/>. If no such requests are received, the UA may do one or two things: shut down the dialog, if the policy of the UA requires that "msec" be supported by the terminating side for this dialog; or, if policy permits, allow the dialog to continue without media security. 
	</t>
	</section>
	
	</section>
	
	<section anchor="mediasec" title="Media Security Protocols">
	<t>
	As there are several ways to negotiate media security with SDP, any of which might be used with either opportunistic or comprehensive protection, further guidance to implementers is needed. 
	In 
	<xref target="I-D.johnston-dispatch-osrtp"/>, opportunistic approaches considered include DTLS-SRTP, <xref target="RFC4568">security descriptions</xref>, and <xref target="RFC6189">ZRTP</xref>. 
	</t><t>Support for DTLS-SRTP is REQUIRED by this specification.
	</t><t>
	The "mkey" claim of PASSporT provides integrity protection for "a=fingerprint" attributes in SDP, including cases where multiple "a=fingerprint" attributes appear in the same SDP.
    </t>

    </section>
	
	<section anchor="relay" title="Relayed Media and Conferencing">
	<t>
	Providing end-to-end media confidentiality for SIP is complicated by the presence of many forms of media relays. While many media relays merely proxy media to a destination, others present themselves as
	media endpoints and terminate security associations before re-originating media to its destination.
	</t><t>
	Centralized conference bridges are one type of entity that typically terminates a media session in order to mux media from multiple sources and then to re-originate the muxed media to conference participants. In
	many such implementations, only hop-by-hop media confidentiality is possible.
	Work is ongoing to specify a means to encrypt both the hop-by-hop media between a user agent and a centralized server as well as the end-to-end media between user agents, but is not sufficiently mature at this time to make a recommendation for a best practice here. Those protocols are expected to identify their own best practice recommendations as they mature.
	</t><t>
	Another class of entities that might relay SIP media are back-to-back user agents (B2BUAs). If a B2BUA follows the guidance in <xref target="RFC7879"/>, it may be possible for those devices to act as media relays
	while still permitting end-to-end confidentiality between user agents.
	</t><t>
	Ultimately, if an endpoint can decrypt media it receives, then that endpoint can forward the decrypted media without the knowledge or consent of the media's originator. No media confidentiality mechanism
	can protect against these sorts of relayed disclosures, or trusted entities that can decrypt media and then record a copy to be sent elsewhere (see <xref target="RFC7245"/>).
	</t>
	</section> 
	
	<section anchor="ice" title="ICE and Connected Identity">
	<t>
	Providing confidentiality for media with comprehensive protection requires careful timing of when media streams should be sent and when a user interface should signify that confidentiality is in place.
	</t><t>
	In order to best enable end-to-end connectivity between user agents, and to avoid media relays as much as possible, implementations of this specification must support <xref target="I-D.ietf-ice-rfc5245bis">ICE</xref>. To speed up call establishment, it
	is RECOMMENDED that implementations support <xref target="I-D.ietf-mmusic-trickle-ice-sip">trickle ICE</xref>. 
	</t><t>Note that in the comprehensive protection case, the use of <xref target="RFC4916">Connected Identity</xref> with ICE entails that the answer
	containing the key fingerprints, and thus the STIR signature, will come in an UPDATE sent in the backwards direction a provisional response and acknowledgment (PRACK), rather than in any earlier SDP body. Only at such a time as that UPDATE is received will the media keys be considered exchanged in this case.
	</t><t>
	Similarly, in order to prevent, or at least mitigate, the denial-of-service attack envisioned in <xref target="RFC5245"/> Section 18.5.1, this specification incorporates best practices for ensuring that recipients of media flows have consented to receive such flows. Implementations of this specification MUST implement the STUN usage for consent freshness defined in <xref target="RFC7675"/>.
	
	</t>
	</section>
	
	<section anchor="bcp" title="Best Current Practices">
	<t>
	The following are the best practices for SIP user agents to provide media confidentiality for SIP sessions.
	</t><t>
	Implementations MUST support the STIR endpoint profile given in <xref target="stirprof"/>, and signal that in PASSporT with the "msec" header element. 
	</t><t>
	Implementations MUST follow the authorization decision behavior in <xref target="authz"/>.
	</t><t>
	Implementations MUST support DTLS-SRTP for key-management, as described in <xref target="mediasec"/>.
	</t><t>
	Implementations MUST support the ICE, and the STUN consent freshness mechanism, as specified in <xref target="ice"/>.
	<list><t>
	</t></list>
	</t>
	</section>

    <section anchor="Acknowledgments" title="Acknowledgments">
      <t>We would like to thank Eric Rescorla, Adam Roach, Andrew Hutton, and Ben Campbell for contributions to this problem statement and framework.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This specification defines a new values for the PASSporT Type registry called "msec," and the IANA is requested to add that to the registry with a value pointing to [RFCThis].</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document describes the security features that provide media sessions established with SIP with confidentiality, integrity, and authentication. </t>
    </section>
  </middle>
  
  
  

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

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
&RFC2119;
&RFC6919;
&RFC7258;
&RFC3261;
&RFC3264;
&RFC3323;
&RFC3711;
&RFC4568;
&RFC4566;
&RFC5124;
&RFC5245;
&RFC5763;
&RFC6189;
&RFC7245;
&RFC7435;
&RFC3550;
&RFC7675;
&RFC7879;
&RFC4916;
&RFC6962;
&RFC8224;
&RFC8225;
&RFC8226;
    </references>
    <references title="Informative References">
&I-D.johnston-dispatch-osrtp; 
&I-D.kaplan-mmusic-best-effort-srtp; 
&I-D.ietf-acme-telephone; 
&I-D.ietf-ice-rfc5245bis;
&I-D.ietf-mmusic-trickle-ice-sip;
    </references>
  </back>
</rfc>
