RFC 8443

Personal Assertion Token (PASSporT) Extension for Resource Priority Authorization

๐Ÿ“… published August 2018, from ietf

RFC 8443: PASSporT Extension for Resource Priority Authorization ๐Ÿ’–

Okay bestie, this is RFC 8443 ๐ŸŽ€, and its title is "Personal Assertion Token (PASSporT) Extension for Resource Priority Authorization." It's an IETF Standards Track document, published in August 2018 ๐Ÿฆ‹, with ISSN 2070-1721. The authors are R. Singh (Vencore Labs), M. Dolly (AT&T), S. Das (Vencore Labs), and A. Nguyen (Office of Emergency Communications/DHS) ๐Ÿซถ. The header doesn't list anything it obsoletes or updates, so it stands on its own โœจ.

Abstract

So this doc extends the PASSporT spec from RFC 8225 ๐ŸŒธ so you can attach cryptographically signed assertions of authorization to the values in the Session Initiation Protocol (SIP) 'Resource-Priority' header field ๐Ÿ’…. That header is what handles communications resource prioritization ๐Ÿ‘‘.

Status of This Memo

This is an Internet Standards Track document ๐ŸŒˆ.

It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community ๐Ÿ’œ. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG) โœจ. If you want more on Internet Standards, check Section 2 of RFC 7841 ๐Ÿงš.

Info about the current status of this document, any errata, and how to send feedback lives at https://www.rfc-editor.org/info/rfc8443 ๐ŸŽ€.

Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved ๐Ÿ’….

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as in effect on the date of publication ๐Ÿซถ. Please read these carefully, because they spell out your rights and restrictions ๐Ÿ™ˆ. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License ๐Ÿ“.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  PASSporT "rph" Claim  . . . . . . . . . . . . . . . . . . . .   4
   4.  "rph" in SIP  . . . . . . . . . . . . . . . . . . . . . . . .   5
     4.1.  Authentication Service Behavior . . . . . . . . . . . . .   5
     4.2.  Verification Service Behavior . . . . . . . . . . . . . .   6
   5.  Further Information Associated with the SIP
       'Resource-Priority' Header Field  . . . . . . . . . . . . . .   7
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
     6.1.  JSON Web Token Claims . . . . . . . . . . . . . . . . . .   7
     6.2.  PASSporT Types  . . . . . . . . . . . . . . . . . . . . .   7
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
     7.1.  Avoidance of Replay and Cut-and-Paste Attacks . . . . . .   8
     7.2.  Solution Considerations . . . . . . . . . . . . . . . . .   8
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   9
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1. Introduction โœจ

Okay so PASSporT [RFC8225] is a token format built on JSON Web Token (JWT) [RFC7519] ๐Ÿ’–. Its whole job is carrying cryptographically signed info about the identities involved in personal communications ๐Ÿฆ‹. Pair it with Secure Telephone Identity Revisited (STIR) [RFC8224] and you get a mechanism where an authority on the originating side of a call, using a protocol like SIP [RFC3261], can give a cryptographic assurance that the calling party's telephone number is valid ๐Ÿ”ฅ. That's how it stops impersonation attacks ๐Ÿ™…โ€โ™€๏ธ.

[RFC4412] defines a way to prioritize access to SIP-signaled resources when communications resources are scarce, using the SIP 'Resource-Priority' header ๐Ÿ‘‘. As [RFC4412] specifies, SIP user agents (UAs) [RFC3261] can use that header, including Public Switched Telephone Network (PSTN) gateways and SIP proxy servers ๐ŸŒธ. It can shape how sessions get prioritized, PSTN calls included, like managing scarce network resources during congestion ๐ŸŽ€.

BUT here's the tea ๐Ÿต: the SIP 'Resource-Priority' header field could be spoofed and abused by unauthorized entities ๐Ÿ’€. The threat models and use cases are described in [RFC7375] and [RFC7340], respectively ๐Ÿงš.

Compromise of the SIP 'Resource-Priority' header field [RFC4412] could lead to misuse of network resources (i.e., during congestion scenarios), impacting the application services supported using the SIP 'Resource-Priority' header field. ๐Ÿ˜ญ

[RFC8225] allows extensions where an authority on the originating side, which verifies that a particular communication is authorized for the SIP 'Resource-Priority' header field, can use a PASSPorT claim to cryptographically sign that header and convey its assertion of authorization ๐Ÿซถ. A signed header lets a receiving entity (including entities in different network domains/boundaries) verify that those authorization assertions are valid, and act on the info with confidence that it hasn't been spoofed or compromised ๐Ÿ’….

This specification documents an extension to PASSporT and the associated STIR mechanisms that adds a way to cryptographically sign the SIP 'Resource-Priority' header field ๐ŸŒˆ. This PASSporT object gives attestation of a calling-user's authorization for priority communications ๐Ÿ‘‘. It's needed on top of the PASSporT object used for calling-user telephone-number attestation, not instead of it ๐Ÿ™ˆ. How this extension gets used for real-time communications over the SIP 'Resource-Priority' header field is outside the scope of this document ๐Ÿฆ‹. Also, the PASSPorT extension defined here is meant for environments where you can verify that the signer of the SIP 'Resource-Priority' header field is authoritative ๐Ÿ’œ.

2. Terminology ๐ŸŽ€

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here ๐Ÿ’–. So they only carry that special meaning in ALL CAPS ๐Ÿ™Œ.

3. PASSporT "rph" Claim ๐Ÿฆ‹

This spec defines a brand-new JSON Web Token claim for "rph" ๐Ÿ’…. It gives an assertion for info in the SIP 'Resource-Priority' header field โœจ.

The creator of a PASSporT object adds a "ppt" value of "rph" to the header of that object ๐Ÿซถ. The PASSporT claims MUST contain an "rph" claim ๐Ÿ”ฅ, and any entities verifying the PASSporT object will be required to understand the "ppt" extension in order to process it ๐Ÿงš. A PASSPorT header with the "ppt" included looks like this ๐Ÿ‘‘:

{
"typ":"passport",
  "ppt":"rph",
  "alg":"ES256",
  "x5u":"https://www.example.org/cert.cer"
}

The "rph" claim provides an assertion of authorization, "auth", for info in the SIP 'Resource-Priority' header field, based on [RFC4412] ๐ŸŒธ. The syntax is ๐ŸŽ€:

{
Resource-Priority = "Resource-Priority" : r-value,
r-value = namespace  "."  r-priority
}

Specifically, the "rph" claim includes an assertion of the user's priority level for a given communication session ๐Ÿ’œ. The value of the "rph" claim is an object with one or more keys ๐ŸŒˆ. Each key is linked to a JSON array ๐Ÿ“, and those arrays hold strings that match the r-values in the SIP 'Resource-Priority' header field ๐Ÿฆ‹.

Here's an example "rph" claim for a SIP 'Resource-Priority' header field with one r-value of "ets.0" and another r-value of "wps.0" ๐Ÿ’–:

 {
  "orig":{"tn":"12155550112"},
  "dest":{["tn":"12125550113"]},
  "iat":1443208345,
  "rph":{"auth":["ets.0", "wps.0"]}
 }

Once the header and claims of the PASSporT object are built, the signature gets generated normally, following the guidance in [RFC8225], using the full form of PASSPorT ๐Ÿ”ฅ. The credentials (i.e., Certificate) used to create the signature must have authority over the namespace of the "rph" claim, and there's only one authority per claim ๐Ÿ‘‘. The authority MUST use its credentials associated with the specific service supported by the resource priority namespace in the claim ๐Ÿซถ. If r-values get added or dropped by intermediaries along the path, the intermediaries must generate a new "rph" header and sign the claim with their own authority ๐Ÿงš.

The compact form of PASSporT is not specified in this document ๐Ÿ™ˆ.

4. "rph" in SIP ๐Ÿ’…

This section covers the SIP-specific usage of the "rph" claim in PASSporT โœจ.

4.1. Authentication Service Behavior ๐ŸŒˆ

The Authentication Service will create the "rph" claim using the values discussed in Section 3 of this document, which are based on [RFC4412] ๐ŸŽ€. Building the "rph" claim follows the steps in Section 4.1 of [RFC8224] ๐Ÿ’œ.

The resulting Identity header for "rph" might look like this (backslashes shown for line folding only) ๐Ÿฆ‹:

   Identity:eyJhbGciOiJFUzI1NiIsInBwdCI6InJwaCIsInR5cCI6InBhc3Nwb3J0\
   IiwieDV1IjoiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vY2VydC5jZXIifQo.eyJkZ\
   XN0Ijp7WyJ0biI6IjEyMTI1NTUwMTEzIl19LCJpYXQiOiIxNDQzMjA4MzQ1Iiwib3\
   JpZyI6eyJ0biI6IjEyMTU1NTUwMTEyIn0sInJwaCI6eyJhdXRoIjpbImV0cy4wIiw\
   id3BzLjAiXX19Cg.s37S6VC8HM6Dl6YzJeQDsrZcwJ0lizxhUrA7f_98oWBHvo-cl\
   -n8MIhoCr18vYYFy3blXvs3fslM_oos2P2Dyw;info=<https://www.example.\
   org/cert.cer>;alg=ES256;ppt="rph"

A SIP authentication service derives the value of "rph" from the SIP 'Resource-Priority' header field, based on the policy tied to service-specific use of r-values ๐Ÿ”ฅ. [RFC4412] defines them like this ๐Ÿ‘‘:

      r-value = namespace "." r-priority

The authentication service derives the value of the PASSPorT claim by verifying the authorization for the SIP 'Resource-Priority' header field ๐Ÿซถ. In other words, it checks that the calling user has privilege for that header, based on their identity ๐Ÿ’–. That authorization might come from customer-profile data or from access to external services ๐Ÿงš.

[RFC4412] allows multiple "namespace "." priority value" pairs, either in a single SIP 'Resource-Priority' header field or spread across multiple SIP 'Resource-Priority' header fields ๐ŸŒธ. An authority is responsible for signing all the content of a SIP 'Resource-Priority' header field that it has authority over ๐Ÿ“. Periodt ๐ŸŒˆโœจ

4.2. Verification Service Behavior ๐Ÿ”

okay so [RFC8224], Section 6.2, Step 5 says that any spec defining "ppt" values has to spell out any extra verifier behavior ๐Ÿ“. Here's what the "ppt" value of "rph" needs:

The verification service MUST extract the value associated with the "auth" key in a full-form PASSPorT with a "ppt" value of "rph". If the signature validates, then the verification service can use the value of the "rph" claim as validation that the calling party is authorized for SIP 'Resource-Priority' header fields as indicated in the claim. This value would, in turn, be used for priority treatment in accordance with local policy for the associated communication service โœจ. If the signature validation fails, the verification service should infer that the calling party is not authorized for SIP 'Resource-Priority' header fields as indicated in the claim. In that case, the priority treatment for the associated communication service is handled as per the local policy of the verifier ๐Ÿ’…. In such scenarios, the SIP 'Resource-Priority' header field SHOULD be stripped from the SIP request, and the network entities should treat the call as an ordinary call ๐Ÿซถ.

In addition, [RFC8224], Section 6.2, Step 4 requires the "iat" value in "rph" claim to be verified ๐Ÿ•ต๏ธโ€โ™€๏ธ.

The behavior of a SIP UA upon receiving an INVITE containing a PASSporT object with an "rph" claim will largely remain a matter of implementation policy for the specific communication service. In most cases, implementations would act based on confidence in the veracity of this information ๐ŸŒธ.

5. Further Information Associated with the SIP 'Resource-Priority' Header Field ๐ŸŽ€

There may be additional information about the calling party or the call that could be relevant to authorization for the SIP 'Resource-Priority' header field ๐Ÿ‘€. This may include information related to the device subscription of the caller, to any institutions that the caller or device is associated with, or even to categories of institutions. All of these data elements would benefit from the secure attestations provided by the STIR and PASSporT frameworks ๐Ÿ”. The specification of the "rph" claim could entail the optional presence of one or more such additional information fields applicable to the SIP 'Resource-Priority' header field โœจ.

A new IANA registry has been defined to hold potential values of the "rph" array; see Section 6.2 ๐Ÿ—‚๏ธ. The definition of the "rph" claim may have one or more such additional information field(s). Details of how an "rph" claim encompasses other data elements are left for future specifications ๐Ÿ”ฎ.

6. IANA Considerations ๐Ÿ“‹

6.1. JSON Web Token Claims ๐Ÿชช

IANA has added a new claim to the "JSON Web Token Claims" registry as defined in [RFC7519] ๐Ÿ’œ.

  • Claim Name: rph
  • Claim Description: Resource Priority Header Authorization
  • Change Controller: IESG
  • Specification Document(s): Section 3 of RFC 8443

6.2. PASSporT Types ๐Ÿท๏ธ

IANA has created a new entry in the "Personal Assertion Token (PASSporT) Extensions" registry for the type "rph", which is specified in this document. In addition, the "PASSporT Resource Priority Header (rph) Types" registry has been created in which each entry must contain two fields: the name of the "rph" type and the specification in which the type is described. This registry has been initially populated with the single value for "auth", which is specified in this document. Registration of new "rph" types shall be under the Specification Required policy[RFC8126] ๐Ÿฆ‹.

7. Security Considerations ๐Ÿšจ

๐Ÿ’€ Okay, this section is the serious one, bestie. Read it carefully, because the security stakes are highhigh.

The security considerations discussed in [RFC8224], Section 12, are applicable here ๐Ÿ™ˆ.

7.1. Avoidance of Replay and Cut-and-Paste Attacks ๐Ÿงท

The PASSporT extension with a "ppt" value of "rph" MUST only be sent with SIP INVITE when the SIP 'Resource-Priority' header field is used to convey the priority of the communication, as defined in [RFC4412]. To avoid replay and cut-and-paste attacks, the recommendations provided in Section 12.1 of [RFC8224] MUST be followed ๐Ÿ˜ญ.

7.2. Solution Considerations ๐Ÿง 

Using extensions to PASSporT tokens with a "ppt" value of "rph" requires knowledge of the authentication, authorization, and reputation of the signer to attest to the identity being asserted, including validating the digital signature and the associated certificate chain to a trust anchor ๐Ÿ”—. The following considerations should be recognized when using PASSporT extensions with a "ppt" value of "rph" ๐Ÿ‘‘:

  • A signer is only allowed to sign the content of a SIP 'Resource-Priority' header field for which it has the proper authorization. Before signing tokens, the signer MUST have a secure method for authentication of the end user or the device being granted a token ๐Ÿ”‘.
  • The verification of the signature MUST include means of verifying that the signer is authoritative for the signed content of the resource priority namespace in the PASSporT ๐Ÿ›ก๏ธ.

8. References ๐Ÿ“š

8.1. Normative References

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <https://www.rfc-editor.org/info/rfc2119>.

[RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
           A., Peterson, J., Sparks, R., Handley, M., and E.
           Schooler, "SIP: Session Initiation Protocol", RFC 3261,
           DOI 10.17487/RFC3261, June 2002,
           <https://www.rfc-editor.org/info/rfc3261>.

[RFC4412]  Schulzrinne, H. and J. Polk, "Communications Resource
           Priority for the Session Initiation Protocol (SIP)",
           RFC 4412, DOI 10.17487/RFC4412, February 2006,
           <https://www.rfc-editor.org/info/rfc4412>.

[RFC7519]  Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token
           (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015,
           <https://www.rfc-editor.org/info/rfc7519>.

[RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
           2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
           May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8224]  Peterson, J., Jennings, C., Rescorla, E., and C. Wendt,
           "Authenticated Identity Management in the Session
           Initiation Protocol (SIP)", RFC 8224,
           DOI 10.17487/RFC8224, February 2018,
           <https://www.rfc-editor.org/info/rfc8224>.

[RFC8225]  Wendt, C. and J. Peterson, "PASSporT: Personal Assertion
           Token", RFC 8225, DOI 10.17487/RFC8225, February 2018,
           <https://www.rfc-editor.org/info/rfc8225>.

8.2. Informative References

[RFC7340]  Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure
           Telephone Identity Problem Statement and Requirements",
           RFC 7340, DOI 10.17487/RFC7340, September 2014,
           <https://www.rfc-editor.org/info/rfc7340>.

[RFC7375]  Peterson, J., "Secure Telephone Identity Threat Model",
           RFC 7375, DOI 10.17487/RFC7375, October 2014,
           <https://www.rfc-editor.org/info/rfc7375>.

[RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
           Writing an IANA Considerations Section in RFCs", BCP 26,
           RFC 8126, DOI 10.17487/RFC8126, June 2017,
           <https://www.rfc-editor.org/info/rfc8126>.

Acknowledgements ๐Ÿ’–

We would like to thank STIR Working Group members, the ATIS/SIP Forum Task Force on IPNNI members, and the NS/EP Priority Services community for contributions to this problem statement and specification. We would also like to thank David Hancock and Ning Zhang for their valuable inputs ๐ŸŒˆ.

Authors' Addresses ๐Ÿ–‹๏ธ

Ray P. Singh
Vencore Labs
150 Mount Airy Road
New Jersey, NJ  07920
United States of America

Email: rsingh@vencorelabs.com


Martin Dolly
AT&T
200 Laurel Avenue
Middletown, NJ 07748
United States of America

Email: md3135@att.com

Subir Das
Vencore Labs
150 Mount Airy Road
New Jersey, NJ  07920
United States of America

Email: sdas@vencorelabs.com


An Nguyen
Office of Emergency Communications
Department of Homeland Security
245 Murray Lane, Building 410
Washington, DC 20528
United States of America

Email: an.p.nguyen@HQ.DHS.GOV
๐Ÿ“ฆ where this page comes from