<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.34 (Ruby 4.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-wendt-stir-vesper-oob-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="VESPER OOB">VESPER Out-of-Band OOB</title>

    <author fullname="Chris Wendt">
      <organization>Somos Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>chris@appliedbits.com</email>
      </address>
    </author>
    <author fullname="Rob &#x015A;liwa">
      <organization>Somos Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>robjsliwa@gmail.com</email>
      </address>
    </author>

    <date year="2026" month="April" day="01"/>

    <area>Applications and Real-Time</area>
    <workgroup>Secure Telephone Identity Revisited</workgroup>
    <keyword>stir</keyword> <keyword>certificates</keyword> <keyword>delegate certificates</keyword> <keyword>oob</keyword>

    <abstract>


<?line 64?>

<t>This document describes a mechanism for delivering authenticated telephone call identity information using the VESPER framework in environments where SIP signaling is unavailable or unsuitable. By supporting an out-of-band (OOB) transport model, this approach enables entities to publish and retrieve signed PASSporT assertions independent of end-to-end delivery within SIP-based VoIP networks. These PASSporTs are signed with delegate certificates that were authorized for issuance by corresponding authority tokens, which represent the trust and validation of telephone number control and related claim information. Transparency features ensure that these authorizations are publicly auditable and cryptographically provable, supporting a higher standard of trust. This document also introduces support for Connected Identity to the STIR OOB model, enabling the called party to respond with a signed PASSporT asserting its identity, thereby binding the identities of both parties to the transaction and enhancing end-to-end accountability. The OOB mechanism serves as an alternative delivery path for PASSporTs in cases where end-to-end in-band SIP delivery is not possible, enabling verifiers to confirm the association between the originating telephone number and the identity asserting authority as part of the broader VESPER trust framework.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://github.com/appliedbits/draft-wendt-stir-vesper-oob"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wendt-stir-vesper-oob/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Secure Telephone Identity Revisited Working Group mailing list (<eref target="mailto:stir@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/stir/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/stir/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/appliedbits/draft-wendt-stir-vesper-oob"/>.</t>
    </note>


  </front>

  <middle>


<?line 68?>

<section anchor="introduction"><name>Introduction</name>

<t>The STIR framework enables the signing and verification of telephone calls using PASSporT <xref target="RFC8225"/> objects carried in SIP <xref target="RFC3261"/> in Identity Header Fields defined in <xref target="RFC8224"/>. However, there are scenarios where SIP-based in-band transmission is not feasible or the Identity Header Field may not be supported, such as legacy TDM interconnects or where intermediary network elements strip SIP Identity headers. STIR Out-of-Band (OOB) <xref target="RFC8816"/> addresses this generally for STIR by defining an OOB delivery model.</t>

<t>The VESPER framework <xref target="I-D.wendt-stir-vesper"/> extends the STIR architecture by introducing delegate certificates issued under authority tokens and recorded in certificate transparency logs, strengthening the association between telephone number assignments and the entities authorized to use them in signed PASSporTs.</t>

<t>This document defines how the VESPER framework extends to an out-of-band delivery mechanism corresponding to the model described in <xref target="RFC8816"/>. It enables authorized delegate certificate holders to deliver PASSporTs over a non-SIP-based path for retrieval and validation by a STIR Verification Service, maintaining continuity of trust across heterogeneous networks.</t>

<t>The VESPER OOB delivery model is based on a publish-and-retrieve interface using an open discovery model for Call Placement Services (CPS). This document extends the concepts in <xref target="RFC8816"/> to specifically define an HTTPS-based interface for publishing and retrieving VESPER PASSporTs. It utilizes the following:</t>

<t><list style="symbols">
  <t>A mechanism for announcing the associated OOB Call Placement Services (CPSs) using the CPS URI extension defined in <xref target="I-D.sliwa-stir-cert-cps-ext"/>.</t>
  <t>A discovery mechanism for OOB endpoints using STI certificate transparency log monitoring, where CPS URIs embedded in delegate certificates become publicly discoverable when those certificates are logged.</t>
</list></t>

<t>It also optionally supports Connected Identity <xref target="I-D.ietf-stir-rfc4916-update"/>, enabling both parties to authenticate their telephone numbers and establish end-to-end identity assurance, as also adopted by VESPER <xref target="I-D.wendt-stir-vesper"/>.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>VESPER: Verifiable STI Presentation and Evidence for RTU <xref target="I-D.wendt-stir-vesper"/>.</t>

<t>PASSporT: Personal Assertion Token as defined in <xref target="RFC8225"/>.</t>

<t>Delegate Certificate: A certificate issued to an entity asserting right-to-use for a telephone number, based on an authority token, as defined in <xref target="RFC9060"/> and profiled in <xref target="I-D.wendt-stir-vesper"/>.</t>

<t>Authority Token: A signed assertion that authorizes the issuance of a delegate certificate and represents the authorization of a subject's right-to-use a telephone number and any associated claims, defined in <xref target="RFC9447"/>.</t>

<t>CPS URI: Call Placement Service (CPS) URI extension in X.509 certs <xref target="I-D.sliwa-stir-cert-cps-ext"/>.</t>

<t>CPS Discovery: The process of identifying the CPS endpoint responsible for a given TN or SPC by monitoring STI-CT logs for delegate certificates containing the CPS URI extension defined in <xref target="I-D.sliwa-stir-cert-cps-ext"/>.</t>

</section>
<section anchor="vesper-oob-architectural-overview"><name>VESPER OOB Architectural Overview</name>

<t>The VESPER OOB architecture enables the out-of-band signing, publishing, discovery, and verification of PASSporTs using a trust framework based on delegate certificates and transparency mechanisms. These components interact across SIP and HTTPS protocols to support parallel in-band and out-of-band delivery of telephone number authentication information. Figure 1 illustrates the flow of identity data between the authentication service, the out-of-band Call Placement Service (CPS), and the verification service.</t>

<figure><artwork><![CDATA[
        +--------------------+  Send SIP INVITE /w Identity
        |   Authentication   |  Header Field (RFC8224/VESPER AS)
        |     Service        |-------------------+
        |  (Calling Party)   |                   |
        +---------+----------+                   |
                  |                              |
                  | 1. Publish PASSporT with     |
                  |    Delegate Certificate      |
                  v                          .~~~~~~~~~~.
        +---------+----------+           .-''             '-.
        |        CPS         |        ,.'   SIP-based VoIP  '.
        |      (HTTPS)       |       /        Routing        |
        +---------+----------+      |         Network       /
                  ^                  '.___..~~~~~~..______.'
                  |                              |
                  | 2. Retrieve PASSporT         |
                  |                              |
        +---------+----------+                   |
        |    Verification    |                   |
        |      Service       |<------------------+
        |   (Called Party)   |  Receive SIP INVITE /w Identity
        +--------------------+  Header Field (RFC8224/VESPER VS)
]]></artwork></figure>
<t>Figure 1 - Architecture showing both in-band and out-of-band PASSporT delivery</t>

</section>
<section anchor="https-interface-specification"><name>HTTPS Interface Specification</name>

<t>The interface design is conceptually aligned with the interface model described in <xref target="ATIS-1000105"/> Section 7. It supports two categories of HTTPS methods:</t>

<t>General Operations:</t>

<t>These required endpoints enable basic VESPER-OOB publish and retrieval functions:</t>

<t><list style="symbols">
  <t>GET /health - check service availability</t>
  <t>POST /passports/{DEST}/{ORIG} - publish one or more signed PASSporTs, optionally with a 'response_uuid' for Connected Identity</t>
  <t>GET /passports/{DEST}/{ORIG} - retrieve published PASSporTs and optionally discover an associated 'response_uuid'</t>
</list></t>

<t>Connected Identity Extensions:</t>

<t>These optional endpoints are used if a <spanx style="verb">response_uuid</spanx> was included in the publish operation and the recipient supports Connected Identity:</t>

<t><list style="symbols">
  <t>POST /respond/{UUID} - the called party submits a 'rsp' PASSporT</t>
  <t>GET /passports/response/{UUID} - the caller polls for the response</t>
  <t>GET /passports/response/stream/{UUID} - Server-Sent Events (SSE) push interface (optional)</t>
  <t>wss://.../stream/respond/{UUID} - WebSocket push delivery (optional)</t>
</list></t>

<t>All endpoints <bcp14>MUST</bcp14> be served over HTTPS. All endpoints that expose PASSporTs, Connected Identity UUIDs, or response PASSporTs <bcp14>MUST</bcp14> require authentication via Access JWT as defined in <xref target="common-access-jwt"/>. The GET /health endpoint does not require authentication. CPS operators <bcp14>SHOULD</bcp14> additionally enforce rate-limits and access-control policies.</t>

<t>Server certificates <bcp14>SHOULD</bcp14> be validated using standard PKIX procedures. HTTP Strict Transport Security (HSTS) <bcp14>MAY</bcp14> be used by CPS operators to enforce HTTPS usage.</t>

<section anchor="common-access-jwt"><name>Common Access JWT</name>

<t>All CPS interfaces that require authorization <bcp14>MUST</bcp14> support Access JWTs signed using the <spanx style="verb">ES256</spanx> algorithm and validated against trusted VESPER delegate certificates. These tokens establish caller or responder identity and intent.</t>

<section anchor="access-jwt-header"><name>Access JWT Header</name>

<figure><sourcecode type="json"><![CDATA[
{
  "alg": "ES256",
  "x5c": [
    "MIIB3TCCAYOgAwIBAgIUUjF7Jq9kYfU12nJkBA==",
    "IUUjF7Jq9kYfU12nJkBAMIIB3TCCAYOgAwIBAg=="
  ]
}
]]></sourcecode></figure>

<t><list style="symbols">
  <t>'alg': <bcp14>MUST</bcp14> be "ES256" as required by STIR PASSporT and VESPER.</t>
  <t>'x5c': An array of base64-encoded certificates representing the end-entity delegate certificate and any intermediate certificates with an optionally included root certificate. These <bcp14>MUST</bcp14> be validated against the trust anchors defined in the certificate policy defined in <xref target="RFC8226"/>.</t>
</list></t>

</section>
<section anchor="access-jwt-claims"><name>Access JWT Claims</name>

<t>The Access JWT payload <bcp14>MUST</bcp14> contain the following claims:</t>

<texttable title="Access JWT Claims">
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>'iat'</c>
      <c>Issued-at timestamp (Unix time). <bcp14>MUST</bcp14> be recent (&lt; 5 min skew).</c>
      <c>'exp'</c>
      <c>Expiration timestamp for the token.</c>
      <c>'jti'</c>
      <c>Unique token ID for replay prevention and audit.</c>
      <c>'action'</c>
      <c>Operation intent: "publish", "retrieve", or "respond".</c>
      <c>'aud'</c>
      <c>CPS hostname. <bcp14>MUST</bcp14> match the target server.</c>
      <c>'iss'</c>
      <c>SPC or TN of the signer. <bcp14>MUST</bcp14> match TNAuthList in cert.</c>
      <c>'sub'</c>
      <c>SPC or TN of the subscriber on whose behalf the action is taken.</c>
      <c>'orig'</c>
      <c>Object with TN/URI of the originating party.</c>
      <c>'dest'</c>
      <c>Object with TN/URI of the destination party.</c>
      <c>'passports'</c>
      <c><bcp14>OPTIONAL</bcp14>. See below for digest definition.</c>
      <c>'rsp_passport'</c>
      <c><bcp14>OPTIONAL</bcp14>. See below for digest definition.</c>
</texttable>

<t>The 'passports' claim, when present for a "publish" action, <bcp14>MUST</bcp14> contain the base64url-encoded SHA-256 hash of the JCS <xref target="RFC8785"/> canonicalization of the complete JSON request body object (i.e., the object containing the <spanx style="verb">passports</spanx> array). The 'rsp_passport' claim, when present for a "respond" action, <bcp14>MUST</bcp14> contain the base64url-encoded SHA-256 hash of the JCS <xref target="RFC8785"/> canonicalization of the complete JSON request body object (i.e., the object containing the <spanx style="verb">rsp_passport</spanx> field). Hash values <bcp14>MUST</bcp14> use base64url encoding without padding as defined in RFC 4648 Section 5.</t>

<t>Note: The TNAuthList in a VESPER delegate certificate may contain TN entries, SPC entries, or both. In the common case where an entity signs for its own telephone numbers, <spanx style="verb">iss</spanx> and <spanx style="verb">sub</spanx> will be the same value and correspond to a TN or SPC in the TNAuthList, as the signing entity and the telephone number holder are the same party. In platform or delegated deployments, <spanx style="verb">iss</spanx> may identify an SPC-authorized signing entity while <spanx style="verb">sub</spanx> identifies the subscriber's TN, both of which are covered by the certificate's TNAuthList.</t>

<section anchor="examples"><name>Examples</name>

<t>Publish Token (Calling Party):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iat": 1693590000,
  "exp": 1608048425,
  "jti": "550e8400-e29b-41d4-a716-446655440000",
  "action": "publish",
  "aud": "cps.example.net",
  "iss": "12013776051",
  "sub": "12013776051",
  "orig": { "tn": "12013776051" },
  "dest": { "tn": ["19032469103"] },
  "passports": "sha256-XyZabc123..."
}
]]></sourcecode></figure>

<t>Retrieve Token (Verifying Called Party):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iat": 1693590100,
  "exp": 1693590400,
  "jti": "550e8400-e29b-41d4-a716-426655440002",
  "action": "retrieve",
  "aud": "cps.example.net",
  "iss": "19032469103",
  "sub": "19032469103",
  "orig": { "tn": "12013776051" },
  "dest": { "tn": ["19032469103"] }
}
]]></sourcecode></figure>

<t>Respond Token (Called Party responding with Connected Identity):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iat": 1693590050,
  "exp": 1693590400,
  "jti": "550e8400-e29b-41d4-a716-426655440001",
  "action": "respond",
  "aud": "cps.example.net",
  "iss": "19032469103",
  "sub": "19032469103",
  "orig": { "tn": "12013776051" },
  "dest": { "tn": ["19032469103"] },
  "rsp_passport": "sha256-AbCdEf123..."
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="validation-rules"><name>Validation Rules</name>

<t>The CPS <bcp14>MUST</bcp14> validate the Access JWT as follows:</t>

<t><list style="symbols">
  <t>Signature: Must be signed with ES256 using a VESPER delegate certificate that chains to a trusted STI root.</t>
  <t>Certificate: The certificate in 'x5c' <bcp14>MUST</bcp14> match the 'iss'/'sub' TN and contain valid TNAuthList entries.</t>
  <t>Time Validity: 'iat' <bcp14>MUST</bcp14> be recent (within an allowed freshness window, e.g., 5 minutes).</t>
  <t>Audience: 'aud' <bcp14>MUST</bcp14> match the target CPS domain.</t>
  <t>Claims Match: The 'orig' and 'dest' claims <bcp14>MUST</bcp14> match the HTTP path parameters.</t>
  <t>Digest Integrity: If the 'passports' or 'rsp_passport' claim is present, its value <bcp14>MUST</bcp14> equal the base64url-encoded SHA-256 hash computed over the JCS <xref target="RFC8785"/> canonicalization of the complete JSON request body. Both parties <bcp14>MUST</bcp14> canonicalize the full request body object before hashing. The encoding of the hash value <bcp14>MUST</bcp14> use base64url without padding as defined in RFC 4648 Section 5.</t>
</list></t>

</section>
<section anchor="additional-security"><name>Additional Security</name>

<t><list style="symbols">
  <t>CPS <bcp14>SHOULD</bcp14> reject expired, reused, or improperly scoped JWTs.</t>
  <t>JWT replay prevention <bcp14>SHOULD</bcp14> be enforced using the jti field and short TTLs. The CPS <bcp14>MUST</bcp14> cache recent jti values and <bcp14>MUST</bcp14> reject re-use within the configured window.</t>
  <t>Tokens <bcp14>MUST</bcp14> be scoped per transaction; long-lived JWTs <bcp14>MUST NOT</bcp14> be used.</t>
</list></t>

</section>
</section>
<section anchor="api-method-definitions"><name>API Method Definitions</name>

<section anchor="method-get-health"><name>Method: 'GET /health'</name>

<section anchor="request-definition"><name>Request Definition</name>

<figure><sourcecode type="http"><![CDATA[
Method: GET
Path: /health
Authentication: None required
]]></sourcecode></figure>

</section>
<section anchor="response-definition"><name>Response Definition</name>

<t>200 OK - Service operational
503 Service Unavailable - Service not operational
Body (optional):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "status": 200,
  "message": "OK"
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="publish-method-post-passportsdestorig"><name>Publish Method: POST /passports/{DEST}/{ORIG}</name>

<t>This method allows the calling party to publish one or more signed PASSporTs associated with a specific ORIG and DEST pair. The CPS <bcp14>MAY</bcp14> optionally return a <spanx style="verb">response_uuid</spanx> for Connected Identity.</t>

<t>PASSporTs and Connected Identity response PASSporTs <bcp14>SHOULD</bcp14> be retained only for a short period of time unless longer retention is explicitly required by policy.</t>

<t>Note: <xref target="ATIS-1000105"/> defines a "re-publish" action for forwarding PASSporTs between CPSs. Because VESPER OOB uses a transparent discovery model based on STI-CT log monitoring rather than bilateral CPS-to-CPS communication, re-publishing is not required. CPS implementations conforming to this specification are not required to support the re-publish action or the associated "token" fields defined in <xref target="ATIS-1000105"/>. However, this specification is designed to be compatible with deployments that support both VESPER OOB and <xref target="ATIS-1000105"/>.</t>

<section anchor="request-definition-1"><name>Request Definition</name>

<figure><sourcecode type="http"><![CDATA[
Method: POST
Path: /passports/{DEST}/{ORIG}
Authentication: Access JWT with "action": "publish"
]]></sourcecode></figure>

</section>
<section anchor="request-headers"><name>Request Headers</name>

<figure><sourcecode type="http"><![CDATA[
Content-Type: application/json
Authorization: Bearer <Access JWT>
]]></sourcecode></figure>

<t>The server <bcp14>SHOULD</bcp14> support an Idempotency-Key request header <xref target="I-D.ietf-httpapi-idempotency-key-header"/>. When present, repeated requests with the same key <bcp14>MUST</bcp14> return the original result without creating duplicate records.</t>

</section>
<section anchor="request-parameters"><name>Request Parameters</name>

<t>DEST: Canonicalized and percent-encoded destination telephone number or URI.
ORIG: Canonicalized and percent-encoded originating telephone number or URI.</t>

<t>Canonicalization of TNs follows <xref target="RFC8224"/> and percent encoding of URIs follows <xref target="RFC3986"/>.</t>

<t>Note: The path ordering places {DEST} before {ORIG} to align with the lookup pattern used by the called party, which typically knows its own number (DEST) and resolves PASSporTs based on the calling party (ORIG). The CPS <bcp14>MUST</bcp14> validate that the <spanx style="verb">orig</spanx> and <spanx style="verb">dest</spanx> claims in the Access JWT match the {ORIG} and {DEST} path parameters respectively; a mismatch <bcp14>MUST</bcp14> result in a 403 Forbidden response.</t>

</section>
<section anchor="request-body"><name>Request Body</name>

<t>The request body is a JSON object with the following field:</t>

<t><list style="symbols">
  <t>passports: <bcp14>REQUIRED</bcp14>. An array of one or more PASSporT strings signed by the calling party. Multiple PASSporTs <bcp14>MAY</bcp14> be included when the authentication service issues PASSporTs with different <spanx style="verb">ppt</spanx> types (e.g., a base <spanx style="verb">shaken</spanx> PASSporT alongside a <spanx style="verb">div</spanx> or <spanx style="verb">rcd</spanx> PASSporT) for the same call. All PASSporTs in the array <bcp14>MUST</bcp14> share the same <spanx style="verb">orig</spanx>, <spanx style="verb">dest</spanx>, and <spanx style="verb">iat</spanx> values and <bcp14>MUST</bcp14> be signed by the same delegate certificate.</t>
</list></t>

<t>Authorization JWT Requirements:</t>

<t>The Access JWT for this method <bcp14>MUST</bcp14> include:</t>

<t><list style="symbols">
  <t>"action": "publish"</t>
</list></t>

<t>All other validation requirements are defined in Common Access JWT.</t>

</section>
<section anchor="example-request"><name>Example Request</name>

<figure><sourcecode type="http"><![CDATA[
POST /passports/19032469103/12013776051 HTTP/1.1
Host: cps.example.com
Authorization: Bearer <Access JWT>
Content-Type: application/json

{
  "passports": [
    "eyJhbGciOiJFUzI1NiIsIn..."
  ]
}
]]></sourcecode></figure>

</section>
<section anchor="response-definition-1"><name>Response Definition</name>

<t>Success Codes</t>

<figure><sourcecode type="http"><![CDATA[
201 - Created if the PASSporTs were successfully published.
]]></sourcecode></figure>

<t>Failure Codes</t>

<figure><sourcecode type="http"><![CDATA[
400 - Bad Request if required fields are missing or malformed
401 - Unauthorized if authentication fails
403 - Forbidden if certificate constraints are not met
429 - Too Many Requests if rate-limited
5xx errors (e.g., 503 Service Unavailable)
]]></sourcecode></figure>

<t>Responses <bcp14>MUST</bcp14> use status codes defined in <xref target="RFC6585"/> and <bcp14>SHOULD</bcp14> be informative when possible.</t>

<t>If the server supports Connected Identity, the response body <bcp14>MAY</bcp14> include a <spanx style="verb">response_uuid</spanx> that the called party can use in follow-up Connected Identity methods. This UUID <xref target="RFC4122"/> is generated by the CPS and serves as a transaction-specific identifier for subsequent API calls.</t>

</section>
<section anchor="example-response"><name>Example Response</name>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 201 Created
Content-Type: application/json

{
  "status": 201,
  "message": "Created",
  "response_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
]]></sourcecode></figure>

</section>
<section anchor="response-body-fields"><name>Response Body Fields</name>

<t><list style="symbols">
  <t><spanx style="verb">status</spanx>: HTTP status code indicating result of publish request (e.g., 201 for success).</t>
  <t><spanx style="verb">message</spanx>: A human-readable message describing the outcome of the request.</t>
  <t><spanx style="verb">response_uuid</spanx>: (Optional) A UUID <xref target="RFC4122"/> generated by the CPS for Connected Identity. Returned only if the CPS supports Connected Identity response workflows.</t>
</list></t>

</section>
<section anchor="example-success-and-error-responses"><name>Example Success and Error Responses</name>

<t>Success Response (201 Created):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 201 Created
Content-Type: application/json

{
  "status": 201,
  "message": "Created",
  "response_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
]]></sourcecode></figure>

<t>Error Response (400 Bad Request):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 400 Bad Request
Content-Type: application/json

{
  "status": 400,
  "error": "Missing required field: passports"
}
]]></sourcecode></figure>

<t>Error Response (401 Unauthorized):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
  "status": 401,
  "error": "Access JWT is invalid or expired"
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="retrieve-method-get-passportsdestorig"><name>Retrieve Method: GET /passports/{DEST}/{ORIG}</name>

<t>This method allows the called party to retrieve PASSporTs published by the originating party for a given ORIG/DEST combination.</t>

<section anchor="request-definition-2"><name>Request Definition</name>

<figure><sourcecode type="http"><![CDATA[
Method: GET
Path: /passports/{DEST}/{ORIG}
Authentication: Access JWT with "action": "retrieve"
]]></sourcecode></figure>

</section>
<section anchor="request-headers-1"><name>Request Headers</name>

<figure><sourcecode type="http"><![CDATA[
Authorization: Bearer <Access JWT>
]]></sourcecode></figure>

</section>
<section anchor="request-parameters-1"><name>Request Parameters</name>

<t><list style="symbols">
  <t>DEST: Percent-encoded and canonicalized destination telephone number or URI, representing the final called party after any retargeting.</t>
  <t>ORIG: Percent-encoded and canonicalized calling party TN or URI, typically from the SIP From or P-Asserted-Identity header.</t>
</list></t>

<t>Canonicalization of TNs follows <xref target="RFC8224"/> and percent encoding of URIs follows <xref target="RFC3986"/>.</t>

<t>Note: The path ordering places {DEST} before {ORIG} to align with the lookup pattern used by the called party, which typically knows its own number (DEST) and resolves PASSporTs based on the calling party (ORIG). The CPS <bcp14>MUST</bcp14> validate that the <spanx style="verb">orig</spanx> and <spanx style="verb">dest</spanx> claims in the Access JWT match the {ORIG} and {DEST} path parameters respectively; a mismatch <bcp14>MUST</bcp14> result in a 403 Forbidden response.</t>

</section>
<section anchor="authorization-jwt-requirements"><name>Authorization JWT Requirements</name>

<t>The JWT used to authorize this request <bcp14>MUST</bcp14> include:</t>

<t><list style="symbols">
  <t>"action": "retrieve"</t>
</list></t>

<t>All other JWT validation requirements are defined in <xref target="common-access-jwt"/> and <bcp14>MUST</bcp14> also be enforced by the CPS.</t>

</section>
<section anchor="prerequisite-check"><name>Prerequisite Check</name>

<t>Before accepting a Connected Identity response, the CPS <bcp14>SHOULD</bcp14> verify that the PASSporT associated with the given <spanx style="verb">response_uuid</spanx> was previously retrieved by a party whose <spanx style="verb">iss</spanx> claim matches the <spanx style="verb">dest</spanx> TN of the original transaction. This ensures that the responding party has had the opportunity to validate the originating PASSporT before asserting its own identity. If the CPS enforces this check and no prior retrieval has occurred, it <bcp14>SHOULD</bcp14> return 409 Conflict with a descriptive error indicating that retrieval must precede response submission.</t>

</section>
<section anchor="response-definition-2"><name>Response Definition</name>

<t>Success:</t>

<figure><artwork><![CDATA[
200 OK - PASSporT(s) retrieved successfully
]]></artwork></figure>

<t>Failure:</t>

<figure><artwork><![CDATA[
401 Unauthorized - JWT missing or invalid
403 Forbidden - Certificate constraints violated
404 Not Found - No PASSporTs available
429 Too Many Requests - Rate limits exceeded
503 Service Unavailable - CPS temporarily unavailable
]]></artwork></figure>

<t>Status codes <bcp14>MUST</bcp14> follow <xref target="RFC6585"/>. On 5xx failures, retrying another CPS endpoint <bcp14>MAY</bcp14> be allowed.</t>

<t>Response Body (on success):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "passports": [
    "eyJhbGciOiJFUzI1NiIsIn..."
  ],
  "response_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
]]></sourcecode></figure>

<t><list style="symbols">
  <t><spanx style="verb">passports</spanx>: An array of one or more PASSporT strings published by the originating party, in compact JWS serialization format as per <xref target="RFC8225"/>.</t>
  <t><spanx style="verb">response_uuid</spanx>: <bcp14>OPTIONAL</bcp14>. If present, provides the Connected Identity transaction UUID <xref target="RFC4122"/> to which the called party can submit an identity response PASSporT using the appropriate API method. This value is provided only if included in the corresponding publish operation.</t>
</list></t>

</section>
<section anchor="example-request-1"><name>Example Request</name>

<figure><sourcecode type="http"><![CDATA[
GET /passports/19032469103/12013776051 HTTP/1.1
Host: cps.example.com
Authorization: Bearer <Access JWT>
]]></sourcecode></figure>

</section>
<section anchor="example-response-1"><name>Example Response</name>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
  "passports": [
    "eyJhbGciOiJFUzI1NiIsIn..."
  ],
  "response_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
]]></sourcecode></figure>

</section>
<section anchor="example-success-and-error-responses-1"><name>Example Success and Error Responses</name>

<t>Success Response (200 OK):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
  "passports": [
    "eyJhbGciOiJFUzI1NiIsIn..."
  ],
  "response_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
]]></sourcecode></figure>

<t>Error Response (404 Not Found):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 404 Not Found
Content-Type: application/json

{
  "status": 404,
  "error": "No PASSporTs available for the requested origin and 
    destination"
}
]]></sourcecode></figure>

<t>Error Response (403 Forbidden):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 403 Forbidden
Content-Type: application/json

{
  "status": 403,
  "error": "Caller is not authorized to retrieve PASSporTs for 
    this identity"
}
]]></sourcecode></figure>

</section>
<section anchor="response-body-fields-1"><name>Response Body Fields</name>

<t><list style="symbols">
  <t><spanx style="verb">passports</spanx>: Array of PASSporT strings published by the originating party, encoded in compact JWS serialization.</t>
  <t><spanx style="verb">response_uuid</spanx>: (Optional) UUID <xref target="RFC4122"/> that identifies a Connected Identity response transaction. Provided only if the CPS returned it during publish.</t>
</list></t>

</section>
</section>
<section anchor="respond-method-post-responduuid"><name>Respond Method: POST /respond/{UUID}</name>

<t>This method allows the called party to submit a response PASSporT (rsp_passport) asserting their identity in a Connected Identity exchange. The UUID <xref target="RFC4122"/> corresponds to the <spanx style="verb">response_uuid</spanx> originally returned by the CPS during the publish operation.</t>

<section anchor="request-definition-3"><name>Request Definition</name>

<figure><sourcecode type="http"><![CDATA[
Method: POST
Path: /respond/{UUID}
Authentication: Access JWT with "action": "respond"
]]></sourcecode></figure>

</section>
<section anchor="request-headers-2"><name>Request Headers</name>

<figure><sourcecode type="http"><![CDATA[
Content-Type: application/json
Authorization: Bearer <Access JWT>
]]></sourcecode></figure>

</section>
<section anchor="request-parameters-2"><name>Request Parameters</name>

<t><list style="symbols">
  <t>UUID: A unique response transaction identifier <xref target="RFC4122"/> returned by the CPS in the publish response as <spanx style="verb">response_uuid</spanx>. This identifies the call session context for Connected Identity.</t>
</list></t>

</section>
<section anchor="request-body-1"><name>Request Body</name>

<figure><sourcecode type="json"><![CDATA[
{
  "rsp_passport": "eyJhbGciOiJFUzI1NiIsIn..."
}
]]></sourcecode></figure>

<t><list style="symbols">
  <t>rsp_passport: <bcp14>REQUIRED</bcp14>. The PASSporT signed by the called party delegate certificate for Connected Identity.</t>
</list></t>

</section>
<section anchor="authorization-jwt-requirements-1"><name>Authorization JWT Requirements</name>

<t>The JWT used to authorize this request <bcp14>MUST</bcp14> include:</t>

<t><list style="symbols">
  <t>"action": "respond"</t>
</list></t>

<t>All other JWT validation requirements are defined in <xref target="common-access-jwt"/> and <bcp14>MUST</bcp14> be enforced by the CPS.</t>

</section>
<section anchor="response-definition-3"><name>Response Definition</name>

<t>Success:</t>

<figure><artwork><![CDATA[
201 Created - The Connected Identity response was accepted.
]]></artwork></figure>

<t>Failure:</t>

<figure><artwork><![CDATA[
401 Unauthorized - JWT missing or invalid.
403 Forbidden - Certificate constraints violated.
404 Not Found - UUID not found or expired.
409 Conflict - A response has already been submitted.
429 Too Many Requests - Rate limits exceeded.
503 Service Unavailable - CPS temporarily unavailable.
]]></artwork></figure>

<t>Status codes <bcp14>MUST</bcp14> follow <xref target="RFC6585"/>. Connected Identity response PASSporTs <bcp14>SHOULD</bcp14> be retained only for a short period unless longer retention is explicitly required by policy.</t>

</section>
<section anchor="example-request-2"><name>Example Request</name>

<figure><sourcecode type="http"><![CDATA[
POST /respond/123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Host: cps.example.net
Content-Type: application/json
Authorization: Bearer <Access JWT>

{
  "rsp_passport": "eyJhbGciOiJFUzI1NiIsIn..."
}
]]></sourcecode></figure>

</section>
<section anchor="example-response-2"><name>Example Response</name>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 201 Created
Content-Type: application/json

{
  "status": 201,
  "message": "Connected Identity Stored"
}
]]></sourcecode></figure>

</section>
<section anchor="example-success-and-error-responses-2"><name>Example Success and Error Responses</name>

<t>Success Response (201 Created):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 201 Created
Content-Type: application/json

{
  "status": 201,
  "message": "Connected Identity Stored"
}
]]></sourcecode></figure>

<t>Error Response (409 Conflict):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 409 Conflict
Content-Type: application/json

{
  "status": 409,
  "error": "A response for this UUID has already been submitted"
}
]]></sourcecode></figure>

<t>Error Response (404 Not Found):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 404 Not Found
Content-Type: application/json

{
  "status": 404,
  "error": "UUID not found or expired"
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="retrieving-connected-identity-responses"><name>Retrieving Connected Identity Responses</name>

<t>Once a response is submitted using the <spanx style="verb">response_uuid</spanx>, the originating party may retrieve it in two ways using a polling interface (GET method) or via an optional push interface using WSS as detailed in the following methods.</t>

</section>
<section anchor="retrieve-response-method-get-passportsresponseuuid"><name>Retrieve Response Method: GET /passports/response/{UUID}</name>

<t>This method allows the originating (calling) party to retrieve a Connected Identity response PASSporT, if one has been submitted by the called party. The UUID in this path is the same value (<spanx style="verb">response_uuid</spanx>) previously provided by the CPS in the response to the <spanx style="verb">POST /passports/{DEST}/{ORIG}</spanx> method.</t>

<section anchor="request-definition-4"><name>Request Definition</name>

<figure><sourcecode type="http"><![CDATA[
Method: GET
Path: /passports/response/{UUID}
Headers: Authorization: Bearer <JWT>
]]></sourcecode></figure>

</section>
<section anchor="response-definition-4"><name>Response Definition</name>

<t>Success:</t>

<t>200 OK - Connected Identity response PASSporT retrieved successfully</t>

<t>Failure:</t>

<t>404 Not Found - No response is available yet</t>

</section>
<section anchor="response-body"><name>Response Body</name>

<figure><sourcecode type="json"><![CDATA[
{
  "rsp": {
    "passport": "eyJhbGciOiJFUzI1NiIsIn..."
  }
}
]]></sourcecode></figure>

</section>
<section anchor="response-body-fields-2"><name>Response Body Fields</name>

<t><list style="symbols">
  <t><spanx style="verb">rsp</spanx>: An object containing the Connected Identity response.
  <list style="symbols">
      <t><spanx style="verb">passport</spanx>: A PASSporT string signed by the called party using its delegate certificate.</t>
    </list></t>
</list></t>

</section>
<section anchor="example-success-and-error-responses-3"><name>Example Success and Error Responses</name>

<t>Success Response (200 OK):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
  "rsp": {
    "passport": "eyJhbGciOiJFUzI1NiIsIn..."
  }
}
]]></sourcecode></figure>

<t>Error Response (404 Not Found):</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 404 Not Found
Content-Type: application/json

{
  "status": 404,
  "error": "No Connected Identity response has been submitted for 
    this UUID"
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="retrieve-response-push-methods-optional"><name>Retrieve Response Push Methods (Optional)</name>

<t>The CPS <bcp14>MAY</bcp14> support real-time delivery of Connected Identity responses via push interfaces as an alternative to polling.</t>

<section anchor="server-sent-events-sse"><name>Server-Sent Events (SSE)</name>

<figure><artwork><![CDATA[
GET /passports/response/stream/{UUID}
Accept: text/event-stream
Authorization: Bearer <Access JWT>
]]></artwork></figure>

<t>The SSE endpoint uses the same Access JWT authentication as the polling GET endpoint. The JWT <bcp14>MUST</bcp14> include <spanx style="verb">"action": "retrieve"</spanx> and the <spanx style="verb">iss</spanx> claim <bcp14>MUST</bcp14> match the originating party of the transaction. The CPS <bcp14>MUST</bcp14> validate the JWT before initiating the event stream.</t>

</section>
<section anchor="websocket"><name>WebSocket</name>

<figure><artwork><![CDATA[
wss://cps.example.net/stream/respond/{UUID}
]]></artwork></figure>

<t>Because the WebSocket upgrade request does not support the Authorization header in all client implementations, the Access JWT <bcp14>MUST</bcp14> be conveyed using one of the following mechanisms, listed in order of preference:</t>

<t><list style="numbers" type="1">
  <t>The <spanx style="verb">Sec-WebSocket-Protocol</spanx> subprotocol negotiation, using the format <spanx style="verb">access_token.&lt;JWT&gt;</spanx>.</t>
  <t>A query parameter <spanx style="verb">?token=&lt;JWT&gt;</spanx> on the connection URI. When this method is used, CPS operators <bcp14>MUST</bcp14> ensure the token is not logged in access logs.</t>
  <t>An initial text frame sent immediately after connection establishment, containing the Access JWT. The CPS <bcp14>MUST NOT</bcp14> transmit any response data until the JWT has been received and validated.</t>
</list></t>

<t>The CPS <bcp14>MUST</bcp14> close the WebSocket connection with status code 1008 (Policy Violation) if the JWT is missing, invalid, or unauthorized.</t>

<t>Both push interfaces <bcp14>MUST</bcp14> enforce the same authorization constraints as the polling GET endpoint: only the authenticated originating party of the transaction (as identified by <spanx style="verb">iss</spanx>) is permitted to receive the response.</t>

</section>
</section>
</section>
</section>
<section anchor="example-vesper-oob-requestresponse-flow"><name>Example VESPER OOB Request/Response Flow</name>

<t>This example illustrates a full transaction using the Connected Identity UUID-based pattern.</t>

<section anchor="calling-party-publishes-a-passport"><name>Calling Party Publishes a PASSporT</name>

<figure><sourcecode type="http"><![CDATA[
POST /passports/19035551234/12015550100 HTTP/1.1
Host: cps.example.net
Content-Type: application/json
Authorization: Bearer <jwt-from-calling-party>
]]></sourcecode></figure>

<t>Body:</t>

<figure><artwork><![CDATA[
{
  "passports": [
    "eyJhbGciOiJFUzI1NiIsIn..."
  ]
}
]]></artwork></figure>

<t>Response:</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 201 Created
Content-Type: application/json

{
  "status": 201,
  "message": "Created",
  "response_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
]]></sourcecode></figure>

</section>
<section anchor="called-party-retrieves-passport-and-extracts-responseuuid"><name>Called Party Retrieves PASSporT and Extracts response_uuid</name>

<figure><sourcecode type="http"><![CDATA[
GET /passports/19035551234/12015550100 HTTP/1.1
Host: cps.example.net
Authorization: Bearer <jwt-from-called-party>
]]></sourcecode></figure>

<t>Response:</t>

<figure><artwork><![CDATA[
{
  "passports": [
    "eyJhbGciOiJFUzI1NiIsIn..."
  ],
  "response_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
]]></artwork></figure>

</section>
<section anchor="called-party-submits-a-connected-identity-rsp-passport"><name>Called Party Submits a Connected Identity <spanx style="verb">rsp</spanx> PASSporT</name>

<figure><sourcecode type="http"><![CDATA[
POST /respond/123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Host: cps.example.net
Content-Type: application/json
Authorization: Bearer <jwt-from-called-party>
]]></sourcecode></figure>

<t>Body:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "rsp_passport": "eyJhbGciOiJFUzI1NiIsIn..."
}
]]></sourcecode></figure>

<t>Response:</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 201 Created
Content-Type: application/json

{"status":201,"message":"Connected Identity Stored"}
]]></sourcecode></figure>

</section>
<section anchor="calling-party-polls-for-the-rsp-passport"><name>Calling Party Polls for the <spanx style="verb">rsp</spanx> PASSporT</name>

<figure><sourcecode type="http"><![CDATA[
GET /passports/response/123e4567-e89b-12d3-a456-426614174000 HTTP/1.1
Host: cps.example.net
Authorization: Bearer <jwt-from-calling-party>
]]></sourcecode></figure>

<t>Response:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "rsp": {
    "passport": "eyJhbGciOiJFUzI1NiIsIn..."
  }
}
]]></sourcecode></figure>

<t>This flow demonstrates the full cycle from publish to response using the Connected Identity UUID-based model. Optionally, the final step may use SSE or WSS push interfaces instead of polling.</t>

<t>The VESPER OOB interface specification offers a modular architecture for telephony identity authentication. It supports both simple publish/retrieve workflows and bidirectional identity binding through Connected Identity.</t>

</section>
</section>
<section anchor="authentication-service-procedures-for-vesper-oob"><name>Authentication Service Procedures for VESPER OOB</name>

<t>When participating in VESPER OOB, Authentication Services that sign PASSporTs <bcp14>MUST</bcp14> adhere to all requirements of the core VESPER specification <xref target="I-D.wendt-stir-vesper"/> and additional procedures specified herein to ensure the integrity of out-of-band transactions and compatibility with verifier expectations.</t>

<section anchor="delegate-certificate-requirements"><name>Delegate Certificate Requirements</name>

<t>Delegate certificates used to sign PASSporTs in VESPER OOB <bcp14>MUST</bcp14> be issued under authority tokens that represent an explicit right-to-use a telephone number. These certificates <bcp14>MUST</bcp14> include:</t>

<t><list style="symbols">
  <t>One or more Signed Certificate Timestamps (SCTs) from certificate transparency logs as defined in <xref target="I-D.ietf-stir-certificate-transparency"/>.</t>
  <t>A CPS URI in the Call Placement Service (CPS) X.509 extension, enabling discovery of the associated OOB Call Placement Service (CPS) as defined in <xref target="I-D.sliwa-stir-cert-cps-ext"/>.</t>
</list></t>

</section>
<section anchor="passport-construction-requirements"><name>PASSporT Construction Requirements</name>

<t>PASSporTs signed in a VESPER OOB deployment <bcp14>MUST</bcp14> meet the following conditions:</t>

<t><list style="symbols">
  <t>The PASSporT <bcp14>MUST</bcp14> be signed with a delegate certificate whose authority token authorizes the use of the specific originating telephone number.</t>
  <t>The 'orig' claim <bcp14>MUST</bcp14> contain the telephone number or URI as authorized by the delegate certificate.</t>
  <t>The 'dest' claim <bcp14>MUST</bcp14> reflect the final destination of the call after any retargeting.</t>
  <t>The 'iat' claim <bcp14>MUST</bcp14> represent a timestamp within an acceptable freshness window (e.g., 5 minutes).</t>
  <t>The JWT 'x5c' header <bcp14>MUST</bcp14> contain the certificate chain including the delegate certificate and its SCT(s).</t>
  <t>The JWT 'x5u' header <bcp14>MUST</bcp14> contain the HTTPS URL of the delegate certificate at its location in the domain-controlled repository, and the domain in that URL <bcp14>MUST</bcp14> match the dNSName SubjectAltName of the signing certificate.</t>
</list></t>

<t>The Authentication Service <bcp14>MUST</bcp14> also publish the signed PASSporT to the CPS endpoint identified by the CPS URI in the delegate certificate.</t>

</section>
</section>
<section anchor="cps-uri-and-oob-cps-discovery"><name>CPS URI and OOB CPS Discovery</name>

<t>CPS URIs are associated with VESPER delegate certificates through the CPS URI extension defined in <xref target="I-D.sliwa-stir-cert-cps-ext"/>. This extension embeds an HTTPS URI identifying the CPS endpoint responsible for publishing and serving PASSporTs for the telephone numbers and SPCs covered by the certificate's TNAuthList.</t>

<t>When a VESPER delegate certificate containing a CPS URI extension is submitted to a STI-CT log, the CPS URI becomes publicly visible and verifiable. Parties that wish to discover the CPS for a given telephone number do so by monitoring STI-CT logs for delegate certificates that include a CPS URI extension, extracting the TNAuthList and CPS URI from each certificate, and associating the covered TNs or SPCs with the indicated CPS endpoint. This approach provides a transparent, cryptographically verifiable discovery mechanism that does not require bilateral provisioning or static configuration between service providers.</t>

<t>The discovery process follows these steps:</t>

<t><list style="numbers" type="1">
  <t>A VESPER delegate certificate containing a TNAuthList and CPS URI extension is issued and submitted to a STI-CT log, generating an SCT.</t>
  <t>A monitoring party observes the log, verifies the certificate chain to a trusted STI root, validates the SCT, and extracts the TN-to-CPS and SPC-to-CPS mappings.</t>
  <t>Authentication Services and Verification Services consult these mappings to identify the appropriate CPS endpoint for a given call.</t>
  <t>PASSporTs are published or retrieved using the discovered CPS URI as part of the OOB authentication process.</t>
</list></t>

<t>Implementations <bcp14>MAY</bcp14> maintain local caches of TN-to-CPS mappings, respecting certificate validity periods when using extracted data. CPS operators <bcp14>SHOULD</bcp14> publish delegate certificates in multiple STI-CT logs to ensure broad visibility. The CPS URI <bcp14>MUST</bcp14> resolve to a reachable and operational CPS that supports the VESPER OOB interface defined in this document.</t>

<t>To support resilience, operators <bcp14>SHOULD</bcp14> advertise multiple CPS instances, including regional or edge instances to improve latency and availability. Implementations <bcp14>SHOULD</bcp14> implement endpoint failover across available CPS instances, selecting among them using local policy such as lowest latency or geographic proximity.</t>

</section>
<section anchor="verification-service-procedures-for-vesper-oob"><name>Verification Service Procedures for VESPER OOB</name>

<t>Verification Services that retrieve and validate PASSporTs via the VESPER OOB model <bcp14>MUST</bcp14> implement the following procedures in addition to those defined fundamentally in <xref target="RFC8224"/> and specific to VESPER defined in <xref target="I-D.wendt-stir-vesper"/>.</t>

<section anchor="retrieval-and-validation-process"><name>Retrieval and Validation Process</name>

<t><list style="symbols">
  <t>CPS URI Resolution: Determine the CPS URI for the given TN or SPC by consulting TN-to-CPS mappings derived from monitoring STI-CT logs for delegate certificates containing the CPS URI extension, as described in the CPS URI and OOB CPS Discovery section of this document.</t>
  <t>PASSporT Retrieval: Submit a 'GET' request to the CPS endpoint using a properly formed JWT in the Authorization header.</t>
  <t>Multiple PASSporT Handling: If the retrieved response contains multiple PASSporTs, the verifier <bcp14>MUST</bcp14> validate each PASSporT independently. All PASSporTs <bcp14>MUST</bcp14> share the same <spanx style="verb">orig</spanx>, <spanx style="verb">dest</spanx>, and <spanx style="verb">iat</spanx> values and <bcp14>MUST</bcp14> be signed by the same delegate certificate. If any PASSporT fails validation, the verifier <bcp14>SHOULD</bcp14> reject the entire set and <bcp14>SHOULD</bcp14> log the failure for diagnostic purposes. The verifier <bcp14>MAY</bcp14> apply local policy to determine which PASSporT types are actionable.</t>
  <t>Authentication JWT Validation: Ensure the JWT is:
  <list style="symbols">
      <t>Signed by a valid STI certificate that chains to a trusted root.</t>
      <t>Contains matching 'iss' and 'sub' values as authorized in the certificate's TNAuthList.</t>
      <t>Has an 'action' claim set to "retrieve".</t>
      <t>Contains 'orig' and 'dest' claims matching the intended retrieval parameters.</t>
    </list></t>
</list></t>

</section>
<section anchor="passport-validation"><name>PASSporT Validation</name>

<t>Once retrieved, the verifier <bcp14>MUST</bcp14>:</t>

<t><list style="symbols">
  <t>Validate the PASSporT signature using the certificate chain in the 'x5c' header.</t>
  <t>Confirm that the domain in the 'x5u' URL matches the dNSName SubjectAltName of the signing certificate.</t>
  <t>Verify that the delegate certificate:
  <list style="symbols">
      <t>Is valid and chains to a trusted authority.</t>
      <t>Contains valid SCTs proving inclusion in a certificate transparency log as defined in <xref target="I-D.ietf-stir-certificate-transparency"/>.</t>
      <t>Was issued under a valid, verifiable authority token.</t>
    </list></t>
  <t>Check that the 'iat' claim is within an acceptable range relative to the call time.</t>
</list></t>

<t>These validation steps ensure end-to-end trust in the originating identity of the call, even across heterogeneous network paths or in the absence of SIP Identity header delivery.</t>

</section>
<section anchor="connected-identity-validation"><name>Connected Identity Validation</name>

<t>When a Connected Identity response PASSporT (<spanx style="verb">rsp</spanx>) is retrieved by the Verification Service (VS), it <bcp14>MUST</bcp14> be validated in accordance with the procedures defined in <xref target="I-D.ietf-stir-rfc4916-update"/> and the VESPER framework <xref target="I-D.wendt-stir-vesper"/>.</t>

<t>Specifically:</t>

<t>The <spanx style="verb">rsp</spanx> PASSporT <bcp14>MUST</bcp14> be signed using a valid VESPER delegate certificate associated with the <spanx style="verb">dest</spanx> telephone number of the original call.</t>

<t>The certificate used to sign the <spanx style="verb">rsp</spanx> PASSporT <bcp14>MUST</bcp14>:</t>

<t><list style="symbols">
  <t>Be issued under a valid authority token authorizing use of the <spanx style="verb">dest</spanx> number.</t>
  <t>Contain TNAuthList values that include the <spanx style="verb">dest</spanx> identifier.</t>
  <t>Include valid Signed Certificate Timestamps (SCTs) from a Certificate Transparency log.</t>
</list></t>

<t>The VS <bcp14>MUST</bcp14> validate the PASSporT signature and the delegate certificate's trust chain, including SCT verification and certificate expiration status.</t>

<t>The VS <bcp14>MUST</bcp14> confirm that the <spanx style="verb">orig</spanx> and <spanx style="verb">dest</spanx> claims in the <spanx style="verb">rsp</spanx> PASSporT match those of the original call. That is:</t>

<t><list style="symbols">
  <t>The <spanx style="verb">orig</spanx> claim in the <spanx style="verb">rsp</spanx> PASSporT <bcp14>MUST</bcp14> match the <spanx style="verb">orig</spanx> claim of the original PASSporT.</t>
  <t>The <spanx style="verb">dest</spanx> claim in the <spanx style="verb">rsp</spanx> PASSporT <bcp14>MUST</bcp14> match the <spanx style="verb">dest</spanx> claim of the original PASSporT.</t>
</list></t>

<t>The key distinction from typical STIR verification is that the entity signing the <spanx style="verb">rsp</spanx> PASSporT is asserting control over the <spanx style="verb">dest</spanx> number, and the delegate certificate used in the signature <bcp14>MUST</bcp14> be valid for that number.</t>

<t>The <spanx style="verb">iat</spanx> claim in the <spanx style="verb">rsp</spanx> PASSporT <bcp14>MUST</bcp14> be within an acceptable freshness interval as defined by local policy.</t>

<t>If these validations succeed, the verifier can confirm that the called party has cryptographically asserted its identity using a VESPER-authorized certificate, completing the Connected Identity flow. Any failure in these validations <bcp14>MUST</bcp14> cause the <spanx style="verb">rsp</spanx> PASSporT to be rejected.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>All PASSporTs and Access JWTs <bcp14>MUST</bcp14> be signed using delegate certificates issued under the certificate policy defined in <xref target="RFC8226"/> and containing valid SCTs as defined in <xref target="I-D.ietf-stir-certificate-transparency"/>. Verifiers <bcp14>MUST</bcp14> validate the certificate trust chain and <bcp14>SHOULD</bcp14> verify SCT inclusion against known CT log sets. Access JWTs <bcp14>MUST</bcp14> use the ES256 algorithm, <bcp14>MUST</bcp14> be scoped per transaction with short validity intervals (e.g., 5 minutes), and <bcp14>MUST</bcp14> include a <spanx style="verb">jti</spanx> claim for replay prevention. CPS implementations <bcp14>MUST</bcp14> cache recent <spanx style="verb">jti</spanx> values and reject reuse within the validity window. The <spanx style="verb">response_uuid</spanx> <bcp14>MUST</bcp14> only be disclosed to authenticated parties authorized to retrieve the original publish and <bcp14>MUST NOT</bcp14> be exposed via unauthenticated endpoints or logs. CPS implementations <bcp14>MUST</bcp14> restrict access to the <spanx style="verb">response_uuid</spanx> and its associated response endpoint to the authenticated parties of the original transaction. Specifically, the CPS <bcp14>MUST</bcp14> verify that a party requesting the Connected Identity response PASSporT (via GET /passports/response/{UUID} or push interfaces) is the same entity that performed the original publish, as identified by the <spanx style="verb">iss</spanx> claim in their Access JWT. The CPS <bcp14>MUST NOT</bcp14> disclose whether a <spanx style="verb">response_uuid</spanx> exists or has a pending response to any other party. CPS implementations <bcp14>SHOULD</bcp14> return 404 (rather than 403) for unauthorized UUID lookups to prevent UUID existence confirmation.</t>

<t>CPS operators <bcp14>MUST</bcp14> enforce rate limiting across all endpoints and <bcp14>MUST</bcp14> retain identity data only as long as operationally necessary.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC3261">
  <front>
    <title>SIP: Session Initiation Protocol</title>
    <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
    <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
    <author fullname="G. Camarillo" initials="G." surname="Camarillo"/>
    <author fullname="A. Johnston" initials="A." surname="Johnston"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="R. Sparks" initials="R." surname="Sparks"/>
    <author fullname="M. Handley" initials="M." surname="Handley"/>
    <author fullname="E. Schooler" initials="E." surname="Schooler"/>
    <date month="June" year="2002"/>
    <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="RFC" value="3261"/>
  <seriesInfo name="DOI" value="10.17487/RFC3261"/>
</reference>
<reference anchor="RFC3986">
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <author fullname="L. Masinter" initials="L." surname="Masinter"/>
    <date month="January" year="2005"/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="66"/>
  <seriesInfo name="RFC" value="3986"/>
  <seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>
<reference anchor="RFC4122">
  <front>
    <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
    <author fullname="P. Leach" initials="P." surname="Leach"/>
    <author fullname="M. Mealling" initials="M." surname="Mealling"/>
    <author fullname="R. Salz" initials="R." surname="Salz"/>
    <date month="July" year="2005"/>
    <abstract>
      <t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier). A UUID is 128 bits long, and can guarantee uniqueness across space and time. UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t>
      <t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group). Information from earlier versions of the DCE specification have been incorporated into this document. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4122"/>
  <seriesInfo name="DOI" value="10.17487/RFC4122"/>
</reference>
<reference anchor="RFC6585">
  <front>
    <title>Additional HTTP Status Codes</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <date month="April" year="2012"/>
    <abstract>
      <t>This document specifies additional HyperText Transfer Protocol (HTTP) status codes for a variety of common situations. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6585"/>
  <seriesInfo name="DOI" value="10.17487/RFC6585"/>
</reference>
<reference anchor="RFC8224">
  <front>
    <title>Authenticated Identity Management in the Session Initiation Protocol (SIP)</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="C. Jennings" initials="C." surname="Jennings"/>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <date month="February" year="2018"/>
    <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 anchor="RFC8225">
  <front>
    <title>PASSporT: Personal Assertion Token</title>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="February" year="2018"/>
    <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="RFC" value="8225"/>
  <seriesInfo name="DOI" value="10.17487/RFC8225"/>
</reference>
<reference anchor="RFC8226">
  <front>
    <title>Secure Telephone Identity Credentials: Certificates</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="S. Turner" initials="S." surname="Turner"/>
    <date month="February" year="2018"/>
    <abstract>
      <t>In order to prevent the impersonation of telephone numbers on the Internet, some kind of credential system needs to exist that cryptographically asserts authority over telephone numbers. This document describes the use of certificates in establishing authority over telephone numbers, as a component of a broader architecture for managing telephone numbers as identities in protocols like SIP.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8226"/>
  <seriesInfo name="DOI" value="10.17487/RFC8226"/>
</reference>
<reference anchor="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>
<reference anchor="RFC8816">
  <front>
    <title>Secure Telephone Identity Revisited (STIR) Out-of-Band Architecture and Use Cases</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="February" year="2021"/>
    <abstract>
      <t>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.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8816"/>
  <seriesInfo name="DOI" value="10.17487/RFC8816"/>
</reference>
<reference anchor="RFC9060">
  <front>
    <title>Secure Telephone Identity Revisited (STIR) Certificate Delegation</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <date month="September" year="2021"/>
    <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 anchor="RFC9447">
  <front>
    <title>Automated Certificate Management Environment (ACME) Challenges Using an Authority Token</title>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="M. Barnes" initials="M." surname="Barnes"/>
    <author fullname="D. Hancock" initials="D." surname="Hancock"/>
    <author fullname="C. Wendt" initials="C." surname="Wendt"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>Some proposed extensions to the Automated Certificate Management Environment (ACME) rely on proving eligibility for certificates through consulting an external authority that issues a token according to a particular policy. This document specifies a generic Authority Token Challenge for ACME that supports subtype claims for different identifiers or namespaces that can be defined separately for specific applications.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9447"/>
  <seriesInfo name="DOI" value="10.17487/RFC9447"/>
</reference>

<reference anchor="I-D.ietf-stir-certificate-transparency">
   <front>
      <title>STI Certificate Transparency</title>
      <author fullname="Chris Wendt" initials="C." surname="Wendt">
         <organization>Somos, Inc.</organization>
      </author>
      <author fullname="Robert Śliwa" initials="R." surname="Śliwa">
         <organization>Somos, Inc.</organization>
      </author>
      <author fullname="Alec Fenichel" initials="A." surname="Fenichel">
         <organization>TransNexus</organization>
      </author>
      <author fullname="Vinit Anil Gaikwad" initials="V. A." surname="Gaikwad">
         <organization>Twilio</organization>
      </author>
      <date day="23" month="November" year="2025"/>
      <abstract>
	 <t>   This document describes a framework for the use of the Certificate
   Transparency (CT) protocol for publicly logging the existence of
   Secure Telephone Identity (STI) certificates as they are issued or
   observed.  This allows any interested party that is part of the STI
   eco-system to audit STI certification authority (CA) activity and
   audit both the issuance of suspect certificates and the certificate
   logs themselves.  The intent is for the establishment of a level of
   trust in the STI eco-system that depends on the verification of
   telephone numbers requiring and refusing to honor STI certificates
   that do not appear in a established log.  This effectively
   establishes the precedent that STI CAs must add all issued
   certificates to the logs and thus establishes unique association of
   STI certificates to an authorized provider or assignee of a telephone
   number resource.  The primary role of CT in the STI ecosystem is for
   verifiable trust in the avoidance of issuance of unauthorized
   duplicate telephone number level delegate certificates or provider
   level certificates.  This provides a robust auditable mechanism for
   the detection of unauthorized creation of certificate credentials for
   illegitimate spoofing of telephone numbers or service provider codes
   (SPC).

   The framework borrows the log structure and API model from RFC6962 to
   enable public auditing and verifiability of certificate issuance.
   While the foundational mechanisms for log operation, Merkle Tree
   construction, and Signed Certificate Timestamps (SCTs) are aligned
   with RFC6962, this document contextualizes their application in the
   STIR eco-system, focusing on verifiable control over telephone number
   or service provider code resources.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-stir-certificate-transparency-01"/>
   
</reference>

<reference anchor="I-D.wendt-stir-vesper">
   <front>
      <title>VESPER - Verifiable STI Presentation and Evidence for RTU</title>
      <author fullname="Chris Wendt" initials="C." surname="Wendt">
         <organization>Somos, Inc.</organization>
      </author>
      <author fullname="Robert Śliwa" initials="R." surname="Śliwa">
         <organization>Somos, Inc.</organization>
      </author>
      <date day="31" month="March" year="2026"/>
      <abstract>
	 <t>   This document defines VESPER (Verifiable STI Presentation and
   Evidence for RTU), a framework that extends the STIR architecture to
   cryptographically bind telephone number authority, domain identity,
   and originating provider authorization in a single delegate
   certificate.  The delegate certificate is issued under the
   certificate policy defined under a STIR compliant eco-system and
   carries the assigned telephone numbers and authorized originating
   providers in a TNAuthList extension, the responsible entity&#x27;s domain
   in a SubjectAltName, and an embedded Signed Certificate Timestamp
   (SCT) proving the certificate was recorded in a public transparency
   log prior to use.  VESPER enables relying parties to verify that a
   telephone number was assigned to the entity whose domain is
   presented, and that calls from those numbers are originated by an
   authorized originating provider.

   The framework defines a certificate profile and issuance process
   grounded in existing STIR and ACME authority token mechanisms, a
   domain-hosted certificate repository with domain-controlled
   certificate discovery enabling cross-channel trust signals, a
   PASSporT usage profile for SIP signaling, and certificate
   transparency to support ecosystem auditability and detection of mis-
   issuance.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-wendt-stir-vesper-07"/>
   
</reference>

<reference anchor="I-D.sliwa-stir-cert-cps-ext">
   <front>
      <title>Call Placement Service (CPS) URI Certificate Extension for STI Certificates</title>
      <author fullname="Robert Śliwa" initials="R." surname="Śliwa">
         <organization>Somos Inc.</organization>
      </author>
      <author fullname="Chris Wendt" initials="C." surname="Wendt">
         <organization>Somos Inc.</organization>
      </author>
      <date day="3" month="November" year="2025"/>
      <abstract>
	 <t>   This document specifies a non-critical X.509 v3 certificate extension
   that conveys the HTTPS URI of a Call Placement Service (CPS)
   associated with the telephone numbers authorized in a STIR Delegate
   Certificate.  The extension enables originators and verifiers of STIR
   PASSporTs to discover, with a single certificate lookup, where Out-
   of-Band (OOB) PASSporTs can be retrieved.  The mechanism removes
   bilateral CPS provisioning, allows ecosystem-scale discovery backed
   by STI Certificate Transparency (STI-CT), and is fully backward
   compatible with existing STIR certificates and OOB APIs.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-sliwa-stir-cert-cps-ext-01"/>
   
</reference>

<reference anchor="I-D.ietf-stir-rfc4916-update">
   <front>
      <title>Connected Identity for STIR</title>
      <author fullname="Jon Peterson" initials="J." surname="Peterson">
         <organization>TransUnion</organization>
      </author>
      <author fullname="Chris Wendt" initials="C." surname="Wendt">
         <organization>Somos</organization>
      </author>
      <date day="7" month="July" year="2025"/>
      <abstract>
	 <t>   The Session Initiation Protocol (SIP) Identity header field conveys
   cryptographic identity information about the originators of SIP
   requests.  The Secure Telephone Identity Revisited (STIR) framework,
   however, provides no means for determining the identity of the called
   party in a traditional telephone-calling scenario.  This document
   updates prior guidance on the &quot;connected identity&quot; problem to reflect
   the changes to SIP Identity that accompanied STIR, and considers a
   revised problem space for connected identity as a means of detecting
   calls that have been retargeted to a party impersonating the intended
   destination, as well as the spoofing of mid-dialog or dialog-
   terminating events by intermediaries or third parties.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-stir-rfc4916-update-07"/>
   
</reference>

<reference anchor="I-D.ietf-httpapi-idempotency-key-header">
   <front>
      <title>The Idempotency-Key HTTP Header Field</title>
      <author fullname="Jayadeba Jena" initials="J." surname="Jena">
         </author>
      <author fullname="Sanjay Dalal" initials="S." surname="Dalal">
         </author>
      <date day="15" month="October" year="2025"/>
      <abstract>
	 <t>   The HTTP Idempotency-Key request header field can be used to make
   non-idempotent HTTP methods such as POST or PATCH fault-tolerant.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-idempotency-key-header-07"/>
   
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <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 anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="ATIS-1000105" target="https://access.atis.org/higherlogic/ws/public/download/79509/ATIS-1000105.pdf">
  <front>
    <title>ATIS-1000105 - Signature-based Handling of Asserted information using Tokens (SHAKEN): Out-of-Band PASSporT Transmission Between Service Providers that Interconnect using TDM</title>
    <author >
      <organization>ATIS</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

</references>


<?line 1029?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors thank the contributors of the STIR working group and authors of ATIS-1000105, many of the API mechanisms have been aligned and extended in this document to support the VESPER OOB Framework for PASSporT delivery signed with delegate certificates.</t>

</section>


  </back>

<!-- ##markdown-source:
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
AA==

-->

</rfc>

