diff options
Diffstat (limited to 'doc/rfc/rfc8816.txt')
| -rw-r--r-- | doc/rfc/rfc8816.txt | 1328 | 
1 files changed, 1328 insertions, 0 deletions
| diff --git a/doc/rfc/rfc8816.txt b/doc/rfc/rfc8816.txt new file mode 100644 index 0000000..3675487 --- /dev/null +++ b/doc/rfc/rfc8816.txt @@ -0,0 +1,1328 @@ + + + + +Internet Engineering Task Force (IETF)                       E. Rescorla +Request for Comments: 8816                                       Mozilla +Category: Informational                                      J. Peterson +ISSN: 2070-1721                                                  Neustar +                                                           February 2021 + + +Secure Telephone Identity Revisited (STIR) Out-of-Band Architecture and +                               Use Cases + +Abstract + +   The Personal Assertion Token (PASSporT) format defines a token that +   can be carried by signaling protocols, including SIP, to +   cryptographically attest the identity of callers.  However, not all +   telephone calls use Internet signaling protocols, and some calls use +   them for only part of their signaling path, while some cannot +   reliably deliver SIP header fields end-to-end.  This document +   describes use cases that require the delivery of PASSporT objects +   outside of the signaling path, and defines architectures and +   semantics to provide this functionality. + +Status of This Memo + +   This document is not an Internet Standards Track specification; it is +   published for informational purposes. + +   This document is a product of the Internet Engineering Task Force +   (IETF).  It represents the consensus of the IETF community.  It has +   received public review and has been approved for publication by the +   Internet Engineering Steering Group (IESG).  Not all documents +   approved by the IESG are candidates for any level of Internet +   Standard; see Section 2 of RFC 7841. + +   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/rfc8816. + +Copyright Notice + +   Copyright (c) 2021 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, as 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 +   2.  Terminology +   3.  Operating Environments +   4.  Dataflows +   5.  Use Cases +     5.1.  Case 1: VoIP to PSTN Call +     5.2.  Case 2: Two Smart PSTN Endpoints +     5.3.  Case 3: PSTN to VoIP Call +     5.4.  Case 4: Gateway Out-of-Band +     5.5.  Case 5: Enterprise Call Center +   6.  Storing and Retrieving PASSporTs +     6.1.  Storage +     6.2.  Retrieval +   7.  Solution Architecture +     7.1.  Credentials and Phone Numbers +     7.2.  Call Flow +     7.3.  Security Analysis +     7.4.  Substitution Attacks +     7.5.  Rate Control for CPS Storage +   8.  Authentication and Verification Service Behavior for +           Out-of-Band +     8.1.  Authentication Service (AS) +     8.2.  Verification Service (VS) +     8.3.  Gateway Placement Services +   9.  Example HTTPS Interface to the CPS +   10. CPS Discovery +   11. Encryption Key Lookup +   12. IANA Considerations +   13. Privacy Considerations +   14. Security Considerations +   15. Informative References +   Acknowledgments +   Authors' Addresses + +1.  Introduction + +   The STIR problem statement [RFC7340] describes widespread problems +   enabled by impersonation in the telephone network, including illegal +   robocalling, voicemail hacking, and swatting.  As telephone services +   are increasingly migrating onto the Internet, and using Voice over IP +   (VoIP) protocols such as SIP [RFC3261], it is necessary for these +   protocols to support stronger identity mechanisms to prevent +   impersonation.  For example, [RFC8224] defines a SIP Identity header +   field capable of carrying PASSporT objects [RFC8225] in SIP as a +   means to cryptographically attest that the originator of a telephone +   call is authorized to use the calling party number (or, for native +   SIP cases, SIP URI) associated with the originator of the call. + +   Not all telephone calls use SIP today, however, and even those that +   do use SIP do not always carry SIP signaling end-to-end.  Calls from +   telephone numbers still routinely traverse the Public Switched +   Telephone Network (PSTN) at some point.  Broadly, calls fall into one +   of three categories: + +   1.  One or both of the endpoints is actually a PSTN endpoint. + +   2.  Both of the endpoints are non-PSTN (SIP, Jingle, etc.) but the +       call transits the PSTN at some point. + +   3.  Non-PSTN calls that do not transit the PSTN at all (such as +       native SIP end-to-end calls). + +   The first two categories represent the majority of telephone calls +   associated with problems like illegal robocalling: many robocalls +   today originate on the Internet but terminate at PSTN endpoints. +   However, the core network elements that operate the PSTN are legacy +   devices that are unlikely to be upgradable at this point to support +   an in-band authentication system.  As such, those devices largely +   cannot be modified to pass signatures originating on the Internet -- +   or indeed any in-band signaling data -- intact.  Even if fields for +   tunneling arbitrary data can be found in traditional PSTN signaling, +   in some cases legacy elements would strip the signatures from those +   fields; in others, they might damage them to the point where they +   cannot be verified.  For those first two categories above, any in- +   band authentication scheme does not seem practical in the current +   environment. + +   While the core network of the PSTN remains fixed, the endpoints of +   the telephone network are becoming increasingly programmable and +   sophisticated.  Landline "plain old telephone service" deployments, +   especially in the developed world, are shrinking, and increasingly +   being replaced by three classes of intelligent devices: smart phones, +   IP Private Branch Exchanges (PBXs), and terminal adapters.  All three +   are general purpose computers, and typically all three have Internet +   access as well as access to the PSTN; they may be used for +   residential, mobile, or enterprise telephone services.  Additionally, +   various kinds of gateways increasingly front for deployments of +   legacy PBX and PSTN switches.  All of this provides a potential +   avenue for building an authentication system that implements stronger +   identity while leaving PSTN systems intact. + +   This capability also provides an ideal transitional technology while +   in-band STIR adoption is ramping up.  It permits early adopters to +   use the technology even when intervening network elements are not yet +   STIR-aware, and through various kinds of gateways, it may allow +   providers with a significant PSTN investment to still secure their +   calls with STIR. + +   The techniques described in this document therefore build on the +   PASSporT [RFC8225] mechanism and the work of [RFC8224] to describe a +   way that a PASSporT object created in the originating network of a +   call can reach the terminating network even when it cannot be carried +   end-to-end in-band in the call signaling.  This relies on a new +   service defined in this document called a Call Placement Service +   (CPS) that permits the PASSporT object to be stored during call +   processing and retrieved for verification purposes. + +   Potential implementors should note that this document merely defines +   the operating environments in which this out-of-band STIR mechanism +   is intended to operate.  It provides use cases, gives a broad +   description of the components, and a potential solution architecture. +   Various environments may have their own security requirements: a +   public deployment of out-of-band STIR faces far greater challenges +   than a constrained intra-network deployment.  To flesh out the +   storage and retrieval of PASSporTs in the CPS within this context, +   this document includes a strawman protocol suitable for that purpose. +   Deploying this framework in any given environment would require +   additional specification outside the scope of this document. + +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. + +3.  Operating Environments + +   This section describes the environments in which the proposed out-of- +   band STIR mechanism is intended to operate.  In the simplest setting, +   Alice calls Bob, and her call is routed through some set of gateways +   and/or the PSTN that do not support end-to-end delivery of STIR. +   Both Alice and Bob have smart devices that can access the Internet +   (perhaps enterprise devices, or even end-user ones), but they do not +   have a clear telephone signaling connection between them: Alice +   cannot inject any data into signaling that Bob can read, with the +   exception of the asserted destination and origination E.164 numbers. +   The calling party number might originate from her own device or from +   the network.  These numbers are effectively the only data that can be +   used for coordination between the endpoints. + +                               +---------+ +                              /           \ +                          +---             +---+ +     +----------+        /                      \        +----------+ +     |          |       |        Gateways        |       |          | +     |   Alice  |<----->|         and/or         |<----->|    Bob   | +     | (caller) |       |          PSTN          |       | (callee) | +     +----------+        \                      /        +----------+ +                          +---             +---+ +                              \           / +                               +---------+ + +   In a more complicated setting, Alice and/or Bob may not have a smart +   or programmable device, but instead just a traditional telephone. +   However, one or both of them are behind a STIR-aware gateway that can +   participate in out-of-band coordination, as shown below: + +                              +---------+ +                             /           \ +                         +---             +---+ +   +----------+  +--+   /                      \   +--+  +----------+ +   |          |  |  |  |        Gateways        |  |  |  |          | +   |   Alice  |<-|GW|->|         and/or         |<-|GW|->|    Bob   | +   | (caller) |  |  |  |          PSTN          |  |  |  | (callee) | +   +----------+  +--+   \                      /   +--+  +----------+ +                         +---             +---+ +                             \           / +                              +---------+ + +   In such a case, Alice might have an analog (e.g., PSTN) connection to +   her gateway or switch that is responsible for her identity. +   Similarly, the gateway would verify Alice's identity, generate the +   right calling party number information, and provide that number to +   Bob using ordinary Plain Old Telephone Service (POTS) mechanisms. + +4.  Dataflows + +   Because in these operating environments, endpoints cannot pass +   cryptographic information to one another directly through signaling, +   any solution must involve some rendezvous mechanism to allow +   endpoints to communicate.  We call this rendezvous service a Call +   Placement Service (CPS), a service where a record of call placement, +   in this case a PASSporT, can be stored for future retrieval.  In +   principle, this service could communicate any information, but +   minimally we expect it to include a full-form PASSporT that attests +   the caller, callee, and the time of the call.  The callee can use the +   existence of a PASSporT for a given incoming call as rough validation +   of the asserted origin of that call.  (See Section 11 for limitations +   of this design.) + +   This architecture does not mandate that any particular sort of entity +   operate a CPS or mandate any means to discover a CPS.  A CPS could be +   run internally within a network or made publicly available.  One or +   more CPSes could be run by a carrier, as repositories for PASSporTs +   for calls sent to its customers, or a CPS could be built into an +   enterprise PBX or even a smartphone.  To the degree possible, it is +   specified here generically as an idea that may have applicability to +   a variety of STIR deployments. + +   There are roughly two plausible dataflow architectures for the CPS: + +   1.  The callee registers with the CPS.  When the caller wishes to +       place a call to the callee, it sends the PASSporT to the CPS, +       which immediately forwards it to the callee. + +   2.  The caller stores the PASSporT with the CPS at the time of call +       placement.  When the callee receives the call, it contacts the +       CPS and retrieves the PASSporT. + +   While the first architecture is roughly isomorphic to current VoIP +   protocols, it shares their drawbacks.  Specifically, the callee must +   maintain a full-time connection to the CPS to serve as a notification +   channel.  This comes with the usual networking costs to the callee +   and is especially problematic for mobile endpoints.  Indeed, if the +   endpoints had the capabilities to implement such an architecture, +   they could surely just use SIP or some other protocol to set up a +   secure session; even if the media were going through the traditional +   PSTN, a "shadow" SIP session could convey the PASSporT.  Thus, we +   focus on the second architecture in which the PSTN incoming call +   serves as the notification channel, and the callee can then contact +   the CPS to retrieve the PASSporT.  In specialized environments, for +   example, a call center that receives a large volume of incoming calls +   that originated in the PSTN, the notification channel approach might +   be viable. + +5.  Use Cases + +   The following are the motivating use cases for this mechanism.  Bear +   in mind that, just as in [RFC8224], there may be multiple Identity +   header fields in a single SIP INVITE, so there may be multiple +   PASSporTs in this out-of-band mechanism associated with a single +   call.  For example, a SIP user agent might create a PASSporT for a +   call with an end-user credential, and as the call exits the +   originating administrative domain, the network authentication service +   might create its own PASSporT for the same call.  As such, these use +   cases may overlap in the processing of a single call. + +5.1.  Case 1: VoIP to PSTN Call + +   A call originates in a SIP environment in a STIR-aware administrative +   domain.  The local authentication service for that administrative +   domain creates a PASSporT that is carried in band in the call per +   [RFC8224].  The call is routed out of the originating administrative +   domain and reaches a gateway to the PSTN.  Eventually, the call will +   terminate on a mobile smartphone that supports this out-of-band +   mechanism. + +   In this use case, the originating authentication service can store +   the PASSporT with the appropriate CPS (per the practices of +   Section 10) for the target telephone number as a fallback in case SIP +   signaling will not reach end-to-end.  When the destination mobile +   smartphone receives the call over the PSTN, it consults the CPS and +   discovers a PASSporT from the originating telephone number waiting +   for it.  It uses this PASSporT to verify the calling party number. + +5.2.  Case 2: Two Smart PSTN Endpoints + +   A call originates with an enterprise PBX that has both Internet +   access and a built-in gateway to the PSTN, which communicates through +   traditional telephone signaling protocols.  The PBX immediately +   routes the call to the PSTN, but before it does, it provisions a +   PASSporT on the CPS associated with the target telephone number. + +   After normal PSTN routing, the call lands on a smart mobile handset +   that supports the STIR out-of-band mechanism.  It queries the +   appropriate CPS over the Internet to determine if a call has been +   placed to it by a STIR-aware device.  It finds the PASSporT +   provisioned by the enterprise PBX and uses it to verify the calling +   party number. + +5.3.  Case 3: PSTN to VoIP Call + +   A call originates with an enterprise PBX that has both Internet +   access and a built-in gateway to the PSTN.  It will immediately route +   the call to the PSTN, but before it does, it provisions a PASSporT +   with the CPS associated with the target telephone number.  However, +   it turns out that the call will eventually route through the PSTN to +   an Internet gateway, which will translate this into a SIP call and +   deliver it to an administrative domain with a STIR verification +   service. + +   In this case, there are two subcases for how the PASSporT might be +   retrieved.  In subcase 1, the Internet gateway that receives the call +   from the PSTN could query the appropriate CPS to determine if the +   original caller created and provisioned a PASSporT for this call.  If +   so, it can retrieve the PASSporT and, when it creates a SIP INVITE +   for this call, add a corresponding Identity header field per +   [RFC8224].  When the SIP INVITE reaches the destination +   administrative domain, it will be able to verify the PASSporT +   normally.  Note that to avoid discrepancies with the Date header +   field value, only a full-form PASSporT should be used for this +   purpose.  In subcase 2, the gateway does not retrieve the PASSporT +   itself, but instead the verification service at the destination +   administrative domain does so.  Subcase 1 would perhaps be valuable +   for deployments where the destination administrative domain supports +   in-band STIR but not out-of-band STIR. + +5.4.  Case 4: Gateway Out-of-Band + +   A call originates in the SIP world in a STIR-aware administrative +   domain.  The local authentication service for that administrative +   domain creates a PASSporT that is carried in band in the call per +   [RFC8224].  The call is routed out of the originating administrative +   domain and eventually reaches a gateway to the PSTN. + +   In this case, the originating authentication service does not support +   the out-of-band mechanism, so instead the gateway to the PSTN +   extracts the PASSporT from the SIP request and provisions it to the +   CPS.  (When the call reaches the gateway to the PSTN, the gateway +   might first check the CPS to see if a PASSporT object had already +   been provisioned for this call, and only provision a PASSporT if none +   is present). + +   Ultimately, the call may terminate on the PSTN or be routed back to a +   SIP environment.  In the former case, perhaps the destination +   endpoint queries the CPS to retrieve the PASSporT provisioned by the +   first gateway.  If the call ultimately returns to a SIP environment, +   it might be the gateway from the PSTN back to the Internet that +   retrieves the PASSporT from the CPS and attaches it to the new SIP +   INVITE it creates, or it might be the terminating administrative +   domain's verification service that checks the CPS when an INVITE +   arrives with no Identity header field.  Either way, the PASSporT can +   survive the gap in SIP coverage caused by the PSTN leg of the call. + +5.5.  Case 5: Enterprise Call Center + +   A call originates from a mobile user, and a STIR authentication +   service operated by their carrier creates a PASSporT for the call. +   As the carrier forwards the call via SIP, it attaches the PASSporT to +   the SIP call with an Identity header field.  As a fallback in case +   the call will not go end-to-end over SIP, the carrier also stores the +   PASSporT in a CPS. + +   The call is then routed over SIP for a time, before it transitions to +   the PSTN and ultimately is handled by a legacy PBX at a high-volume +   call center.  The call center supports the out-of-band service, and +   has a high-volume interface to a CPS to retrieve PASSporTs for +   incoming calls; agents at the call center use a general purpose +   computer to manage inbound calls and can receive STIR notifications +   through it.  When the PASSporT arrives at the CPS, it is sent through +   a subscription/notification interface to a system that can correlate +   incoming calls with valid PASSporTs.  The call center agent sees that +   a valid call from the originating number has arrived. + +6.  Storing and Retrieving PASSporTs + +   The use cases show a variety of entities accessing the CPS to store +   and retrieve PASSporTs.  The question of how the CPS authorizes the +   storage and retrieval of PASSporTs is thus a key design decision in +   the architecture.  The STIR architecture assumes that service +   providers and, in some cases, end-user devices will have credentials +   suitable for attesting authority over telephone numbers per +   [RFC8226].  These credentials provide the most obvious way that a CPS +   can authorize the storage and retrieval of PASSporTs.  However, as +   use cases 3, 4, and 5 in Section 5 show, it may sometimes make sense +   for the entity storing or retrieving PASSporTs to be an intermediary +   rather than a device associated with either the originating or +   terminating side of a call; those intermediaries often would not have +   access to STIR credentials covering the telephone numbers in +   question.  Requiring authorization based on a credential to store +   PASSporTs is therefore undesirable, though potentially acceptable if +   sufficient steps are taken to mitigate any privacy risk of leaking +   data. + +   It is an explicit design goal of this mechanism to minimize the +   potential privacy exposure of using a CPS.  Ideally, the out-of-band +   mechanism should not result in a worse privacy situation than in-band +   STIR [RFC8224]: for in-band, we might say that a SIP entity is +   authorized to receive a PASSporT if it is an intermediate or final +   target of the routing of a SIP request.  As the originator of a call +   cannot necessarily predict the routing path a call will follow, an +   out-of-band mechanism could conceivably even improve on the privacy +   story. + +   Broadly, the architecture recommended here thus is one focused on +   permitting any entity to store encrypted PASSporTs at the CPS, +   indexed under the called number.  PASSporTs will be encrypted with a +   public key associated with the called number, so these PASSporTs may +   safely be retrieved by any entity because only holders of the +   corresponding private key will be able to decrypt the PASSporT.  This +   also prevents the CPS itself from learning the contents of PASSporTs, +   and thus metadata about calls in progress, which makes the CPS a less +   attractive target for pervasive monitoring (see [RFC7258]).  As a +   first step, transport-level security can provide confidentiality from +   eavesdroppers for both the storing and retrieval of PASSporTs.  To +   bolster the privacy story, to prevent denial-of-service flooding of +   the CPS, and to complicate traffic analysis, a few additional +   mechanisms are also recommended below. + +6.1.  Storage + +   There are a few dimensions to authorizing the storage of PASSporTs. +   Encrypting PASSporTs prior to storage entails that a CPS has no way +   to tell if a PASSporT is valid; it simply conveys encrypted blocks +   that it cannot access itself and can make no authorization decision +   based on the PASSporT contents.  There is certainly no prospect for +   the CPS to verify the PASSporTs itself. + +   Note that this architecture requires clients that store PASSporTs to +   have access to an encryption key associated with the intended called +   party to be used to encrypt the PASSporT.  Discovering this key +   requires the existence of a key lookup service (see Section 11), +   depending on how the CPS is architected; however, some kind of key +   store or repository could be implemented adjacent to it and perhaps +   even incorporated into its operation.  Key discovery is made more +   complicated by the fact that there can potentially be multiple +   entities that have authority over a telephone number: a carrier, a +   reseller, an enterprise, and an end user might all have credentials +   permitting them to attest that they are allowed to originate calls +   from a number, say.  PASSporTs for out-of-band use therefore might +   need to be encrypted with multiple keys in the hopes that one will be +   decipherable by the relying party. + +   Again, the most obvious way to authorize storage is to require the +   originator to authenticate themselves to the CPS with their STIR +   credential.  However, since the call is indexed at the CPS under the +   called number, this can weaken the privacy story of the architecture, +   as it reveals to the CPS both the identity of the caller and the +   callee.  Moreover, it does not work for the gateway use cases +   described above; to support those use cases, we must effectively +   allow any entity to store PASSporTs at a CPS.  This does not degrade +   the anti-impersonation security of STIR, because entities who do not +   possess the necessary credentials to sign the PASSporT will not be +   able to create PASSporTs that will be treated as valid by verifiers. +   In this architecture, it does not matter whether the CPS received a +   PASSporT from the authentication service that created it or from an +   intermediary gateway downstream in the routing path as in case 4 +   above.  However, if literally anyone can store PASSporTs in the CPS, +   an attacker could easily flood the CPS with millions of bogus +   PASSporTs indexed under a calling number, and thereby prevent the +   called party from finding a valid PASSporT for an incoming call +   buried in a haystack of fake entries. + +   The solution architecture must therefore include some sort of traffic +   control system to prevent flooding.  Preferably, this should not +   require authenticating the source, as this will reveal to the CPS +   both the source and destination of traffic.  A potential solution is +   discussed below in Section 7.5. + +6.2.  Retrieval + +   For retrieval of PASSporTs, this architecture assumes that clients +   will contact the CPS through some sort of polling or notification +   interface to receive all current PASSporTs for calls destined to a +   particular telephone number, or block of numbers. + +   As PASSporTs stored at the CPS are encrypted with a key belonging to +   the intended destination, the CPS can safely allow anyone to download +   PASSporTs for a called number without much fear of compromising +   private information about calls in progress -- provided that the CPS +   always returns at least one encrypted blob in response to a request, +   even if there was no call in progress.  Otherwise, entities could +   poll the CPS constantly, or eavesdrop on traffic, to learn whether or +   not calls were in progress.  The CPS MUST generate at least one +   unique and plausible encrypted response to all retrieval requests, +   and these dummy encrypted PASSporTs MUST NOT be repeated for later +   calls.  An encryption scheme needs to be carefully chosen to make +   messages look indistinguishable from random when encrypted, so that +   information about the called party is not discoverable from +   legitimate encrypted PASSporTs. + +   Because the entity placing a call may discover multiple keys +   associated with the called party number, multiple valid PASSporTs may +   be stored in the CPS.  A particular called party who retrieves +   PASSporTs from the CPS may have access to only one of those keys. +   Thus, the presence of one or more PASSporTs that the called party +   cannot decrypt -- which would be indistinguishable from the "dummy" +   PASSporTs created by the CPS when no calls are in progress - does not +   entail that there is no call in progress.  A retriever likely will +   need to decrypt all PASSporTs retrieved from the CPS, and may find +   only one that is valid. + +   In order to prevent the CPS from learning the numbers that a callee +   controls, callees might also request PASSporTs for numbers that they +   do not own, that they have no hope of decrypting.  Implementations +   could even allow a callee to request PASSporTs for a range or prefix +   of numbers: a trade-off where that callee is willing to sift through +   bulk quantities of undecryptable PASSporTs for the sake of hiding +   from the CPS which numbers it controls. + +   Note that in out-of-band call forwarding cases, special behavior is +   required to manage the relationship between PASSporTs using the +   diversion extension [PASSPORT-DIVERT].  The originating +   authentication service encrypts the initial PASSporT with the public +   encryption key of the intended destination, but once a call is +   forwarded, it may go to a destination that does not possess the +   corresponding private key and thus could not decrypt the original +   PASSporT.  This requires the retargeting entity to generate encrypted +   PASSporTs that show a secure chain of diversion: a retargeting storer +   SHOULD use the "div-o" PASSporT type, with its "opt" extension, as +   specified in [PASSPORT-DIVERT], in order to nest the original +   PASSporT within the encrypted diversion PASSporT. + +7.  Solution Architecture + +   In this section, we discuss a high-level architecture for providing +   the service described in the previous sections.  This discussion is +   deliberately sketchy, focusing on broad concepts and skipping over +   details.  The intent here is merely to provide an overall +   architecture, not an implementable specification.  A more concrete +   example of how this might be specified is given in Section 9. + +7.1.  Credentials and Phone Numbers + +   We start from the premise of the STIR problem statement [RFC7340] +   that phone numbers can be associated with credentials that can be +   used to attest ownership of numbers.  For purposes of exposition, we +   will assume that ownership is associated with the endpoint (e.g., a +   smartphone), but it might well be associated with a provider or +   gateway acting for the endpoint instead.  It might be the case that +   multiple entities are able to act for a given number, provided that +   they have the appropriate authority.  [RFC8226] describes a +   credential system suitable for this purpose; the question of how an +   entity is determined to have control of a given number is out of +   scope for this document. + +7.2.  Call Flow + +   An overview of the basic calling and verification process is shown +   below.  In this diagram, we assume that Alice has the number +   +1.111.555.1111 and Bob has the number +2.222.555.2222. + +   Alice                    Call Placement Service                  Bob +   -------------------------------------------------------------------- + +   Store Encrypted PASSporT for 2.222.555.2222 -> + +   Call from 1.111.555.1111 ------------------------------------------> + + +                                    <-------------- Request PASSporT(s) +                                     for 2.222.555.2222 + +                                    Obtain Encrypted PASSporT --------> +                                       (2.222.555.2222, 1.111.555.1111) + +                                     [Ring phone with verified callerid +                                                      = 1.111.555.1111] + +   When Alice wishes to make a call to Bob, she contacts the CPS and +   stores an encrypted PASSporT on the CPS indexed under Bob's number. +   The CPS then awaits retrievals for that number. + +   When Alice places the call, Bob's phone would usually ring and +   display Alice's number (+1.111.555.1111), which is informed by the +   existing PSTN mechanisms for relaying a calling party number (e.g., +   the Calling Party's Number (CIN) field of the Initial Address Message +   (IAM)).  Instead, Bob's phone transparently contacts the CPS and +   requests any current PASSporTs for calls to his number.  The CPS +   responds with any such PASSporTs (or dummy PASSporTs if no relevant +   ones are currently stored).  If such a PASSporT exists, and the +   verification service in Bob's phone decrypts it using his private +   key, validates it, then Bob's phone can present the calling party +   number information as valid.  Otherwise, the call is unverifiable. +   Note that this does not necessarily mean that the call is bogus; +   because we expect incremental deployment, many legitimate calls will +   be unverifiable. + +7.3.  Security Analysis + +   The primary attack we seek to prevent is an attacker convincing the +   callee that a given call is from some other caller C.  There are two +   scenarios to be concerned with: + +   1.  The attacker wishes to impersonate a target when no call from +       that target is in progress. + +   2.  The attacker wishes to substitute himself for an existing call +       setup. + +   If an attacker can inject fake PASSporTs into the CPS or in the +   communication from the CPS to the callee, he can mount either attack. +   As PASSporTs should be digitally signed by an appropriate authority +   for the number and verified by the callee (see Section 7.1), this +   should not arise in ordinary operations.  Any attacker who is aware +   of calls in progress can attempt to mount a race to substitute +   themselves as described in Section 7.4.  For privacy and robustness +   reasons, using TLS [RFC8446] on the originating side when storing the +   PASSporT at the CPS is RECOMMENDED. + +   The entire system depends on the security of the credential +   infrastructure.  If the authentication credentials for a given number +   are compromised, then an attacker can impersonate calls from that +   number.  However, that is no different from in-band STIR [RFC8224]. + +   A secondary attack we must also prevent is denial-of-service against +   the CPS, which requires some form of rate control solution that will +   not degrade the privacy properties of the architecture. + +7.4.  Substitution Attacks + +   All that the receipt of the PASSporT from the CPS proves to the +   called party is that Alice is trying to call Bob (or at least was as +   of very recently) -- it does not prove that any particular incoming +   call is from Alice.  Consider the scenario in which we have a service +   that provides an automatic callback to a user-provided number.  In +   that case, the attacker can try to arrange for a false caller-id +   value, as shown below: + +    Attacker            Callback Service           CPS               Bob +    -------------------------------------------------------------------- +    Place call to Bob ----------> +     (from 111.555.1111) +                                Store PASSporT for +                                CS:Bob -------------> + +    Call from Attacker (forged CS caller-id info)  --------------------> + +                                Call from CS ------------------------> X + + +                                                   <-- Retrieve PASSporT +                                                              for CS:Bob + +                           PASSporT for CS:Bob ------------------------> + +                                            [Ring phone with callerid = +                                               111.555.1111] + +   In order to mount this attack, the attacker contacts the Callback +   Service (CS) and provides it with Bob's number.  This causes the CS +   to initiate a call to Bob. As before, the CS contacts the CPS to +   insert an appropriate PASSporT and then initiates a call to Bob. +   Because it is a valid CS injecting the PASSporT, none of the security +   checks mentioned above help.  However, the attacker simultaneously +   initiates a call to Bob using forged caller-id information +   corresponding to the CS.  If he wins the race with the CS, then Bob's +   phone will attempt to verify the attacker's call (and succeed since +   they are indistinguishable), and the CS's call will go to busy/voice +   mail/call waiting. + +   In order to prevent a passive attacker from using traffic analysis or +   similar means to learn precisely when a call is placed, it is +   essential that the connection between the caller and the CPS be +   encrypted as recommended above.  Authentication services could store +   dummy PASSporTs at the CPS at random intervals in order to make it +   more difficult for an eavesdropper to use traffic analysis to +   determine that a call was about to be placed. + +   Note that in a SIP environment, the callee might notice that there +   were multiple INVITEs and thus detect this attack, but in some PSTN +   interworking scenarios, or highly intermediated networks, only one +   call setup attempt will reach the target.  Also note that the success +   of this substitution attack depends on the attacker landing their +   call within the narrow window that the PASSporT is retained in the +   CPS, so shortening that window will reduce the opportunity for the +   attack.  Finally, smart endpoints could implement some sort of state +   coordination to ensure that both sides believe the call is in +   progress, though methods of supporting that are outside the scope of +   this document. + +7.5.  Rate Control for CPS Storage + +   In order to prevent the flooding of a CPS with bogus PASSporTs, we +   propose the use of "blind signatures" (see [RFC5636]).  A sender will +   initially authenticate to the CPS using its STIR credentials and +   acquire a signed token from the CPS that will be presented later when +   storing a PASSporT.  The flow looks as follows: + +       Sender                                 CPS + +       Authenticate to CPS ---------------------> +       Blinded(K_temp) -------------------------> +       <------------- Sign(K_cps, Blinded(K_temp)) +       [Disconnect] + + +       Sign(K_cps, K_temp) +       Sign(K_temp, E(K_receiver, PASSporT)) ---> + +   At an initial time when no call is yet in progress, a potential +   client connects to the CPS, authenticates, and sends a blinded +   version of a freshly generated public key.  The CPS returns a signed +   version of that blinded key.  The sender can then unblind the key and +   get a signature on K_temp from the CPS. + +   Then later, when a client wants to store a PASSporT, it connects to +   the CPS anonymously (preferably over a network connection that cannot +   be correlated with the token acquisition) and sends both the signed +   K_temp and its own signature over the encrypted PASSporT.  The CPS +   verifies both signatures and, if they verify, stores the encrypted +   passport (discarding the signatures). + +   This design lets the CPS rate limit how many PASSporTs a given sender +   can store just by counting how many times K_temp appears; perhaps CPS +   policy might reject storage attempts and require acquisition of a new +   K_temp after storing more than a certain number of PASSporTs indexed +   under the same destination number in a short interval.  This does +   not, of course, allow the CPS to tell when bogus data is being +   provisioned by an attacker, simply the rate at which data is being +   provisioned.  Potentially, feedback mechanisms could be developed +   that would allow the called parties to tell the CPS when they are +   receiving unusual or bogus PASSporTs. + +   This architecture also assumes that the CPS will age out PASSporTs. +   A CPS SHOULD NOT keep any stored PASSporT for longer than the +   recommended freshness policy for the "iat" value as described in +   [RFC8224] (i.e., sixty seconds) unless some local policy for a CPS +   deployment requires a longer or shorter interval.  Any reduction in +   this window makes substitution attacks (see Section 7.4) harder to +   mount, but making the window too small might conceivably age +   PASSporTs out while a heavily redirected call is still alerting. + +   An alternative potential approach to blind signatures would be the +   use of verifiable oblivious pseudorandom functions (VOPRFs, per +   [PRIVACY-PASS]), which may prove faster. + +8.  Authentication and Verification Service Behavior for Out-of-Band + +   [RFC8224] defines an authentication service and a verification +   service as functions that act in the context of SIP requests and +   responses.  This specification thus provides a more generic +   description of authentication service and verification service +   behavior that might or might not involve any SIP transactions, but +   depends only on placing a request for communications from an +   originating identity to one or more destination identities. + +8.1.  Authentication Service (AS) + +   Out-of-band authentication services perform steps similar to those +   defined in [RFC8224] with some exceptions: + +   Step 1: The authentication service MUST determine whether it is +   authoritative for the identity of the originator of the request, that +   is, the identity it will populate in the "orig" claim of the +   PASSporT.  It can do so only if it possesses the private key of one +   or more credentials that can be used to sign for that identity, be it +   a domain or a telephone number or some other identifier.  For +   example, the authentication service could hold the private key +   associated with a STIR certificate [RFC8225]. + +   Step 2: The authentication service MUST determine that the originator +   of communications can claim the originating identity.  This is a +   policy decision made by the authentication service that depends on +   its relationship to the originator.  For an out-of-band application +   built into the calling device, for example, this is the same check +   performed in Step 1: does the calling device hold a private key, one +   corresponding to a STIR certificate, that can sign for the +   originating identity? + +   Step 3: The authentication service MUST acquire the public encryption +   key of the destination, which will be used to encrypt the PASSporT +   (see Section 11).  It MUST also discover (see Section 10) the CPS +   associated with the destination.  The authentication service may +   already have the encryption key and destination CPS cached, or may +   need to query a service to acquire the key.  Note that per +   Section 7.5, the authentication service may also need to acquire a +   token for PASSporT storage from the CPS upon CPS discovery.  It is +   anticipated that the discovery mechanism (see Section 10) used to +   find the appropriate CPS will also find the proper key server for the +   public key of the destination.  In some cases, a destination may have +   multiple public encryption keys associated with it.  In that case, +   the authentication service MUST collect all of those keys. + +   Step 4: The authentication service MUST create the PASSporT object. +   This includes acquiring the system time to populate the "iat" claim, +   and populating the "orig" and "dest" claims as described in +   [RFC8225].  The authentication service MUST then encrypt the +   PASSporT.  If in Step 3 the authentication service discovered +   multiple public keys for the destination, it MUST create one +   encrypted copy for each public key it discovered. + +   Finally, the authentication service stores the encrypted PASSporT(s) +   at the CPS discovered in Step 3.  Only after that is completed should +   any call be initiated.  Note that a call might be initiated over SIP, +   and the authentication service would place the same PASSporT in the +   Identity header field value of the SIP request -- though SIP would +   carry a cleartext version rather than an encrypted version sent to +   the CPS.  In that case, out-of-band would serve as a fallback +   mechanism if the request was not conveyed over SIP end-to-end.  Also, +   note that the authentication service MAY use a compact form of the +   PASSporT for a SIP request, whereas the version stored at the CPS +   MUST always be a full-form PASSporT. + +8.2.  Verification Service (VS) + +   When a call arrives, an out-of-band verification service performs +   steps similar to those defined in [RFC8224] with some exceptions: + +   Step 1: The verification service contacts the CPS and requests all +   current PASSporTs for its destination number; or alternatively it may +   receive PASSporTs through a push interface from the CPS in some +   deployments.  The verification service MUST then decrypt all +   PASSporTs using its private key.  Some PASSporTs may not be +   decryptable for any number of reasons: they may be intended for a +   different verification service, or they may be "dummy" values +   inserted by the CPS for privacy purposes.  The next few steps will +   narrow down the set of PASSporTs that the verification service will +   examine from that initial decryptable set. + +   Step 2: The verification service MUST determine if any "ppt" +   extensions in the PASSporTs are unsupported.  It takes only the set +   of supported PASSporTs and applies the next step to them. + +   Step 3: The verification service MUST determine if there is an +   overlap between the calling party number presented in call signaling +   and the "orig" field of any decrypted PASSporTs.  It takes the set of +   matching PASSporTs and applies the next step to them. + +   Step 4: The verification service MUST determine if the credentials +   that signed each PASSporT are valid, and if the verification service +   trusts the CA that issued the credentials.  It takes the set of +   trusted PASSporTs to the next step. + +   Step 5: The verification service MUST check the freshness of the +   "iat" claim of each PASSporT.  The exact interval of time that +   determines freshness is left to local policy.  It takes the set of +   fresh PASSporTs to the next step. + +   Step 6: The verification service MUST check the validity of the +   signature over each PASSporT, as described in [RFC8225]. + +   Finally, the verification service will end up with one or more valid +   PASSporTs corresponding to the call it has received.  In keeping with +   baseline STIR, this document does not dictate any particular +   treatment of calls that have valid PASSporTs associated with them; +   the handling of the call after the verification process depends on +   how the verification service is implemented and on local policy. +   However, it is anticipated that local policies could involve making +   different forwarding decisions in intermediary implementations, or +   changing how the user is alerted or how identity is rendered in user +   agent implementations. + +8.3.  Gateway Placement Services + +   The STIR out-of-band mechanism also supports the presence of gateway +   placement services, which do not create PASSporTs themselves, but +   instead take PASSporTs out of signaling protocols and store them at a +   CPS before gatewaying to a protocol that cannot carry PASSporTs +   itself.  For example, a SIP gateway that sends calls to the PSTN +   could receive a call with an Identity header field, extract a +   PASSporT from the Identity header field, and store that PASSporT at a +   CPS. + +   To place a PASSporT at a CPS, a gateway MUST perform Step 3 of +   Section 8.1 above: that is, it must discover the CPS and public key +   associated with the destination of the call, and may need to acquire +   a PASSporT storage token (see Section 6.1).  Per Step 3 of +   Section 8.1, this may entail discovering several keys.  The gateway +   then collects the in-band PASSporT(s) from the in-band signaling, +   encrypts the PASSporT(s), and stores them at the CPS. + +   A similar service could be performed by a gateway that retrieves +   PASSporTs from a CPS and inserts them into signaling protocols that +   support carrying PASSporTs in-band.  This behavior may be defined by +   future specifications. + +9.  Example HTTPS Interface to the CPS + +   As a rough example, we show a CPS implementation here that uses a +   Representational State Transfer (REST) API [REST] to store and +   retrieve objects at the CPS.  The calling party stores the PASSporT +   at the CPS prior to initiating the call; the PASSporT is stored at a +   location at the CPS that corresponds to the called number.  Note that +   it is possible for multiple parties to be calling a number at the +   same time, and that for called numbers such as large call centers, +   many PASSporTs could legitimately be stored simultaneously, and it +   might prove difficult to correlate these with incoming calls. + +   Assume that an authentication service has created the following +   PASSporT for a call to the telephone number 2.222.555.2222 (note that +   these are dummy values): + +      eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9 +      jZXJ0LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNlciJ9.eyJkZXN0Ijp7InRuIjpbI +      jIyMjI1NTUyMjIyIl19LCJpYXQiOiIxNTgzMjUxODEwIiwib3JpZyI6eyJ0biI6 +      IjExMTE1NTUxMTExIn19.pnij4IlLHoR4vxID0u3CT1e9Hq4xLngZUTv45Vbxmd +      3IVyZug4KOSa378yfP4x6twY0KTdiDypsereS438ZHaQ + +   Through some discovery mechanism (see Section 10), the authentication +   service discovers the network location of a web service that acts as +   the CPS for 2.222.555.2222.  Through the same mechanism, we will say +   that it has also discovered one public encryption key for that +   destination.  It uses that encryption key to encrypt the PASSporT, +   resulting in the encrypted PASSporT: + +      rlWuoTpvBvWSHmV1AvVfVaE5pPV6VaOup3Ajo3W0VvjvrQI1VwbvnUE0pUZ6Yl9w +      MKW0YzI4LJ1joTHho3WaY3Oup3Ajo3W0YzAypvW9rlWxMKA0Vwc7VaIlnFV6JlWm +      nKN6LJkcL2INMKuuoKOfMF5wo20vKK0fVzyuqPV6VwR0AQZlZQtmAQHvYPWipzyaV +      wc7VaEhVwbvZGVkAGH1AGRlZGVvsK0ed3cwG1ubEjnxRTwUPaJFjHafuq0-mW6S1 +      IBtSJFwUOe8Dwcwyx-pcSLcSLfbwAPcGmB3DsCBypxTnF6uRpx7j + +   Having concluded the numbered steps in Section 8.1, including +   acquiring any token (per Section 6.1) needed to store the PASSporT at +   the CPS, the authentication service then stores the encrypted +   PASSporT: + +      POST /cps/2.222.555.2222/ppts HTTP/1.1 +      Host: cps.example.com +      Content-Type: application/passport + +      rlWuoTpvBvWSHmV1AvVfVaE5pPV6VaOup3Ajo3W0VvjvrQI1VwbvnUE0pUZ6Yl9w +      MKW0YzI4LJ1joTHho3WaY3Oup3Ajo3W0YzAypvW9rlWxMKA0Vwc7VaIlnFV6JlWm +      nKN6LJkcL2INMKuuoKOfMF5wo20vKK0fVzyuqPV6VwR0AQZlZQtmAQHvYPWipzyaV +      wc7VaEhVwbvZGVkAGH1AGRlZGVvsK0ed3cwG1ubEjnxRTwUPaJFjHafuq0-mW6S1 +      IBtSJFwUOe8Dwcwyx-pcSLcSLfbwAPcGmB3DsCBypxTnF6uRpx7j + +   The web service assigns a new location for this encrypted PASSporT in +   the collection, returning a 201 OK with the location of +   /cps/2.222.222.2222/ppts/ppt1.  Now the authentication service can +   place the call, which may be signaled by various protocols.  Once the +   call arrives at the terminating side, a verification service contacts +   its CPS to ask for the set of incoming calls for its telephone number +   (2.222.222.2222). + +      GET /cps/2.222.555.2222/ppts +      Host: cps.example.com + +   This returns to the verification service a list of the PASSporTs +   currently in the collection, which currently consists of only +   /cps/2.222.222.2222/ppts/ppt1.  The verification service then sends a +   new GET for /cps/2.222.555.2222/ppts/ppt1/ which yields: + +      HTTP/1.1 200 OK +      Content-Type: application/passport +      Link: <https://cps.example.com/cps/2.222.555.2222/ppts> + +      rlWuoTpvBvWSHmV1AvVfVaE5pPV6VaOup3Ajo3W0VvjvrQI1VwbvnUE0pUZ6Yl9w +      MKW0YzI4LJ1joTHho3WaY3Oup3Ajo3W0YzAypvW9rlWxMKA0Vwc7VaIlnFV6JlWm +      nKN6LJkcL2INMKuuoKOfMF5wo20vKK0fVzyuqPV6VwR0AQZlZQtmAQHvYPWipzyaV +      wc7VaEhVwbvZGVkAGH1AGRlZGVvsK0ed3cwG1ubEjnxRTwUPaJFjHafuq0-mW6S1 +      IBtSJFwUOe8Dwcwyx-pcSLcSLfbwAPcGmB3DsCBypxTnF6uRpx7j + +   That concludes Step 1 of Section 8.2; the verification service then +   goes on to the next step, processing that PASSporT through its +   various checks.  A complete protocol description for CPS interactions +   is left to future work. + +10.  CPS Discovery + +   In order for the two ends of the out-of-band dataflow to coordinate, +   they must agree on a way to discover a CPS and retrieve PASSporT +   objects from it based solely on the rendezvous information available: +   the calling party number and the called number.  Because the storage +   of PASSporTs in this architecture is indexed by the called party +   number, it makes sense to discover a CPS based on the called party +   number as well.  There are a number of potential service discovery +   mechanisms that could be used for this purpose.  The means of service +   discovery may vary by use case. + +   Although the discussion above is written largely in terms of a single +   CPS, having a significant fraction of all telephone calls result in +   storing and retrieving PASSporTs at a single monolithic CPS has +   obvious scaling problems, and would as well allow the CPS to gather +   metadata about a very wide set of callers and callees.  These issues +   can be alleviated by operational models with a federated CPS; any +   service discovery mechanism for out-of-band STIR should enable +   federation of the CPS function.  Likely models include ones where a +   carrier operates one or more CPS instances on behalf of its +   customers, an enterprise runs a CPS instance on behalf of its PBX +   users, or a third-party service provider offers a CPS as a cloud +   service. + +   Some service discovery possibilities under consideration include the +   following: + +      For some deployments in closed (e.g., intra-network) environments, +      the CPS location can simply be provisioned in implementations, +      obviating the need for a discovery protocol. + +      If a credential lookup service is already available (see +      Section 11), the CPS location can also be recorded in the callee's +      credentials; an extension to [RFC8226] could, for example, provide +      a link to the location of the CPS where PASSporTs should be stored +      for a destination. + +      There exist a number of common directory systems that might be +      used to translate telephone numbers into the URIs of a CPS.  ENUM +      [RFC6116] is commonly implemented, though no "golden root" central +      ENUM administration exists that could be easily reused today to +      help the endpoints discover a common CPS.  Other protocols +      associated with queries for telephone numbers, such as the +      Telephone-Related Information (TeRI) protocol [MODERN-TERI], could +      also serve for this application. + +      Another possibility is to use a single distributed service for +      this function.  Verification Involving PSTN Reachability (VIPR) +      [VIPR-OVERVIEW] proposed a REsource LOcation And Discovery +      (RELOAD) [RFC6940] usage for telephone numbers to help direct +      calls to enterprises on the Internet.  It would be possible to +      describe a similar RELOAD usage to identify the CPS where calls +      for a particular telephone number should be stored.  One advantage +      that the STIR architecture has over VIPR is that it assumes a +      credential system that proves authority over telephone numbers; +      those credentials could be used to determine whether or not a CPS +      could legitimately claim to be the proper store for a given +      telephone number. + +   This document does not prescribe any single way to do service +   discovery for a CPS; it is envisioned that initial deployments will +   provision the location of the CPS at the authentication service and +   verification service. + +11.  Encryption Key Lookup + +   In order to encrypt a PASSporT (see Section 6.1), the caller needs +   access to the callee's public encryption key.  Note that because STIR +   uses the Elliptic Curve Digital Signature Algorithm (ECDSA) for +   signing PASSporTs, the public key used to verify PASSporTs is not +   suitable for this function, and thus the encryption key must be +   discovered separately.  This requires some sort of directory/lookup +   system. + +   Some initial STIR deployments have fielded certificate repositories +   so that verification services can acquire the signing credentials for +   PASSporTs, which are linked through a URI in the "x5u" element of the +   PASSporT.  These certificate repositories could clearly be repurposed +   for allowing authentication services to download the public +   encryption key for the called party -- provided they can be +   discovered by calling parties.  This document does not specify any +   particular discovery scheme, but instead offers some general guidance +   about potential approaches. + +   It is a desirable property that the public encryption key for a given +   party be linked to their STIR credential.  An Elliptic Curve +   Diffie-Hellman (ECDH) [RFC7748] public-private key pair might be +   generated for a subcert [TLS-SUBCERTS] of the STIR credential.  That +   subcert could be looked up along with the STIR credential of the +   called party.  Further details of this subcert, and the exact lookup +   mechanism involved, are deferred for future protocol work. + +   Obviously, if there is a single central database that the caller and +   callee each access in real time to download the other's keys, then +   this represents a real privacy risk, as the central key database +   learns about each call.  A number of mechanisms are potentially +   available to mitigate this: + +      Have endpoints pre-fetch keys for potential counterparties (e.g., +      their address book or the entire database). + +      Have caching servers in the user's network that proxy their +      fetches and thus conceal the relationship between the user and the +      keys they are fetching. + +   Clearly, there is a privacy/timeliness trade-off in that getting up- +   to-date knowledge about credential validity requires contacting the +   credential directory in real-time (e.g., via the Online Certificate +   Status Protocol (OCSP) [RFC6960]).  This is somewhat mitigated for +   the caller's credentials in that he can get short-term credentials +   right before placing a call which only reveals his calling rate, but +   not who he is calling.  Alternately, the CPS can verify the caller's +   credentials via OCSP, though of course this requires the callee to +   trust the CPS's verification.  This approach does not work as well +   for the callee's credentials, but the risk there is more modest since +   an attacker would need to both have the callee's credentials and +   regularly poll the database for every potential caller. + +   We consider the exact best point in the trade-off space to be an open +   issue. + +12.  IANA Considerations + +   This document has no IANA actions. + +13.  Privacy Considerations + +   Delivering PASSporTs out-of-band offers a different set of privacy +   properties than traditional in-band STIR.  In-band operations convey +   PASSporTs as headers in SIP messages in cleartext, which any +   forwarding intermediaries can potentially inspect.  By contrast, out- +   of-band STIR stores these PASSporTs at a service after encrypting +   them as described in Section 6, effectively creating a path between +   the authentication and verification service in which the CPS is the +   sole intermediary, but the CPS cannot read the PASSporTs. +   Potentially, out-of-band PASSporT delivery could thus improve on the +   privacy story of STIR. + +   The principle actors in the operation of out-of-band are the AS, VS, +   and CPS.  The AS and VS functions differ from baseline behavior +   [RFC8224], in that they interact with a CPS over a non-SIP interface, +   of which the REST interface in Section 9 serves as an example.  Some +   out-of-band deployments may also require a discovery service for the +   CPS itself (Section 10) and/or encryption keys (Section 11).  Even +   with encrypted PASSporTs, the network interactions by which the AS +   and VS interact with the CPS, and to a lesser extent any discovery +   services, thus create potential opportunities for data leakage about +   calling and called parties. + +   The process of storing and retrieving PASSporTs at a CPS can itself +   reveal information about calls being placed.  The mechanism takes +   care not to require that the AS authenticate itself to the CPS, +   relying instead on a blind signature mechanism for flood control +   prevention.  Section 7.4 discusses the practice of storing "dummy" +   PASSporTs at random intervals to thwart traffic analysis, and as +   Section 8.2 notes, a CPS is required to return a dummy PASSporT even +   if there is no PASSporT indexed for that calling number, which +   similarly enables the retrieval side to randomly request PASSporTs +   when there are no calls in progress.  Note that the caller's IP +   address itself leaks information about the caller.  Proxying the +   storage of the CPS through some third party could help prevent this +   attack.  It might also be possible to use a more sophisticated system +   such as Riposte [RIPOSTE].  These measures can help to mitigate +   information disclosure in the system.  In implementations that +   require service discovery (see Section 10), perhaps through key +   discovery (Section 11), similar measures could be used to make sure +   that service discovery does not itself disclose information about +   calls. + +   Ultimately, this document only provides a framework for future +   implementation of out-of-band systems, and the privacy properties of +   a given implementation will depend on architectural assumptions made +   in those environments.  More closed systems for intranet operations +   may adopt a weaker security posture but otherwise mitigate the risks +   of information disclosure, whereas more open environments will +   require careful implementation of the practices described here. + +   For general privacy risks associated with the operations of STIR, +   also see the privacy considerations covered in Section 11 of +   [RFC8224]. + +14.  Security Considerations + +   This entire document is about security, but the detailed security +   properties will vary depending on how the framework is applied and +   deployed.  General guidance for dealing with the most obvious +   security challenges posed by this framework is given in Sections 7.3 +   and 7.4, along proposed solutions for problems like denial-of-service +   attacks or traffic analysis against the CPS. + +   Although there are considerable security challenges associated with +   widespread deployment of a public CPS, those must be weighed against +   the potential usefulness of a service that delivers a STIR assurance +   without requiring the passage of end-to-end SIP.  Ultimately, the +   security properties of this mechanism are at least comparable to in- +   band STIR: the substitution attack documented in Section 7.4 could be +   implemented by any in-band SIP intermediary or eavesdropper who +   happened to see the PASSporT in transit, say, and launched its own +   call with a copy of that PASSporT to race against the original to the +   destination. + +15.  Informative References + +   [MODERN-TERI] +              Peterson, J., "An Architecture and Information Model for +              Telephone-Related Information (TeRI)", Work in Progress, +              Internet-Draft, draft-ietf-modern-teri-00, 2 July 2018, +              <https://tools.ietf.org/html/draft-ietf-modern-teri-00>. + +   [PASSPORT-DIVERT] +              Peterson, J., "PASSporT Extension for Diverted Calls", +              Work in Progress, Internet-Draft, draft-ietf-stir- +              passport-divert-09, 13 July 2020, +              <https://tools.ietf.org/html/draft-ietf-stir-passport- +              divert-09>. + +   [PRIVACY-PASS] +              Davidson, A. and N. Sullivan, "The Privacy Pass Protocol", +              Work in Progress, Internet-Draft, draft-privacy-pass-00, 3 +              November 2019, +              <https://tools.ietf.org/html/draft-privacy-pass-00>. + +   [REST]     Fielding, R., "Architectural Styles and the Design of +              Network-based Software Architectures, Chapter 5: +              Representational State Transfer", Ph.D. +              Dissertation, University of California, Irvine, 2010. + +   [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>. + +   [RFC5636]  Park, S., Park, H., Won, Y., Lee, J., and S. Kent, +              "Traceable Anonymous Certificate", RFC 5636, +              DOI 10.17487/RFC5636, August 2009, +              <https://www.rfc-editor.org/info/rfc5636>. + +   [RFC6116]  Bradner, S., Conroy, L., and K. Fujiwara, "The E.164 to +              Uniform Resource Identifiers (URI) Dynamic Delegation +              Discovery System (DDDS) Application (ENUM)", RFC 6116, +              DOI 10.17487/RFC6116, March 2011, +              <https://www.rfc-editor.org/info/rfc6116>. + +   [RFC6940]  Jennings, C., Lowekamp, B., Ed., Rescorla, E., Baset, S., +              and H. Schulzrinne, "REsource LOcation And Discovery +              (RELOAD) Base Protocol", RFC 6940, DOI 10.17487/RFC6940, +              January 2014, <https://www.rfc-editor.org/info/rfc6940>. + +   [RFC6960]  Santesson, S., Myers, M., Ankney, R., Malpani, A., +              Galperin, S., and C. Adams, "X.509 Internet Public Key +              Infrastructure Online Certificate Status Protocol - OCSP", +              RFC 6960, DOI 10.17487/RFC6960, June 2013, +              <https://www.rfc-editor.org/info/rfc6960>. + +   [RFC7258]  Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an +              Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May +              2014, <https://www.rfc-editor.org/info/rfc7258>. + +   [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>. + +   [RFC7748]  Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves +              for Security", RFC 7748, DOI 10.17487/RFC7748, January +              2016, <https://www.rfc-editor.org/info/rfc7748>. + +   [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>. + +   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol +              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, +              <https://www.rfc-editor.org/info/rfc8446>. + +   [RIPOSTE]  Corrigan-Gibbs, H., Boneh, D., and D. Mazières, "Riposte: +              An Anonymous Messaging System Handling Millions of Users", +              May 2015, <https://people.csail.mit.edu/henrycg/pubs/ +              oakland15riposte/>. + +   [TLS-SUBCERTS] +              Barnes, R., Iyengar, S., Sullivan, N., and E. Rescorla, +              "Delegated Credentials for TLS", Work in Progress, +              Internet-Draft, draft-ietf-tls-subcerts-10, 24 January +              2021, +              <https://tools.ietf.org/html/draft-ietf-tls-subcerts-10>. + +   [VIPR-OVERVIEW] +              Barnes, M., Jennings, C., Rosenberg, J., and M. Petit- +              Huguenin, "Verification Involving PSTN Reachability: +              Requirements and Architecture Overview", Work in Progress, +              Internet-Draft, draft-jennings-vipr-overview-06, 9 +              December 2013, <https://tools.ietf.org/html/draft- +              jennings-vipr-overview-06>. + +Acknowledgments + +   The ideas in this document came out of discussions with Richard +   Barnes and Cullen Jennings.  We'd also like to thank Russ Housley, +   Chris Wendt, Eric Burger, Mary Barnes, Ben Campbell, Ted Huang, +   Jonathan Rosenberg, and Robert Sparks for helpful suggestions. + +Authors' Addresses + +   Eric Rescorla +   Mozilla + +   Email: ekr@rtfm.com + + +   Jon Peterson +   Neustar, Inc. +   1800 Sutter St Suite 570 +   Concord, CA 94520 +   United States of America + +   Email: jon.peterson@team.neustar |