<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.14 (Ruby 2.7.0) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rosenberg-dispatch-spin-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title abbrev="SPIN">Simple Protocol for Inviting Numbers (SPIN)</title>
    <seriesInfo name="Internet-Draft" value="draft-rosenberg-dispatch-spin-00"/>
    <author initials="J." surname="Rosenberg" fullname="Jonathan Rosenberg">
      <organization>Five9</organization>
      <address>
        <email>jdrosen@jdrosen.net</email>
      </address>
    </author>
    <author initials="C." surname="Jennings" fullname="Cullen Jennings">
      <organization>Cisco</organization>
      <address>
        <email>fluffy@cisco.com</email>
      </address>
    </author>
    <author initials="A." surname="Cooper" fullname="Alissa Cooper">
      <organization>Cisco</organization>
      <address>
        <email>alissa@cooperw.in</email>
      </address>
    </author>
    <author initials="J." surname="Peterson" fullname="Jon Peterson">
      <organization>Neustar</organization>
      <address>
        <email>jon.peterson@neustar.biz</email>
      </address>
    </author>
    <date year="2022" month="July" day="11"/>
    <area>Applications</area>
    <workgroup>Dispatch</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document introduces a framework and a protocol for facilitating voice, video and messaging interoperability between application providers. This work is motivated by the recent passage of regulation in the European Union - the Digital Markets Act (DMA) - which, amongst many other provisions, requires that vendors of applications with a large number of users enable interoperability with applications made by other vendors. While such interoperability is broadly present within the public switched telephone network, it is not yet commonplace between over-the-top applications, such as Facetime, WhatsApp, and Facebook Messenger. This document specifically defines the Simple Protocol for Inviting Numbers (SPIN) which is used to deliver invitations to mobile phone numbers that can bootstrap subsequent communications over the Internet.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="problems">
      <name>Introduction</name>
      <t>Voice, video and messaging today is commonplace on the Internet, enabled by two distinct classes of software. The first are those provided by telecommunications carriers that make heavy use of standards, such as the Session Initiation Protocol (SIP) <xref target="RFC3261"/>. In this approach - which we call the telco model - there is interoperability between different telcos, but the set of features and functionality is limited by the rate of definition and adoption of standards, often measured in years or decades. The second model - the app model - allows a single entity to offer an application, delivering both the server side software and its corresponding client-side software. The client-side software is delivered either as a web application, or as a mobile application through a mobile operating system app store. The app model has proven incredibly successful by any measure. It trades off interoperability for innovation and velocity.</t>
      <t>The downside of the loss of interoperability is that entry into the market place by new providers is difficult. Applications like WhatsApp, Facebook Messenger, and Facetime, have user bases numbering in the hundreds of millions to billions of users. Any new application cannot connect with these user bases, requiring the vendor of the new app to bootstrap its own network effects.</t>
      <t>This situation has recently drawn the attention of regulators, and was one of the motivations behind the Digital Markets Act (DMA) in the European Union. Amongst its many provisions, it requires vendors of large communications platforms to enable interoperability with third party vendors. It does not, of course, specify an actual set of protocols or technologies for enabling that interoperability.</t>
      <t>This document seeks to fill that void, by defining a framework - the SPIN Framework - for such interoperability. This framework seeks to strike a balance between innovation and standardization, by identifying only those portions of the protocol stack that must be standardized in order to achieve end-to-end security for a minimum feature set between providers, and leaving everything else to APIs and protocols which each vendor can define on it's own.</t>
      <t>This framework identifies the need for a new protocol to solve the identity mapping problem - the SPIN Protocol. Specifically, how does an originating user using one application identify a target user in a different application with which they wish to communicate, and then obtain an identifier for the target user in the target application that is utilized by that target user? Consider the following example. User Alice is a user of Facebook Messenger, and wishes to send a 1-1 chat message to her friend Bob. Bob is a user of a different application for messaging - Signal for example - but this fact is not known to Alice. Alice needs to somehow obtain a URI that can be used to send messages to the Signal application targeted at Bob. This is the identity mapping problem, and is addressed by the SPIN protocol defined here.</t>
    </section>
    <section anchor="implications-of-no-standards-action">
      <name>Implications of no Standards Action</name>
      <t>In theory the application interoperability envisioned in the DMA could be achieved entirely through the publication of vendor-specific APIs and without standardization. However, this would yield a suboptimal outcome for both users and app developers, as supporting the matrix of pairwise communication flows between all of the affected voice, video, and messaging applications in the market via vendor-specific APIs will create a patchwork of inconsistent user experiences and likely lead to buggy implementations. Using a minimal standardized framework to bootstrap cross-app commmunications will provide more consistency while leaving app developers freedom to continue to make their own design choices.</t>
      <t>Furthermore, the usage of a standards-based solution ensures that end-to-end messaging, voice, and video can happen between providers. Without a standard, each vendor subject to the DMA will publish APIs for access to their services. These APIs have traditionally provided access to messages, voice and video that are not protected by e2e crypto. While it is possible, in theory, that each application provider could amend their APIs to provide access to e2e encrypted content, doing so without an agreed-upon standard will almost certainly lead to third parties decrypting in the cloud to avoid implementing N variations in each client, one for each provider they interop with.</t>
    </section>
    <section anchor="affected-actors">
      <name>Affected Actors</name>
      <t>The solution defined by the SPIN framework requires participation from multiple actors, and thus requires coordination through standards. These actors are:</t>
      <ul spacing="normal">
        <li>Mobile OS Vendors: Most notable Apple and Google. It requires them to implement new APIs in their operating systems, new user preference capabilities, and support for user identity through certificates.</li>
        <li>App Developers: App developers, such as a Signal or Facebook Messenger, are required to change. They are required to utilize the APIs exposed by the mobile OSs, and also implement the voice, video and/or chat protocols specified by the SPIN Framework.</li>
        <li>STIR/SHAKEN PA/CA: The SPIN framework suggests that it be possible for the mobile OS vendors to generate STIR certificates for the device. This requires that these vendors be supported as valid CAs for STIR.</li>
      </ul>
      <t>Note that the SPIN Framework described here does not require any support or changes from the carriers themselves (Note however, the open issue discussed below where we discuss an alternative certification model where the telcos perform delegation to the mobile OS vendors to install a cert on the phone).</t>
    </section>
    <section anchor="framework">
      <name>SPIN Framework</name>
      <t>The framework for SPIN is shown in the figure below:</t>
      <artwork><![CDATA[
+---------------+               +---------------+
|               | Comm Protocol |               |
|Originating Svc+---------------+Terminating Svc|
|               |               |               |
+-------+-------+               +-------+-------+
        |                               |
        |                               |
        |                               |
        |                               |
+-------+-------+               +-------+-------+
|               |               |               |
|Originating App|               |Terminating App|
|               |               |               |
+-------+-------+               +-------+-------+
        |                               |
+-------+-------+    +-----+    +-------+-------+
|Originating OS +----+ SMS +----+Terminating OS |
+---------------+    +-----+    +---------------+


]]></artwork>
      <t>In the framework, we have two users - the originating and terminating. The originating user wishes to send a message, make a video call, or make a voice call, to the terminating user. A fundamental assumption of SPIN is that the originating and terminating users are both identifiable by telephone numbers on the Public Switched Telephone Network (PSTN), and that the terminating user can be reached via SMS. The originating user knows the telephone number for the terminating user. The originating user is using an app running on an operating system. The operating system can be a mobile OS, such as iOS or Android. The originating OS exposes APIs towards the application, which allow the originating app to request communication to a user with the specified number. The originating app is associated with a service running on the Internet, and can connect to it for communications services. There is a similar setup on the terminating side - the user has an application running on an operating system which can receive SMS messages, and their app is associated with a service reachable over the Internet.</t>
      <t>The role of the operating systems in this framework is to act as a trust anchor. The OS is responsible for authenticating the applications and vetting their behaviors, as they normally do on mobile OSs.</t>
      <t>The goal of the SPIN protocol is to allow a user of the originating app to select a service (voice, video or messaging), and select a phone number to which they communicate, and then receive a URI which corresponds to the terminating service which can be used to perform that communication. The URIs of course correspond to protocols for that form of communication.</t>
      <t>Once the SPIN Protocol has run, the originating service now has a protocol URI for the particular media type - voice, video or chat, and can initiate it towards the terminating service. The SPIN Framework recommends specific protocols for voice, video and chat. For voice and video, the SPIN Framework suggests SIP <xref target="RFC3261"/>, with <xref target="I-D.rosenberg-dispatch-cloudsip"/>, <xref target="RFC8224"/> and the webRTC media stack. For messaging, it suggests creation of a new REST-based protocol for 1-1 messaging, including e2e encryption using STIR-based certificates, and features such as delivery and read receipts, emojis, stickers, reactions, threads, images, URLs, contacts, and so on, forming a baseline set of minimum viable 1-1 messaging. For the initial phase of SPIN, group communications would be out of scope.</t>
      <t>Though the framework is expressed in terms that align with mobile operating systems, the same framework can apply in other cases. For example, the terminating service, app and OS can logically be a single entity. As an example, the terminating service, app and OS could be associated with a Contact Center as a Service (CCaaS) provider. In that setup, the SMS messages are delivered directly to the CCaaS provider, and there is not a mobile operating system involved to receive them.</t>
    </section>
    <section anchor="spin-protocol-overview">
      <name>SPIN Protocol Overview</name>
      <t>The behavior of the SPIN Protocol is best understood through a high level sequence diagram:</t>
      <artwork><![CDATA[
+-----------+         +---------+ +-----------+ +-----+  +---------+           +-----------+ +-----------+
| orig_app  |         | orig_os | | orig_svc  | | sms |  | term_os |           | term_app  | | term_svc  |
+-----------+         +---------+ +-----------+ +-----+  +---------+           +-----------+ +-----------+
      |                    |            |          |          |                      |             |
      |                    |            |          |          |             register |             |
      |                    |            |          |          |<---------------------|             |
      |                    |            |          |          |                      |             |
      | call {number}      |            |          |          |                      |             |
      |------------------->|            |          |          |                      |             |
      |                    |            |          |          |                      |             |
      |                    | inv        |          |          |                      |             |
      |                    |---------------------->|          |                      |             |
      |                    |            |          |          |                      |             |
      |                    |            |          | inv      |                      |             |
      |                    |            |          |--------->|                      |             |
      |                    |            |          |          | -------------\       |             |
      |                    |            |          |          |-| verify sig |       |             |
      |                    |            |          |          | |------------|       |             |
      |                    |            |          |          | ---------------\     |             |
      |                    |            |          |          |-| verify hndlr |     |             |
      |                    |            |          |          | |--------------|     |             |
      |                    |            |          |          |                      |             |
      |                    |            |          | send URI |                      |             |
      |                    |<---------------------------------|                      |             |
      |                    |            |          |          |                      |             |
      |                URI |            |          |          |                      |             |
      |<-------------------|            |          |          |                      |             |
      |                    |            |          |          |                      |             |
      | req passport       |            |          |          |                      |             |
      |------------------->|            |          |          |                      |             |
      |                    |            |          |          |                      |             |
      |           passport |            |          |          |                      |             |
      |<-------------------|            |          |          |                      |             |
      |                    |            |          |          |                      |             |
      | call               |            |          |          |                      |             |
      |-------------------------------->|          |          |                      |             |
      |                    |            |          |          |                      |             |
      |                    |            | INVITE   |          |                      |             |
      |                    |            |--------------------------------------------------------->|
      |                    |            |          |          |                      |             |


      
]]></artwork>
      <t>On the terminating side, the terminating user at some point installs an application which is capable of handling communications for one or more media types (voice, video or messaging). The application will register with the terminating OS, using APIs exposed in the OS, that it is capable of acting as a SPIN handler. As part of the registration, the application provides the OS with a URI for the service it provides of that media type. As discussed below, this can be a proprietary API, or can be a baseline standard protocol. In the case of voice, that baseline standard is SIP, and in particular, cloud SIP <xref target="I-D.rosenberg-dispatch-cloudsip"/>.</t>
      <t>Later on, a user in an originating application decides to place a call to a number. The originating application does not have a user with that number as part of its own service, so it knows it needs to use SPIN to route the call. It goes to the operating system on the mobile phone, and requests it to provide a URI for voice communications to the specified phone number. The originating OS then prepares an SPINvitation object. This is a JWT which contains several fields. THe fields include the phone number of the originating user (which must be known and verified by the mobile OS), and an HTTP URI that can be used by the terminating OS to send the results back, and the communications service that is requested. This HTTP URI will normally contain an embedded Authorization header field that contains a short-lived token, valid to send the results back. It then signs the JWT and sends an SMS (more likely, an MMS given the size of the signed object), to the target user's phone number. The terminating OS receives the SMS/MMS, and notices that it contains an SPINvitation object, and thus should not be rendered to the user. Should the terminating user and its OS not support this protocol, it will end up rendering the MMS. The MMS includes some plain text, which can be rendered to the user, indicating that the caller wishes to speak with them, so that the human user can take some action (like a return voice call over the PSTN).</t>
      <t>Assuming the terminating OS supports this protocol, the MMS is absorbed and decoded. THe signature is verified and then the communications service is obtained. In this example use case, it is for a voice call. The terminating OS has an application that has registered itself as a handler for voice. Note that, the terminating user might have multiple applications on their OS which can act as handlers for voice. In such a case, the mobile OS would offer the user a configuration setting to choose one as a default.</t>
      <t>The app had previously registered itself as a handler and provided a SIP URI for the receipt of calls, something like sip:{number}@provider.com. This URI is sent back to the originating OS. Rather than sending this back via SMS/MMS, IP communications are used. The invitation object contained an HTTP URI which can be used by the terminating OS to send the SIP URI. The SPIN protocol defines the exact syntax and semantics of this HTTP POST operation. This is received by the originating OS, which then informs the app that it was able to locate the user. The originating OS provides the communications URI (in this case, a SIP URI for voice calls).</t>
      <t>Next - the originating app places a SIP call. Because we are now dealing with inter-domain and inter-provider calls, secure caller ID is required. SPIN requires that STIR passports <xref target="RFC8225"/> are included, sent using <xref target="RFC8224"/>. The originating OS is required to obtain a passport that is valid for the originating user. In this framework, this is done by virtue of the mobile OS having a certificate by which it can perform the signing operation directly.</t>
      <t>There are two ways in which the originating OS can obtain such a certificate. In one approach, the mobile OS would perform SMS verification (again, invisibly, by absorbing the SMS it sends to itself), and add an additional check of comparing it agaisnt the mobile numnber the user claimed they owned during provisioning time of the device. The mobile OS vendor would be a valid CA, and then generte a certificate valid for that individual phone number. In an alternative model, the telco uses certificate delegation <xref target="RFC9060"/>, and generates a certificate that is handed to the phone during device provisioning. The latter approach is more secure in some ways (as it would no longer depend on SMS forward routability for authentication of a user), but is much harder to deploy.</t>
      <t>The originating app makes an API call into the OS to obtain the passport, which is then returned to the app. The app uses its own app-specific protocols to communicate with its servers, and will send the passport and the terminating user's phone number to its service. Its service will then send a SIP INVITE to the target number, including the passport in the SIP Identity header field. From there, the terminating service can alert its app using the mobile OS push techniques, and a call has been placed.</t>
      <t>The SPIN framework therefore consists of the following:</t>
      <ol spacing="normal" type="1"><li>A standardized syntax for the SPINvitation object that can be sent via MMS</li>
        <li>A standardized HTTP-based protocol for providing URIs for communications - the actual SPIN on the wire protocol</li>
        <li>Recommendations for mobile OS vendors on APIs they should provide to enable SPIN, without actually specifying any details of what those APIs look like</li>
        <li>Specifications for communications protocols needed for voice, video and messaging between app providers</li>
      </ol>
    </section>
    <section anchor="spinvitation-object-syntax">
      <name>SPINvitation Object Syntax</name>
      <t>This will be a JWT that contains:</t>
      <ul spacing="normal">
        <li>The desired media type, one of an enumerated set</li>
        <li>An HTTP URI for a callback</li>
      </ul>
      <t>Details TBD.</t>
    </section>
    <section anchor="spin-protocol-for-providing-uris">
      <name>SPIN Protocol for Providing URIs</name>
      <t>To be filled in</t>
    </section>
    <section anchor="mobile-os-vendor-api-recommendations">
      <name>Mobile OS vendor API Recommendations</name>
      <t>To be filled in</t>
    </section>
    <section anchor="specifications-of-communications-protocols">
      <name>Specifications of Communications Protocols</name>
      <t>There are several ways in which the communications protocols could be specified. On one extreme, the standard could leave this entirely up to the terminating provider to define its protocol or API and document it publically. It would then be the responsibility of the originating service to implement each of these APIs for every terminating provider it wishes to speak to. On the other extreme, we can fully specify a protocol - most likely with reference to existing standards.</t>
      <t>SPIN tries to take a middle ground. It allows terminating providers to choose whether their interface is proprietary, or, whether it follows a minimum baseline protocol specified here.</t>
      <section anchor="voice-and-video">
        <name>Voice and Video</name>
        <t>Because the communications are between providers that may not have previously had an established bilateral relationship, we want the communications to be possible without any kind of manual configuration. For this reason, SPIN specifies that the default voice and video communications protocol is SIP <xref target="RFC3261"/>, along with it's extension for cloud SIP <xref target="I-D.rosenberg-dispatch-cloudsip"/>, and it utilizes the media protocols standardized by webRTC. The usage of cloud SIP allows scalable, reliable, inter-provider SIP over the Internet, and the usage of the webRTC media stack provides a well-defined baseline media stack that is already widely implemented. The SIP messaging MUST utilize <xref target="RFC8224"/> to ensure secure user identity. Media between the originating and terminating service will be DTLS-SRTP by virtue of using webRTC, and e2e media encryption is supported and bootstrapped using a certificate bound to the user's phone numbers. The mobile OS would hold the STIR certificate, and allow the application to request a signature over the keying material for driving DTLS-SRTP.</t>
        <t>Details to be filled out.</t>
      </section>
      <section anchor="messaging">
        <name>Messaging</name>
        <t>For messaging, 1-1 messaging will be supported in the initial specification. All messages will be e2e encrypted, using the STIR certificate as well. A specification will be produced that defines a REST-based protocol for basic 1-1 messaging features, including read receipts, delivery notifications, typing indicators, images, videos, contact cards, and so on. A baseline set of capabilities would be provided, along with an extensibility framework for future content that would allow users to pop out to a browser in cases where some new content is added, that is not yet supported.</t>
        <t>Details TBD.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The SPIN protocol defined here is meant to address the following threats:</t>
      <ul spacing="normal">
        <li>A malicious application that "steals" incoming calls or chats against user wishes. To prevent this, this protocol enlists the mobile operating system as a trusted third party that governs dispatch of communication requests to the right application based on user preferences.</li>
        <li>A malicious application that spams target users with requests for communication. This is mitigated by enlisting the aid of the mobile operating system on the terminating side to absorb SMS's conforming to this specification, and not presenting them to the user. Digital signatures are used over the content of the SMS messages, and the terminating OS can validate that it trusts the sender before taking further action.</li>
        <li>Intermediates that eavesdrop on communications between app providers. This is mitigated by using e2e encryption across messaging, voice and video, ensuring it can be retained when crossing provider boundaries.</li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="S. Bradner">
            <organization/>
          </author>
          <date year="1997" month="March"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference target="https://www.rfc-editor.org/info/rfc3261" anchor="RFC3261" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3261.xml">
        <front>
          <title>SIP: Session Initiation Protocol</title>
          <author fullname="J. Rosenberg" surname="Rosenberg" initials="J"/>
          <author fullname="H. Schulzrinne" surname="Schulzrinne" initials="H"/>
          <author fullname="G. Camarillo" surname="Camarillo" initials="G"/>
          <author fullname="A. Johnston" surname="Johnston" initials="A"/>
          <author fullname="J. Peterson" surname="Peterson" initials="J"/>
          <author fullname="R. Sparks" surname="Sparks" initials="R"/>
          <author fullname="M. Handley" surname="Handley" initials="M"/>
          <author fullname="E. Schooler" surname="Schooler" initials="E"/>
          <date year="2002" month="June"/>
          <abstract>
            <t>This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants.  These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="DOI" value="10.17487/RFC3261"/>
        <seriesInfo name="RFC" value="3261"/>
      </reference>
      <reference target="https://www.rfc-editor.org/info/rfc8224" anchor="RFC8224" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8224.xml">
        <front>
          <title>Authenticated Identity Management in the Session Initiation Protocol (SIP)</title>
          <author fullname="J. Peterson" surname="Peterson" initials="J"/>
          <author fullname="C. Jennings" surname="Jennings" initials="C"/>
          <author fullname="E. Rescorla" surname="Rescorla" initials="E"/>
          <author fullname="C. Wendt" surname="Wendt" initials="C"/>
          <date year="2018" month="February"/>
          <abstract>
            <t>The baseline security mechanisms in the Session Initiation Protocol (SIP) are inadequate for cryptographically assuring the identity of the end users that originate SIP requests, especially in an interdomain context. This document defines a mechanism for securely identifying originators of SIP requests. It does so by defining a SIP header field for conveying a signature used for validating the identity and for conveying a reference to the credentials of the signer.</t>
            <t>This document obsoletes RFC 4474.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8224"/>
        <seriesInfo name="DOI" value="10.17487/RFC8224"/>
      </reference>
      <reference target="https://www.rfc-editor.org/info/rfc8225" anchor="RFC8225" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8225.xml">
        <front>
          <title>PASSporT: Personal Assertion Token</title>
          <author fullname="C. Wendt" surname="Wendt" initials="C"/>
          <author fullname="J. Peterson" surname="Peterson" initials="J"/>
          <date year="2018" month="February"/>
          <abstract>
            <t>This document defines a method for creating and validating a token that cryptographically verifies an originating identity or, more generally, a URI or telephone number representing the originator of personal communications.  The Personal Assertion Token, PASSporT, is cryptographically signed to protect the integrity of the identity of the originator and to verify the assertion of the identity information at the destination.  The cryptographic signature is defined with the intention that it can confidently verify the originating persona even when the signature is sent to the destination party over an insecure channel.  PASSporT is particularly useful for many personal-communications applications over IP networks and other multi-hop interconnection scenarios where the originating and destination parties may not have a direct trusted relationship.</t>
          </abstract>
        </front>
        <seriesInfo name="DOI" value="10.17487/RFC8225"/>
        <seriesInfo name="RFC" value="8225"/>
      </reference>
      <reference target="https://www.rfc-editor.org/info/rfc9060" anchor="RFC9060" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9060.xml">
        <front>
          <title>Secure Telephone Identity Revisited (STIR) Certificate Delegation</title>
          <author fullname="J. Peterson" surname="Peterson" initials="J"/>
          <date year="2021" month="September"/>
          <abstract>
            <t>The Secure Telephone Identity Revisited (STIR) certificate profile provides a way to attest authority over telephone numbers and related identifiers for the purpose of preventing telephone number spoofing.  This specification details how that authority can be delegated from a parent certificate to a subordinate certificate.  This supports a number of use cases, including those where service providers grant credentials to enterprises or other customers capable of signing calls with STIR.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9060"/>
        <seriesInfo name="DOI" value="10.17487/RFC9060"/>
      </reference>
      <reference target="https://www.ietf.org/archive/id/draft-rosenberg-dispatch-cloudsip-00.txt" anchor="I-D.rosenberg-dispatch-cloudsip" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.rosenberg-dispatch-cloudsip.xml">
        <front>
          <title>SIP Extensions for High Availability and Load Balancing for Public Cloud</title>
          <author fullname="Jonathan Rosenberg">
            <organization>Five9</organization>
          </author>
          <author fullname="Cullen Jennings">
            <organization>Cisco</organization>
          </author>
          <author fullname="Tolga Asveren">
            <organization>Ribbon Communications</organization>
          </author>
          <date year="2021" month="February" day="21"/>
          <abstract>
            <t>Software making use of the Session Initiation Protocol (SIP) faces challenges in achieving high availability, especially for call stateful applications like softswitches, Session Border Controllers (SBCs), and IP-based call centers applications. The state maintained in the SIP, SDP and SRTP layers changes frequently, and is difficult to replicate. For this reason, commercial systems have often relied on complex active-standby configurations making use of IP address takeover. These solutions are also ill-suited for usage in modern public cloud environments. This document defines a SIP extension facilitating HA, including keeping calls active, which is optimized for server-to-server communication where one or both sides are in public cloud.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-rosenberg-dispatch-cloudsip-00"/>
      </reference>
      <reference target="https://www.ietf.org/archive/id/draft-ietf-mls-architecture-08.txt" anchor="I-D.ietf-mls-architecture" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-mls-architecture.xml">
        <front>
          <title>The Messaging Layer Security (MLS) Architecture</title>
          <author fullname="Benjamin Beurdouche">
            <organization>Inria &amp; Mozilla</organization>
          </author>
          <author fullname="Eric Rescorla">
            <organization>Mozilla</organization>
          </author>
          <author fullname="Emad Omara">
            <organization>Google</organization>
          </author>
          <author fullname="Srinivas Inguva">
            <organization>Twitter</organization>
          </author>
          <author fullname="Albert Kwon">
            <organization>MIT</organization>
          </author>
          <author fullname="Alan Duric">
            <organization>Wire</organization>
          </author>
          <date year="2022" month="June" day="16"/>
          <abstract>
            <t>The Messaging Layer Security (MLS) protocol [I-D.ietf-mls-protocol] specification has the role of defining a Group Key Agreement protocol, including all the cryptographic operations and serialization/deserialization functions necessary for scalable and secure group messaging. The MLS protocol is meant to protect against eavesdropping, tampering, message forgery, and provide further properties such as Forward Secrecy (FS) and Post-Compromise Security (PCS) in the case of past or future device compromises. This document describes a general secure group messaging infrastructure and its security goals. It provides guidance on building a group messaging system and discusses security and privacy tradeoffs offered by multiple security mechanisms that are part of the MLS protocol (e.g., frequency of public encryption key rotation). The document also provides guidance for parts of the infrastructure that are not standardized by the MLS Protocol document and left to the application or the infrastructure architects to design. While the recommendations of this document are not mandatory to follow in order to interoperate at the protocol level, they affect the overall security guarantees that are achieved by a messaging application. This is especially true in case of active adversaries that are able to compromise clients, the delivery service, or the authentication service.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-mls-architecture-08"/>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1c64/bRpL/PsD8D8T6w9oXSbG9j7sM7pFZO95Mbv2AZ5J8
WWDRIlsSdyhSyyZH0Tq+v/3qV1X9IEV5kMDeywI3CGJJbHZXV9f70fP5/Pys
K7vKXmTX5XZX2exN23RN3lTZqmmzq/qu7Mp6nb3qt0vbuuzh9ZurV4/Oz8xy
2do7eom+np8VTV6bLc1RtGbVzdvG2ZqGr+dF6Xamyzdztyvr+ePHNNR0NO7p
46dP54//df7kyfnZ+dmDzHWmLv5iqqamh13bW/xc7lr+4rqnjx9/8fgprdpa
c5Fd7nZVmZuubGp3frZfX2TPdZnzs9v9BQHd2ba23fw5oDk/o6EXtEKBOfOm
oO1cZL2bG5eX5fnZrrzI6O9BlpuafraZaVtzyB6Wq8xUVXaw7lFGmNgYt8k2
trUAN5tnhCP95Jq2a+3K+a+HrXzLMOYCE+CzH3XBaxV2ZfqqczQkDJD39AXa
a99tmvYCj/A3zzL/McvKmsZ9s8jeekTHR3IO3zS16Ta0oYkRTUv7f1He2S/i
b3Zryuoi+2vBR/el/rsgJIb1R6s/W2Tf2LomZLrx4s/6qrL1xGNe+Vnp8uZo
5VXVr1aHL3M8XOTN9tSyl4vsWdPsbDte9LIqnTNHDz+wpOE3vsz5jf2irE+t
SYh+Y4mkXFNP4HniGS/6yhLhmvYYx0292OkrX9YyaLEs/44zl4H4VDftlij8
zioBvH3x7OmTJ1/Eb795+vsn8du/PX3628G338VvXzz+/WP9djV/vphgzrxq
+sKVu2RUabvVfFsRl7T5puxs3vUtYCGurFcJbOdn8/k8M0vXtSbv8P1mU7qM
BEK/tXVHCOzapuhz6zKTrVpC2r5pbzPidvq+S0XNyuRlVXaGxc1dU+Z2lt2V
hW148NbSWa3xqAR348jMEuMP2dJ2e0v0ZqJYwMx4t3WLjOHhRenfbUNwkwQq
suUh6zY2a20OMHcG09usWdEv676SWcqax3zVYz1ipm9r/DrnH5+XawK2yl6a
9tYSI1/mXfbw+cvLR/R8vynzzSwz24bIv8u2pj5kDb3UClwOgmtGC/2tL1tC
DDFql93ZumhIwBIEyUYI8rLbEKoq0xJ4NUthjCFBRYNtbZYkso9QIi+l02xN
YbFnAUMXW2Tfb0p63/X55ngSQteybUxRHQhs64AmzKtI2fVLmj1z9FO+IXx2
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
H3v4HTzFwDNgpWlglPu77s7P/hcw7gPfomIAAA==

-->

</rfc>
