SIP media authorization: Private Session Initiation Protocol (SIP) Extensions for Media Authorization
How a SIP proxy approves a call before the network reserves priority bandwidth for it
Marshall, W., Ed., "Private Session Initiation Protocol (SIP) Extensions for Media Authorization", RFC 3313, DOI 10.17487/RFC3313, January 2003, <https://www.rfc-editor.org/info/rfc3313>.
@misc{rfc3313,
series = {Request for Comments},
number = 3313,
howpublished = {RFC 3313},
publisher = {RFC Editor},
doi = {10.17487/RFC3313},
url = {https://www.rfc-editor.org/info/rfc3313},
author = {W. Marshall},
title = {{Private Session Initiation Protocol (SIP) Extensions for Media Authorization}},
pagetotal = 16,
year = 2003,
month = jan,
} RFC text
Contents
Network Working Group W. Marshall, Ed.
Request for Comments: 3313 AT&T
Category: Informational January 2003
Private Session Initiation Protocol (SIP) Extensions
for Media Authorization
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract
This document describes the need for Quality of Service (QoS) and
media authorization and defines a Session Initiation Protocol (SIP)
extension that can be used to integrate QoS admission control with
call signaling and help guard against denial of service attacks. The
use of this extension is only applicable in administrative domains,
or among federations of administrative domains with previously
agreed-upon policies, where both the SIP proxy authorizing the QoS,
and the policy control of the underlying network providing the QoS,
belong to that administrative domain or federation of domains.
Table of Contents
1. Scope of Applicability......................................... 2
2. Conventions Used in this Document.............................. 3
3. Background and Motivation...................................... 3
4. Overview....................................................... 4
5. Changes to SIP to Support Media Authorization.................. 4
5.1 SIP Header Extension....................................... 5
5.2 SIP Procedures............................................. 5
5.2.1 User Agent Client (UAC)................................ 6
5.2.2 User Agent Server (UAS)................................ 6
5.2.3 Originating Proxy (OP)................................. 7
5.2.4 Destination Proxy (DP)................................. 7
6. Examples....................................................... 8
6.1 Requesting Bandwidth via RSVP Messaging.................... 8
6.1.1 User Agent Client Side................................. 8
6.1.2 User Agent Server Side................................. 10
7. Advantages of the Proposed Approach............................ 12
8. Security Considerations........................................ 13
9. IANA Considerations............................................ 13
10. Notice Regarding Intellectual Property Rights................. 13
11. Normative References.......................................... 14
12. Informative References........................................ 14
13. Contributors.................................................. 15
14. Acknowledgments............................................... 15
15. Editor's Address.............................................. 15
16. Full Copyright Statement...................................... 16
1. Scope of Applicability
This document defines a SIP extension that can be used to integrate
QoS admission control with call signaling and help guard against
denial of service attacks. The use of this extension is only
applicable in administrative domains, or among federations of
administrative domains with previously agreed-upon policies, where
both the SIP proxy authorizing the QoS, and the policy control of the
underlying network providing the QoS, belong to that administrative
domain or federation of domains. Furthermore, the mechanism is
generally incompatible with end-to-end encryption of message bodies
that describe media sessions.
This is in contrast with general Internet principles, which separate
data transport from applications. Thus, the solution described in
this document is not applicable to the Internet at large. Despite
these limitations, there are sufficiently useful specialized
deployments that meet the assumptions described above, and can accept
the limitations that result, to warrant informational publication of
this mechanism. An example deployment would be a closed network,
which emulates a traditional circuit switched telephone network.
This document specifies a private header, facilitating use in these
specialized configurations.
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. Background and Motivation
Current IP telephony systems assume a perfect world in which there is
either an unlimited amount of bandwidth, or network layer Quality of
Service (QoS) is provided without any kind of policy control.
However, the reality is that end-to-end bandwidth is not unlimited
and uncontrolled access to QoS, in general, is unlikely. The primary
reason for this is that QoS provides preferential treatment of one
flow, at the expense of another. Consequently, it is important to
have policy control over whether a given flow should have access to
QoS. This will not only enable fairness in general, but can also
prevent denial of service attacks.
In this document, we are concerned with providing QoS for media
streams established via the Session Initiation Protocol (SIP) [3].
We assume an architecture that integrates call signaling with media
authorization, as illustrated in the Figure below. The solid lines
(A and B) show interfaces, whereas the dotted line (C) illustrates
the QoS enabled media flow:
+---------+
| Proxy |
+--------->| |
| +---------+
| ^
A)| B) |
| { }
| |
| v
v +------+
+------+ C) | Edge |
| UA |........|router|......
+------+ +------+
Figure 1 - Basic Architecture
In this architecture, we assume a SIP UA connected to a QoS enabled
network with an edge router acting as a Policy Enforcement Point
(PEP) [6]. We further assume that a SIP UA that wishes to obtain QoS
initiates sessions through a proxy which can interface with the QoS
policy control for the data network being used. We will refer to
such a proxy as a QoS enabled proxy. We assume that the SIP UA needs
to present an authorization token to the network in order to obtain
Quality of Service (C). The SIP UA obtains this authorization token
via SIP (A) from the QoS enabled proxy by means of an extension SIP
header, defined in this document. The proxy, in turn, communicates
either directly with the edge router or with a Policy Decision Point
(PDP - not shown) [6] in order to obtain a suitable authorization
token for the UA.
Examples of access data networks, where such a QoS enabled proxy
could be used, include DOCSIS based cable networks and 3rd generation
(3G) wireless networks.
4. Overview
A session that needs to obtain QoS for the media streams in
accordance with our basic architecture described above goes through
the following steps.
The SIP UA sends an INVITE to the QoS enabled proxy, which for each
resulting dialog includes one or more media authorization tokens in
all unreliable provisional responses (except 100), the first reliable
1xx or 2xx response, and all retransmissions of that reliable
response for the dialog. When the UA requests QoS, it includes the
media authorization tokens with the resource reservation.
A SIP UA may also receive an INVITE from its QoS enabled proxy which
includes one or more media authorization tokens. In that case, when
the UA requests QoS, it includes the media authorization tokens with
the resource reservation. The resource reservation mechanism is not
part of SIP and is not described within the scope of this document.
5. Changes to SIP to Support Media Authorization
This document defines a private SIP header extension to support a
media authorization scheme. In this architecture, a QoS enabled SIP
proxy supplies the UA with one or more authorization tokens which are
to be used in QoS requests. The extension defined allows network QoS
resources to be authorized by the QoS enabled SIP proxy.
5.1 SIP Header Extension
A new P-Media-Authorization general header field is defined. The P-
Media-Authorization header field contains one or more media
authorization tokens which are to be included in subsequent resource
reservations for the media flows associated with the session, that
is, passed to an independent resource reservation mechanism, which is
not specified here. The media authorization tokens are used for
authorizing QoS for the media stream(s). The P-Media-Authorization
header field is described by the following ABNF [4]:
P-Media-Authorization = "P-Media-Authorization" HCOLON
P-Media-Authorization-Token
*(COMMA P-Media-Authorization-Token)
P-Media-Authorization-Token = 1*HEXDIG
Table 1 below is an extension of tables 2 and 3 in [3] for the new
header field defined here. For informational purposes, this table
also includes relevant entries for standards track extension methods
published at the time this document was published. The INFO, PRACK,
UPDATE, and SUBSCRIBE and NOTIFY methods are defined respectively in
[11], [9], [12], and [10].
Where proxy ACK BYE CAN INV OPT REG
P-Media-Authorization R ad o - - o - -
P-Media-Authorization 2xx ad - - - o - -
P-Media-Authorization 101-199 ad - - - o - -
Where proxy INF PRA UPD SUB NOT
P-Media-Authorization R ad - o o - -
P-Media-Authorization 2xx ad - o o - -
Table 1: Summary of header fields.
The P-Media-Authorization header field can be used only in SIP
requests or responses that can carry a SIP offer or answer. This
naturally keeps the scope of this header field narrow.
5.2 SIP Procedures
This section defines SIP [3] procedures for usage in media
authorization compatible systems, from the point of view of the
authorizing QoS.
5.2.1 User Agent Client (UAC)
The initial SIP INVITE message, mid-call messages that result in
network QoS resource changes, and mid-call changes in call
destination should be authorized. These SIP messages are sent
through the QoS enabled proxies to receive this authorization. In
order to authorize QoS, the QoS enabled SIP proxy MAY need to inspect
message bodies that describe the media streams (e.g., SDP). Hence,
it is recommended (as may be appropriate within the applicability
scope in Section 1 of this document) that such message bodies not be
encrypted end-to-end.
The P-Media-Authorization-Token, which is contained in the P-Media-
Authorization header, is included for each dialog in all unreliable
provisional responses (except 100), the first reliable 1xx or 2xx
response, and all retransmissions of that reliable response for the
dialog sent by the QoS enabled SIP proxy to the UAC.
The UAC should use all the P-Media-Authorization-Tokens from the most
recent request/response that contained the P-Media-Authorization
header when requesting QoS for the associated media stream(s). This
applies to both initial and subsequent refresh reservation messages
(for example, in an RSVP-based reservation system). A reservation
function within the UAC should convert each string of hex digits into
binary, and utilize each result as a Policy-Element, as defined in
RFC 2750 [5] (excluding Length, but including P-Type which is
included in each token). These Policy-Elements would typically
contain the authorizing entity and credentials, and be used in an
RSVP request for media data stream QoS resources.
5.2.2 User Agent Server (UAS)
The User Agent Server receives the P-Media-Authorization-Token in an
INVITE (or other) message from the QoS enabled SIP proxy. If the
response contains a message body that describes media streams for
which the UA desires QoS, it is recommended (as may be appropriate
within the applicability scope in Section 1 of this document) that
this message body not be encrypted end-to-end.
The UAS should use all the P-Media-Authorization-Tokens from the most
recent request/response that contained the P-Media-Authorization
header when requesting QoS for the associated media stream(s). This
applies both to initial and subsequent refresh reservation messages
(for example, in an RSVP-based reservation system). A reservation
function within the UAS should convert each string of hex digits into
binary, and utilize each result as a Policy-Element, as defined in
RFC 2750 [5] (excluding Length, but including P-Type which is
included in each token). These Policy-Elements would typically
contain the authorizing entity and credentials, and be used in an
RSVP request for media data stream QoS resources.
5.2.3 Originating Proxy (OP)
When the originating QoS enabled proxy (OP) receives an INVITE (or
other) message from the UAC, the proxy authenticates the caller, and
verifies that the caller is authorized to receive QoS.
In cooperation with an originating Policy Decision Point (PDP-o), the
OP obtains and/or generates one or more media authorization tokens.
These contain sufficient information for the UAC to get the
authorized QoS for the media streams. Each media authorization token
is formatted as a Policy-Element, as defined in RFC 2750 [5]
(excluding Length, but including P-Type which is included in each
token), and then converted to a string of hex digits to form a P-
Media-Authorization-Token. The proxy's resource management function
may inspect message bodies that describe the media streams (e.g.,
SDP), in both requests and responses in order to decide what QoS to
authorize.
For each dialog that results from the INVITE (or other) message
received from the UAC, the originating proxy must add a P-Media-
Authorization header with the P-Media-Authorization-Token in all
unreliable provisional responses (except 100), the first reliable 1xx
or 2xx response, and all retransmissions of that reliable response
the proxy sends to the UAC, if that response may result in network
QoS changes. A response with an SDP may result in such changes.
5.2.4 Destination Proxy (DP)
The Destination QoS Enabled Proxy (DP) verifies that the called party
is authorized to receive QoS.
In cooperation with a terminating Policy Decision Point (PDP-t), the
DP obtains and/or generates a media authorization token that contains
sufficient information for the UAS to get the authorized QoS for the
media streams. The media authorization token is formatted as a
Policy-Element, as defined in RFC 2750 [5] (excluding Length, but
including P-Type which is included in each token), and then converted
to a string of hex digits to form a P-Media-Authorization-Token. The
proxy's resource management function may inspect message bodies that
describe the media streams (e.g., SDP), in both requests and
responses in order to decide what QoS to authorize.
The Destination Proxy must add the P-Media-Authorization header with
the P-Media-Authorization-Token in the INVITE (or other) request that
it sends to the UAS if that message may result in network QoS
changes. A message with an SDP body may result in such changes.
6. Examples
6.1 Requesting Bandwidth via RSVP Messaging
Below we provide an example of how the P-Media-Authorization header
field can be used in conjunction with the Resource Reservation
Protocol (RSVP) [7]. The example assumes that an offer arrives in
the initial INVITE and an answer arrives in a reliable provisional
response [9], which contains an SDP description of the media flow.
6.1.1 User Agent Client Side
Figure 2 presents a high-level overview of a basic call flow with
media authorization from the viewpoint of the UAC. Some policy
interactions have been omitted for brevity.
When a user goes off-hook and dials a telephone number, the UAC
collects the dialed digits and sends the initial (1)INVITE message to
the originating SIP proxy.
The originating SIP proxy (OP) authenticates the user/UAC and
forwards the (2)INVITE message to the proper SIP proxy.
Assuming the call is not forwarded, the terminating end-point sends a
(3)18x response to the initial INVITE via OP. Included in this
response is an indication of the negotiated bandwidth requirement for
the connection (in the form of an SDP description [8]).
When OP receives the (3)18x, it has sufficient information regarding
the end-points, bandwidth and characteristics of the media exchange.
It initiates a Policy-Setup message to PDP-o, (4)AuthProfile.
The PDP-o stores the authorized media description in its local store,
generates an authorization token that points to this description, and
returns the authorization token to the OP, (5)AuthToken.
UAC ER-o PDP-o OP
|(1)INVITE | | | Client Authentication
|------------------------------------------->| and Call Authoriz.
| | | | (2)INVITE
| | | |-------------->
| | | | (3)18x
| | |(4)AuthProfile |<--------------
| | |<--------------|
| | |(5)AuthToken |
| | |-------------->| Auth. Token put into
| | | (6)18x | P-Media-Authorization
|<-------------------------------------------| header extension.
|---(7)PRACK-------------------------------->|
| |--(8)PRACK---->
| |<-(9)200 (PRACK)
|<--(10)200 (PRACK)--------------------------|
| | | |
|Copies the RSVP policy object |
|from the P-Media-Authorization |
|(11)RSVP-PATH | |
|----------->| (12)REQ | |
| |-------------->| Using the Auth-Token and Authorized
| | (13)DEC | Profile that is set by the SIP Proxy
| |<--------------| the PDP makes the decision
| | | |(14)RSVP-PATH
| |------------------------------------------------>
| | | |(15)RSVP-PATH
|<--------------------------------------------------------------
|Copies the RSVP policy object |
|from the P-Media-Authorization |
|(16)RSVP-RESV | |
|----------->| (17)REQ | |
| |-------------->| Using the Auth-Token and Authorized
| | (18)DEC | Profile that is set by the SIP Proxy
| |<--------------| the PDP makes the decision
| | | |(19)RSVP-RESV
| |--------------------------------------------------->
| | | |(20)RSVP-RESV
|<----------------------------------------------------------------
| | | |
Figure 2 - Media Authorization with RSVP (UAC)
The OP includes the authorization token in the P-Media-Authorization
header extension of the (6)18x message.
Upon receipt of the (6)18x message, the UAC stores the media
authorization token from the P-Media-Authorization header. Also, the
UAC acknowledges the 18x message by sending a (7)PRACK message, which
is responded to with (10) 200.
Before sending any media, the UAC requests QoS by sending an
(11)RSVP-PATH message, which includes the previously stored P-Media-
Authorization-Token as a Policy-Element.
ER-o, upon receipt of the (11)RSVP-PATH message, checks the
authorization through a PDP-o COPS message exchange, (12)REQ. PDP-o
checks the authorization using the stored authorized media
description that was linked to the authorization token it returned to
OP. If authorization is successful, PDP-o returns an "install"
Decision, (13)DEC.
ER-o checks the admissibility for the request, and if admission
succeeds, it forwards the (14)RSVP-PATH message.
Once UAC receives the (15)RSVP-PATH message from UAS, it sends the
(16)RSVP-RESV message to reserve the network resources.
ER-o, upon receiving the (16)RSVP-RESV message checks the
authorization through a PDP-o COPS message exchange, (17)REQ. PDP-o
checks the authorization using the stored authorized media
description that was linked to the authorization token it returned to
OP. If authorization is successful, PDP-o returns an "install"
Decision, (18)DEC.
ER-o checks the admissibility for the request, and if admission
succeeds, it forwards the (19)RSVP-RESV message.
Upon receiving the (20)RSVP-RESV message, network resources have been
reserved in both directions.
6.1.2 User Agent Server Side
Figure 3 presents a high-level overview of a call flow with media
authorization from the viewpoint of the UAS. Some policy
interactions have been omitted for brevity.
Since the destination SIP proxy (DP) has sufficient information
regarding the endpoints, bandwidth, and characteristics of the media
exchange, it initiates a Policy-Setup message to the terminating
Policy Decision Point (PDP-t) on receipt of the (1)INVITE.
UAS ER-t PDP-t DP
| | | | (1)INVITE
| | | |<--------------
| | | | Proxy Authentication
| | | (2)AuthProfile| and Call Authoriz.
| | |<--------------|
| | | (3)AuthToken |
| | |-------------->| Auth. Token put into
| | | (4)INVITE | P-Media-Authorization
|<------------------------------------------| header extension
| (5)18x | | |
|------------------------------------------>| (6)18x
|Copies the RSVP policy object |-------------->
|from the P-Media-Authorization |
|(7)RSVP-PATH | |
|---------->| (8)REQ | |
| |-------------->| Using the Auth-Token and Authorized
| | (9)DEC | Profile that is set by the SIP Proxy
| |<--------------| the PDP makes the decision
| | | |(10)RSVP-PATH
| |-------------------------------------------------->
| | | |(11)RSVP-PATH
|<--------------------------------------------------------------
|Copies the RSVP policy object |
|from the P-Media-Authorization |
| (12)RSVP-RESV | |
|---------->| | |
| | (13)REQ | |
| |-------------->| Using the Auth-Token and Authorized
| | (14)DEC | Profile that is set by the SIP Proxy
| |<--------------| the PDP makes the decision
| | | |(15)RSVP-RESV
| |--------------------------------------------------->
| | | |(16)RSVP-RESV
|<---------------------------------------------------------------
| | | |<-(17)PRACK---------
|<--(18)PRACK ------------------------------|
|---(19)200 (PRACK) ----------------------->|
| | | |--(20)200 (PRACK)-->
| | | |
Figure 3 - Media Authorization with RSVP (UAS)
PDP-t stores the authorized media description in its local store,
generates an authorization token that points to this description, and
returns the authorization token to DP. The token is placed in the
(4)INVITE message and forwarded to the UAS.
Assuming that the call is not forwarded, the UAS sends a (5)18x
response to the initial INVITE message, which is forwarded back to
UAC. At the same time, the UAS sends a (7)RSVP-PATH message which
includes the previously stored P-Media-Authorization-Token as a
Policy-Element.
ER-t, upon receiving the (7)RSVP-PATH message checks the
authorization through a PDP-t COPS message exchange. PDP-t checks
the authorization using the stored authorized media description that
was linked to the authorization token it returned to DP. If
authorization is successful, PDP-t returns an "install" Decision,
(9)DEC.
ER-t checks the admissibility for the request, and if admission
succeeds, it forwards the (10)RSVP-PATH message.
Once the UAS receives the (11)RSVP-PATH message, it sends the
(12)RSVP-RESV message to reserve the network resources.
ER-t, upon reception of the (12)RSVP-RESV message, checks the
authorization through a PDP-t COPS message exchange. PDP-t checks
the authorization using the stored authorized media description that
was linked to the authorization token that it returned to DP. If
authorization is successful, PDP-t returns an "install" Decision,
(14)DEC.
ER-t checks the admissibility for the request and if admission
succeeds, it forwards the (15)RSVP-RESV message.
Upon receiving the (16)RSVP-RESV message, network resources have been
reserved in both directions.
For completeness, we show the (17)PRACK message for the (5) 18x
response and the resulting (19) 200 response acknowledging the PRACK.
7. Advantages of the Proposed Approach
The use of media authorization makes it possible to control the usage
of network resources. In turn, this makes IP Telephony more robust
against denial of service attacks and various kinds of service
frauds. By using the authorization capability, the number of flows,
and the amount of network resources reserved can be controlled,
thereby making the IP Telephony system dependable in the presence of
scarce resources.
8. Security Considerations
In order to control access to QoS, a QoS enabled proxy should
authenticate the UA before providing it with a media authorization
token. Both the method and policy associated with such
authentication are outside the scope of this document, however it
could, for example, be done by using standard SIP authentication
mechanisms, as described in [3].
Media authorization tokens sent in the P-Media-Authorization header
from a QoS enabled proxy to a UA MUST be protected from eavesdropping
and tampering. This can, for example, be done through a mechanism
such as IPSec or TLS. However, this will only provide hop-by-hop
security. If there is one or more intermediaries (e.g., proxies),
between the UA and the QoS enabled proxy, these intermediaries will
have access to the P-Media-Authorization header field value, thereby
compromising confidentiality and integrity. This will enable both
theft-of-service and denial-of-service attacks against the UA.
Consequently, the P-Media-Authorization header field MUST NOT be
available to any untrusted intermediary in the clear or without
integrity protection. There is currently no mechanism defined in SIP
that would satisfy these requirements. Until such a mechanism
exists, proxies MUST NOT send P-Media-Authorization headers through
untrusted intermediaries, which might reveal or modify the contents
of this header. (Note that S/MIME-based encryption in SIP is not
available to proxy servers, as proxies are not allowed to add message
bodies.)
QoS enabled proxies may need to inspect message bodies describing
media streams (e.g., SDP). Consequently, such message bodies should
not be encrypted. In turn, this will prevent end-to-end
confidentiality of the said message bodies, which lowers the overall
security possible.
9. IANA Considerations
This document defines a new private SIP header for media
authorization, "P-Media-Authorization". This header has been
registered by the IANA in the SIP header registry, using the RFC
number of this document as its reference.
10. Notice Regarding Intellectual Property Rights
The IETF has been notified of intellectual property rights claimed in
regard to some or all of the specification contained in this
document. For more information consult the online list of claimed
rights.
11. Normative 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] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.
[4] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 2234, November 1997.
[5] Herzog, S., "RSVP Extensions for Policy Control", RFC 2750,
January 2000.
12. Informative References
[6] Yavatkar, R., Pendarakis, D. and R. Guerin, "A Framework for
Policy-based Admission Control", RFC 2753, January 2000.
[7] Braden, R., Zhang, L., Berson, S., Herzog, S. and S. Jamin,
"Resource Reservation Protocol (RSVP) -- Version 1 Functional
Specification", RFC 2205, September 1997.
[8] Handley, M. and V. Jacobson, "SDP: Session Description
Protocol", RFC 2327, April 1998.
[9] Rosenberg, J. and H. Schulzrinne, "Reliability of Provisional
Responses in Session Initiation Protocol (SIP)", RFC 3262, June
2002.
[10] Roach, A. B., "Session Initiation Protocol (SIP)-Specific Event
Notification", RFC 3265, June 2002.
[11] Donovan, S., "The SIP INFO Method", RFC 2976, October 2000.
[12] Rosenberg, J., "The Session Initiation Protocol (SIP) UPDATE
Method", RFC 3311, September 2002.
13. Contributors
The following people contributed significantly and were co-authors on
earlier versions of this document:
Bill Marshall (AT&T), K. K. Ramakrishnan (AT&T), Ed Miller
(Terayon), Glenn Russell (CableLabs), Burcak Beser (Juniper
Networks), Mike Mannette (3Com), Kurt Steinbrenner (3Com), Dave
Oran (Cisco), Flemming Andreasen (Cisco), John Pickens (Com21),
Poornima Lalwaney (Nokia), Jon Fellows (Copper Mountain Networks),
Doc Evans (Arris), and Keith Kelly (NetSpeak).
14. Acknowledgments
The Distributed Call Signaling work in the PacketCable project is the
work of a large number of people, representing many different
companies. The contributors would like to recognize and thank the
following for their assistance: John Wheeler, Motorola; David
Boardman, Daniel Paul, Arris Interactive; Bill Blum, Jay Strater,
Jeff Ollis, Clive Holborow, Motorola; Doug Newlin, Guido Schuster,
Ikhlaq Sidhu, 3Com; Jiri Matousek, Bay Networks; Farzi Khazai,
Nortel; John Chapman, Bill Guckel, Michael Ramalho, Cisco; Chuck
Kalmanek, Doug Nortz, John Lawser, James Cheng, Tung-Hai Hsiao,
Partho Mishra, AT&T; Telcordia Technologies; and Lucent Cable
Communications. Dean Willis and Rohan Mahy provided valuable
feedback as well.
15. Editor's Address
Bill Marshall
AT&T
Florham Park, NJ 07932
EMail: wtm@research.att.com
16. Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
ISO Plain Language
On this page
§1Scope of Applicability
RFC 3313 defines a private extension to the Session Initiation Protocol (SIP), the text-based protocol that sets up a call. The extension lets a network decide whether a call may receive reserved bandwidth before the call carries any media.
The mechanism works only inside one administrative domain, or among administrative domains that have already agreed on a common policy. Both the proxy that authorizes the QoS and the policy control of the network that provides the QoS must belong to that domain or federation of domains. The document is explicit that this is not a solution for the Internet at large, because general Internet practice separates data transport from applications.
Because the proxy has to read the message bodies that describe the media streams, the extension is generally incompatible with encrypting those bodies end to end. The document names DOCSIS-based cable networks and third-generation (3G) wireless networks as the kind of access network where such a deployment exists, and describes a closed network that emulates a traditional circuit-switched telephone network as the example case.
This extension lets a phone network approve a call before it reserves special bandwidth for it. It works only inside one organisation's network, or among networks that already share one policy, because the proxy has to read the call's media description.
§3Background and Motivation
End-to-end bandwidth is not unlimited. QoS gives preferential treatment to one flow at the expense of another, so the document argues that some form of policy control is needed over who receives that treatment. The result is fairness in the sharing of capacity, and it also prevents denial of service attacks, because a flood of requests cannot all claim priority.
The architecture has three named parts. A SIP user agent (UA) sits at the edge of a QoS-enabled network. An edge router acts as a Policy Enforcement Point (PEP), the device that puts the network's decisions into effect. A QoS-enabled SIP proxy sits between them and is the party that can talk to the network's policy control, a Policy Decision Point (PDP).
The UA is assumed to need an authorization token to obtain quality of service. It gets that token over SIP from the QoS-enabled proxy, in a header this document defines. The proxy in turn speaks either directly to the edge router or to a PDP to obtain a suitable token for the UA.
Bandwidth is limited, and giving one call priority takes capacity from another. So a network needs a rule about who gets priority, and a way to stop anyone claiming priority without that rule.
§4Overview of a Session
The overview gives the shape of a session that needs reserved bandwidth. The user agent sends an INVITE to the QoS-enabled proxy. For each dialog that results, the proxy includes one or more media authorization tokens in all unreliable provisional responses except 100, in the first reliable 1xx or 2xx response, and in all retransmissions of that reliable response for the dialog.
When the user agent asks for QoS, it includes the media authorization tokens with the resource reservation. The reservation mechanism is not part of SIP and is not described in this document. A user agent may also receive an INVITE from its QoS-enabled proxy that already carries tokens, and it presents those in the same way when it asks for QoS.
The worked example in section 6 shows the token travelling with an RSVP reservation. The originating proxy stores the authorized media description, gets a token that points at that description from the originating Policy Decision Point, and puts the token in the P-Media-Authorization header of a response. The user agent copies the token into its RSVP messages as a Policy-Element, and the edge router checks it with the policy controller before forwarding the reservation.
The call starts with the usual SIP request. The proxy answers with permission to use reserved bandwidth attached to the call, and the phone sends that permission on when it asks for the bandwidth. The reservation itself is a separate mechanism that this document does not define.
- INVITEThe calling phone starts the call.
- AuthProfileThe proxy sends the media description it wants approved.
- AuthTokenThe policy controller stores that description and returns a token pointing at it.
- 18x responseThe token travels in the P-Media-Authorization header.
- RSVP-PATHThe phone sends the token as a Policy-Element with its path request.
- COPS requestThe edge router asks the policy controller whether the token is valid.
- Install decisionThe policy controller confirms the authorization.
- RSVP-PATHThe path request continues on to the other end.
§5.1The P-Media-Authorization Header
The extension adds one SIP header field, P-Media-Authorization. It carries one or more media authorization tokens, and those tokens are what the user agent passes to the separate resource reservation mechanism to show that QoS was authorized for the media flows of the session.
The grammar of the header is short. The field name, a colon, one token, and any number of further tokens separated by commas. A token is one or more hexadecimal digits.
The document extends the tables that show where each SIP header may appear with an entry for the new field, giving its placement for requests and responses including ACK, BYE, CANCEL, INVITE, OPTIONS, REGISTER, INFO, PRACK, UPDATE, SUBSCRIBE and NOTIFY. The field can be used only in SIP requests or responses that can carry a SIP offer or answer, which keeps its scope narrow.
The proxy passes the permission along in a new SIP header called P-Media-Authorization. Each value in that header is a short block of hexadecimal digits that stands for the approved media description.
P-Media-Authorization = "P-Media-Authorization" HCOLON
P-Media-Authorization-Token
*(COMMA P-Media-Authorization-Token)
P-Media-Authorization-Token = 1*HEXDIG§5.2Procedures for Proxies and User Agents
The document gives the rules for each party. The user agent client should authorize the initial INVITE, the mid-call messages that result in network QoS resource changes, and any mid-call change in call destination, by sending them through the QoS-enabled proxies. It should use all the tokens from the most recent request or response that carried the header, both for the first reservation and for later refresh reservation messages. A reservation function within the user agent converts each string of hex digits into binary and uses each result as a Policy-Element as defined in RFC 2750, excluding Length but including P-Type, which is included in each token. Those Policy-Elements typically contain the authorizing entity and credentials.
The originating proxy authenticates the caller and verifies that the caller is authorized to receive QoS. Working with an originating Policy Decision Point, it obtains or generates one or more tokens, and it must add the P-Media-Authorization header to all unreliable provisional responses except 100, to the first reliable 1xx or 2xx response, and to retransmissions of that response, when the response may result in network QoS changes. A response with an SDP description may result in such changes.
The destination proxy verifies that the called party is authorized to receive QoS, obtains or generates a token in the same way with a terminating Policy Decision Point, and must add the header to the request it sends to the user agent server if that message may result in network QoS changes.
Each party has a job. The phones send their call setup through the proxy that checks whether the call may have priority bandwidth. The proxy checks the caller, asks the policy controller for a token, and puts that token in the SIP messages.
§8Security Considerations
A QoS-enabled proxy should authenticate the user agent before it provides it with a media authorization token. The method and the policy for that authentication are outside the scope of the document, which notes that it could for example be done with the standard SIP authentication mechanisms.
Media authorization tokens sent in the P-Media-Authorization header MUST be protected from eavesdropping and tampering, which can be done for example through IPSec or TLS. That gives only hop-by-hop security. If one or more intermediaries such as proxies sit between the user agent and the QoS-enabled proxy, those intermediaries have access to the header value, which compromises its confidentiality and integrity and enables both theft-of-service and denial-of-service attacks against the user agent.
Consequently the header MUST NOT be available to any untrusted intermediary in the clear or without integrity protection. The document states that there is currently no mechanism in SIP that would satisfy these requirements, so proxies MUST NOT send P-Media-Authorization headers through untrusted intermediaries. It adds that S/MIME-based encryption in SIP is not available to proxy servers, because proxies are not allowed to add message bodies.
Because the QoS-enabled proxy may need to inspect the message bodies that describe the media streams, such bodies should not be encrypted. That removes end-to-end confidentiality for them and lowers the overall security possible.
The proxy should check who the caller is before it issues a token, and the tokens must be protected in transit. But that protection only covers one hop, so a proxy in the middle could steal or change them. The document therefore tells proxies not to pass the header through intermediaries they do not trust.