| rfc9888.original | rfc9888.txt | |||
|---|---|---|---|---|
| Network Working Group J. Peterson | Internet Engineering Task Force (IETF) J. Peterson | |||
| Internet-Draft TransUnion | Request for Comments: 9888 TransUnion | |||
| Intended status: Standards Track 7 July 2025 | Category: Standards Track October 2025 | |||
| Expires: 8 January 2026 | ISSN: 2070-1721 | |||
| Out-of-Band STIR for Service Providers | Out-of-Band Secure Telephone Identity Revisited (STIR) for Service | |||
| draft-ietf-stir-servprovider-oob-08 | Providers | |||
| Abstract | Abstract | |||
| The Secure Telephone Identity Revisited (STIR) framework defines | The Secure Telephone Identity Revisited (STIR) framework defines | |||
| means of carrying its Personal Assertion Tokens (PASSporTs) either | means of carrying its Personal Assertion Tokens (PASSporTs) either | |||
| in-band, within the headers of a Session Initiation Protocol (SIP) | in-band, within the headers of a Session Initiation Protocol (SIP) | |||
| request, or out-of-band, through a service that stores PASSporTs for | request, or out-of-band, through a service that stores PASSporTs for | |||
| retrieval by relying parties. This specification defines a way that | retrieval by relying parties. This specification defines a way that | |||
| the out-of-band conveyance of PASSporTs can be used to support large | the out-of-band conveyance of PASSporTs can be used to support large | |||
| service providers, for cases in which in-band STIR conveyance is not | service providers for cases in which in-band STIR conveyance is not | |||
| universally available. | universally available. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 8 January 2026. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9888. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
| 3. Service Provider Deployment Architecture for Out-of-Band | 3. Service Provider Deployment Architecture for Out-of-Band STIR | |||
| STIR . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Advertising a CPS | |||
| 4. Advertising a CPS . . . . . . . . . . . . . . . . . . . . . . 4 | 5. Submitting a PASSporT | |||
| 5. Submitting a PASSporT . . . . . . . . . . . . . . . . . . . . 5 | 6. PASSporT Retrieval | |||
| 6. PASSporT Retrieval . . . . . . . . . . . . . . . . . . . . . 6 | 7. Gateways | |||
| 7. Gateways . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 8. IANA Considerations | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 | 9. Privacy Considerations | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 10. Security Considerations | |||
| 10. Privacy Considerations . . . . . . . . . . . . . . . . . . . 8 | 11. References | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 11.1. Normative References | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 11.2. Informative References | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 9 | Acknowledgments | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 10 | Author's Address | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
| 1. Introduction | 1. Introduction | |||
| Secure Telephone Identity Revisited (STIR) [RFC8224] provides a | The Secure Telephone Identity Revisited (STIR) [RFC8224] framework | |||
| cryptographic assurance of the identity of calling parties in order | provides a cryptographic assurance of the identity of calling parties | |||
| to prevent impersonation, which is a key enabler of unwanted | in order to prevent impersonation, which is a key enabler of unwanted | |||
| robocalls, swatting, vishing, voicemail hacking, and similar attacks | robocalls, swatting, vishing, voicemail hacking, and similar attacks | |||
| (see [RFC7340]). The STIR out-of-band [RFC8816] framework enables | (see [RFC7340]). The STIR out-of-band [RFC8816] framework enables | |||
| the delivery of PASSporT [RFC8225] objects through a Call Placement | the delivery of PASSporT [RFC8225] objects through a Call Placement | |||
| Service (CPS), rather than carrying them within a signaling protocol | Service (CPS), rather than carrying them within a signaling protocol | |||
| such as SIP. Out-of-band conveyance is valuable when end-to-end SIP | such as SIP. Out-of-band conveyance is valuable when end-to-end SIP | |||
| delivery of calls is partly or entirely unavailable due to network | delivery of calls is partly or entirely unavailable due to network | |||
| border policies, calls routinely transiting a gateway to the Public | border policies, calls routinely transiting a gateway to the Public | |||
| Switched Telephone Network (PSTN), or similar circumstances. | Switched Telephone Network (PSTN), or similar circumstances. | |||
| While out-of-band STIR can be implemented as an open Internet | While out-of-band STIR can be implemented as an open Internet | |||
| service, it then requires complex security and privacy measures to | service, it requires complex security and privacy measures to enable | |||
| enable the CPS function without allowing the CPS to collect data | the CPS function without allowing the CPS to collect data about the | |||
| about the parties placing calls. This specification describes CPS | parties placing calls. This specification describes CPS | |||
| implementations that act specifically on behalf of service providers | implementations that act specifically on behalf of service providers | |||
| who will be processing the calls that STIR secures, and thus who will | who will be processing the calls that STIR secures and, thus, who | |||
| necessarily know the parties communicating, so an alternative | will necessarily know the parties communicating, so an alternative | |||
| security architecture becomes possible. These functions may be | security architecture becomes possible. These functions may be | |||
| crucial to the adoption of STIR in some environments, like legacy | crucial to the adoption of STIR in some environments, like legacy | |||
| non-IP telephone networks, where in-band transmission of PASSporTs | non-IP telephone networks, where in-band transmission of PASSporTs | |||
| may not be feasible. | may not be feasible. | |||
| Environments that might support this flavor of STIR out-of-band | Environments that might support this flavor of STIR out-of-band | |||
| include carriers, large enterprises, call centers, or any Internet | include carriers, large enterprises, call centers, or any Internet | |||
| service that aggregates on behalf of a large number of telephone | service that aggregates on behalf of a large number of telephone | |||
| endpoints. That last case may include PSTN gateway or interexchange | endpoints. That last case may include PSTN gateway or interexchange | |||
| or international transit providers. | or international transit providers. | |||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Service Provider Deployment Architecture for Out-of-Band STIR | 3. Service Provider Deployment Architecture for Out-of-Band STIR | |||
| The architecture in this specification assumes that every | The architecture in this specification assumes that every | |||
| participating service provider is associated with one or more | participating service provider is associated with one or more | |||
| designated CPS instances. A service provider's CPS serves as a place | designated CPS instances. A service provider's CPS serves as a place | |||
| where callers, or in some cases gateways, can deposit a PASSporT when | where callers or, in some cases, gateways can deposit a PASSporT when | |||
| attempting to place a call to a subscriber of the destination service | attempting to place a call to a subscriber of the destination service | |||
| provider; if the caller's domain supports in-band STIR, this can be | provider; if the caller's domain supports in-band STIR, this can be | |||
| done at the same time as an in-band STIR call is placed. The | done at the same time as an in-band STIR call is placed. The | |||
| terminating service provider could operate the CPS themselves, or a | terminating service provider could operate the CPS themselves, or a | |||
| third party could operate the CPS on the destination's behalf. This | third party could operate the CPS on the destination's behalf. This | |||
| model does not assume a monolithic CPS that acts on behalf of all | model does not assume a monolithic CPS that acts on behalf of all | |||
| service providers, nor does it prohibit multiple service providers | service providers, nor does it prohibit multiple service providers | |||
| from sharing a CPS provider. Moreover, a particular CPS can be a | from sharing a CPS provider. Moreover, a particular CPS can be a | |||
| logically distributed entity compromised of several geographically | logically distributed entity compromised of several geographically | |||
| distant entities that flood PASSporTs among themselves to support an | distant entities that flood PASSporTs among themselves to support an | |||
| anycast-like service. | anycast-like service. | |||
| The process of locating a destination CPS and submitting a PASSporT | The process of locating a destination CPS and submitting a PASSporT | |||
| naturally requires Internet connectivity to the CPS. If the CPS is | naturally requires Internet connectivity to the CPS. If the CPS is | |||
| deployed in the terminating service provider network, any such | deployed in the terminating service provider network, any such | |||
| network connectivity could instead be leveraged by a caller to | network connectivity could instead be leveraged by a caller to | |||
| initiate a SIP session, during which in-band STIR could be used | initiate a SIP session, during which in-band STIR could be used | |||
| normally. The applicability of this architecture is therefore to | normally. Therefore, the applicability of this architecture is to | |||
| those cases where, for whatever reason, SIP requests cannot reliably | those cases where, for whatever reason, SIP requests cannot reliably | |||
| convey PASSporTs end-to-end, but an HTTP transaction can reliably be | convey PASSporTs end-to-end, but an HTTP transaction can reliably be | |||
| sent to the CPS from an out-of-band authentication service (OOB-AS). | sent to the CPS from an out-of-band authentication service (OOB-AS). | |||
| It is hoped that as IP connectivity between telephone providers | It is hoped that as IP connectivity between telephone providers | |||
| increases, there will be less need for an out-of-band mechanism, but | increases, there will be less need for an out-of-band mechanism, but | |||
| it can serve as a fallback mechanism in cases where service providers | it can serve as a fallback mechanism in cases where service providers | |||
| cannot predict whether end-to-end delivery of SIP calls will occur. | cannot predict whether end-to-end delivery of SIP calls will occur. | |||
| 4. Advertising a CPS | 4. Advertising a CPS | |||
| If more than one CPS exists for a given deployment, there will need | If more than one CPS exists for a given deployment, there will need | |||
| to be some means of discovering CPSs, either administratively or | to be some means of discovering CPSs, either administratively or | |||
| programmatically. Many service providers have bilateral agreements | programmatically. Many service providers have bilateral agreements | |||
| to peer with one another, and in those environments, identifying | to peer with one another; in those environments, identifying their | |||
| their respective CPS's could be a simple matter of provisioning. A | respective CPSs could be a simple matter of provisioning. A | |||
| consortium of service providers could agree to choose from a list of | consortium of service providers could agree to choose from a list of | |||
| available CPS providers, say. But in more pluralist environments, | available CPS providers, say. But in more pluralist environments, | |||
| some mechanism is needed to discover the CPS associated with the | some mechanism is needed to discover the CPS associated with the | |||
| target of a call. | target of a call. | |||
| In order to allow the CPS chosen by a service provider to be | In order to allow the CPS chosen by a service provider to be | |||
| discovered securely, this specification defines a CPS advertisement. | discovered securely, this specification defines a CPS advertisement. | |||
| Effectively, a CPS advertisement is a document which contains the URL | Effectively, a CPS advertisement is a document that contains the URL | |||
| of a CPS, as well as any information needed to determine which | of a CPS as well as any information needed to determine which | |||
| PASSporTs should be submitted to that CPS (e.g., Service Provider | PASSporTs should be submitted to that CPS (e.g., Service Provider | |||
| Codes (SPCs) or telephone number ranges). An advertisement may be | Codes (SPCs) or telephone number ranges). An advertisement may be | |||
| signed with a STIR [RFC8226] credential, or another credential that | signed with a STIR [RFC8226] credential or another credential that is | |||
| is trusted by the participants in a given STIR environment. The | trusted by the participants in a given STIR environment. The | |||
| advantage to signing with STIR certificates is that they contain a | advantage to signing with STIR certificates is that they contain a | |||
| "TNAuthList" value indicating the telephone network resources that a | "TNAuthList" value indicating the telephone network resources that a | |||
| service provider controls. This information can be matched with a | service provider controls. This information can be matched with a | |||
| TNAuthList value in the CPS advertisement to determine whether the | TNAuthList value in the CPS advertisement to determine whether the | |||
| signer has the authority to advertise a particular CPS as the proper | signer has the authority to advertise a particular CPS as the proper | |||
| destination for PASSporTs. | destination for PASSporTs. | |||
| The format of a service provider CPS advertisement consists of a | The format of a service provider CPS advertisement consists of a | |||
| simple JSON object containing one or more pairs of TNAuthList values | simple JSON object containing one or more pairs of TNAuthList values | |||
| pointing to the URIs of CPSs, e.g. { | pointing to the URIs of CPSs, for example: | |||
| "0-1234":"https://cps.example.com" }. The format of this is a hyphen- | ||||
| separated concatenation of each [RFC8226] TNAuthList TNEntry value | { "0-1234":"https://cps.example.com" } | |||
| ("0" for SPC, "1" for telephone number range, "2" for individual | ||||
| telephone number) with the corresponding TNAuthList value. Note for | The format of this is a hyphen-separated concatenation of each | |||
| in case "1", telephone number ranges are expressed by a starting | [RFC8226] TNAuthList TNEntry value ("0" for SPC, "1" for telephone | |||
| telephone number followed by a count, and the count itself is here | number range, "2" for individual telephone number) with the | |||
| also by hyphen-separated from the TN (e.g., "1-15714341000-99"). An | corresponding TNAuthList value. Note for case "1", telephone number | |||
| advertisement can contain multiple such ranges by adding more pairs. | ranges are expressed by a starting telephone number followed by a | |||
| CPS URIs MUST be HTTPS URIs [RFC9110] (Section 4.2.2). These CPS | count, and the count itself; they are hyphen-separated from the TN | |||
| URIs SHOULD be publicly reachable, as service providers cannot | (e.g., "1-15714341000-99"). An advertisement can contain multiple | |||
| usually anticipate all of the potential callers that might want to | such ranges by adding more pairs. CPS URIs MUST be HTTPS URIs | |||
| connect with them, but in more constrained environments, they MAY be | ([RFC9110], Section 4.2.2). These CPS URIs SHOULD be publicly | |||
| only reachable over a closed network. | reachable as service providers cannot usually anticipate all of the | |||
| potential callers that might want to connect with them; however, in | ||||
| more constrained environments, they MAY be only reachable over a | ||||
| closed network. | ||||
| Advertising an SPC may be inappropriate in environments where an | Advertising an SPC may be inappropriate in environments where an | |||
| originating domain has no ready means to determine whether a given | originating domain has no ready means to determine whether a given | |||
| called telephone number falls within the scope of an SPC (such as a | called telephone number falls within the scope of an SPC (such as a | |||
| national routing database that maps telephone numbers to SPCs). In | national routing database that maps telephone numbers to SPCs). In | |||
| such environments, TN-based advertisements could enable discovery | such environments, TN-based advertisements could enable discovery | |||
| instead. Also, note that PASSporTs can be used to sign communication | instead. Also, note that PASSporTs can be used to sign communication | |||
| where the "orig" and/or "dest" are not telephone numbers as such, but | where the "orig" and/or "dest" are not telephone numbers as such, but | |||
| instead URI-based identifiers; these PASSporTs typically would not be | instead URI-based identifiers; typically, these PASSporTs would not | |||
| signed by an [RFC8226] certificate, and future specification would be | be signed by a certificate as described in [RFC8226] and any future | |||
| required to identify URI-based prefixes for CPS advertisements. | specification would be required to identify URI-based prefixes for | |||
| CPS advertisements. | ||||
| CPS advertisements could be made available through existing or new | CPS advertisements could be made available through existing or new | |||
| databases, potentially aggregated across multiple service providers | databases, potentially aggregated across multiple service providers | |||
| and distributed to call originators as necessary. They could be | and distributed to call originators as necessary. They could be | |||
| discovered during the call routing process, including through a DNS | discovered during the call routing process, including through a DNS | |||
| lookup. They could be shared through a distributed database among | lookup. They could be shared through a distributed database among | |||
| the participants in a multilateral peering arrangement. | the participants in a multilateral peering arrangement. | |||
| An alternative to CPS advertisements that may be usable in some | An alternative to CPS advertisements that may be usable in some | |||
| environments is adding a field to STIR [RFC8226] certificates | environments is adding a field to STIR certificates as described in | |||
| identifying the CPS URI issued to individual service providers. As | [RFC8226] identifying the CPS URI issued to individual service | |||
| these certificates are themselves signed by a CA and contain their | providers. As these certificates are themselves signed by a | |||
| own TNAuthList, the URI would be bound securely to the proper | Certificate Authority (CA) and contain their own TNAuthList, the URI | |||
| telephone network identifiers. As STIR assumes a community of | would be bound securely to the proper telephone network identifiers. | |||
| relying parties who trust these credentials, this method perhaps best | As STIR assumes a community of relying parties who trust these | |||
| mirrors the trust model required to allow a CPS to authorize PASSporT | credentials, this method perhaps best mirrors the trust model | |||
| submission and retrieval. | required to allow a CPS to authorize PASSporT submission and | |||
| retrieval. | ||||
| 5. Submitting a PASSporT | 5. Submitting a PASSporT | |||
| Submitting a PASSporT to a CPS as specified in the STIR out-of-band | Submitting a PASSporT to a CPS as specified in the STIR out-of-band | |||
| framework [RFC8816] requires security measures that are intended to | framework [RFC8816] requires security measures that are intended to | |||
| prevent the CPS from learning the identity of the caller (or callee) | prevent the CPS from learning the identity of the caller (or callee) | |||
| to the degree possible. In this service provider case, however, the | to the degree possible. However, in this service provider case, the | |||
| CPS is operated by the service provider of the callee (or an entity | CPS is operated by the service provider of the callee (or an entity | |||
| operating on their behalf), and as such the information that appears | operating on their behalf) and, as such, the information that appears | |||
| in the PASSporT is redundant with call signaling that the terminating | in the PASSporT is redundant with call signaling that the terminating | |||
| party will receive anyway (see Section 11 for potential data | party will receive anyway (see Section 10 for potential data | |||
| minimization concerns). Therefore, the service provider out-of-band | minimization concerns). Therefore, the service provider out-of-band | |||
| framework does not attempt to conceal the identity of the originating | framework does not attempt to conceal the identity of the originating | |||
| or terminating party from the CPS. | or terminating party from the CPS. | |||
| An out-of-band authentication service (OOB-AS) forms a secure | An OOB-AS forms a secure connection with the target CPS. This may | |||
| connection with the target CPS. This may happen at the time a call | happen at the time a call is being placed or it may be a persistent | |||
| is being placed, or it may be a persistent connection if there is a | connection if there is a significant volume of traffic sent over this | |||
| significant volume of traffic sent over this interface. The OOB-AS | interface. The OOB-AS SHOULD authenticate itself to the CPS via | |||
| SHOULD authenticate itself to the CPS via mutual TLS (see [RFC9325]) | mutual TLS (see [RFC9325]) using its STIR credential [RFC8226], the | |||
| using its STIR credential [RFC8226], the same one it would use to | same one it would use to sign calls; this helps mitigate the risk of | |||
| sign calls; this helps mitigate the risk of flooding that more open | flooding that more-open OOB implementations may face. Furthermore, | |||
| OOB implementations may face. Furthermore, the use of mutual TLS | the use of mutual TLS prevents attackers from replaying captured | |||
| prevents attackers from replaying captured PASSporTs to the CPS. A | PASSporTs to the CPS. A CPS makes its own policy decision as to | |||
| CPS makes its own policy decision as to whether it will accept calls | whether it will accept calls from a particular OOB-AS, and at what | |||
| from a particular OOB-AS, and at what volumes. | volumes. | |||
| A CPS can use this mechanism to authorize service providers who | A CPS can use this mechanism to authorize service providers who | |||
| already hold STIR credentials to submit PASSporTs to a CPS, but | already hold STIR credentials to submit PASSporTs to a CPS, but | |||
| alternative mechanisms would be required for any entities that do not | alternative mechanisms would be required for any entities that do not | |||
| hold a STIR credential, including gateway or transit providers who | hold a STIR credential, including gateway or transit providers who | |||
| want to submit PASSporTs. See Section 7 below for more on their | want to submit PASSporTs. See Section 7 for more on their behavior. | |||
| behavior. | ||||
| Service provider out-of-band PASSporTs do not need to be encrypted | Service provider out-of-band PASSporTs do not need to be encrypted | |||
| for storage at the CPS, although the use of transport-layer security | for storage at the CPS, although the use of TLS to prevent | |||
| to prevent eavesdropping on the connection between the CPS and OOB- | eavesdropping on the connection between the CPS and OOB-ASs is | |||
| ASs is REQUIRED. PASSporTs will typically be submitted to the CPS at | REQUIRED. PASSporTs will typically be submitted to the CPS at the | |||
| the time they are created by an AS; if the PASSporT is also being | time they are created by an AS; if the PASSporT is also being used | |||
| used for in-band transit within a SIP request, the PASSporT can be | for in-band transit within a SIP request, the PASSporT can be | |||
| submitted to the CPS before or after the SIP request is sent, at the | submitted to the CPS before or after the SIP request is sent, at the | |||
| discretion of the originating domain. An OOB-AS MUST implement a | discretion of the originating domain. An OOB-AS MUST implement a | |||
| REST interface to submit PASSporTs to the CPS as described in | Representational State Transfer (REST) interface to submit PASSporTs | |||
| [RFC8816] Section 9. PASSporTs persist at the CPS for as long as is | to the CPS as described in [RFC8816], Section 9. PASSporTs persist | |||
| required for them to be retrieved (see the next section), but in any | at the CPS for as long as is required for them to be retrieved (see | |||
| event for no longer than the freshness interval of the PASSporT | Section 6) but, in any event, for no longer than the freshness | |||
| itself (a maximum of sixty seconds). | interval of the PASSporT itself (a maximum of sixty seconds). | |||
| 6. PASSporT Retrieval | 6. PASSporT Retrieval | |||
| The STIR out-of-band framework [RFC8816] proposes two means by which | The STIR out-of-band framework [RFC8816] proposes two means by which | |||
| called parties can acquire PASSporTs out-of-band: through a retrieval | called parties can acquire PASSporTs out-of-band: through a retrieval | |||
| interface, or a subscription interface. In the service provider | interface or a subscription interface. In the service provider | |||
| context, where many calls to or from the same number may pass through | context, where many calls to or from the same number may pass through | |||
| a CPS simultaneously, an out-of-band capable verification service | a CPS simultaneously, an out-of-band-capable verification service | |||
| (OOB-VS) may therefore operate in one of two modes: it can either | (OOB-VS) may therefore operate in one of two modes: it can either | |||
| pull PASSporTs from the CPS after calls arrive or receive push | pull PASSporTs from the CPS after calls arrive or receive push | |||
| notifications from the CPS for incoming calls. | notifications from the CPS for incoming calls. | |||
| CPS implementations MUST support pulling of the PASSpoRTs via the | CPS implementations MUST support pulling of the PASSporTs via the | |||
| REST flow described in [RFC8816] Section 9. In the pull model, a | REST flow described in [RFC8816], Section 9. In the pull model, a | |||
| terminating service provider polls the CPS via its OOB-VS after | terminating service provider polls the CPS via its OOB-VS after | |||
| having received a call for which the call signaling does not itself | having received a call for which the call signaling does not itself | |||
| carry a PASSporT. Exactly how a CPS determines which PASSporTs an | carry a PASSporT. Exactly how a CPS determines which PASSporTs an | |||
| OOB-VS is eligible to receive over this interface is a matter of | OOB-VS is eligible to receive over this interface is a matter of | |||
| local policy. If a CPS serves only one service provider, then all | local policy. If a CPS serves only one service provider, then all | |||
| PASSporTs submitted to the CPS are made available to the OOB-VS of | PASSporTs submitted to the CPS are made available to the OOB-VS of | |||
| that provider; indeed, the CPS and OOB-VS may be colocated or | that provider; indeed, the CPS and OOB-VS may be colocated or | |||
| effectively operated as a consolidated system. In a multi-provider | effectively operated as a consolidated system. In a multi-provider | |||
| environment, the STIR credential of the terminating domain can be | environment, the STIR credential of the terminating domain can be | |||
| used by the CPS to determine the range of TNAuthLists for which an | used by the CPS to determine the range of TNAuthLists for which an | |||
| OOB-VS is entitled to receive PASSporTs; this may be through a | OOB-VS is entitled to receive PASSporTs; this may be through a | |||
| mechanism like mutual TLS, or through using the STIR credential to | mechanism like mutual TLS or through the use of the STIR credential | |||
| sign a token that is submitted to the CPS by the retrieving OOB-VS. | to sign a token that is submitted to the CPS by the retrieving OOB- | |||
| Note that a multi-provider CPS will need to inspect the "dest" | VS. Note that a multi-provider CPS will need to inspect the "dest" | |||
| element of a PASSporT to determine which OOB-VS should receive the | element of a PASSporT to determine which OOB-VS should receive the | |||
| PASSporT. | PASSporT. | |||
| In a push model, an OOB-VS could for example subscribe to a range of | In a push model, an OOB-VS could, for example, subscribe to a range | |||
| telephone numbers or SPCs, which will be directed to that OOB-VS by | of telephone numbers or SPCs, which will be directed to that OOB-VS | |||
| the CPS (provided the OOB-VS is authorized to receive them by the | by the CPS (provided the OOB-VS is authorized to receive them by the | |||
| CPS). PASSporT might be sent to the OOB-VS either before or after | CPS). PASSporT might be sent to the OOB-VS either before or after | |||
| unsigned call signaling has been received by the terminating domain. | unsigned call signaling has been received by the terminating domain. | |||
| In either model, the terminating side may need to delay rendering a | In either model, the terminating side may need to delay rendering a | |||
| call verification indicator when alerting, in order to await the | call verification indicator when alerting, in order to await the | |||
| potential arrival of a PASSporT at the OOB-VS. The exact timing of | potential arrival of a PASSporT at the OOB-VS. The exact timing of | |||
| this, and its interaction with the substitution attack described in | this, and its interaction with the substitution attack described in | |||
| [RFC8816] Section 7.4, is left for future work. | [RFC8816], Section 7.4, is left for future work. | |||
| 7. Gateways | 7. Gateways | |||
| In some deployment architectures, gateways might perform a function | In some deployment architectures, gateways might perform a function | |||
| that interfaces with a CPS for the retrieval or storage of PASSporTs, | that interfaces with a CPS for the retrieval or storage of PASSporTs, | |||
| especially in cases when in-band STIR service providers need to | especially in cases when in-band STIR service providers need to | |||
| exchange secure calls with providers that can only be reached by STIR | exchange secure calls with providers that can only be reached by STIR | |||
| out-of-band. For example, a closed network of in-band STIR providers | out-of-band. For example, a closed network of in-band STIR providers | |||
| may send SIP INVITEs to a gateway in front of a traditional PSTN | may send SIP INVITEs to a gateway in front of a traditional PSTN | |||
| tandem that services a set of legacy service providers. In that | tandem that services a set of legacy service providers. In that | |||
| environment, a gateway might extract a PASSporT from an in-band SIP | environment, a gateway might extract a PASSporT from an in-band SIP | |||
| INVITE and store it in a CPS that was established to handle requests | INVITE and store it in a CPS that was established to handle requests | |||
| for one or more legacy providers, who in turn consume those PASSporTs | for one or more legacy providers, who, in turn, consume those | |||
| through an OOB-VS to assist in robocall mitigation and similar | PASSporTs through an OOB-VS to assist in robocall mitigation and | |||
| functions. | similar functions. | |||
| The simplest way to implement a gateway performing this sort of | The simplest way to implement a gateway performing this sort of | |||
| function for a service provider CPS system is to issue credentials to | function for a service provider CPS system is to issue credentials to | |||
| the gateway that allow it to act on behalf of the legacy service | the gateway that allow it to act on behalf of the legacy service | |||
| providers it supports: this would allow it to both add PASSporTs to | providers it supports: this would allow it to both add PASSporTs to | |||
| the CPS acting on behalf of the legacy providers and also to create | the CPS acting on behalf of the legacy providers and also to create | |||
| PASSporTs for in-band STIR conveyance from the legacy-providers to | PASSporTs for in-band STIR conveyance from the legacy-providers to | |||
| terminating service providers in the closed STIR network. For | terminating service providers in the closed STIR network. For | |||
| example, a service provider could issue a delegate certificate | example, a service provider could issue a delegate certificate | |||
| [RFC9060] for this purpose. | [RFC9060] for this purpose. | |||
| 8. Acknowledgments | 8. IANA Considerations | |||
| We would like to thank Alex Fenichel for contributing to this | ||||
| specification. | ||||
| 9. IANA Considerations | ||||
| This memo includes no request to IANA. | This document has no IANA actions. | |||
| 10. Privacy Considerations | 9. Privacy Considerations | |||
| The analysis of out-of-band STIR in the Privacy Considerations of | The analysis of out-of-band STIR in the "Privacy Considerations" | |||
| [RFC8816] differs considerably from this document. Per Section 1, | section of [RFC8816] differs considerably from this document. Per | |||
| this specification was motivated in part by choosing a different | Section 1, this specification was motivated in part by choosing a | |||
| privacy architecture than [RFC8816], one in which the CPS is operated | different privacy architecture than [RFC8816], one in which the CPS | |||
| by a service provider who is a party to the call itself, and thus | is operated by a service provider who is a party to the call itself | |||
| would independently have access to the call metadata captured in a | and, thus, would independently have access to the call metadata | |||
| PASSporT. | captured in a PASSporT. | |||
| That said, in cases where a third-party service operates the | That said, in cases where a third-party service operates the | |||
| verification service function on behalf of a carrier, that third | verification service function on behalf of a carrier, that third- | |||
| party service would indeed be privy to this metadata. That said, it | party service would indeed be privy to this metadata. It is a fairly | |||
| is a fairly common situation for third party services to receive this | common situation for third-party services to receive this sort of | |||
| sort of metadata to perform tasks related to billing, security, | metadata to perform tasks related to billing, security, number | |||
| number translation, and so on, and existing data governance | translation, and so on; existing data governance agreements could be | |||
| agreements could be readily applied to the out-of-band STIR use case. | readily applied to the out-of-band STIR use case. | |||
| Finally, note that PASSporTs are extensible tokens, and it is | Finally, note that PASSporTs are extensible tokens, and it is | |||
| conceivable that they might contain data that is not otherwise | conceivable that they might contain data that is not otherwise | |||
| carried in SIP signaling or that would ordinarily be considered a | carried in SIP signaling or that would ordinarily be considered a | |||
| component of call metadata. Any such extensions might have specific | component of call metadata. Any such extensions might have specific | |||
| interactions with the privacy of both in-band and out-of-band STIR | interactions with the privacy of both in-band and out-of-band STIR | |||
| which their specifications would need to elaborate. | that their specifications would need to elaborate. | |||
| 11. Security Considerations | 10. Security Considerations | |||
| The Security Considerations of [RFC8816] apply to this documen, | The security considerations of [RFC8816] apply to this document, | |||
| including concerns about potential denial-of-service vectors and | including concerns about potential denial-of-service vectors and | |||
| traffic analysis. However, that specification's model focused a | traffic analysis. However, that specification's model focused a | |||
| great deal on the privacy implications of uploading PASSporTs to a | great deal on the privacy implications of uploading PASSporTs to a | |||
| third-party web service. This draft mitigates those concerns by | third-party web service. This document mitigates those concerns by | |||
| making the CPS one of the parties to call setup (or an entity | making the CPS one of the parties to call setup (or an entity | |||
| contractually acting on their behalf). That said, any architecture | contractually acting on their behalf). That said, any architecture | |||
| in which PASSporTs are shared with a federated or centralized CPS | in which PASSporTs are shared with a federated or centralized CPS | |||
| raises potential concerns about data collection [RFC7258]. Moreover, | raises potential concerns about data collection [RFC7258]. Moreover, | |||
| any additional information included in a PASSporT which is not | in a PASSporT, any additional information that is not strictly | |||
| strictly redundant with the contents of a SIP request increases data | redundant with the contents of a SIP request increases data | |||
| collection concerns; while baseline [RFC8225] PASSporTs only contain | collection concerns; baseline [RFC8225] PASSporTs only contain | |||
| information otherwise in the SIP request. Existing and future | information redundant with the SIP request. Existing and future | |||
| extensions (e.g. [RFC8588] "origid" field) might leak further | extensions (e.g., the "origid" field described in [RFC8588]) might | |||
| information. | leak further information. | |||
| Unlike [RFC8816], this document proposes the use of STIR certificates | Unlike [RFC8816], this document proposes the use of STIR certificates | |||
| to authenticate transactions with a CPS as well as signatures for CPS | to authenticate transactions with a CPS as well as signatures for CPS | |||
| advertisements. This presumes an environment where STIR certificates | advertisements. This presumes an environment where STIR certificates | |||
| are issued by trust anchors which are already trusted by the CPS, | are issued by trust anchors that are already trusted by the CPS, | |||
| potentially to gateways and similar services. Common STIR | potentially to gateways and similar services. Common STIR | |||
| deployments use Service Provider Codes (SPCs) instead of telephone | deployments use SPCs instead of telephone number ranges to identify | |||
| number ranges to identify service providers today; determining | service providers today; determining whether a given SPC entitles a | |||
| whether a given SPC entitles a service provider to access PASSporTs | service provider to access PASSporTs for a given telephone number is | |||
| for a given telephone number is not trivial, but is a necessary | not trivial, but is a necessary component of this CPS architecture. | |||
| component of this CPS architecture. Otherwise, if anyone with a STIR | Otherwise, if anyone with a STIR certificate were able to publish or | |||
| certificate were able to publish or access PASSporTs for any | access PASSporTs for any telephone number, this could lead to an | |||
| telephone number, this could lead to an undesirable environment where | undesirable environment where effectively anyone with a STIR | |||
| effectively anyone with a STIR certificate could acquire PASSporTs | certificate could acquire PASSporTs for calls in progress to any | |||
| for calls in progress to any service provider. | service provider. | |||
| 12. References | 11. References | |||
| 12.1. Normative References | 11.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| skipping to change at page 10, line 21 ¶ | skipping to change at line 435 ¶ | |||
| Ed., "HTTP Semantics", STD 97, RFC 9110, | Ed., "HTTP Semantics", STD 97, RFC 9110, | |||
| DOI 10.17487/RFC9110, June 2022, | DOI 10.17487/RFC9110, June 2022, | |||
| <https://www.rfc-editor.org/info/rfc9110>. | <https://www.rfc-editor.org/info/rfc9110>. | |||
| [RFC9325] Sheffer, Y., Saint-Andre, P., and T. Fossati, | [RFC9325] Sheffer, Y., Saint-Andre, P., and T. Fossati, | |||
| "Recommendations for Secure Use of Transport Layer | "Recommendations for Secure Use of Transport Layer | |||
| Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
| (DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November | (DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November | |||
| 2022, <https://www.rfc-editor.org/info/rfc9325>. | 2022, <https://www.rfc-editor.org/info/rfc9325>. | |||
| 12.2. Informative References | 11.2. Informative References | |||
| [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | |||
| Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | |||
| 2014, <https://www.rfc-editor.org/info/rfc7258>. | 2014, <https://www.rfc-editor.org/info/rfc7258>. | |||
| [RFC7340] Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure | [RFC7340] Peterson, J., Schulzrinne, H., and H. Tschofenig, "Secure | |||
| Telephone Identity Problem Statement and Requirements", | Telephone Identity Problem Statement and Requirements", | |||
| RFC 7340, DOI 10.17487/RFC7340, September 2014, | RFC 7340, DOI 10.17487/RFC7340, September 2014, | |||
| <https://www.rfc-editor.org/info/rfc7340>. | <https://www.rfc-editor.org/info/rfc7340>. | |||
| [RFC8588] Wendt, C. and M. Barnes, "Personal Assertion Token | [RFC8588] Wendt, C. and M. Barnes, "Personal Assertion Token | |||
| (PaSSporT) Extension for Signature-based Handling of | (PaSSporT) Extension for Signature-based Handling of | |||
| Asserted information using toKENs (SHAKEN)", RFC 8588, | Asserted information using toKENs (SHAKEN)", RFC 8588, | |||
| DOI 10.17487/RFC8588, May 2019, | DOI 10.17487/RFC8588, May 2019, | |||
| <https://www.rfc-editor.org/info/rfc8588>. | <https://www.rfc-editor.org/info/rfc8588>. | |||
| [RFC9060] Peterson, J., "Secure Telephone Identity Revisited (STIR) | [RFC9060] Peterson, J., "Secure Telephone Identity Revisited (STIR) | |||
| Certificate Delegation", RFC 9060, DOI 10.17487/RFC9060, | Certificate Delegation", RFC 9060, DOI 10.17487/RFC9060, | |||
| September 2021, <https://www.rfc-editor.org/info/rfc9060>. | September 2021, <https://www.rfc-editor.org/info/rfc9060>. | |||
| Acknowledgments | ||||
| Thank you to Alex Fenichel for contributing to this specification. | ||||
| Author's Address | Author's Address | |||
| Jon Peterson | Jon Peterson | |||
| TransUnion | TransUnion | |||
| Email: jon.peterson@transunion.com | Email: jon.peterson@transunion.com | |||
| End of changes. 50 change blocks. | ||||
| 169 lines changed or deleted | 169 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||