Internet DRAFT - draft-boer-sip-src
draft-boer-sip-src
M. de Boer
Internet Draft W. van Willigenburg
Document: draft-boer-sip-src-00.txt P. Sijben
Expires: January 2002 Lucent Technologies
July 2001
Specifying unicast media source addresses in SIP
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026 [1].
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts. 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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
1. Abstract
This draft describes a method to specify source IP addresses and
ports of a media stream in a SIP call.
2. Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in RFC-2119 [2].
3. Introduction
A SIP call crossing the boundaries of several networks need to
traverse the firewalls that secure these networks. During call setup
the SIP proxies request the firewalls to open pinholes for the
passage of the media streams [5,6,7]. For security reasons these
pinholes should be as specific as possible, i.e. only packets
satisfying specific values for the following fields are allowed to
pass:
de Boer Expires January 2002 1
Specifying unicast source media addresses in SIP July 2001
- source IP address
- source port
- destination IP address
- destination port
- transport protocol (TCP/UDP)
SIP carries the media specification as SDP bodies in its signalling
messages. Unfortunately the SDP specification as used in SIP, where
bi-directional streams are specified as send-and-receive, does not
specify the source IP address and port of a media stream. Hence the
pinhole in a firewall can only allow packets from all source IP
addresses and ports to pass, introducing a vulnerability in the
security the firewall offers.
+-------------+ +------------+
| +-+ RTP X +-+ |
| CALLER |A|--------------->|C| CALLEE |
| +-+ +-+ |
| +-+ RTP Y +-+ |
| |B|<---------------|D| |
| +-+ +-+ |
+-------------+ +------------+
Figure 1
RTP
---
Figure 1 shows the RTP streams between a caller and a callee
associated with a SIP session. A and D represent the source
addresses and ports for the RTP streams X and Y respectively. B and
C represent the sink addresses and ports. To setup these RTP
streams, the caller starts with sending an INVITE to the callee
specifying that it wants to receive RTP on B. In a response the
callee specifies that it wants to receive RTP, on C. So A and D
will not be signalled. As a consequence, a firewall between the
caller and callee has to pass all RTP packets destined for B and C
regardless of the sender of the packets.
RTCP
----
The IP address and port of an RTP stream implicitly specify the IP
address and port of the RTCP packets. If a SIP message indicates
that the sender of the message wants to receive RTP on port B then,
it implicitly specifies that it wants to receive RCTP on port B+1.
de Boer Expires January 2002 2
Specifying unicast source media addresses in SIP July 2001
+-------------+ +------------+
| +---+ RTP X +---+ |
| CALLER | A|--------------->|C |CALLEE |
| +---+ RTCP Y' +---+ |
| |--------------->|C+1| |
| | +---+ |
| +---+ RTP Y +---+ |
| | B|<---------------|D | |
| +---+ RTCP X' +---+ |
| |B+1|<---------------| |
| +---+ | |
+-------------+ +------------+
Figure 2
Figure 2 shows the RTP and RTCP streams between a caller and a
callee. Again the source IP addresses and ports of the RTCP streams
are not signalled.
Apart from the lack of explicit source IP addresses and ports, the
destination IP addresses and ports for the RTCP streams are
illogical. The caller sends RTP stream X from port A and receives
the feedback on that stream, i.e. RTCP stream X' on port B+1.
In a multihomed host ports A and B could reside on different IP
addresses. The RTCP feedback is then received on another IP address
than the address where the RTP is sent from. It would make more
sense if the RTCP stream X' is received on port A+1 as shown in
figure 3.
+-------------+ +------------+
| +---+ RTP X +---+ |
| CALLER | A|--------------->|C |CALLEE |
| +---+ RTCP X' +---+ |
| |A+1|<---------------|C+1| |
| +---+ +---+ |
| +---+ RTP Y +---+ |
| | B|<---------------|D | |
| +---+ RTCP Y' +---+ |
| |B+1|--------------->|D+1| |
| +---+ +---+ |
+-------------+ +------------+
Figure 3
This draft shows how the source IP addresses and ports, i.e. A and D
can be specified in SIP using standard SDP as defined in [3].
It also shows that a more logical place of RTCP ports as shown in
Figure 3 is possible too.
4. Source IP address and port in SIP/SDP
de Boer Expires January 2002 3
Specifying unicast source media addresses in SIP July 2001
By default a media stream specified by an m-line is a send-and-
receive stream. The IP address and port specified, indicates where
the sender of the SDP wants to receive RTP.
Example:
m=audio 1110 RTP/AVP 0
c=IN IP4 1.1.1.1
This SDP specifies a send-and-receive G.711 audio stream. The sender
of this SDP expects RTP packets to be sent to 1.1.1.1:1110 and RTCP
packets to 1.1.1.1:1111.
RFC 2327 [3] defines attributes to explicitly set the direction of
the stream. For the sendonly attribute it says:
An example may be where a different unicast address is to be used
for a traffic destination than for a traffic source. In such a
case, two media descriptions may be use, one sendonly and one
recvonly.
So, by explicitly specifying the send-and-receive stream by as a
send-only and receive-only stream, it is possible to specify the IP
address and port where RTP should be sent to AND the IP address and
port where RTP will be sent from as follows:
- The receive-only stream specifies the IP address and port where
RTP should be sent to. Implicitly (port + 1) is the port where the
RTCP feedback on this RTP stream will be sent from.
- The send-only stream specifies the IP address and port where RTP
will be sent from. Implicitly (port + 1) is the port where the
RTCP feedback on this RTP stream should be sent to.
Example:
m=audio 1110 RTP/AVP 0
c=IN IP4 1.1.1.1
a=recvonly
m=audio 2220 RTP/AVP 0
c=IN IP4 2.2.2.2
a=sendonly
The sender of this SDP specifies that it wants to receive RTP
packets on 1.1.1.1:1110 and send RTCP packets from 1.1.1.1:1111. It
will send RTP packets from 2.2.2.2:2220 and receive RTCP packets on
2.2.2.2:2221.
Note that for the meaning of sendonly and recvonly the definition as
given in Appendix B.2.1 of [4] for unicast sessions is used. The
recvonly and sendonly attribute are specifying the sender side
behaviour of this message. In multicast it would be a instruction
to the receiver.
de Boer Expires January 2002 4
Specifying unicast source media addresses in SIP July 2001
4.1 Integration with semantics currently defined by SIP
The semantics we assign to receive-only and send-only streams fits
well into the semantics already assigned to the IP address and port
of a uni-directional stream in [4]. Appendix B of [4] states:
For recvonly and sendrecv streams, the port number and address in
the session description indicate where the media stream should be
sent to. For send-only RTP streams, the address and port number
indicate where RTCP reports are to be sent to. Specifically, RTCP
reports are sent to the port number one higher than the number
indicated.
In this definition the following elements are left undefined:
1 For a recvonly stream: the port number one higher than the port
number specified in the m-line, e.g.
m=audio 1110 RTP/AVP 0
c=IN IP4 1.1.1.1
a=recvonly
Port 1110 is the port where RTP should be sent to. Port 1111 is
not assigned any meaning in the current SIP specification [4].
2 For a sendonly stream: the port specified in the m-line, e.g.
m=audio 2220 RTP/AVP 0
c=IN IP4 2.2.2.2
a=sendonly
Port 2221 is the port where RTCP should be sent to. Port 2220 is
not assigned any meaning the current SIP specification [4].
It is these currently undefined elements that get meaning in this
draft. Element 1 (port 1111 in the example) becomes the port where
RTCP packets will be sent from. Element 2 (port 2220 in the example)
becomes the port where the RTP packets will be sent from
5. Conclusion
By specifying a bi-directional stream as two uni-directional streams
it is possible to specify the source and destination IP addresses
and ports for RTP and RTCP packets. In addition you get a more
logical relationship between the port numbering for RTP and RTCP
packets.
To enable the opening of secure pinholes in a firewall the SDP
bodies of SIP messages SHOULD specify the source and sink IP
addresses and ports of the media streams.
de Boer Expires January 2002 5
Specifying unicast source media addresses in SIP July 2001
Besides SIP this method can be used in any protocol relying on SDP
for media specification, e.g. MEGACO.
6. Security Considerations
The proposed solution enables the opening of specific pinholes in a
firewall for media stream traversal resulting in higher network
security.
The solution described in this draft proposes that SIP user agents
should signal the source IP address and port of their RTP and RTCP
streams. To prevent unauthorised parties to snoop this information,
the SDP bodies should be encrypted.
7. References
1 Bradner, S., "The Internet Standards Process -- Revision 3", BCP
9, RFC 2026, October 1996.
2 Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997
3 M. Handley, V. Jacobson, "SDP: Session Description Protocol", RFC
2327, IETF, April 1998
4 Handley, Schulzrinne, Schooler, Rosenberg, "SIP: Session
Initiation Protocol", draft-ietf-sip-rfc2543bis-03.txt, IETF, May
2001, Work in progress
5 P. Sijben, W. van Willigenburg, M. de Boer, "RTP gateways for
firewall traversal", draft-sijben-rtp-gateway-00.txt, IETF, July
2001, Work in progress
6 R.P. Swale, P.A. Mart, P. Sijben, "Middlebox Control (MIDCOM)
Protocol Architecture and Requirements", draft-ietf-midcom-
requirements-01.txt, IETF, May 2001, Work in progress
7 P. Srisuresh, J. Kuthan, J. Rosenberg, A. Molitor, A. Rayhan,
"Middlebox Communication Architecture and framework", draft-ietf-
midcom-framework-02.txt, IETF, June 2001, Work in progress
8. Author's Addresses
Paul Sijben Willem van Willigenburg Michel de Boer
Lucent Technologies Lucent Technologies Lucent Technologies
Huizen Huizen Huizen
Netherlands Netherlands Netherlands
Email: Email: Email:
sijben@lucent.com willigenburg@lucent.com michelboer@lucent.com
de Boer Expires January 2002 6