draft-ietf-mmusic-rtsp-nat-evaluation-10.txt   draft-ietf-mmusic-rtsp-nat-evaluation-11.txt 
Network Working Group M. Westerlund Network Working Group M. Westerlund
Internet-Draft Ericsson Internet-Draft Ericsson
Intended status: Informational T. Zeng Intended status: Informational T. Zeng
Expires: May 22, 2014 Expires: July 27, 2014
November 18, 2013 January 23, 2014
The Evaluation of Different Network Address Translator (NAT) Traversal The Evaluation of Different Network Address Translator (NAT) Traversal
Techniques for Media Controlled by Real-time Streaming Protocol (RTSP) Techniques for Media Controlled by Real-time Streaming Protocol (RTSP)
draft-ietf-mmusic-rtsp-nat-evaluation-10 draft-ietf-mmusic-rtsp-nat-evaluation-11
Abstract Abstract
This document describes several Network Address Translator (NAT) This document describes several Network Address Translator (NAT)
traversal techniques that were considered to be used for establishing traversal techniques that were considered to be used for establishing
the RTP media flows controlled by the Real-time Streaming Protocol the RTP media flows controlled by the Real-time Streaming Protocol
(RTSP). Each technique includes a description on how it would be (RTSP). Each technique includes a description of how it would be
used, the security implications of using it and any other deployment used, the security implications of using it and any other deployment
considerations it has. There are also discussions on how NAT considerations it has. There are also discussions on how NAT
traversal techniques relates to firewalls and how each technique can traversal techniques relate to firewalls and how each technique can
be applied in different use cases. These findings where used when be applied in different use cases. These findings were used when
selecting the NAT traversal for RTSP 2.0. selecting the NAT traversal for RTSP 2.0, which is specified in a
separate document.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 22, 2014. This Internet-Draft will expire on July 27, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Network Address Translators . . . . . . . . . . . . . . . 4 1.1. Network Address Translators . . . . . . . . . . . . . . . 4
1.2. Firewalls . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2. Firewalls . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Detecting the loss of NAT mappings . . . . . . . . . . . . . 7 2. Detecting the loss of NAT mappings . . . . . . . . . . . . . 7
3. Requirements on Solutions . . . . . . . . . . . . . . . . . . 8 3. Requirements on Solutions . . . . . . . . . . . . . . . . . . 8
4. NAT Traversal Techniques . . . . . . . . . . . . . . . . . . 9 4. NAT Traversal Techniques . . . . . . . . . . . . . . . . . . 9
4.1. Stand-Alone STUN . . . . . . . . . . . . . . . . . . . . 10 4.1. Stand-Alone STUN . . . . . . . . . . . . . . . . . . . . 10
skipping to change at page 3, line 21 skipping to change at page 3, line 9
4.5.1. Introduction . . . . . . . . . . . . . . . . . . . . 24 4.5.1. Introduction . . . . . . . . . . . . . . . . . . . . 24
4.5.2. Necessary RTSP extensions . . . . . . . . . . . . . . 25 4.5.2. Necessary RTSP extensions . . . . . . . . . . . . . . 25
4.5.3. Deployment Considerations . . . . . . . . . . . . . . 25 4.5.3. Deployment Considerations . . . . . . . . . . . . . . 25
4.5.4. Security Considerations . . . . . . . . . . . . . . . 26 4.5.4. Security Considerations . . . . . . . . . . . . . . . 26
4.6. Three Way Latching . . . . . . . . . . . . . . . . . . . 26 4.6. Three Way Latching . . . . . . . . . . . . . . . . . . . 26
4.6.1. Introduction . . . . . . . . . . . . . . . . . . . . 26 4.6.1. Introduction . . . . . . . . . . . . . . . . . . . . 26
4.6.2. Necessary RTSP extensions . . . . . . . . . . . . . . 26 4.6.2. Necessary RTSP extensions . . . . . . . . . . . . . . 26
4.6.3. Deployment Considerations . . . . . . . . . . . . . . 27 4.6.3. Deployment Considerations . . . . . . . . . . . . . . 27
4.7. Application Level Gateways . . . . . . . . . . . . . . . 27 4.7. Application Level Gateways . . . . . . . . . . . . . . . 27
4.7.1. Introduction . . . . . . . . . . . . . . . . . . . . 27 4.7.1. Introduction . . . . . . . . . . . . . . . . . . . . 27
4.7.2. Outline On how ALGs for RTSP work . . . . . . . . . . 27 4.7.2. Outline On how ALGs for RTSP work . . . . . . . . . . 28
4.7.3. Deployment Considerations . . . . . . . . . . . . . . 29 4.7.3. Deployment Considerations . . . . . . . . . . . . . . 29
4.7.4. Security Considerations . . . . . . . . . . . . . . . 29 4.7.4. Security Considerations . . . . . . . . . . . . . . . 29
4.8. TCP Tunneling . . . . . . . . . . . . . . . . . . . . . . 30 4.8. TCP Tunneling . . . . . . . . . . . . . . . . . . . . . . 30
4.8.1. Introduction . . . . . . . . . . . . . . . . . . . . 30 4.8.1. Introduction . . . . . . . . . . . . . . . . . . . . 30
4.8.2. Usage of TCP tunneling in RTSP . . . . . . . . . . . 30 4.8.2. Usage of TCP tunneling in RTSP . . . . . . . . . . . 30
4.8.3. Deployment Considerations . . . . . . . . . . . . . . 30 4.8.3. Deployment Considerations . . . . . . . . . . . . . . 30
4.8.4. Security Considerations . . . . . . . . . . . . . . . 31 4.8.4. Security Considerations . . . . . . . . . . . . . . . 31
4.9. TURN (Traversal Using Relay NAT) . . . . . . . . . . . . 31 4.9. TURN (Traversal Using Relay NAT) . . . . . . . . . . . . 31
4.9.1. Introduction . . . . . . . . . . . . . . . . . . . . 31 4.9.1. Introduction . . . . . . . . . . . . . . . . . . . . 31
4.9.2. Usage of TURN with RTSP . . . . . . . . . . . . . . . 31 4.9.2. Usage of TURN with RTSP . . . . . . . . . . . . . . . 32
4.9.3. Deployment Considerations . . . . . . . . . . . . . . 32 4.9.3. Deployment Considerations . . . . . . . . . . . . . . 32
4.9.4. Security Considerations . . . . . . . . . . . . . . . 33 4.9.4. Security Considerations . . . . . . . . . . . . . . . 33
5. Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5. Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6. Comparison of NAT traversal techniques . . . . . . . . . . . 34 6. Comparison of NAT traversal techniques . . . . . . . . . . . 34
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36
8. Security Considerations . . . . . . . . . . . . . . . . . . . 36 8. Security Considerations . . . . . . . . . . . . . . . . . . . 36
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 37 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 37
10. Informative References . . . . . . . . . . . . . . . . . . . 37 10. Informative References . . . . . . . . . . . . . . . . . . . 37
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39
skipping to change at page 4, line 11 skipping to change at page 3, line 48
[RFC2326][I-D.ietf-mmusic-rfc2326bis], needs to deal with such [RFC2326][I-D.ietf-mmusic-rfc2326bis], needs to deal with such
discontinuities caused by NATs. The problem is that, being a media discontinuities caused by NATs. The problem is that, being a media
control protocol managing one or more media streams, RTSP carries control protocol managing one or more media streams, RTSP carries
network address and port information within its protocol messages. network address and port information within its protocol messages.
Because of this, even if RTSP itself, when carried over Transmission Because of this, even if RTSP itself, when carried over Transmission
Control Protocol (TCP) [RFC0793] for example, is not blocked by NATs, Control Protocol (TCP) [RFC0793] for example, is not blocked by NATs,
its media streams may be blocked by NATs. This will occur unless its media streams may be blocked by NATs. This will occur unless
special protocol provisions are added to support NAT-traversal. special protocol provisions are added to support NAT-traversal.
Like NATs, Firewalls are also middle boxes that need to be Like NATs, Firewalls are also middle boxes that need to be
considered. Firewalls helps prevent unwanted traffic from getting in considered. Firewalls help prevent unwanted traffic from getting in
or out of the protected network. RTSP is designed such that a or out of the protected network. RTSP is designed such that a
firewall can be configured to let RTSP controlled media streams go firewall can be configured to let RTSP controlled media streams go
through with minimal implementation effort. The minimal effort is to through with minimal implementation effort. The minimal effort is to
implement an Application Level Gateway (ALG) to interpret RTSP implement an Application Level Gateway (ALG) to interpret RTSP
parameters. There is also a large class of firewalls, commonly home parameters. There is also a large class of firewalls, commonly home
firewalls, that uses a similar filtering behavior to what NAT has. firewalls, that uses a similar filtering behavior to what NAT has.
This type of firewalls can be handled using the same solution as This type of firewalls can be handled using the same solution as
employed for NAT traversal instead of relying on ALGs. employed for NAT traversal instead of relying on ALGs.
This document describes several NAT-traversal mechanisms for RTSP This document describes several NAT-traversal mechanisms for RTSP
skipping to change at page 5, line 4 skipping to change at page 4, line 40
over UDP being the main case for such usage. The findings should be over UDP being the main case for such usage. The findings should be
applicable to other protocols as long as they have similar applicable to other protocols as long as they have similar
properties. properties.
The resulting ICE-based RTSP NAT traversal mechanism is specified in The resulting ICE-based RTSP NAT traversal mechanism is specified in
"A Network Address Translator (NAT) Traversal mechanism for media "A Network Address Translator (NAT) Traversal mechanism for media
controlled by Real-Time Streaming Protocol (RTSP)" controlled by Real-Time Streaming Protocol (RTSP)"
[I-D.ietf-mmusic-rtsp-nat]. [I-D.ietf-mmusic-rtsp-nat].
1.1. Network Address Translators 1.1. Network Address Translators
Readers are urged to refer to "IP Network Address Translator (NAT)
We begin by reviewing what "Network Address Translation (NAT)
Behavioral Requirements for Unicast UDP" [RFC4787] states about NATs
and their Terminology in Section 3:
"Readers are urged to refer to "IP Network Address Translator (NAT)
Terminology and Considerations" [RFC2663] for information on NAT Terminology and Considerations" [RFC2663] for information on NAT
taxonomy and terminology. Traditional NAT is the most common type of taxonomy and terminology. Traditional NAT is the most common type of
NAT device deployed. Readers may refer to "Traditional IP Network NAT device deployed. Readers may refer to "Traditional IP Network
Address Translator (Traditional NAT)" [RFC3022] for detailed Address Translator (Traditional NAT)" [RFC3022] for detailed
information on traditional NAT. Traditional NAT has two main information on traditional NAT. Traditional NAT has two main
varieties -- Basic NAT and Network Address/Port Translator (NAPT). varieties -- Basic NAT and Network Address/Port Translator (NAPT).
NAPT is by far the most commonly deployed NAT device. NAPT allows NAPT is by far the most commonly deployed NAT device. NAPT allows
multiple internal hosts to share a single public IP address multiple internal hosts to share a single public IP address
simultaneously. When an internal host opens an outgoing TCP or UDP simultaneously. When an internal host opens an outgoing TCP or UDP
session through a NAPT, the NAPT assigns the session a public IP session through a NAPT, the NAPT assigns the session an external IP
address and port number, so that subsequent response packets from the address and port number, so that subsequent response packets from the
external endpoint can be received by the NAPT, translated, and external endpoint can be received by the NAPT, translated, and
forwarded to the internal host. The effect is that the NAPT forwarded to the internal host. The effect is that the NAPT
establishes a NAT mapping to translate the (private IP address, establishes a NAT mapping to translate the (private IP address,
private port number) tuple to a (public IP address, public port private port number) tuple to a (external IP address, external port
number) tuple, and vice versa, for the duration of the session. An number) tuple, and vice versa, for the duration of the session. The
issue of relevance to peer-to-peer applications is how the NAT external IP address is commonly a public one, but might be of other
behaves when an internal host initiates multiple simultaneous type if the NAT is in itself in a private address domain. An issue
sessions from a single (private IP, private port) endpoint to of relevance to peer-to-peer applications is how the NAT behaves when
multiple distinct endpoints on the external network. In this an internal host initiates multiple simultaneous sessions from a
specification, the term "NAT" refers to both "Basic NAT" and "Network single (private IP, private port) endpoint to multiple distinct
Address/Port Translator (NAPT)". endpoints on the external network. In this specification, the term
"NAT" refers to both "Basic NAT" and "Network Address/Port Translator
(NAPT)".
This document uses the term "address and port mapping" as the This document uses the term "address and port mapping" as the
translation between an external address and port and an internal translation between an external address and port and an internal
address and port. Note that this is not the same as an "address address and port. Note that this is not the same as an "address
binding" as defined in RFC 2663. There exist a number of address and binding" as defined in RFC 2663."
In addition to the above quote there exists a number of address and
port mapping behaviors described in more detail in Section 4.1 of port mapping behaviors described in more detail in Section 4.1 of
"Network Address Translation (NAT) Behavioral Requirements for "Network Address Translation (NAT) Behavioral Requirements for
Unicast UDP" [RFC4787]. Unicast UDP" [RFC4787] that are highly relevant to the discussion in
this document.
NATs also have a filtering behavior on traffic arriving on the NATs also have a filtering behavior on traffic arriving on the
external side. Such behavior affects how well different methods for external side. Such behavior affects how well different methods for
NAT traversal works through these NATs. See Section 5 of "Network NAT traversal works through these NATs. See Section 5 of "Network
Address Translation (NAT) Behavioral Requirements for Unicast UDP" Address Translation (NAT) Behavioral Requirements for Unicast UDP"
[RFC4787] for more information on the different types of filtering [RFC4787] for more information on the different types of filtering
that have been identified. that have been identified.
1.2. Firewalls 1.2. Firewalls
A firewall is a security gateway that enforces certain access control A firewall is a security gateway that enforces certain access control
policies between two network administrative domains: a private domain policies between two network administrative domains: a private domain
(intranet) and a external domain, e.g. public Internet. Many (intranet) and a external domain, e.g. public Internet. Many
organizations use firewalls to prevent privacy intrusions and organizations use firewalls to prevent privacy intrusions and
malicious attacks to corporate computing resources in the private malicious attacks to corporate computing resources in the private
intranet [RFC2588]. intranet [RFC2588].
A comparison between NAT and Firewall is given below: A comparison between NAT and Firewall is given below:
1. A firewall must sit between two network administrative domains, 1. A firewall sits at security enforcement/protection points, while
while NAT does not have to sit between two domains. NAT sits at borders between two address domains.
2. NAT does not in itself provide security, although some access 2. NAT does not in itself provide security, although some access
control policies can be implemented using address translation control policies can be implemented using address translation
schemes. The inherent filtering behaviours are commonly mistaken schemes. The inherent filtering behaviours are commonly mistaken
for real security policies. for real security policies.
It should be noted that many NAT devices intended for Residential or It should be noted that many NAT devices intended for Residential or
small office/home office (SOHO) use include both NATs and firewall small office/home office (SOHO) use include both NATs and firewall
functionality. functionality.
skipping to change at page 7, line 45 skipping to change at page 7, line 43
to detect loss of NAT mappings when using RTP/RTCP under RTSP to detect loss of NAT mappings when using RTP/RTCP under RTSP
control. control.
A RTP session normally has both RTP and RTCP streams. The loss of a A RTP session normally has both RTP and RTCP streams. The loss of a
RTP mapping can only be detected when expected traffic does not RTP mapping can only be detected when expected traffic does not
arrive. If a client does not receive data within a few seconds after arrive. If a client does not receive data within a few seconds after
having received the "200 OK" response to a PLAY request, there are having received the "200 OK" response to a PLAY request, there are
likely some middleboxes blocking the traffic. However, for a likely some middleboxes blocking the traffic. However, for a
receiver to be more certain to detect the case where no RTP traffic receiver to be more certain to detect the case where no RTP traffic
was delivered due to NAT trouble, one should monitor the RTCP Sender was delivered due to NAT trouble, one should monitor the RTCP Sender
reports. The sender report carries a field telling how many packets reports if they are received and not also blocked. The sender report
the server has sent. If that has increased and no RTP packets has carries a field telling how many packets the server has sent. If
arrived for a few seconds it is likely the RTP mapping has been that has increased and no RTP packets has arrived for a few seconds
removed. it is likely the RTP mapping has been removed.
The loss of mapping for RTCP is simpler to detect. RTCP is normally The loss of mapping for RTCP is simpler to detect. RTCP is normally
sent periodically in each direction, even during the RTSP ready sent periodically in each direction, even during the RTSP ready
state. If RTCP packets are missing for several RTCP intervals, the state. If RTCP packets are missing for several RTCP intervals, the
mapping is likely lost. Note that if neither RTCP packets nor RTSP mapping is likely lost. Note that if neither RTCP packets nor RTSP
messages are received by the RTSP server for a while, the RTSP server messages are received by the RTSP server for a while, the RTSP server
has the option to delete the corresponding RTP session, SSRC and RTSP has the option to delete the corresponding RTP session, SSRC and RTSP
session ID, because either the client can not get through a middle session ID, because either the client can not get through a middle
box NAT/Firewall, or that the client is mal-functioning. box NAT/Firewall, or the client is mal-functioning.
3. Requirements on Solutions 3. Requirements on Solutions
This section considers the set of requirements for the evaluation of This section considers the set of requirements for the evaluation of
RTSP NAT traversal solutions. RTSP NAT traversal solutions.
RTSP is a client-server protocol. Typically service providers deploy RTSP is a client-server protocol. Typically service providers deploy
RTSP servers in the public address realm. However, there are use RTSP servers in the public address realm. However, there are use
cases where the reverse is true: RTSP clients are connecting from cases where the reverse is true: RTSP clients are connecting from
public address realm to RTSP servers behind home NATs. This is the public address realm to RTSP servers behind home NATs. This is the
skipping to change at page 9, line 41 skipping to change at page 9, line 38
4. NAT Traversal Techniques 4. NAT Traversal Techniques
There exists a number of potential NAT traversal techniques that can There exists a number of potential NAT traversal techniques that can
be used to allow RTSP to traverse NATs. They have different features be used to allow RTSP to traverse NATs. They have different features
and are applicable to different topologies; their costs are also and are applicable to different topologies; their costs are also
different. They also vary in security levels. In the following different. They also vary in security levels. In the following
sections, each technique is outlined with discussions on the sections, each technique is outlined with discussions on the
corresponding advantages and disadvantages. corresponding advantages and disadvantages.
The main evaluation was done prior to 2007 and are based on what was The main evaluation was done prior to 2007 and is based on what was
available then. This section includes NAT traversal techniques that available then. This section includes NAT traversal techniques that
have not been formally specified anywhere else. The overview section have not been formally specified anywhere else. The overview section
of this document may be the only publicly available specification of of this document may be the only publicly available specification of
some of the NAT traversal techniques. However that is not a real some of the NAT traversal techniques. However that is not a real
barrier against doing an evaluation of the NAT traversal technique. barrier against doing an evaluation of the NAT traversal techniques.
Some other techniques have been recommended against or are no longer Some other techniques have been recommended against or are no longer
possible due to standardization works' outcome or their failure to possible due to standardization works' outcome or their failure to
progress within IETF after the initial evaluation in this document, progress within IETF after the initial evaluation in this document,
e.g. RTP No-Op [I-D.ietf-avt-rtp-no-op]. e.g. RTP No-Op [I-D.ietf-avt-rtp-no-op].
4.1. Stand-Alone STUN 4.1. Stand-Alone STUN
4.1.1. Introduction 4.1.1. Introduction
Session Traversal Utilities for NAT (STUN) [RFC5389] is a Session Traversal Utilities for NAT (STUN) [RFC5389] is a
skipping to change at page 11, line 6 skipping to change at page 11, line 6
o Based on the discontinued middlebox classification of the replaced o Based on the discontinued middlebox classification of the replaced
STUN specification [RFC3489]. Thus brittle and unreliable. STUN specification [RFC3489]. Thus brittle and unreliable.
Method: Method:
A RTSP client using RTP transport over UDP can use STUN to traverse a A RTSP client using RTP transport over UDP can use STUN to traverse a
NAT(s) in the following way: NAT(s) in the following way:
1. Use STUN to try to discover the type of NAT, and the timeout 1. Use STUN to try to discover the type of NAT, and the timeout
period for any UDP mapping on the NAT. This is recommend to be period for any UDP mapping on the NAT. This is recommended to be
performed in the background as soon as IP connectivity is performed in the background as soon as IP connectivity is
established. If this is performed prior to establishing a established. If this is performed prior to establishing a
streaming session the delays in the session establishment will be streaming session the delays in the session establishment will be
reduced. If no NAT is detected, normal SETUP should be used. reduced. If no NAT is detected, normal SETUP should be used.
2. The RTSP client determines the number of UDP ports needed by 2. The RTSP client determines the number of UDP ports needed by
counting the number of needed media transport protocols sessions counting the number of needed media transport protocols sessions
in the multi-media presentation. This information is available in the multi-media presentation. This information is available
in the media description protocol, e.g. SDP [RFC4566]. For in the media description protocol, e.g. SDP [RFC4566]. For
example, each RTP session will in general require two UDP ports, example, each RTP session will in general require two UDP ports,
skipping to change at page 13, line 14 skipping to change at page 13, line 14
As it may be difficult to determine why the failure occurs, the usage As it may be difficult to determine why the failure occurs, the usage
of TLS protected RTSP message exchange at all times would avoid this of TLS protected RTSP message exchange at all times would avoid this
issue. issue.
4.1.4. Deployment Considerations 4.1.4. Deployment Considerations
For the Stand-Alone usage of STUN the following applies: For the Stand-Alone usage of STUN the following applies:
Advantages: Advantages:
o STUN is a solution first used by SIP applications. As shown o STUN is a solution first used by SIP based applications (See
above, with little or no changes, the RTSP application can re-use section 1 and 2 of [RFC5389]). As shown above, with little or no
STUN as a NAT traversal solution, avoiding the pit-fall of solving changes, the RTSP application can re-use STUN as a NAT traversal
a problem twice. solution, avoiding the pit-fall of solving a problem twice.
o Using STUN does not require RTSP server modifications; it only o Using STUN does not require RTSP server modifications; it only
affects the client implementation. affects the client implementation.
Disadvantages: Disadvantages:
o Requires a STUN server deployed in the public address space. o Requires a STUN server deployed in the public address space.
o Only works with NATs that perform endpoint independent and address o Only works with NATs that perform endpoint independent and address
dependent mappings. Address and Port-Dependent filtering NATs dependent mappings. Address and Port-Dependent filtering NATs
skipping to change at page 19, line 39 skipping to change at page 19, line 32
is most likely to be a server in the public. is most likely to be a server in the public.
4. The server responds to the SETUP (200 OK) for each media stream 4. The server responds to the SETUP (200 OK) for each media stream
with its candidates. A server with a public address usually only with its candidates. A server with a public address usually only
provides a single ICE candidate. Also here one candidate is the provides a single ICE candidate. Also here one candidate is the
server primary address. server primary address.
5. The connectivity checks are performed. For the server the 5. The connectivity checks are performed. For the server the
connectivity checks from the server to the clients have an connectivity checks from the server to the clients have an
additional usage. They verify that there is someone willingly to additional usage. They verify that there is someone willingly to
receive the media, thus protecting itself from performing receive the media, thus preventing the server from unknowingly
unknowingly an DoS attack. performing a DoS attack.
6. Connectivity checks from the client promoting a candidate pair 6. Connectivity checks from the client promoting a candidate pair
were successful. Thus no further SETUP requests are necessary were successful. Thus no further SETUP requests are necessary
and processing can proceed with step 7. If another address than and processing can proceed with step 7. If another address than
the primary has been verified by the client to work, that address the primary has been verified by the client to work, that address
may then be promoted for usage in a SETUP request (Go to 7). If may then be promoted for usage in a SETUP request (Go to 7). If
the checks for the available candidates failed and if further the checks for the available candidates failed and if further
candidates have been derived during the connectivity checks, then candidates have been derived during the connectivity checks, then
those can be signalled in new candidate lines in a SETUP request those can be signalled in new candidate lines in a SETUP request
updating the list (Go to 5). updating the list (Go to 5).
skipping to change at page 20, line 18 skipping to change at page 20, line 11
NAT) then it can directly answer 200 OK (Go to 8). If the NAT) then it can directly answer 200 OK (Go to 8). If the
connectivity check has not yet completed it responds with a 1xx connectivity check has not yet completed it responds with a 1xx
code to indicate that it is verifying the connectivity. If that code to indicate that it is verifying the connectivity. If that
fails within the set timeout, an error is reported back. Client fails within the set timeout, an error is reported back. Client
needs to go back to 6. needs to go back to 6.
8. Process completed and media can be delivered. ICE candidates not 8. Process completed and media can be delivered. ICE candidates not
used may be released. used may be released.
To keep media paths alive the client needs to periodically send data To keep media paths alive the client needs to periodically send data
to the server. This will be realized with STUN. RTCP sent by client to the server. This will be realized with STUN. RTCP sent by the
should be able to keep RTCP open but STUN will also be used based on client should be able to keep RTCP open but STUN will also be used
the same motivations as for ICE for SIP. based on the same motivations as for ICE for SIP.
4.3.3. Implementation burden of ICE 4.3.3. Implementation burden of ICE
The usage of ICE will require that a number of new protocols and new The usage of ICE will require that a number of new protocols and new
RTSP/SDP features be implemented. This makes ICE the solution that RTSP/SDP features be implemented. This makes ICE the solution that
has the largest impact on client and server implementations amongst has the largest impact on client and server implementations amongst
all the NAT/Firewall traversal methods in this document. all the NAT/Firewall traversal methods in this document.
RTSP server implementation requirements are: RTSP server implementation requirements are:
o STUN server features o STUN server features
o limited STUN client features o Limited STUN client features
o SDP generation with more parameters. o SDP generation with more parameters.
o RTSP error code for ICE extension o RTSP error code for ICE extension
RTSP client implementation requirements are: RTSP client implementation requirements are:
o Limited STUN server features o Limited STUN server features
o Limited STUN client features o Limited STUN client features
o RTSP error code and ICE extension o RTSP error code and ICE extension
4.3.4. Deployment Considerations 4.3.4. Deployment Considerations
Advantages: Advantages:
o Solves NAT connectivity discovery for basically all cases as long o Solves NAT connectivity discovery for basically all cases as long
as a TCP connection between them can be established. This as a TCP connection between the client and server can be
includes servers behind NATs. (Note that a proxy between address established. This includes servers behind NATs. (Note that a
domains may be required to get TCP through). proxy between address domains may be required to get TCP through).
o Improves defenses against DDoS attacks, as media receiving client o Improves defenses against DDoS attacks, since a media receiving
requires authentications, via STUN on its media reception ports. client requires authentications, via STUN on its media reception
ports.
Disadvantages: Disadvantages:
o Increases the setup delay with at least the amount of time it o Increases the setup delay with at least the amount of time it
takes for the server to perform its STUN requests. takes for the server to perform its STUN requests.
o Assumes that it is possible to de-multiplex between the packets of o Assumes that it is possible to de-multiplex between the packets of
the media protocol and STUN packets. the media protocol and STUN packets.
o Has fairly high implementation burden put on both RTSP server and o Has fairly high implementation burden put on both RTSP server and
skipping to change at page 21, line 37 skipping to change at page 21, line 32
avoid the DDoS attack issue with RTSP substantially as it reduces the avoid the DDoS attack issue with RTSP substantially as it reduces the
possibility for a DDoS using RTSP servers to attackers that are on- possibility for a DDoS using RTSP servers to attackers that are on-
path between the RTSP server and the target and capable of path between the RTSP server and the target and capable of
intercepting the STUN connectivity check packets and correctly send a intercepting the STUN connectivity check packets and correctly send a
response to the server. response to the server.
4.4. Latching 4.4. Latching
4.4.1. Introduction 4.4.1. Introduction
Latching is a NAT traversal solution that is based on requiring RTSP Latching [I-D.ietf-mmusic-latching] is a NAT traversal solution that
clients to send UDP packets to the server's media output ports. is based on requiring RTSP clients to send UDP packets to the
Conventionally, RTSP servers send RTP packets in one direction: from server's media output ports. Conventionally, RTSP servers send RTP
server to client. Latching is similar to connection-oriented packets in one direction: from server to client. Latching is similar
traffic, where one side (e.g., the RTSP client) first "connects" by to connection-oriented traffic, where one side (e.g., the RTSP
sending a RTP packet to the other side's RTP port, the recipient then client) first "connects" by sending a RTP packet to the other side's
replies to the originating IP and port. This method is also referred RTP port, the recipient then replies to the originating IP and port.
to as "Late binding". It requires that all RTP/RTCP transport is This method is also referred to as "Late binding". It requires that
done symmetrical, i.e. Symmetric RTP [RFC4961]. all RTP/RTCP transport is done symmetrical, i.e. Symmetric RTP
[RFC4961].
Specifically, when the RTSP server receives the latching packet Specifically, when the RTSP server receives the latching packet
(a.k.a. hole-punching packet, since it is used to punch a hole in the (a.k.a. hole-punching packet, since it is used to punch a hole in the
Firewall/NAT and to aid the server for port binding and address Firewall/NAT and to aid the server for port binding and address
mapping) from its client, it copies the source IP and Port number and mapping) from its client, it copies the source IP and Port number and
uses them as delivery address for media packets. By having the uses them as delivery address for media packets. By having the
server send media traffic back the same way as the client's packet server send media traffic back the same way as the client's packet
are sent to the server, address mappings will be honored. Therefore are sent to the server, address mappings will be honored. Therefore
this technique works for all types of NATs, given that the server is this technique works for all types of NATs, given that the server is
not behind a NAT. However, it does require server modifications. not behind a NAT. However, it does require server modifications.
Unless there is built-in protection mechanism, latching is very Unless there is built-in protection mechanism, latching is very
vulnerable to DDoS attacks, because attackers can simply forge the vulnerable to DDoS attacks (See Security Considerations of
[I-D.ietf-mmusic-latching]), because attackers can simply forge the
source IP & Port of the latching packet. Using the rule for source IP & Port of the latching packet. Using the rule for
restricting IP address to the one of the signaling connection will restricting IP address to the one of the signaling connection will
need to be applied here also. However, that does not protect against need to be applied here also. However, that does not protect against
hijacking from another client behind the same NAT. This can become a hijacking from another client behind the same NAT. This can become a
serious issue in deployments with CGNs. serious issue in deployments with CGNs.
4.4.2. Necessary RTSP extensions 4.4.2. Necessary RTSP extensions
To support Latching, the RTSP signaling must be extended to allow the To support Latching, the RTSP signaling must be extended to allow the
RTSP client to indicate that it will use Latching. The client also RTSP client to indicate that it will use Latching. The client also
skipping to change at page 23, line 13 skipping to change at page 23, line 9
o Limited to work with servers that have an public IP address. o Limited to work with servers that have an public IP address.
o The format of the RTP packet for "connection setup" (a.k.a o The format of the RTP packet for "connection setup" (a.k.a
Latching packet) is yet to be defined. One possibility is to use Latching packet) is yet to be defined. One possibility is to use
RTP No-Op packet format in [I-D.ietf-avt-rtp-no-op]. RTP No-Op packet format in [I-D.ietf-avt-rtp-no-op].
o SSRC management if RTP is used for latching due to risk for mis- o SSRC management if RTP is used for latching due to risk for mis-
association of clients to RTSP sessions at the server if SSRC association of clients to RTSP sessions at the server if SSRC
collision occurs. collision occurs.
o Has worse security situation than STUN due to lack of STUN message o Has significant security considerations (Section 4.4.4) due to
authentication and will need to use address restrictions. lack of strong authentication mechanism, compare with STUN message
authentication, and will need to use address restrictions.
4.4.4. Security Consideration 4.4.4. Security Consideration
Latching's major security issue is that RTP streams can be hijacked Latching's major security issue is that RTP streams can be hijacked
and directed towards any target that the attacker desires unless and directed towards any target that the attacker desires unless
address restrictions are used. In the case of NATs with multiple address restrictions are used. In the case of NATs with multiple
clients on the inside of them, hijacking can still occur. This clients on the inside of them, hijacking can still occur. This
becomes a significant threat in the context of carrier grade NATs becomes a significant threat in the context of carrier grade NATs
(CGN). (CGN).
The most serious security problem is the deliberate attack with the The most serious security problem is the deliberate attack with the
use of a RTSP client and Latching. The attacker uses RTSP to setup a use of a RTSP client and Latching. The attacker uses RTSP to setup a
media session. Then it uses Latching with a spoofed source address media session. Then it uses Latching with a spoofed source address
of the intended target of the attack. There is no defense against of the intended target of the attack. There is no defense against
this attack other than restricting the possible address a latching this attack other than restricting the possible address a latching
packet can come from to the same as the RTSP TCP connection are from. packet can come from to the same as the RTSP TCP connection are from.
This prevents Latching to be used in use cases that require different This prevents Latching to be used in use cases that require different
addresses for media destination and signalling. addresses for media destination and signalling. Even allowing only a
limited address range containing the signalling address from where
latching is allowed opens up a significant vulnerability as it is
difficult to determine the address usage for the network the client
connects from.
A hijack attack can also be performed in various ways. The basic A hijack attack can also be performed in various ways. The basic
attack is based on the ability to read the RTSP signaling packets in attack is based on the ability to read the RTSP signaling packets in
order to learn the address and port the server will send from and order to learn the address and port the server will send from and
also the SSRC the client will use. Having this information the also the SSRC the client will use. Having this information the
attacker can send its own Latching packets containing the correct RTP attacker can send its own Latching packets containing the correct RTP
SSRC to the correct address and port on the server. The RTSP server SSRC to the correct address and port on the server. The RTSP server
will then use the source IP and port from the Latching packet as the will then use the source IP and port from the Latching packet as the
destination for the media packets it sends. destination for the media packets it sends.
Another variation of this attack is for a man in the middle to modify Another variation of this attack is for a man in the middle to modify
the RTP latching packet being sent by a client to the server by the RTP latching packet being sent by a client to the server by
simply changing the source IP to the target one desires to attack. simply changing the source IP to the target one desires to attack.
One can fend off the first attack by applying encryption to the RTSP One can fend off the snooping based attack by applying encryption to
signaling transport. However, the second variation is impossible to the RTSP signaling transport. However, if the attacker is an man in
defend against. As a NAT re-writes the source IP and port this the middle modifying latching packets, the attack is impossible to
cannot be authenticated, but authentication is required in order to defend against other than through address restrictions. As a NAT re-
protect against this type of DoS attack. writes the source IP and (possibly) port this cannot be
authenticated, but authentication is required in order to protect
against this type of DoS attack.
Yet another issues is that these attacks also can be used to deny the Yet another issues is that these attacks also can be used to deny the
client the service it desires from the RTSP server completely. For a client the service it desires from the RTSP server completely. The
man in the middle capable of reading the signaling traffic or attacker modifies or originates its own latching packets with another
intercepting the latching packets can completely deny the client port than what the legit latching packets uses, which results in that
service by modifying or originating latching packets of itself. the media server sends the RTP/RTCP traffic to ports the client isn't
listening for RTP/RTCP on.
The amount of random non-guessable material in the latching packet The amount of random non-guessable material in the latching packet
determines how well Latching can fend off stream-hijacking performed determines how well Latching can fend off stream-hijacking performed
by parties that are not "man-in-the-middle". This proposal uses the by parties that are off the client to server network path, i.e. lacks
32-bit RTP SSRC field to this effect. Therefore it is important that the capability to see the client's latching packets. This proposal
this field is derived with a non-predictable random number generator. uses the 32-bit RTP SSRC field to this effect. Therefore it is
It should not be possible by knowing the algorithm used and a couple important that this field is derived with a non-predictable random
of basic facts, to derive what random number a certain client will number generator. It should not be possible by knowing the algorithm
use. used and a couple of basic facts, to derive what random number a
certain client will use.
An attacker not knowing the SSRC but aware of which port numbers that An attacker not knowing the SSRC but aware of which port numbers that
a server sends from can deploy a brute force attack on the server by a server sends from can deploy a brute force attack on the server by
testing a lot of different SSRCs until it finds a matching one. testing a lot of different SSRCs until it finds a matching one.
Therefore a server could implement functionality that blocks packets Therefore a server could implement functionality that blocks packets
to ports or from sources that receive or send multiple Latching to ports or from sources that receive or send multiple Latching
packets with different invalid SSRCs, especially when they are coming packets with different invalid SSRCs, especially when they are coming
from the same IP/Port. Note that this mitigation in itself opens up from the same IP/Port. Note that this mitigation in itself opens up
a new venue for DoS attacks against legit users trying to latch. a new venue for DoS attacks against legit users trying to latch.
skipping to change at page 24, line 40 skipping to change at page 24, line 44
material could be increased. To achieve a longer random tag while material could be increased. To achieve a longer random tag while
still using RTP and RTCP, it will be necessary to develop RTP and still using RTP and RTCP, it will be necessary to develop RTP and
RTCP payload formats for carrying the random material. RTCP payload formats for carrying the random material.
4.5. A Variation to Latching 4.5. A Variation to Latching
4.5.1. Introduction 4.5.1. Introduction
Latching as described above requires the usage of a valid RTP format Latching as described above requires the usage of a valid RTP format
as the Latching packet, i.e. the first packet that the client sends as the Latching packet, i.e. the first packet that the client sends
to the server to set up virtual RTP connection. There existed no to the server to set up virtual RTP connection. There is currently
appropriate RTP packet format for this purpose, although the No-Op no appropriate RTP packet format for this purpose, although the RTP
format was a proposal to fix the problem [I-D.ietf-avt-rtp-no-op]. No-Op format was a proposal to fix the problem
However, that work was abandoned. There exists a RFC that discusses [I-D.ietf-avt-rtp-no-op], however, that work was abandoned. There
the implication of different type of packets as keep-alives for RTP exists a RFC that discusses the implication of different type of
[RFC6263] and its findings are very relevant to the format of the packets as keep-alives for RTP [RFC6263] and its findings are very
Latching packet. relevant to the format of the Latching packet.
Meanwhile, there has been NAT/Firewall traversal techniques deployed Meanwhile, there has been NAT/Firewall traversal techniques deployed
in the wireless streaming market place that use non-RTP messages as in the wireless streaming market place that use non-RTP messages as
Latching packets. This section describes a variant based on a subset Latching packets. This section describes a variant based on a subset
of those solutions that alters the previously described Latching of those solutions that alters the previously described Latching
solution. solution.
4.5.2. Necessary RTSP extensions 4.5.2. Necessary RTSP extensions
In this variation of Latching, the Latching packet is a small UDP In this variation of Latching, the Latching packet is a small UDP
packet that does not contain an RTP header. In response to client's packet that does not contain an RTP header. In response to the
Latching packet, the RTSP server sends back a similar Latching packet client's Latching packet, the RTSP server sends back a similar
as a confirmation so the client can stop the so called "connection Latching packet as a confirmation so the client can stop the so
phase" of this NAT traversal technique. Afterwards, the client only called "connection phase" of this NAT traversal technique.
has to periodically send Latching packets as keep-alive messages for Afterwards, the client only has to periodically send Latching packets
the NAT mappings. as keep-alive messages for the NAT mappings.
The server listens on its RTP-media output port, and tries to decode The server listens on its RTP-media output port, and tries to decode
any received UDP packet as Latching packet. This is valid since an any received UDP packet as Latching packet. This is valid since an
RTSP server is not expecting RTP traffic from the RTSP client. Then, RTSP server is not expecting RTP traffic from the RTSP client. Then,
it can correlate the Latching packet with the RTSP client's session it can correlate the Latching packet with the RTSP client's session
ID or the client's SSRC, and record the NAT bindings accordingly. ID or the client's SSRC, and record the NAT bindings accordingly.
The server then sends a Latching packet as the response to the The server then sends a Latching packet as the response to the
client. client.
The Latching packet can contain the SSRC to identify the RTP stream, The Latching packet can contain the SSRC to identify the RTP stream,
skipping to change at page 26, line 19 skipping to change at page 26, line 25
endpoints. endpoints.
2. The server's sender SSRC for the RTP stream or other session 2. The server's sender SSRC for the RTP stream or other session
Identity information must be signaled in RTSP's SETUP response, Identity information must be signaled in RTSP's SETUP response,
in the Transport header of the RTSP SETUP response. in the Transport header of the RTSP SETUP response.
4.5.4. Security Considerations 4.5.4. Security Considerations
Compared to the security properties of Latching this variant is Compared to the security properties of Latching this variant is
slightly improved. First of all it allows for a larger random field slightly improved. First of all it allows for a larger random field
in the Latching packets which makes it more unlikelier for an off- in the Latching packets which makes it more unlikely for an off-path
path attacker to succeed in a hi-jack attack. Secondly the attacker to succeed in a hi-jack attack. Secondly the confirmation
confirmation allows the client to know when Latching works and when allows the client to know when Latching works and when it didn't and
it didn't and thus restart the Latching process by updating the SSRC. thus restart the Latching process by updating the SSRC. Thirdly if
Thirdly if an authentication mechanism are included in the latching an authentication mechanism is included in the latching packet
packet hijacking attacks can be prevented. hijacking attacks can be prevented.
Still the main security issue remain that the RTSP server can't know Still the main security issue remain that the RTSP server can't know
that the source address in the latching packet was coming from a RTSP that the source address in the latching packet was coming from a RTSP
client wanting to receive media and not one that likes to direct the client wanting to receive media and not one that likes to direct the
media traffic to an DoS target. media traffic to an DoS target.
4.6. Three Way Latching 4.6. Three Way Latching
4.6.1. Introduction 4.6.1. Introduction
skipping to change at page 27, line 4 skipping to change at page 27, line 10
Uses the same RTSP extensions as the alternative latching method Uses the same RTSP extensions as the alternative latching method
(Section 4.5) uses. The extensions for this variant are only in the (Section 4.5) uses. The extensions for this variant are only in the
format and transmission of the Latching packets. format and transmission of the Latching packets.
The client to server latching packet is similar to the Alternative The client to server latching packet is similar to the Alternative
Latching (Section 4.5), i.e. an UDP packet with some session Latching (Section 4.5), i.e. an UDP packet with some session
identifier and a random value. When the server responds to the identifier and a random value. When the server responds to the
Latching packet with a Latching confirmation, it includes a random Latching packet with a Latching confirmation, it includes a random
value (Nonce) of its own in addition to echoing back the one the value (Nonce) of its own in addition to echoing back the one the
client sent. Then a third messages is added to the exchange. The client sent. Then a third message is added to the exchange. The
client acknowledges the reception of the Latching confirmation client acknowledges the reception of the Latching confirmation
message and echoes back the server's nonce. Thus confirming that the message and echoes back the server's nonce. Thus confirming that the
Latched address goes to a RTSP client that initiated the latching and Latched address goes to a RTSP client that initiated the latching and
is actually present at that address. The RTSP server will refuse to is actually present at that address. The RTSP server will refuse to
send any media until the Latching Acknowledgement has been received send any media until the Latching Acknowledgement has been received
with a valid nonce. with a valid nonce.
4.6.3. Deployment Considerations 4.6.3. Deployment Considerations
A solution with a 3-way handshake and its own Latching packets can be A solution with a 3-way handshake and its own Latching packets can be
skipping to change at page 28, line 48 skipping to change at page 29, line 6
4. When the SETUP response is received from the server, the ALG may 4. When the SETUP response is received from the server, the ALG may
remove the unused UDP mappings, i.e. the ones not present in the remove the unused UDP mappings, i.e. the ones not present in the
transport header. The session ID should also be bound to the UDP transport header. The session ID should also be bound to the UDP
mappings part of that session. mappings part of that session.
5. If SETUP response settles on RTP over TCP or RTP over RTSP as 5. If SETUP response settles on RTP over TCP or RTP over RTSP as
lower transport, do nothing: let TCP tunneling take care of NAT lower transport, do nothing: let TCP tunneling take care of NAT
traversal. Otherwise go to next step. traversal. Otherwise go to next step.
6. The ALG should keep the UDP mappings belonging to the RTSP 6. The ALG should keep the UDP mappings belonging to the RTSP
session as long as: an RTSP messages with the session's ID has session as long as: an RTSP message with the session's ID has
been sent in the last timeout interval, or a UDP messages has been sent in the last timeout interval, or a UDP message has been
been sent on any of the UDP mappings during the last timeout sent on any of the UDP mappings during the last timeout interval.
interval.
7. The ALG may remove a mapping as soon a TEARDOWN response has been 7. The ALG may remove a mapping as soon a TEARDOWN response has been
received for that media stream. received for that media stream.
4.7.3. Deployment Considerations 4.7.3. Deployment Considerations
Advantage: Advantage:
o No impact on either client or server o No impact on either client or server
skipping to change at page 29, line 46 skipping to change at page 29, line 51
security. Therefore deployment of ALG will likely result in clients security. Therefore deployment of ALG will likely result in clients
located behind NATs not using end-to-end security. located behind NATs not using end-to-end security.
The creation of an UDP mapping based on the signalling message has The creation of an UDP mapping based on the signalling message has
some potential security implications. First of all if the RTSP some potential security implications. First of all if the RTSP
client releases its ports and another application are assigned these client releases its ports and another application are assigned these
instead it could receive RTP media as long as the mappings exist and instead it could receive RTP media as long as the mappings exist and
the RTSP server has failed to be signalled or notice the lack of the RTSP server has failed to be signalled or notice the lack of
client response. client response.
An NAT with RTSP ALG that assigns mappings based on SETUP requests A NAT with RTSP ALG that assigns mappings based on SETUP requests
could potentially become victim of an resource exhaustion attack. If could potentially become victim of a resource exhaustion attack. If
an attacker creates a lot of RTSP sessions, even without starting an attacker creates a lot of RTSP sessions, even without starting
media transmission could exhaust the pool of available UDP ports on media transmission could exhaust the pool of available UDP ports on
the NAT. Thus only a limited number of UDP mappings should be the NAT. Thus only a limited number of UDP mappings should be
allowed to be created by the RTSP ALG. allowed to be created by the RTSP ALG.
4.8. TCP Tunneling 4.8. TCP Tunneling
4.8.1. Introduction 4.8.1. Introduction
Using a TCP connection that is established from the client to the Using a TCP connection that is established from the client to the
skipping to change at page 32, line 16 skipping to change at page 32, line 21
retrieves the session description to determine the number of retrieves the session description to determine the number of
media streams. To avoid the issue with having RTSP connection media streams. To avoid the issue with having RTSP connection
and media traffic from different addresses also the TCP and media traffic from different addresses also the TCP
connection must be done through the same TURN server as the one connection must be done through the same TURN server as the one
in the next step. This will require the usage of TURN for TCP in the next step. This will require the usage of TURN for TCP
[RFC6062]. [RFC6062].
2. The client establishes the necessary bindings on the TURN server. 2. The client establishes the necessary bindings on the TURN server.
It must choose the local RTP and RTCP ports that it desires to It must choose the local RTP and RTCP ports that it desires to
receive media packets. TURN supports requesting bindings of even receive media packets. TURN supports requesting bindings of even
port numbers and continuous ranges. port numbers and contiguous ranges.
3. The RTSP client uses the acquired address and port allocations in 3. The RTSP client uses the acquired address and port allocations in
the RTSP SETUP request using the destination header. the RTSP SETUP request using the destination header.
4. The RTSP Server sends the SETUP reply, which must include the 4. The RTSP Server sends the SETUP reply, which must include the
transport headers src_addr parameter (source and port in RTSP transport headers src_addr parameter (source and port in RTSP
1.0). Note that the server is required to have a mechanism to 1.0). Note that the server is required to have a mechanism to
verify that it is allowed to send media traffic to the given verify that it is allowed to send media traffic to the given
address. address.
skipping to change at page 37, line 6 skipping to change at page 36, line 30
8. Security Considerations 8. Security Considerations
In the preceding sections we have discussed security merits of the In the preceding sections we have discussed security merits of the
different NAT/Firewall traversal methods for RTSP discussed here. In different NAT/Firewall traversal methods for RTSP discussed here. In
summary, the presence of NAT(s) is a security risk, as a client summary, the presence of NAT(s) is a security risk, as a client
cannot perform source authentication of its IP address. This cannot perform source authentication of its IP address. This
prevents the deployment of any future RTSP extensions providing prevents the deployment of any future RTSP extensions providing
security against hijacking of sessions by a man-in-the-middle. security against hijacking of sessions by a man-in-the-middle.
Each of the proposed solutions has security implications. Using STUN Each of the proposed solutions has security implications. Using STUN
will provide the same level of security as RTSP with out transport will provide the same level of security as RTSP without transport
level security and source authentications, as long as the server does level security and source authentications, as long as the server does
not allow media to be sent to a different IP-address than the RTSP not allow media to be sent to a different IP-address than the RTSP
client request was sent from. Using Latching will have a higher risk client request was sent from. Using Latching will have a higher risk
of session hijacking or denial of service than normal RTSP. The of session hijacking or denial of service than normal RTSP. The
reason is that there exists a probability that an attacker is able to reason is that there exists a probability that an attacker is able to
guess the random bits that the client uses to prove its identity when guess the random bits that the client uses to prove its identity when
creating the address bindings. This can be solved in the variation creating the address bindings. This can be solved in the variation
of Latching (Section 4.5) with authentication features. Still both of Latching (Section 4.5) with authentication features. Still both
those variants of Latching is vulnerable against deliberate attack those variants of Latching are vulnerable against deliberate attack
from the RTSP client to redirect the media stream requested to any from the RTSP client to redirect the media stream requested to any
target assuming it can spoof the source address. This security target assuming it can spoof the source address. This security
vulnerability is solved by performing a Three-way Latching procedure vulnerability is solved by performing a Three-way Latching procedure
as discussed in Section 4.6. The usage of an RTSP ALG does not in as discussed in Section 4.6. The usage of an RTSP ALG does not in
itself increase the risk for session hijacking. However the itself increase the risk for session hijacking. However the
deployment of ALGs as the sole mechanism for RTSP NAT traversal will deployment of ALGs as the sole mechanism for RTSP NAT traversal will
prevent deployment of end-to-end encrypted RTSP signaling. The usage prevent deployment of end-to-end encrypted RTSP signaling. The usage
of TCP tunneling has no known security problems. However, it might of TCP tunneling has no known security problems. However, it might
provide a bottleneck when it comes to end-to-end RTSP signaling provide a bottleneck when it comes to end-to-end RTSP signaling
security if TCP tunneling is used on an interleaved RTSP signaling security if TCP tunneling is used on an interleaved RTSP signaling
skipping to change at page 37, line 37 skipping to change at page 37, line 13
attacks against a client. The TURN server can also be used as a attacks against a client. The TURN server can also be used as a
redirect point in a DDoS attack unless the server has strict enough redirect point in a DDoS attack unless the server has strict enough
rules for who may create bindings. rules for who may create bindings.
9. Acknowledgements 9. Acknowledgements
The author would also like to thank all persons on the MMUSIC working The author would also like to thank all persons on the MMUSIC working
group's mailing list that has commented on this document. Persons group's mailing list that has commented on this document. Persons
having contributed in such way in no special order to this protocol having contributed in such way in no special order to this protocol
are: Jonathan Rosenberg, Philippe Gentric, Tom Marshall, David Yon, are: Jonathan Rosenberg, Philippe Gentric, Tom Marshall, David Yon,
Amir Wolf, Anders Klemets, Flemming Andreasen, Ari Keranen, and Colin Amir Wolf, Anders Klemets, Flemming Andreasen, Ari Keranen, Bill
Perkins. Thomas Zeng would also like to give special thanks to Greg Atwood, and Colin Perkins. Thomas Zeng would also like to give
Sherwood of PacketVideo for his input into this memo. special thanks to Greg Sherwood of PacketVideo for his input into
this memo.
Section 1.1 contains text originally written for RFC 4787 by Francois Section 1.1 contains text originally written for RFC 4787 by Francois
Audet and Cullen Jennings. Audet and Cullen Jennings.
10. Informative References 10. Informative References
[I-D.ietf-avt-rtp-no-op] [I-D.ietf-avt-rtp-no-op]
Andreasen, F., "A No-Op Payload Format for RTP", draft- Andreasen, F., "A No-Op Payload Format for RTP", draft-
ietf-avt-rtp-no-op-04 (work in progress), May 2007. ietf-avt-rtp-no-op-04 (work in progress), May 2007.
[I-D.ietf-mmusic-latching]
Ivov, E., Kaplan, H., and D. Wing, "Latching: Hosted NAT
Traversal (HNT) for Media in Real-Time Communication",
draft-ietf-mmusic-latching-04 (work in progress), October
2013.
[I-D.ietf-mmusic-rfc2326bis] [I-D.ietf-mmusic-rfc2326bis]
Schulzrinne, H., Rao, A., Lanphier, R., Westerlund, M., Schulzrinne, H., Rao, A., Lanphier, R., Westerlund, M.,
and M. Stiemerling, "Real Time Streaming Protocol 2.0 and M. Stiemerling, "Real Time Streaming Protocol 2.0
(RTSP)", draft-ietf-mmusic-rfc2326bis-38 (work in (RTSP)", draft-ietf-mmusic-rfc2326bis-39 (work in
progress), October 2013. progress), January 2014.
[I-D.ietf-mmusic-rtsp-nat] [I-D.ietf-mmusic-rtsp-nat]
Goldberg, J., Westerlund, M., and T. Zeng, "A Network Goldberg, J., Westerlund, M., and T. Zeng, "A Network
Address Translator (NAT) Traversal mechanism for media Address Translator (NAT) Traversal mechanism for media
controlled by Real-Time Streaming Protocol (RTSP)", draft- controlled by Real-Time Streaming Protocol (RTSP)", draft-
ietf-mmusic-rtsp-nat-17 (work in progress), Nov 2013. ietf-mmusic-rtsp-nat-17 (work in progress), November 2013.
[NICE] , "Libnice - The GLib ICE implementation, [NICE] "Libnice - The GLib ICE implementation,
http://nice.freedesktop.org/wiki/", May 2013. http://nice.freedesktop.org/wiki/", May 2013.
[PJNATH] , "PJNATH - Open Source ICE, STUN, and TURN Library, [PJNATH] "PJNATH - Open Source ICE, STUN, and TURN Library,
http://www.pjsip.org/pjnath/docs/html/", May 2013. http://www.pjsip.org/pjnath/docs/html/", May 2013.
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
August 1980. August 1980.
[RFC0793] Postel, J., "Transmission Control Protocol", STD 7, RFC [RFC0793] Postel, J., "Transmission Control Protocol", STD 7, RFC
793, September 1981. 793, September 1981.
[RFC2326] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time [RFC2326] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time
Streaming Protocol (RTSP)", RFC 2326, April 1998. Streaming Protocol (RTSP)", RFC 2326, April 1998.
skipping to change at page 39, line 48 skipping to change at page 39, line 34
[RFC6062] Perreault, S. and J. Rosenberg, "Traversal Using Relays [RFC6062] Perreault, S. and J. Rosenberg, "Traversal Using Relays
around NAT (TURN) Extensions for TCP Allocations", RFC around NAT (TURN) Extensions for TCP Allocations", RFC
6062, November 2010. 6062, November 2010.
[RFC6263] Marjou, X. and A. Sollaud, "Application Mechanism for [RFC6263] Marjou, X. and A. Sollaud, "Application Mechanism for
Keeping Alive the NAT Mappings Associated with RTP / RTP Keeping Alive the NAT Mappings Associated with RTP / RTP
Control Protocol (RTCP) Flows", RFC 6263, June 2011. Control Protocol (RTCP) Flows", RFC 6263, June 2011.
[STUN-IMPL] [STUN-IMPL]
, "Open Source STUN Server and Client, "Open Source STUN Server and Client,
http://sourceforge.net/projects/stun/", May 2013. http://sourceforge.net/projects/stun/", May 2013.
Authors' Addresses Authors' Addresses
Magnus Westerlund Magnus Westerlund
Ericsson Ericsson
Farogatan 6 Farogatan 6
Stockholm SE-164 80 Stockholm SE-164 80
Sweden Sweden
Phone: +46 8 719 0000 Phone: +46 8 719 0000
Email: magnus.westerlund@ericsson.com Email: magnus.westerlund@ericsson.com
Thomas Zeng Thomas Zeng
 End of changes. 51 change blocks. 
127 lines changed or deleted 145 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/