RFC 5002

The Session Initiation Protocol (SIP) P-Profile-Key Private Header (P-Header)

๐Ÿ“… published August 2007, from ietf

RFC 5002: The Session Initiation Protocol (SIP) P-Profile-Key Private Header (P-Header) ๐Ÿ’–

Okay bestie, this is RFC 5002 ๐ŸŽ€ It was written by G. Camarillo and G. Blanco, both at Ericsson, in August 2007. The category is Informational, so it's here to give the Internet community information and doesn't specify an Internet standard of any kind ๐Ÿฆ‹ The title block doesn't list anything this document obsoletes or updates, so it's just vibing on its own โœจ


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 ๐Ÿ’…

Abstract ๐ŸŒธ

Okay so this document specifies the SIP P-Profile-Key P-header ๐ŸŽ€ It's used in the 3rd-Generation Partnership Project (3GPP) IMS (IP Multimedia Subsystem) to give SIP registrars and SIP proxy servers the key of the profile that matches the destination SIP URI of a particular SIP request. Iconic behaviour ๐Ÿ‘‘

Table of Contents ๐Ÿงš

   1. Introduction ....................................................2
   2. Terminology .....................................................2
   3. Scenario ........................................................2
   4. Requirements ....................................................3
   5. P-Profile-Key Header Field Definition ...........................3
   6. Applicability ...................................................4
   7. IANA Considerations .............................................4
   8. Security Considerations .........................................5
   9. Acknowledgements ................................................5
   10. References .....................................................5
      10.1. Normative References ......................................5
      10.2. Informative References ....................................6

1. Introduction โœจ

The 3rd-Generation Partnership Project (3GPP) IMS (IP Multimedia Subsystem) uses SIP [RFC3261] as its main signalling protocol ๐Ÿ’œ For more info on the IMS, check out 3GPP TS 23.228 [3GPP.23.228] and 3GPP TS 24.229 [3GPP.24.229]. 3GPP identified a set of requirements that can be met by defining a new SIP P-header, following the procedures in [RFC3427] ๐Ÿฆ‹

The rest of this doc is laid out like this. Section 3 describes the scenario 3GPP cares about, and Section 4 talks about the requirements that come out of that scenario ๐ŸŒˆ Section 5 defines the P-Profile-Key header field, which meets those requirements, and Section 6 covers its applicability and scope ๐Ÿ’… Section 7 registers the P-Profile-Key header field with IANA, and Section 8 talks about the security properties of the environment where this header field is meant to be used ๐Ÿ”ฅ

2. Terminology ๐ŸŽ€

  • HSS: Home Subscriber Server.
  • I-CSCF: Interrogating - Call/Session Control Function.
  • Public Service Identity: A SIP URI that refers to a service instead of a user.
  • S-CSCF: Serving - Call/Session Control Function.
  • Wildcarded Public Service Identity: A set of Public Service Identities that match a regular expression and share the same profile.

3. Scenario ๐ŸŒธ

In the 3GPP IMS, there are scenarios where a set of proxies handling a request need to consult the same user database, as described in [RFC4457] ๐Ÿซถ Those proxies usually use the destination SIP URI of the request as the key for their database queries. BUT, when a proxy handles a Wildcarded Public Service Identity, the key it uses for its database query is not the destination SIP URI. It's a regular expression instead ๐Ÿ˜ญ

Public Service Identities are SIP URIs that refer to services instead of users. In other words, they address a specific application in an Application Server โœจ Wildcarded Public Service Identities are a set of Public Service Identities that match a regular expression and share the same profile. For example, the Public Service Identities 'sip:chatroom-12@example.com' and 'sip:chatroom-657@example.com' would both match the Wildcarded Public Service Identity 'sip:chatroom-!.*!@example.com' ๐Ÿ’– For a description of Wildcarded Public Service Identities, see 3GPP TS 23.003 [3GPP.23.003].

Now here's the tricky part ๐Ÿ™ˆ When a proxy queries the user database for a Public Service Identity that has no profile in the user database, the user database needs to find its matching Wildcarded Public Service Identity. For example, if the user database gets a query for 'sip:chatroom-657@example.com', it has to go through every Wildcarded Public Service Identity it has until it finds a match, which in this case is 'sip:chatroom-!.*!@example.com'. Finding that match can be computationally expensive, time consuming, or both ๐Ÿ’€

When two proxies query the user database for the same Public Service Identity, and that identity matches a Wildcarded Public Service Identity, the user database has to do the matching process twice. Doing it twice can be avoided if the first proxy gets the Wildcarded Public Service Identity from the user database and passes it along, piggy-backed in the SIP message, to the second proxy. That way, the second proxy can query the user database using the Wildcarded Public Service Identity directly ๐Ÿงš Main character energy for the second proxy, ngl ๐Ÿ‘‘

There's also an alternative, but it's undesirable ๐Ÿ™…โ€โ™€๏ธ It would have the user database store every Public Service Identity along with its matching Wildcarded Public Service Identity. The scalability and manageability properties of this approach are considerably worse than those of the approach described earlier ๐Ÿ’€

4. Requirements ๐ŸŽ€

This section lists the requirements derived from the previous scenario:

  1. It is necessary to optimize the response time for session establishment in the 3GPP IMS.
  2. It is necessary to keep the user database's size and maintenance manageable (e.g., storing individual Public Service Identities matching a Wildcarded Public Service Identity in the user database is not believed to be an acceptable solution).

5. P-Profile-Key Header Field Definition ๐Ÿ’…

This document defines the SIP P-Profile-Key P-header. The P-Profile-Key P-header contains the key that a proxy uses to query the user database for a given profile ๐ŸŒˆ

The augmented Backus-Naur Form (BNF) [RFC4234] syntax of the P-Profile-Key header field is the following:

      P-Profile-Key     = "P-Profile-Key" HCOLON (name-addr / addr-spec)
                           *( SEMI generic-param )

The format of HCOLON, name-addr, addr-spec, and generic-param is defined in [RFC3261]. The format of Wildcarded Public Service Identities is defined in 3GPP TS 23.003 [3GPP.23.003]. They take the form of Extended Regular Expressions (ERE) as defined in Chapter 9 of IEEE 1003.1-2004 Part 1 [IEEE.1003.1-2004] ๐Ÿค“

Here's an example of a P-Profile-Key header field that contains a Wildcarded Public Service Identity:

      P-Profile-Key: <sip:chatroom-!.*!@example.com>

6. Applicability ๐Ÿฆ‹

According to [RFC3427], P-headers have limited applicability. Specs for P-headers like this RFC need to clearly document the useful scope of the proposal, and explain its limitations and why it isn't suitable for general use of SIP on the Internet ๐Ÿ’œ

The P-Profile-Key header field is meant to be used in 3GPP IMS networks. This header field carries the key of a service profile, which is stored in a user database called the HSS, between two proxies, called the I-CSCF and the S-CSCF. The I-CSCF and the S-CSCF belong to the same administrative domain and share a common frame of reference to the user database. The I-CSCF inserts the P-Profile-Key header field into a SIP request, and the S-CSCF removes it before routing the request further. (For a description of how an I-CSCF and an S-CSCF query the same user database for a single request, see [RFC4457].) ๐Ÿซถ

Typically, when SIP is used on the Internet, there are not multiple proxies with a trust relationship between them querying the same user database. So the P-Profile-Key header field doesn't seem useful in a general Internet environment ๐Ÿ™ˆ

7. IANA Considerations ๐ŸŒธ

This document defines a new SIP header field: P-Profile-Key. IANA has registered this header field in the SIP Parameters registry, under the Header Fields subregistry โœจ

8. Security Considerations ๐Ÿ”ฅ

Okay, this section is serious, so read it carefully bestie ๐Ÿšจ

The P-Profile-Key defined in this document is meant to be used in an environment where elements are trusted and where attackers are not supposed to have access to the protocol messages between those elements. Traffic protection between network elements is sometimes done with IPsec and sometimes by physically protecting the network. In any case, the environment where the P-Profile-Key header field will be used ensures the integrity and the confidentiality of the contents of this header field. The P-Profile-Key header field MUST NOT be used in environments that do not have these characteristics ๐Ÿ˜ญ

The P-Profile-Key header field needs integrity protection so attackers can't modify its contents. An attacker who could modify the contents of this header field could make the network apply a different service than the one that corresponds to the request carrying the P-Profile-Key header field ๐Ÿ’€

The contents of the P-Profile-Key field need to be kept confidential. An attacker who could access the contents of this header field would gain certain knowledge about the way services are structured in a given domain ๐Ÿ‘€


Authors' Addresses โœจ

Okay, meet the two bestie-level engineers behind this doc ๐Ÿ’– Both of them work at Ericsson, which is giving serious Nordic and Spanish energy ๐Ÿ‡ซ๐Ÿ‡ฎ๐Ÿ‡ช๐Ÿ‡ธ

Gonzalo Camarillo
Ericsson
Hirsalantie 11
Jorvas  02420
Finland

EMail: Gonzalo.Camarillo@ericsson.com


German Blanco
Ericsson
Via de los Poblados 13
Madrid  28033
Spain

EMail: German.Blanco@ericsson.com

Their emails are Gonzalo.Camarillo@ericsson.com and German.Blanco@ericsson.com ๐Ÿ“ฌ Slide into their DMs if you have questions, periodt ๐Ÿ’…


Copyright (C) The IETF Trust (2007) ๐ŸŒธ

This document is subject to the rights, licenses and restrictions contained in BCP 78 ๐Ÿ“œ Except for what BCP 78 sets out, the authors keep all of their rights, so no copying their work and calling it yours, bestie ๐Ÿ™ˆ

The document and the info in it are provided on an "AS IS" basis ๐Ÿซถ 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 ๐Ÿ˜ญ That includes, but isn't limited to, any warranty that using the info won't infringe any rights, and any implied warranty of merchantability or fitness for a particular purpose. Legally speaking, nobody is promising this is perfect ๐Ÿ’€


Intellectual Property ๐Ÿฆ‹

The IETF doesn't take a position on whether any Intellectual Property Rights or other rights that someone might claim over the tech in this document are valid or how far they reach ๐Ÿง It also doesn't say whether licenses for those rights are available, and it hasn't independently gone looking for any such rights, so no promises there ๐Ÿ™ˆ For how rights work with RFC documents, check out BCP 78 and BCP 79 ๐Ÿ’œ

Copies of IPR disclosures sent to the IETF Secretariat are a thing โœจ So are any assurances of licenses that might be offered, along with the results of any attempt to get a general license or permission to use those proprietary rights by implementers or users of this specification. You can find all of that in the IETF online IPR repository at http://www.ietf.org/ipr ๐Ÿ”

The IETF invites anyone who's interested to flag any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard ๐ŸŒˆ Send that info to the IETF at ietf-ipr@ietf.org ๐Ÿ“จ Thanks for keeping the internet honest, besties ๐Ÿซถโœจ

๐Ÿ“ฆ where this page comes from