RFC 8443
Personal Assertion Token (PASSporT) Extension for Resource Priority Authorization
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 Notice
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
- ietf: rfc8443 2018-08
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms