Internet DRAFT - draft-wing-rtcweb-sdes-problems
draft-wing-rtcweb-sdes-problems
RTCWEB Working Group D. Wing
Internet-Draft Cisco
Intended status: Standards Track December 18, 2012
Expires: June 21, 2013
Problems with Security Descriptions in RTCWEB Architecture
draft-wing-rtcweb-sdes-problems-00
Abstract
This document analyzes the problems of deploying Security
Descriptions on the RTCWEB architecture. This document contributes
to the discussion and analysis of Security Descriptions, and is not
intended to become an RFC.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 21, 2013.
Copyright Notice
Copyright (c) 2012 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
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Wing Expires June 21, 2013 [Page 1]
Internet-Draft Security Descriptions in RTCWEB December 2012
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Problems with Security Descriptions in RTCWEB . . . . . . . . . 3
2.1. Downgrade Attacks . . . . . . . . . . . . . . . . . . . . . 3
2.2. Impossible to Provide Strong Identity . . . . . . . . . . . 4
2.3. Mixing Weakens Security for Conference Calls . . . . . . . 4
2.4. Vulnerable to Passive Attack . . . . . . . . . . . . . . . 5
2.5. Forking . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1. Normative References . . . . . . . . . . . . . . . . . . . 6
5.2. Informative References . . . . . . . . . . . . . . . . . . 7
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 7
Wing Expires June 21, 2013 [Page 2]
Internet-Draft Security Descriptions in RTCWEB December 2012
1. Introduction
Over the years, there have been almost 20 different mechanisms for
establishing SRTP [RFC3711] keys. Several years ago, two RTPSEC BoFs
(IETF66, IETF68) concluded that DTLS-SRTP was the preferred keying
mechanism [RFC5479]. The RTCWEB working group has concluded that
DTLS-SRTP [RFC5763] will be used for browser-to-browser calls.
However, the RTCWEB working group has also been considering
supporting Security Descriptions [RFC4568] as another keying
mechanism. The primary reason for allowing Security Descriptions is
to allow easy interworking with existing SRTP endpoints that support
Security Descriptions, that is, for calls from a browser to a non-
browser and vise versa. Other reasons are summarized in
[I-D.ohlsson-rtcweb-sdes-support].
2. Problems with Security Descriptions in RTCWEB
This section describes the problems that occur by supporting Security
Descriptions in the RTCWEB architecture.
2.1. Downgrade Attacks
At IETF83, RTCWEB reached consensus that (unencrypted) RTP would not
be supported by RTCWEB endpoints.
While RTCWEB has agreed DTLS-SRTP will be used for keying "between
web browsers", there exists no cryptographically strong mechanism to
enforce this restriction. That is, there is no way to determine the
remote peer supports DTLS-SRTP, because the signaling (indicating
support of DTLS-SRTP) may have been manipulated on the path; the
signaling is not integrity protected end to end. This means all
RTCWEB hosts are vulnerable to a downgrade attack to Security
Descriptions (by merely removing the associated SDP lines).
One mitigation is for the RTCWEB endpoint to integrity protect its
signaling message and for the remote endpoint to validate the
integrity of the received signaling message. However, there is no
existing mechanism to protect the message integrity in that manner.
The existing SIP Identity [RFC4474] provides integrity protection of
the entire SDP, including the IP addresses in the SDP, which does not
survive SDP changes SBCs or by NATs doing SIP ALG rewriting. That
is, ICE would work alright with SIP Identity, but Trickle ICE is not
described for SIP Identity.
Another mitigation is to create a cryptographically strong mechanism
to determine the SRTP keying supported by a remote endpoint, such as
Wing Expires June 21, 2013 [Page 3]
Internet-Draft Security Descriptions in RTCWEB December 2012
publishing into a directory (e.g., DNS protected by DNSSEC similar to
how email's DKIM or SPF). This is considered as an Identity Provider
in [I-D.ietf-rtcweb-security-arch]. However, this can be problematic
in practice, as a SIP user can have multiple endpoints with the same
identity (e.g., dwing@example.com) with different SRTP keying
capabilities, such as a WEBRTC endpoint and a non-WEBRTC voicemail
system.
+------------+ +------------+
| web server +-----?----+ web server +
+-----+-+----+ +------+-----+
/ \ |
DTLS-SRTP / \ DTLS-SRTP |
/ \ |
+-------+ +-------+ +---+---+
| Alice +-------| Bob +-------+ Carol |
+-------+ media +-------+ media +-------+
Figure 1: RTCWEB trapezoid
2.2. Impossible to Provide Strong Identity
Security Descriptions cannot provide proof of identity. It is often
useful to know you are speaking to a bank, a merchant, a travel
agency, or a specific person. With Security Descriptions, this can
never be achieved.
With DTLS-SRTP, a strong identity could be assured, because each
endpoint possesses a private key, and the DTLS-SRTP handshake proves
the endpoint possesses that private key. Their public key can be
signed by an Identity Provider [I-D.ietf-rtcweb-security-arch], and
correlated with the encrypted media stream
[I-D.wing-sip-identity-media].
There is no way for Security Descriptions to provide this
functionality.
2.3. Mixing Weakens Security for Conference Calls
If a call starts as a browser-to-browser call, it will be keyed using
DTLS-SRTP. If another party is added to the call (becoming a 3-way
call), and that new party is on an IP PBX using Security
Descriptions, the new party will be keyed using Security
Descriptions.
Wing Expires June 21, 2013 [Page 4]
Internet-Draft Security Descriptions in RTCWEB December 2012
This is shown in the diagram below, where Alice and Bob are both
using web browsers and key using DTLS-SRTP, and then Carol joins the
call and is keyed using Security Descriptions:
+-------+
| Alice |
+---|---+
/\
DTLS-SRTP / \ SDES
/ \
+-------+ +-------+
| Bob |------| Carol |
+-------+ SDES +-------+
Figure 2: Mixed DTLS-SRTP and SDES
When this occurs, the creation of the Security Descriptions leg
exposes all parties (Alice, Bob, and Carol) to the weaknesses of
Security Descriptions. The alternative, which maintains security of
Alice and Bob's communications on their networks, is to interwork
with Carol using DTLS-SRTP.
2.4. Vulnerable to Passive Attack
The session key that encrypts the SRTP stream is sent within SIP
signaling, and is seen by all SIP signaling entities along the
signaling path (SIP proxies, B2BUAs, SBCs). Any of those SIP
signaling entities can use the session key to decyrpt the SRTP-
encrypted media, passively, without modifying any aspect of the
signaling. As shown in the figure below, an RTCWEB call can be
between web servers in different administrative domains, and can
traverse SIP proxies. With Security Descriptions, an attacker can
record the encrypted SRTP media and obtain the Security Description
keys any time later and decrypt the media. The Security Description
keys can be obtained by compromising any of the signaling elements on
the path, obtaining log files from any of the signaling elements on
the path (e.g., such as from backup tapes). As this attack is
passive, the victims have no way to determine such an attack
occurred.
+------------+ +-------------+ +------------+
| web server +--+ SIP proxies +--+ web server +
+-----+------+ +-------------+ +------+-----+
| |
| |
| |
+----+--+ +---+---+
| Alice +--------------------------+ Carol |
Wing Expires June 21, 2013 [Page 5]
Internet-Draft Security Descriptions in RTCWEB December 2012
+-------+ SRTP media +-------+
There is no defense from this attack.
2.5. Forking
With Security Descriptions, the sender's key is included in the
INVITE. When SIP forks an INVITE to multiple user agents (such as
with multiple telephone extensions) all of those user agents receive
the key and could decrypt one direction of the SRTP flow if the SRTP
is captured. It is possible to correct this problem by issuing a re-
INVITE (with a new key) after every initial INVITE, but that prevents
a re-INVITE from being sent for other reasons (because only one
INVITE can be processed at a time), and increases the number of call
signaling messages. Other approaches have been discussed, such as
splitting the Security Descriptions key in half, and more recently
[I-D.zhou-mmusic-sdes-keymod].
It is possible to extend Security Descriptions to defend against this
attack.
3. Security Considerations
This entire document describes security considerations.
4. IANA Considerations
None.
5. References
5.1. Normative References
[RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
Norrman, "The Secure Real-time Transport Protocol (SRTP)",
RFC 3711, March 2004.
[RFC4568] Andreasen, F., Baugher, M., and D. Wing, "Session
Description Protocol (SDP) Security Descriptions for Media
Streams", RFC 4568, July 2006.
[RFC5479] Wing, D., Fries, S., Tschofenig, H., and F. Audet,
"Requirements and Analysis of Media Security Management
Protocols", RFC 5479, April 2009.
Wing Expires June 21, 2013 [Page 6]
Internet-Draft Security Descriptions in RTCWEB December 2012
[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, May 2010.
5.2. Informative References
[I-D.ietf-rtcweb-security-arch]
Rescorla, E., "RTCWEB Security Architecture",
draft-ietf-rtcweb-security-arch-05 (work in progress),
October 2012.
[I-D.ohlsson-rtcweb-sdes-support]
Ohlsson, O., "Support of SDES in WebRTC",
draft-ohlsson-rtcweb-sdes-support-01 (work in progress),
August 2012.
[I-D.wing-sip-identity-media]
Wing, D. and H. Kaplan, "SIP Identity using Media Path",
draft-wing-sip-identity-media-02 (work in progress),
February 2008.
[I-D.zhou-mmusic-sdes-keymod]
Zhou, S. and T. Tian, "Security Descriptions Extension for
Media Streams", draft-zhou-mmusic-sdes-keymod-01 (work in
progress), March 2012.
[RFC4474] Peterson, J. and C. Jennings, "Enhancements for
Authenticated Identity Management in the Session
Initiation Protocol (SIP)", RFC 4474, August 2006.
Author's Address
Dan Wing
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, California 95134
USA
Email: dwing@cisco.com
Wing Expires June 21, 2013 [Page 7]