RFC 8588

Personal Assertion Token (PaSSporT) Extension for Signature-based Handling of Asserted information using toKENs (SHAKEN)

πŸ“… published May 2019, from ietf

RFC 8588 πŸŽ€ PaSSporT Extension for SHAKEN πŸ’–

Title: Personal Assertion Token (PaSSporT) Extension for Signature-based Handling of Asserted information using toKENs (SHAKEN)

Category: Standards Track ✨

Date: May 2019 🌸

Authors: C. Wendt (Comcast) and M. Barnes (iconectiv) πŸ‘‘

ISSN: 2070-1721

Obsoletes and updates: the title block doesn't list any RFCs here, so nothing gets obsoleted or updated πŸ¦‹

Abstract πŸ¦‹

okay so this doc extends PASSporT (Personal Assertion Token), which is a token object that carries cryptographically signed info about the people involved in a call πŸ”. The extension is based on the "Signature-based Handling of Asserted information using toKENs (SHAKEN)" spec from the ATIS/SIP Forum IP-NNI Task Group. It gives you two things: (1) a specific set of confidence levels about whether the originating identity of a SIP-based phone call is correct, and (2) an identifier that lets the Service Provider (SP) pinpoint exactly where the call started inside its own network. main character energy πŸ’…

Status of This Memo πŸ“œ

This is an Internet Standards Track document πŸ”₯

This document is a product of the Internet Engineering Task Force (IETF). It 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 out Section 2 of RFC 7841 🧚

For the current status, errata, and how to send feedback, head to https://www.rfc-editor.org/info/rfc8588 πŸ’œ

Copyright (c) 2019 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) in effect on the date of publication of this document. Please review these documents carefully, because they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. 🫢

Table of Contents πŸ—‚οΈ

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
3.  Overview of   "shaken" PASSporT Extension . . . . . . . . . .   4
4.  PASSporT "attest" Claim . . . . . . . . . . . . . . . . . . .   4
5.  PASSporT "origid" Claim . . . . . . . . . . . . . . . . . . .   4
6.  Example "shaken" PASSporT . . . . . . . . . . . . . . . . . .   5
7.  Using "shaken" in SIP . . . . . . . . . . . . . . . . . . . .   5
8.  Order of Claim Keys . . . . . . . . . . . . . . . . . . . . .   5
9.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
10. Privacy Considerations  . . . . . . . . . . . . . . . . . . .   6
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
  11.1.  JSON Web Token claims  . . . . . . . . . . . . . . . . .   7
  11.2.  PASSporT Types . . . . . . . . . . . . . . . . . . . . .   7
12. References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
  12.1.  Normative References . . . . . . . . . . . . . . . . . .   7
  12.2.  Informative References . . . . . . . . . . . . . . . . .   8
Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   9
Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9

1. Introduction ✨

okay so the SHAKEN [ATIS-1000074] spec sets up a framework that uses the Secure Telephone Identity Revisited (STIR) protocols. That includes PASSporT [RFC8225], SIP Authenticated Identity Management [RFC8224], and the STIR certificate framework [RFC8226]. Together they handle the cryptographic validation of an authorized originator of telephone calls using SIP πŸ“ž

Here's the tricky bit πŸ™ˆ The phone network today carries traffic from both VoIP and TDM/SS7 (Time Division Multiplexing / Signaling System 7). So there are lots of scenarios to account for, where a PASSporT signature might stand for either direct or indirect call origination.

SHAKEN [ATIS-1000074] defines levels of attestation for call origination, plus an origination identifier. That identifier helps tie a call to the exact point in the VoIP or TDM network it came from, so you can figure out things like which customer or class of service it belongs to πŸ“ This document specifies these values as claims that extend the base set of PASSporT claims.

2. Terminology πŸ’œ

The BCP 14 key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are how this document says what's required, and they only mean that when they show up in all capitals, exactly like that. Interpret them as described in BCP 14 [RFC2119] [RFC8174] πŸŽ€

Here are the extra terms used in this doc:

  • Verified association: Typically defined as an authenticated relationship between a customer and a device that initiated a call on behalf of that customer. For example, a subscriber account with a specific SIM card or set of SIP credentials πŸ“±
  • PASSporT: Defined in [RFC8225] as a JSON Web Token [RFC7519] built specifically for securing the identity of the initiator of a personal communication. This document defines a specific extension to PASSporT πŸ¦‹

3. Overview of "shaken" PASSporT Extension 🌈

The SHAKEN framework is built to use PASSporT [RFC8225] for asserting the caller's telephone identity. On top of the base PASSporT claims, a service provider gets two more claims to signal info beyond just the telephone identity πŸ’…

First up is the attestation claim. It helps bridge the transition in today's network, where some calls have no authentication and use non-SIP [RFC3261] signalling that doesn't play nicely with PASSporT or Secure Telephone Identity (STI) in general. There are three levels:

  • Full attestation: the service provider can fully attest to the calling identity.
  • Partial attestation: the service provider originated the telephone call but can't fully attest to the calling identity.
  • Gateway attestation: the lowest level. The service provider receives a call from a telephone gateway that doesn't support PASSporT or STI πŸ™ƒ

The second claim is a unique origination identifier. The service provider should use it to tell apart the different sources of telephone calls. That supports a traceback mechanism for enforcement and for identifying where illegitimate calls come from πŸ•΅οΈβ€β™€οΈ

The compact form of PASSporT isn't specified in this document, and it isn't specified for use in SHAKEN [ATIS-1000074] either. Not on the menu, bestie πŸ™…β€β™€οΈ

The next two sections define these new claims ✨

4. PASSporT "attest" Claim πŸ’–

This indicator does two jobs. It identifies the service provider vouching for the call, and it clearly shows what information that provider is attesting to 🫢

The "attest" claim can be one of three values: 'A', 'B', or 'C'. Those map to 'Full Attestation', 'Partial Attestation', and 'Gateway Attestation', respectively. For the definitions of those three levels, see [ATIS-1000074] πŸ“š

5. PASSporT "origid" Claim πŸ¦‹

The purpose of the "origid" claim is described in [ATIS-1000074]. Its value is a Universally Unique Identifier (UUID) as defined in [RFC4122]. For the privacy stuff around using this value, see Section 10 πŸ”

6. Example "shaken" PASSporT 🧚

Here's what a "shaken" PASSporT looks like in practice:

Protected Header
{
   "alg":"ES256",
   "typ":"passport",
   "ppt":"shaken",
   "x5u":"https://cert.example.org/passport.cer"
}
Payload
{
   "attest":"A"
   "dest":{"tn":["12155550131"]}
   "iat":"1443208345",
   "orig":{"tn":"12155550121"},
   "origid":"123e4567-e89b-12d3-a456-426655440000"
}

7. Using "shaken" in SIP πŸ“ž

The "shaken" PASSporT type, plus the "attest" and "origid" claims for SIP, get formally defined in [ATIS-1000074]. They use the SIP [RFC3261] Identity header field defined in [RFC8224] 🌸

8. Order of Claim Keys πŸ—οΈ

The order of the claim keys MUST follow the rules of Section 9 of [RFC8225]. The claim keys MUST appear in lexicographic order. So the claim keys in this document show up in the PASSporT Payload in this order:

  • attest
  • dest
  • iat
  • orig
  • origid

9. Security Considerations 🚨

⚠️ Serious security stuff ahead, bestie. Read this part carefully πŸ”

This document defines a new PASSporT [RFC8225] extension. Whatever security considerations apply to the PASSporT object itself are the same ones described in [RFC8225] πŸ›‘οΈ

[RFC8224] explains how to compare the values of the "dest", "orig", and "iat" claims against the fields in a SIP message that carries a PASSporT, as part of validating that request. The values of the new "attest" and "origid" claims added by this extension are not used in that validation step. They are not compared to fields in the SIP message. Instead, they just carry extra information from the signer to whoever consumes the PASSporT. That new information gets the same integrity protection and non-repudiation properties as the base claims in the PASSporT. Iconic πŸ’€πŸ”₯

10. Privacy Considerations πŸ”’βœ¨

Okay bestie, this part is lowkey important, so pay attention 🫢. As Section 26 of [RFC3261] explains, SIP messages already carry identifying info about the caller and the callee πŸ“ž. STIR adds crypto that shows the signing party is vouching for the info given about the callee, and that's discussed in the Privacy Considerations of [RFC8224] πŸ”.

SHAKEN [ATIS-1000074] also adds an "origid" value to the STIR PASSporT πŸŽ€. It's an opaque unique identifier for an element on the path of a SIP request. The originating telephone service provider generates it to show where in their network (like a gateway or a particular service element) a call got started πŸ›£οΈ. "origid" can help with forensic analysis when you're trying to spot and stop bad actors who spoof identities or make fraudulent calls πŸ•΅οΈβ€β™€οΈπŸ’€.

The opacity of the "origid" claim value is meant to minimize exposure of info about where calls came from πŸ™ˆ. That's why it is RECOMMENDED that implementations generate a unique "origid" value per call, in such a way that only the generator of the "origid" can determine when two "origid" values represent the same or different elements πŸ¦‹. If deployed systems instead use a common or related "origid" for service elements in their network, correlation becomes a thing πŸ‘€. A recipient of calls could then learn that a set of callers are using a particular service or coming through a common gateway, which is giving surveillance energy 😭.

It is expected that SHAKEN PASSporTs are shared only within an [RFC3324] trust domain and will be stripped before calls exit that trust domain 🧱. But even so, analytics on intermediary and terminating systems could still use this info to reveal stuff like geographic location and even device-level information, depending on how the "origid" is generated πŸ“. So yes, how you generate it matters a LOT πŸ’….


11. IANA Considerations πŸ“‹πŸŒΈ

11.1. JSON Web Token claims

IANA has added two new claims to the "JSON Web Token Claims" registry as defined in [RFC7519] 🧚.

Claim Name: attest
Claim Description: Attestation level as defined in SHAKEN framework
Change Controller: IESG
Specification Document(s): RFC 8588

Claim Name: origid
Claim Description: Originating Identifier as defined in SHAKEN
   framework
Change Controller: IESG
Specification Document(s): RFC 8588

11.2. PASSporT Types

IANA has added a new entry in the "Personal Assertion Token (PASSporT) Extensions" registry for the type "shaken", which is specified in this document πŸ‘‘.


12. References πŸ“šπŸ’œ

12.1. Normative References

[ATIS-1000074]
           ATIS/SIP Forum IP-NNI Task Group, "Signature-based
           Handling of Asserted information using toKENs (SHAKEN)",
           January 2017, <https://access.atis.org/apps/group_public/download.php/32237/ATIS-1000074.pdf>.

[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>.

[RFC4122]  Leach, P., Mealling, M., and R. Salz, "A Universally
           Unique IDentifier (UUID) URN Namespace", RFC 4122,
           DOI 10.17487/RFC4122, July 2005,
           <https://www.rfc-editor.org/info/rfc4122>.

[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>.

[RFC8226]  Peterson, J. and S. Turner, "Secure Telephone Identity
           Credentials: Certificates", RFC 8226,
           DOI 10.17487/RFC8226, February 2018,
           <https://www.rfc-editor.org/info/rfc8226>.

12.2. Informative References

[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>.

[RFC3324]  Watson, M., "Short Term Requirements for Network Asserted
           Identity", RFC 3324, DOI 10.17487/RFC3324, November 2002,
           <https://www.rfc-editor.org/info/rfc3324>.

Acknowledgements 🫢

The authors would like to thank those that helped review and contribute to this document, including specific contributions from Jon Peterson, Russ Housley, Robert Sparks, and Andrew Jurczak πŸ’–. The authors would also like to acknowledge the work of the ATIS/SIP Forum IP-NNI Task Force to develop the concepts behind this document 🌈.

Authors' Addresses πŸ’Œ

Chris Wendt
Comcast
One Comcast Center
Philadelphia, PA  19103
United States of America

Email: chris-ietf@chriswendt.net


Mary Barnes
iconectiv

Email: mary.ietf.barnes@gmail.com
πŸ“¦ where this page comes from