RFC 8643

An Opportunistic Approach for Secure Real-time Transport Protocol (OSRTP)

πŸ“… published August 2019, from ietf

An Opportunistic Approach for Secure Real-time Transport Protocol (OSRTP) πŸŽ€

Okay bestie, let's start with the title block ✨ This is RFC 8643 from the IETF (Internet Engineering Task Force), published in August 2019. It's Informational, so it's not a Standards Track spec. It's here to share knowledge πŸ’… The authors are A. Johnston (Villanova University), B. Aboba (Microsoft), A. Hutton (Atos), R. Jesske (Deutsche Telekom), and T. Stach (listed as Unaffiliated). The ISSN is 2070-1721, and the title block doesn't list anything this one obsoletes or updates πŸ¦‹

Abstract πŸ¦‹

Okay so OSRTP (Opportunistic Secure Real-time Transport Protocol) is basically the Opportunistic Security idea from RFC 7435, applied to RTP πŸ’– It lets encrypted media get used in places where you don't know ahead of time whether encryption is supported, and where it isn't required either. No SDP extensions or features are needed, and it stays fully backwards compatible with existing implementations, whether they're encrypting and authenticating media or not 🫢 It's also not tied to any one key management technique for SRTP, and it's a transitional approach for moving existing real-time communications deployments over to a fully encrypted and authenticated state ✨

Status of This Memo πŸ“‘

This document is not an Internet Standards Track specification. It's published for informational purposes 🌸

It's a product of the IETF, and it reflects the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved document is a candidate for any level of Internet Standard, so check out Section 2 of RFC 7841 for the details 🧚

For the current status, any errata, and how to send feedback, head to https://www.rfc-editor.org/info/rfc8643 πŸ’œ


Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved 🌈

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info), as in effect on the date of publication. Please read these carefully, bestie, because they spell out your rights and restrictions for this document πŸ™ˆ Any Code Components pulled out of this document must include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Simplified BSD License describes πŸ”₯

Table of Contents πŸ“‘

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
  1.1.  Applicability Statement . . . . . . . . . . . . . . . . .   3
2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   3
3.  SDP Offer/Answer Considerations . . . . . . . . . . . . . . .   3
  3.1.  Generating the Initial OSRTP Offer  . . . . . . . . . . .   4
  3.2.  Generating the Answer . . . . . . . . . . . . . . . . . .   4
  3.3.  Offerer Processing the Answer . . . . . . . . . . . . . .   4
  3.4.  Modifying the Session . . . . . . . . . . . . . . . . . .   5
4.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
  6.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
  6.2.  Informative References  . . . . . . . . . . . . . . . . .   7
Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   7
Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   8

1. Introduction ✨

Opportunistic Security (OS) [RFC7435] is an approach to security with a third mode that sits between "cleartext" and "comprehensive protection" πŸ¦‹ It lets encryption and authentication of media get used if it's supported, and it won't cause failures when it isn't πŸ’–

For secure media streams over RTP and its secured versions, cleartext is an RTP [RFC3550] media stream negotiated with the RTP/AVP (Audio-Visual Profile) [RFC3551] or RTP/AVPF [RFC4585] profile. Comprehensive protection is a Secure RTP [RFC3711] stream negotiated with a secure profile, like SAVP or SAVPF [RFC5124] πŸŽ€ OSRTP lets SRTP get negotiated with the RTP/AVP profile, and it falls back to RTP if SRTP isn't supported 🫢

There have been some SDP extensions for negotiating profiles, like SDP Capabilities Negotiation (SDPCapNeg) [RFC5939]. Honestly though, those are complex and barely deployed in communication systems πŸ™ˆ Other SRTP key management protocols, like ZRTP [RFC6189], use OS by design ✨ The OSRTP approach is based on [Kaplan06], where it was called "best effort SRTP". [Kaplan06] has the full scoop on the motivation and requirements for opportunistic secure media πŸ“š

OSRTP uses the presence of SRTP keying-related attributes in an SDP offer to show support for opportunistic secure media πŸ’œ If those keying-related attributes show up in the SDP answer, it means the other party supports OSRTP too, and encrypted and authenticated media will be used πŸ”₯ OSRTP doesn't need any extra SDP extensions or new attributes, and it's defined independently of whichever key agreement mechanism you use 🌸 It's only usable when media is negotiated with the Offer/Answer protocol [RFC3264] 🧚

1.1. Applicability Statement πŸ“

OSRTP is a transitional approach πŸ¦‹ It gives you a migration path from unencrypted communication (RTP) to fully encrypted communication (SRTP) ✨ It's only meant for existing deployments that are trying to move over to fully secure communications. New applications and new deployments won't use OSRTP πŸ’…

2. Requirements Language πŸŽ€

Okay, here's the key-word part, and it's important πŸ™ˆ 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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here πŸ”₯

4. Security Considerations πŸ”βœ¨

Okay bestie, this is the serious part, so let's be careful 🫢. The security considerations of [RFC4568] apply to OSRTP, and so do the security considerations of whichever SRTP key agreement approach you pick πŸ’…. The twist is that the authentication requirements of that key agreement get relaxed when it's paired with OSRTP. That's totally in line with the Opportunistic Security approach from [RFC7435]. For example:

  • For DTLS-SRTP key agreement [RFC5763], an authenticated signaling channel does not need to be used with OSRTP if it is not available. πŸ¦‹
  • For SDP Security Descriptions key agreement [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. πŸ”’
  • For ZRTP key agreement [RFC6189], the security considerations are unchanged, since ZRTP does not rely on the security of the signaling channel. 🌸

OK, now the part that's lowkey scary 😭. OSRTP doesn't require authentication of the key agreement mechanism, BUT it absolutely does need to avoid exposing SRTP keys to eavesdroppers, because that could enable passive attacks against SRTP. Section 8.3 of [RFC4568] requires that any messages that contain SRTP keys be encrypted, and it further says that encryption SHOULD provide end-to-end confidentiality protection if intermediaries that could inspect the SDP message are present. Here's the tea β˜•: at the time of writing, the requirement in [RFC4568] for end-to-end confidentiality protection is commonly ignored. So 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. Yikes πŸ’€.

As discussed in [RFC7435], OSRTP is used in cases where support for encryption by the other party is not known in advance and is 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. 🧚 Know your situation, and pick the right tool, periodt πŸ‘‘.


5. IANA Considerations 🌈

Good news, bestie: this document has no actions for IANA πŸ™Œ.


6. References πŸ“š

6.1. Normative References

Here are the normative references, the ones you really need to read:

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <https://www.rfc-editor.org/info/rfc2119>.

[RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
           with Session Description Protocol (SDP)", RFC 3264,
           DOI 10.17487/RFC3264, June 2002,
           <https://www.rfc-editor.org/info/rfc3264>.

[RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
           Jacobson, "RTP: A Transport Protocol for Real-Time
           Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
           July 2003, <https://www.rfc-editor.org/info/rfc3550>.

[RFC3551]  Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
           Video Conferences with Minimal Control", STD 65, RFC 3551,
           DOI 10.17487/RFC3551, July 2003,
           <https://www.rfc-editor.org/info/rfc3551>.

[RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
           Norrman, "The Secure Real-time Transport Protocol (SRTP)",
           RFC 3711, DOI 10.17487/RFC3711, March 2004,
           <https://www.rfc-editor.org/info/rfc3711>.

[RFC4568]  Andreasen, F., Baugher, M., and D. Wing, "Session
           Description Protocol (SDP) Security Descriptions for Media
           Streams", RFC 4568, DOI 10.17487/RFC4568, July 2006,
           <https://www.rfc-editor.org/info/rfc4568>.

[RFC4585]  Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
           "Extended RTP Profile for Real-time Transport Control
           Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585,
           DOI 10.17487/RFC4585, July 2006,
           <https://www.rfc-editor.org/info/rfc4585>.

[RFC5124]  Ott, J. and E. Carrara, "Extended Secure RTP Profile for
           Real-time Transport Control Protocol (RTCP)-Based Feedback
           (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February
           2008, <https://www.rfc-editor.org/info/rfc5124>.

[RFC5763]  Fischl, J., Tschofenig, H., and E. Rescorla, "Framework
           for Establishing a Secure Real-time Transport Protocol
           (SRTP) Security Context Using Datagram Transport Layer
           Security (DTLS)", RFC 5763, DOI 10.17487/RFC5763, May
           2010, <https://www.rfc-editor.org/info/rfc5763>.

[RFC6189]  Zimmermann, P., Johnston, A., Ed., and J. Callas, "ZRTP:
           Media Path Key Agreement for Unicast Secure RTP",
           RFC 6189, DOI 10.17487/RFC6189, April 2011,
           <https://www.rfc-editor.org/info/rfc6189>.

[RFC7435]  Dukhovni, V., "Opportunistic Security: Some Protection
           Most of the Time", RFC 7435, DOI 10.17487/RFC7435,
           December 2014, <https://www.rfc-editor.org/info/rfc7435>.

[RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
           2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
           May 2017, <https://www.rfc-editor.org/info/rfc8174>.

6.2. Informative References

These ones are the extra-credit reading πŸ€“πŸ’–:

[Kaplan06] Kaplan, H. and F. Audet, "Session Description Protocol
           (SDP) Offer/Answer Negotiation For Best-Effort Secure
           Real-Time Transport Protocol", Work in Progress,
           draft-kaplan-mmusic-best-effort-srtp-01, October 2006.

[RFC5939]  Andreasen, F., "Session Description Protocol (SDP)
           Capability Negotiation", RFC 5939, DOI 10.17487/RFC5939,
           September 2010, <https://www.rfc-editor.org/info/rfc5939>.

[RFC6337]  Okumura, S., Sawada, T., and P. Kyzivat, "Session
           Initiation Protocol (SIP) Usage of the Offer/Answer
           Model", RFC 6337, DOI 10.17487/RFC6337, August 2011,
           <https://www.rfc-editor.org/info/rfc6337>.

Acknowledgements 🫢

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. 🌷

Thanks to Eric Rescorla, Martin Thomson, Christer Holmberg, and Richard Barnes for their comments πŸ’œ.


Authors' Addresses πŸŽ€

Alan Johnston
Villanova University
Villanova, PA
United States of America

Email: alan.b.johnston@gmail.com


Bernard Aboba
Microsoft
One Microsoft Way
Redmond, WA  98052
United States of America

Email: bernard.aboba@gmail.com


Andrew Hutton
Atos
Mid City Place
London  WC1V 6EA
United Kingdom

Email: andrew.hutton@atos.net


Roland Jesske
Deutsche Telekom
Heinrich-Hertz-Strasse 3-7
Darmstadt  64295
Germany

Email: R.Jesske@telekom.de


Thomas Stach
Unaffiliated

Email: thomass.stach@gmail.com
πŸ“¦ where this page comes from