1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
|
Network Working Group G. Camarillo
Request for Comments: 5363 Ericsson
Category: Standards Track A.B. Roach
Tekelec
October 2008
Framework and Security Considerations for
Session Initiation Protocol (SIP) URI-List Services
Status of This Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Abstract
This document describes the need for SIP URI-list services and
provides requirements for their invocation. Additionally, it defines
a framework for SIP URI-list services, which includes security
considerations applicable to these services.
Table of Contents
1. Introduction ....................................................2
2. Terminology .....................................................2
3. Requirements ....................................................2
3.1. Requirements for URI-List Services Using
Request-Contained Lists ....................................3
3.2. General Requirements for URI-List Services .................3
4. Framework .......................................................3
4.1. Carrying URI Lists in SIP ..................................3
4.2. Processing of URI Lists ....................................4
4.3. Results ....................................................5
5. Security Considerations .........................................5
5.1. List Integrity and Confidentiality .........................5
5.2. Amplification Attacks ......................................5
5.3. General Issues .............................................7
6. IANA Considerations .............................................7
7. Acknowledgements ................................................8
8. References ......................................................8
8.1. Normative References .......................................8
8.2. Informative References .....................................8
Camarillo & Roach Standards Track [Page 1]
^L
RFC 5363 Framework for SIP URI-List Services October 2008
1. Introduction
Some applications require that, at a given moment, a SIP [RFC3261] UA
(User Agent) performs a similar transaction with a number of remote
UAs. For example, an instant messaging application that needs to
send a particular message (e.g., "Hello folks") to n receivers needs
to send n MESSAGE requests; one to each receiver.
When the transaction that needs to be repeated consists of a large
request, or when the number of recipients is high, or both, the
access network of the UA needs to carry a considerable amount of
traffic. Completing all the transactions on a low-bandwidth access
would require a long time. This is unacceptable for a number of
applications.
A solution to this problem consists of introducing URI-list services
in the network. The task of a SIP URI-list service is to receive a
request that contains or references a URI list (i.e., a list of one
or more URIs) and send a number of similar requests to the
destinations in this list. Once the requests are sent, the URI-list
service typically informs the UA about their status. Effectively,
the URI-list service behaves as a B2BUA (Back-to-Back-User-Agent).
A given URI-list service can take as an input a URI list contained in
the SIP request sent by the client or an external URI list (e.g., the
Request-URI is a SIP URI that is associated with a URI list at the
server). External URI lists are typically set up using out-of-band
mechanisms (e.g., XML Configuration Access Protocol (XCAP)
[RFC4825]). An example of a URI-list service for SUBSCRIBE requests
that uses stored URI lists is described in [RFC4662].
The remainder of this document provides requirements and a framework
for URI-list services using request-contained URI lists, external URI
lists, or both.
2. Terminology
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 [RFC2119].
3. Requirements
Section 3.1 discusses requirements that only apply to URI-list
services that use request-contained lists, and Section 3.2 discusses
requirements that also apply to services using external lists.
Camarillo & Roach Standards Track [Page 2]
^L
RFC 5363 Framework for SIP URI-List Services October 2008
3.1. Requirements for URI-List Services Using Request-Contained Lists
REQ 1: The URI-list service invocation mechanism MUST allow the
invoker to provide a list of destination URIs to the URI-list
service.
REQ 2: The invocation mechanism SHOULD NOT require more than one
transaction.
3.2. General Requirements for URI-List Services
GEN 1: A URI-list service MAY include services beyond sending
requests to the URIs in the URI list. That is, URI-list
services can be modeled as application servers. For example,
a URI-list service handling INVITE requests may behave as a
conference server and perform media mixing for all the
participants.
GEN 2: The interpretation of the meaning of the URI list sent by the
invoker MUST be at the discretion of the application to which
the list is sent.
GEN 3: It MUST be possible for the invoker to find out about the
result of the operations performed by the URI-list service
with the URI list. An invoker may, for instance, be
interested in the status of the transactions initiated by the
URI-list service.
GEN 4: URI-list services MUST NOT send requests to any destination
without authenticating the invoker.
4. Framework
This framework is not restricted to application servers that only
provide request fan-out services. Per GEN 1, this framework also
deals with application servers that provide a particular service that
includes a request fan-out (e.g., a conference server that INVITEs
several participants that are chosen by a user agent).
4.1. Carrying URI Lists in SIP
The requirements related to URI-list services that use request-
contained lists identify the need for a mechanism to provide a SIP
URI-list service with a URI list in a single transaction. We define
a new disposition type [RFC2183] for the Content-Disposition header
field: recipient-list. Both requests and responses MAY carry
Camarillo & Roach Standards Track [Page 3]
^L
RFC 5363 Framework for SIP URI-List Services October 2008
recipient-list bodies. Bodies whose disposition type is recipient-
list carry a list of URIs that contains the final recipients of the
requests to be generated by a URI-list service.
The default format for recipient-list bodies is service specific.
So, URI-list services specifications MUST specify a default format
for recipient-list bodies used within a particular service. In any
case, clients SHOULD NOT include any particular URI more than once in
a given URI list.
A UA server receiving a request with more than one recipient-list
body parts (e.g., each body part using a different URI-list format)
MUST behave as if it had received a single URI list that contains all
the URIs present in the different body parts.
A UA server receiving a recipient-list URI list that contains a URI
more than once MUST behave as if that URI appeared in the URI list
only once. The UA server uses the comparison rules specific to the
URI scheme of each of the URIs in the URI list to determine if there
is any URI that appears more than once. Additionally, Section 4 of
"Extensible Markup Language (XML) Format Extension for Representing
Copy Control Attributes in Resource Lists" [RFC5364] discusses cases
where duplicated URI entries are tagged with different values of the
'copyControl' attribute. Naturally, URI-list services using the
'copyControl' attribute defined in [RFC5364] need to follow the
recommendations in [RFC5364] with respect to avoiding sending
duplicated requests.
The way a UA server interprets a URI list that it has received is
service specific, as described in Section 4.2.
4.2. Processing of URI Lists
According to GEN 1 and GEN 2, URI-list services can behave as
application servers. That is, taking a URI list as an input, they
can provide arbitrary services. So, the interpretation of the URI
list by the server depends on the service to be provided. For
example, for a conference server, the URIs in the list may identify
the initial set of participants. On the other hand, for a server
dealing with MESSAGEs, the URIs in the list may identify the
recipients of an instant message.
At the SIP level, this implies that the behavior of application
servers receiving requests with URI lists SHOULD be specified on a
per-service basis. Examples of such specifications are [RFC5366] for
INVITE, [RFC5365] for MESSAGE, and [RFC5367] for SUBSCRIBE.
Camarillo & Roach Standards Track [Page 4]
^L
RFC 5363 Framework for SIP URI-List Services October 2008
4.3. Results
According to GEN 3, user agents should have a way to obtain
information about the operations performed by the application server.
Since these operations are service specific, the way user agents are
kept informed is also service specific. For example, a user agent
establishing an ad hoc conference with an INVITE with a URI list may
discover which participants were successfully brought into the
conference by using the conference package [RFC4575].
5. Security Considerations
Security plays an important role in the implementation of any URI-
list service. In fact, it is the most important common area across
all types of URI-list services.
By definition, a URI-list service takes one request in and sends a
potentially large number of them out. Attackers may attempt to use
URI-list services as traffic amplifiers to launch DoS (denial-of-
service) attacks. This section provides guidelines to avoid these
attacks.
5.1. List Integrity and Confidentiality
Attackers may attempt to modify URI lists sent from clients to
servers. This would cause a different behavior at the server than
expected by the client (e.g., requests being sent to different
recipients than the ones specified by the client). To prevent this
attack, clients SHOULD integrity protect URI lists using end-to-end
mechanisms such as S/MIME or, if not available, hop-by-hop mechanisms
such as TLS. Both S/MIME and TLS can also provide URI-list
confidentiality if needed.
5.2. Amplification Attacks
URI-list services take a request in and send a potentially large
number of them out. Given that URI-list services are typically
implemented on top of powerful servers with high-bandwidth access
links, we should be careful to keep attackers from using them as
amplification tools to launch DoS attacks.
Attackers may attempt to send a URI list containing URIs whose host
parts route to the victims of the DoS attack. These victims do not
need to be SIP nodes; they can be non-SIP endpoints or even routers.
If this attack is successful, the result is that an attacker can
flood a set of nodes, or a single node, with traffic without needing
to generate a high volume of traffic itself.
Camarillo & Roach Standards Track [Page 5]
^L
RFC 5363 Framework for SIP URI-List Services October 2008
In any case, note that this problem is not specific to SIP URI-
list services; it also appears in scenarios that relate to
multihoming where a server needs to contact a set of IP addresses
provided by a client.
There are several measures that need to be taken to prevent this type
of attack. The first one is keeping unauthorized users from using
URI-list services. So, URI-list services MUST NOT perform any
request explosion for an unauthorized user. URI-list services MUST
authenticate users and check whether they are authorized to request
the service before performing any request fan-out.
Note that the risk of this attack also exists when a client uses
stored URI lists. Application servers MUST use authentication and
authorization mechanisms with equivalent security properties when
dealing with stored and request-contained URI lists.
Even though the previous rule keeps unauthorized users from using
URI-list services, authorized users may still launch attacks using
these services. To prevent these attacks, we introduce the concept
of opt-in lists. That is, URI-list services should not allow a
client to place a user (identified by his or her URI) in a URI list
unless the user has previously agreed to be placed in such a URI
list. So, URI-list services MUST NOT send a request to a destination
that has not agreed to receive requests from the URI-list service
beforehand. Users can agree to receive requests from a URI-list
service in several ways, such as filling a web page, sending an
email, signing a contract, or using "A Framework for Consent-Based
Communications in the Session Initiation Protocol (SIP)" [RFC5360],
whose requirements are discussed in [RFC4453]. Additionally, users
MUST be able to further describe the requests they are willing to
receive. For example, a user may only want to receive requests from
a particular URI-list service on behalf of a particular user.
Effectively, these rules make URI lists that used by URI-list
services into opt-in lists.
When a URI-list service receives a request with a URI list from a
client, the URI-list service checks whether all the destinations have
agreed beforehand to receive requests from the service on behalf of
this client. If the URI list has permission to send requests to all
of the targets in the request, it does so. If not, it does not send
any request at all.
The Framework for Consent-Based Communications in SIP [RFC5360]
specifies a means for the URI-list service to inform the client that
some permissions were missing and how to request them.
Camarillo & Roach Standards Track [Page 6]
^L
RFC 5363 Framework for SIP URI-List Services October 2008
Note that the mechanism used to obtain permissions should not
create opportunities to launch DoS amplification attacks. These
attacks would be possible if, for instance, the URI-list service
automatically contacted the full set of targets for which it did
not have permissions in order to request permissions. The URI-
list service would be receiving one SIP request and sending out a
number of authorization request messages. The Framework for
Consent-Based Communications in SIP [RFC5360] avoids this type of
attack by having the client generate roughly the same amount of
traffic towards the URI-list service as the service generates
towards the destinations.
In order to have an interoperable way to meet the requirements
related to opt-in lists described in this section, URI-list services
MUST implement and SHOULD use "A Framework for Consent-Based
Communications in SIP" [RFC5360].
5.3. General Issues
URI-list services MAY have policies that limit the number of URIs in
the lists they accept, as a very long list could be used in a
denial-of-service attack to place a large burden on the URI-list
service to send a large number of SIP requests.
A URI-list service generates a set of requests from a URI list.
Section 19.1.5 of [RFC3261] provides recommendations that need to be
taken into consideration when forming a request from a URI.
Naturally, those recommendations apply to all SIP URI-list services.
The general requirement GEN 4, which states that URI-list services
need to authenticate their clients, and the previous rules apply to
URI-list services in general. In addition, specifications dealing
with individual methods MUST describe the security issues that relate
to each particular method.
6. IANA Considerations
This document defines a new Content-Disposition header field
disposition type (recipient-list) in Section 4.1. This value has
been registered in the IANA registry for Mail Content Disposition
Values and Parameters with the following description:
recipient-list The body includes a list of URIs to which URI-list
services are to be applied.
Camarillo & Roach Standards Track [Page 7]
^L
RFC 5363 Framework for SIP URI-List Services October 2008
7. Acknowledgements
Duncan Mills and Miguel A. Garcia-Martin supported the idea of 1 to n
MESSAGE requests. Jon Peterson, Dean Willis, and Jonathan Rosenberg
provided useful comments.
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2183] Troost, R., Dorner, S., and K. Moore, "Communicating
Presentation Information in Internet Messages: The
Content-Disposition Header Field", RFC 2183, August 1997.
[RFC3261] 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.
[RFC5360] Rosenberg, J., Camarillo, G., Ed., and D. Willis, "A
Framework for Consent-Based Communications in the Session
Initiation Protocol (SIP)", RFC 5360, October 2008.
8.2. Informative References
[RFC4453] Rosenberg, J., Camarillo, G., and D. Willis, "Requirements
for Consent-Based Communications in the Session Initiation
Protocol (SIP)", RFC 4453, April 2006.
[RFC4575] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session
Initiation Protocol (SIP) Event Package for Conference
State", RFC 4575, August 2006.
[RFC4662] Roach, A.B., Campbell, B., and J. Rosenberg, "A Session
Initiation Protocol (SIP) Event Notification Extension for
Resource Lists", RFC 4662, August 2006.
[RFC4825] Rosenberg, J., "The Extensible Markup Language (XML)
Configuration Access Protocol (XCAP)", RFC 4825, May 2007.
[RFC5364] Garcia-Martin, M. and G. Camarillo, "Extensible Markup
Language (XML) Format Extension for Representing Copy
Control Attributes in Resource Lists", RFC 5364, October
2008.
Camarillo & Roach Standards Track [Page 8]
^L
RFC 5363 Framework for SIP URI-List Services October 2008
[RFC5365] Garcia-Martin, M. and G. Camarillo, "Multiple-Recipient
MESSAGE Requests in the Session Initiation Protocol
(SIP)", RFC 5365, October 2008.
[RFC5366] Camarillo, G. and A. Johnston, "Conference Establishment
Using Request-Contained Lists in the Session Initiation
Protocol (SIP)", RFC 5366, October 2008.
[RFC5367] Camarillo, G., Roach, A.B., and O. Levin, "Subscriptions
to Request-Contained Resource Lists in the Session
Initiation Protocol (SIP)", RFC 5367, October 2008.
Authors' Addresses
Gonzalo Camarillo
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
EMail: Gonzalo.Camarillo@ericsson.com
Adam Roach
Tekelec
17210 Campbell Rd Ste 250
Dallas, TX 75252
USA
EMail: Adam.Roach@tekelec.com
Camarillo & Roach Standards Track [Page 9]
^L
RFC 5363 Framework for SIP URI-List Services October 2008
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Camarillo & Roach Standards Track [Page 10]
^L
|