idnits 2.17.1 draft-ietf-sipping-update-pai-08.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? -- It seems you're using the 'non-IETF stream' Licence Notice instead Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == The 'Updates: ' line in the draft header should list only the _numbers_ of the RFCs which will be updated by this document (if approved); it should not include the word 'RFC' in the list. -- The draft header indicates that this document updates RFC3325, but the abstract doesn't seem to directly say this. It does mention RFC3325 though, so this could be OK. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year (Using the creation date from RFC3325, updated by this document, for RFC5378 checks: 2002-05-28) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (December 16, 2008) is 5603 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- -- Obsolete informational reference (is this intentional?): RFC 4474 (Obsoleted by RFC 8224) Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIPPING WG J. Elwell 3 Internet-Draft Siemens Enterprise Communications 4 Updates: RFC 3325 December 16, 2008 5 (if approved) 6 Intended status: Informational 7 Expires: June 19, 2009 9 Updates to Asserted Identity in the Session Initiation Protocol (SIP) 10 draft-ietf-sipping-update-pai-08.txt 12 Status of this Memo 14 This Internet-Draft is submitted to IETF in full conformance with the 15 provisions of BCP 78 and BCP 79. 17 Internet-Drafts are working documents of the Internet Engineering 18 Task Force (IETF), its areas, and its working groups. Note that 19 other groups may also distribute working documents as Internet- 20 Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six months 23 and may be updated, replaced, or obsoleted by other documents at any 24 time. It is inappropriate to use Internet-Drafts as reference 25 material or to cite them other than as "work in progress." 27 The list of current Internet-Drafts can be accessed at 28 http://www.ietf.org/ietf/1id-abstracts.txt. 30 The list of Internet-Draft Shadow Directories can be accessed at 31 http://www.ietf.org/shadow.html. 33 This Internet-Draft will expire on June 19, 2009. 35 Copyright Notice 37 Copyright (c) 2008 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (http://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. 47 Abstract 49 SIP has a mechanism for conveying the asserted identity of the 50 originator of a request by means of the P-Asserted-Identity header 51 field. This header field is specified for use in requests using a 52 number of SIP methods, in particular the INVITE method. However, RFC 53 3325 does not specify the insertion of this header field by a trusted 54 UAC, does not specify the use of P-Asserted-Identity and P-Preferred- 55 Identity header fields with certain SIP methods such as UPDATE, 56 REGISTER, MESSAGE and PUBLISH, and does not specify how to handle an 57 unexpected number of URIs or unexpected URI schemes in these header 58 fields. This document extends RFC 3325 to cover these situations. 60 This work is being discussed on the sipping@ietf.org mailing list. 62 Table of Contents 64 1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 65 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 66 3. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 4 67 3.1. Inclusion of P-Asserted-Identity by a UAC . . . . . . . . 4 68 3.2. Inclusion of P-Asserted-Identity in any request . . . . . 5 69 3.3. Dialog implications . . . . . . . . . . . . . . . . . . . 6 70 4. Behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . 7 71 4.1. UAC Behaviour . . . . . . . . . . . . . . . . . . . . . . 7 72 4.2. Proxy Behaviour . . . . . . . . . . . . . . . . . . . . . 7 73 4.3. Registrar Behaviour . . . . . . . . . . . . . . . . . . . 7 74 4.4. UAS Behaviour . . . . . . . . . . . . . . . . . . . . . . 8 75 4.5. General handling . . . . . . . . . . . . . . . . . . . . . 8 76 5. IANA considerations . . . . . . . . . . . . . . . . . . . . . 8 77 6. Security considerations . . . . . . . . . . . . . . . . . . . 9 78 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 79 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 80 8.1. Normative References . . . . . . . . . . . . . . . . . . . 10 81 8.2. Informative References . . . . . . . . . . . . . . . . . . 10 82 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11 84 1. Terminology 86 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 87 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 88 document are to be interpreted as described in [RFC2119]. 90 This document uses the concepts of Trust Domain and Spec(T), as 91 specified in section 2.3 of RFC 3324 [RFC3324]. 93 2. Introduction 95 The Session Initiation Protocol (SIP) is specified in RFC 3261 96 [RFC3261]. RFC 3325 [RFC3325] specifies a mechanism for conveying 97 within a Trust Domain the asserted identity of the originator of a 98 SIP request. This is achieved by means of the P-Asserted-Identity 99 header field, which is specified for use in requests using a number 100 of SIP methods, in particular the INVITE method. 102 RFC 3325 does not specify the insertion of the P-Asserted-Identity 103 header field by a UAC in the same Trust Domain as the first proxy. 104 Also RFC 3325 does not specify the use of the P-Asserted-Identity and 105 P-Preferred-Identity header fields with certain SIP methods such as 106 UPDATE [RFC3311], REGISTER, MESSAGE [RFC3428] and PUBLISH [RFC3903]. 107 This document extends RFC 3325 by allowing inclusion of the 108 P-Asserted-Identity header field by a UAC in the same Trust Domain as 109 the first proxy and allowing use of P-Asserted-Identity and 110 P-Preferred-Identity header fields in any request except ACK and 111 CANCEL. The reason for these two exceptions is that ACK and CANCEL 112 requests cannot be challenged for digest authentication. 114 RFC 3325 allows the P-Asserted-Identity and P-Preferred-Identity 115 header fields each to contain at most two URIs, where one is a SIP or 116 SIPS URI [RFC3261] and the other is a TEL URI [RFC3966]. This may be 117 unduly restrictive in future, for example if there is a need to allow 118 other URI schemes, if there is a need to allow both a SIP and a SIPS 119 URI or if there is a need to allow more than one URI with the same 120 scheme (e.g., a SIP URI based on a telephone number and a SIP URI 121 that is not based on a telephone number). This document therefore 122 provides forwards compatibility by mandating tolerance to the receipt 123 of unexpected URIs. 125 This document does not alter the fact that the asserted identity 126 mechanism has limited applicability, i.e., within a Trust Domain. 127 For general applicability, including operation outside a Trust Domain 128 (e.g., over the public Internet) or between different Trust Domains, 129 a different mechanism is needed. RFC 4474 [RFC4474] specifies the 130 Identity header field, in conjunction with the From header field, for 131 providing authenticated identity in such circumstances. RFC 4916 132 [RFC4916] specifies the use of RFC 4474 in mid-dialog requests, in 133 particular in requests in the reverse direction to the dialog-forming 134 request as a means of providing authenticated connected identity. 136 RFC 3325 is unclear on the use of P-Asserted-Identity in responses. 137 In contrast to requests, there is no means in SIP to challenge a UAS 138 to provide SIP digest authentication in a response. As a result, 139 there is currently no standardised mechanism whereby a proxy can 140 authenticate a UAS. Since authenticating the source of a message is 141 a pre-requisite for asserting an identity, this document does not 142 specify the use of the P-Asserted-Identity header field in responses. 143 This may be the subject of a future update to RFC 3325. Also this 144 document does not specify the use of the P-Preferred-Identity header 145 field in responses, as this would serve no purpose in the absence of 146 the ability for a proxy to insert the P-Asserted-Identity header 147 field. 149 3. Discussion 151 3.1. Inclusion of P-Asserted-Identity by a UAC 153 RFC 3325 does not include procedures for a UAC to include the 154 P-Asserted-Identity header field in a request. This can be 155 meaningful if the UAC is in the same Trust Domain as the first 156 downstream SIP entity. Examples of types of UAC that are often 157 suitable for inclusion in a Trust Domain are: 159 o PSTN gateways; 161 o media servers; 163 o application servers (or B2BUAs) that act as URI list servers 164 [RFC5363]; 166 o application servers (or B2BUAs) that perform third party call 167 control. 169 In the particular case of a PSTN gateway, the PSTN gateway might be 170 able to assert an identity received from the PSTN, the proxy itself 171 having no means to authenticate such an identity. Likewise, in the 172 case of certain application server or B2BUA arrangements, the 173 application server or B2BUA may be in a position to assert an 174 identity of a user on the other side of that application server or 175 B2BUA. 177 In accordance with RFC 3325, nodes within a Trust Domain must behave 178 in accordance with a Spec(T), and this principle needs to apply 179 between a UAC and its proxy as part of the condition for considering 180 the UAC to be within the same Trust Domain. Normal proxy procedures 181 of RFC 3325 ensure that the header field is removed or replaced if 182 the first proxy considers the UAC to be outside the Trust Domain. 184 This update to RFC 3325 clarifies that a UAC may include a 185 P-Asserted-Identity header field in a request in certain 186 circumstances. 188 3.2. Inclusion of P-Asserted-Identity in any request 190 There are several use cases that would benefit from the use of the 191 P-Asserted-Identity header field in an UPDATE request. These use 192 cases apply within a Trust Domain where the use of asserted identity 193 is appropriate (see RFC 3325). 195 In one example, an established call passes through a gateway to the 196 PSTN. The gateway becomes aware that the remote party in the PSTN 197 has changed, e.g., due to call transfer. By including the 198 P-Asserted-Identity header field in an UPDATE request, the gateway 199 can convey the identity of the new remote party to the peer SIP UA. 201 Note that the (re-)INVITE method could be used in this situation. 202 However, this forces an offer-answer exchange, which typically is 203 not required in this situation. Also it involves 3 messages 204 rather than 2. 206 In another example, a B2BUA that provides third party call control 207 (3PCC) [RFC3725] wishes to join two calls together, one of which is 208 still waiting to be answered and potentially is forked to different 209 UAs. At this point in time it is not possible to trigger the normal 210 offer-answer exchange between the two joined parties, because of the 211 mismatch between a single dialog on the one side and potentially 212 multiple early dialogs on the other side, so this action must wait 213 until one of the called UAs answers. However, it would be useful to 214 give an early indication to each user concerned of the identity of 215 the user to which they will become connected when the call is 216 answered. In other words, it would provide the new calling UA with 217 the identity of the new called user and provide the new called UA(s) 218 with the identity of the new calling user. This can be achieved by 219 the B2BUA sending an UPDATE request with a P-Asserted-Identity header 220 field on the dialogs concerned. 222 Within a Trust Domain, a P-Asserted-Identity header field could 223 advantageously be used in a REGISTER request between an edge proxy 224 that has authenticated the source of the request and the registrar. 226 Within a Trust Domain, a P-Asserted-Identity header field could 227 advantageously be used in a MESSAGE request to assert the source of a 228 page mode instant message. This would complement its use in an 229 INVITE request to assert the source of an instant message session or 230 any other form of session. Similarly, between a UAC and first proxy 231 that are not within the same Trust Domain, a P-Preferred-Identity 232 header field could be used in a MESSAGE request to express a 233 preference when the user has several identities. 235 Within a Trust Domain, a P-Asserted-Identity header field could 236 advantageously be used in a PUBLISH request to assert the source of 237 published state information. This would complement its use in 238 SUBSCRIBE and NOTIFY requests. Similarly, between a UAC and first 239 proxy that are not within the same Trust Domain, a P-Preferred- 240 Identity header field could be used in a PUBLISH request to express a 241 preference when the user has several identities. 243 Thus there are several examples where P-Asserted-Identity could be 244 used in requests with methods that are not provided for in RFC 3325 245 or any other RFC. This leaves a few methods for which use cases are 246 less obvious, but the inclusion of P-Asserted Identity would not 247 cause any harm. In any requests, the header field would simply 248 assert the source of that request, whether or not this is of any use 249 to the UAS. Inclusion of P-Asserted-Identity in a request requires 250 that the original asserter of an identity be able to authenticate the 251 source of the request. This implies the ability to challenge a 252 request for SIP digest authentication, which is not possible with ACK 253 and CANCEL requests. Therefore ACK and CANCEL requests need to be 254 excluded. 256 Similarly there are examples where P-Preferred-Identity could be used 257 in requests with methods that are not provided for in RFC 3325 or any 258 other RFC (with the exception of ACK and CANCEL). 260 This update to RFC 3325 allows a P-Asserted-Identity or P-Preferred- 261 Identity header field to be included in any request except ACK and 262 CANCEL. 264 3.3. Dialog implications 266 A P-Asserted-Identity header field in a received request asserts the 267 identity of the source of that request and says nothing about the 268 source of subsequent received requests claiming to relate to the same 269 dialog. The recipient can make its own deductions about the source 270 of subsequent requests not containing a P-Asserted-Identity header 271 field. This document does not change RFC 3325 in this respect. 273 4. Behaviour 275 This document updates RFC 3325 by allowing a P-Asserted-Identity 276 header field to be included by a UAC within the same Trust Domain and 277 by allowing a P-Asserted-Identity or P-Preferred-Identity header 278 field to appear in any request. 280 4.1. UAC Behaviour 282 A UAC MAY include a P-Asserted-Identity header field in any request 283 except ACK and CANCEL to report the identity of the user on behalf of 284 which the UAC is acting and whose identity the UAC is in a position 285 to assert. A UAC SHOULD do so only in cases where it believes it is 286 in the same Trust Domain as the SIP entity to which it sends the 287 request and is connected to that SIP entity in accordance with the 288 security requirements of RFC 3325. A UAC SHOULD NOT do so in other 289 circumstances and might instead use the P-Preferred-Identity header 290 field. A UAC MUST NOT include both header fields. 292 A UAC MAY include a P-Asserted-Identity or P-Preferred-Identity 293 header field in any request, i.e., not limited to the methods allowed 294 in RFC 3325. 296 4.2. Proxy Behaviour 298 If a proxy receives a request containing a P-Asserted-Identity header 299 field from a UAC within the Trust Domain it MUST behave as for a 300 request from any other node within the Trust Domain, in accordance 301 with the rules of RFC 3325 for a proxy. 303 Note that this implies that the proxy must have authenticated the 304 sender of the request in accordance with the Spec(T) in force for 305 the Trust Domain and determined that the sender is indeed part of 306 the Trust Domain. 308 If a proxy receives a request (other than ACK or CANCEL) containing a 309 P-Asserted-Identity or P-Preferred-Identity header field, it MUST 310 behave in accordance with the rules of RFC 3325 for a proxy, even if 311 the method is not one for which RFC 3325 specifies use of that header 312 field. 314 4.3. Registrar Behaviour 316 If a registrar receives a REGISTER request containing a P-Asserted- 317 Identity header field, it MUST disregard the asserted identity unless 318 received from a node within the Trust Domain. If the node is within 319 the Trust Domain, the registrar MAY use this as evidence that the 320 registering UA has been authenticated and represents the identity 321 asserted in the header field. 323 4.4. UAS Behaviour 325 If a UAS receives any request (other than ACK or CANCEL) containing a 326 P-Asserted-Identity header field, it MUST behave in accordance with 327 the rules of RFC 3325 for a UAS, even if the method is not one for 328 which RFC 3325 specifies use of that header field. 330 4.5. General handling 332 If an entity receives a request containing a P-Asserted-Identity or 333 P-Preferred-Identity header field containing an unexpected number of 334 URIs or unexpected URI schemes it MUST act as follows: 336 o ignore any URI with an unexpected URI scheme; 338 o ignore any URI for which the expected maximum number of URIs with 339 the same scheme occurred earlier in the header field; and 341 o ignore any URI whose scheme is not expected to occur in 342 combination with a scheme that occurred earlier in the header 343 field. 345 In the absence of a Spec(T) determining otherwise, this document does 346 not change the RFC 3325 requirement that allows each of these header 347 fields to contain at most two URIs, where one is a SIP or SIPS URI 348 and the other is a TEL URI, but future updates to this document may 349 relax that requirement. In the absence of such a relaxation or a 350 Spec(T) determining otherwise, the RFC 3325 requirement means that an 351 entity receiving a request containing a P-Asserted-Identity or 352 P-Preferred-Identity header field must act as follows: 354 o ignore any URI with a scheme other than SIP, SIPS or TEL; 356 o ignore a second or subsequent SIP URI, a second or subsequent SIPS 357 URI or a second or subsequent TEL URI; and 359 o ignore a SIP URI if a SIPS URI occurred earlier in the header 360 field and vice versa. 362 A proxy MUST NOT forward a URI when forwarding a request if that URI 363 is to be ignored in accordance with the requirement above. 365 5. IANA considerations 367 This document requires no IANA actions. 369 6. Security considerations 371 The use of asserted identity raises a number of security 372 considerations, which are discussed fully in [RFC3325]. This 373 document raises the following additional security considerations. 375 When adding a P-Asserted-Identity header field to a message, an 376 entity must have authenticated the source of the message by some 377 means. One means is to challenge the sender of a message to provide 378 SIP digest authentication. Responses cannot be challenged, and also 379 ACK and CANCEL requests cannot be challenged. Therefore this 380 document limits the use of P-Asserted-Identity to requests other than 381 ACK and CANCEL. 383 When receiving a request containing a P-Asserted-Identity header 384 field, a proxy will trust the assertion only if the source is known 385 to be within the Trust Domain and behaves in accordance with a 386 Spec(T), which defines the security requirements. This applies 387 regardless of the nature of the resource (UA or proxy). One example 388 where a trusted source might be a UA is a PSTN gateway. In this case 389 the UA can assert an identity received from the PSTN, the proxy 390 itself having no means to authenticate such an identity. A SIP 391 entity must not trust an identity asserted by a source outside the 392 Trust Domain. Typically a UA under the control of an individual user 393 (such as a desk phone or mobile phone) should not be considered part 394 of a Trust Domain. 396 When receiving a response from a node outside the Trust Domain, a 397 proxy has no standardised SIP means to authenticate the node. For 398 this reason, this document does not specify the use of P-Asserted- 399 Identity or P-Preferred-Identity in responses. 401 When receiving a REGISTER request containing a P-Asserted-Identity 402 header field, a proxy will trust the asserted identity only if 403 received over a secure connection from a proxy within the Trust 404 Domain. 406 7. Acknowledgements 408 Useful comments were received from Francois Audet, John-Luc Bakker, 409 Jeroen van Bemmel, Hans Erik van Elburg, Vijay Gurbani, Cullen 410 Jennings, Hadriel Kaplan, Paul Kyzivat, Jonathan Rosenberg, Thomas 411 Stach and Brett Tate during drafting and review. 413 8. References 414 8.1. Normative References 416 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 417 Requirement Levels", BCP 14, RFC 2119, March 1997. 419 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 420 A., Peterson, J., Sparks, R., Handley, M., and E. 421 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 422 June 2002. 424 [RFC3311] Rosenberg, J., "The Session Initiation Protocol (SIP) 425 UPDATE Method", RFC 3311, October 2002. 427 [RFC3324] Watson, M., "Short Term Requirements for Network Asserted 428 Identity", RFC 3324, November 2002. 430 [RFC3325] Jennings, C., Peterson, J., and M. Watson, "Private 431 Extensions to the Session Initiation Protocol (SIP) for 432 Asserted Identity within Trusted Networks", RFC 3325, 433 November 2002. 435 [RFC3428] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C., 436 and D. Gurle, "Session Initiation Protocol (SIP) Extension 437 for Instant Messaging", RFC 3428, December 2002. 439 [RFC3903] Niemi, A., "Session Initiation Protocol (SIP) Extension 440 for Event State Publication", RFC 3903, October 2004. 442 [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", 443 RFC 3966, December 2004. 445 8.2. Informative References 447 [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. 448 Camarillo, "Best Current Practices for Third Party Call 449 Control (3pcc) in the Session Initiation Protocol (SIP)", 450 BCP 85, RFC 3725, April 2004. 452 [RFC4474] Peterson, J. and C. Jennings, "Enhancements for 453 Authenticated Identity Management in the Session 454 Initiation Protocol (SIP)", RFC 4474, August 2006. 456 [RFC4916] Elwell, J., "Connected Identity in the Session Initiation 457 Protocol (SIP)", RFC 4916, June 2007. 459 [RFC5363] Camarillo, G. and A. Roach, "Framework and Security 460 Considerations for Session Initiation Protocol (SIP) URI- 461 List Services", RFC 5363, October 2008. 463 Author's Address 465 John Elwell 466 Siemens Enterprise Communications 468 Phone: +44 115 943 4989 469 Email: john.elwell@siemens.com