<?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.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wendt-stir-vesper-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title abbrev="vesper">VESPER PASSporT and Identity Tokens - VErifiable STI Personas</title>
    <seriesInfo name="Internet-Draft" value="draft-wendt-stir-vesper-01"/>
    <author fullname="Chris Wendt">
      <organization>Somos, Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>chris@appliedbits.com</email>
      </address>
    </author>
    <author fullname="Rob Sliwa">
      <organization>Somos, Inc.</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>robjsliwa@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="September" day="13"/>
    <area>Applications and Real-Time</area>
    <workgroup>Secure Telephone Identity Revisited</workgroup>
    <keyword>telephone number</keyword>
    <keyword>vetting</keyword>
    <keyword>KYC</keyword>
    <abstract>
      <?line 52?>

<t>This document extends the STIR architecture by defining a secure telephone identity token and PASSporT with a type of “vesper” and specifies the use of Selective Disclosure JWT (SD-JWT) for representing persona related claim information intended to be associated with verifiable information such as the assignment of a telephone number or the output of a Know Your Customer (KYC) or Know Your Business (KYB) type of vetting process or Rich Call Data (RCD) or claims of consent provided to the telephone number holder. It defines logical roles that form trusted relationships to establish overall eco-system trust.  These roles are in the context of a Subject Entity (SE) that is the end entity that is the holder and has the right to use a telephone number. An Issuing Agent (IA) establishes the Subject Entity to the perform the initial vetting and establishment of the persona to the eco-system. A Notary Agent (NA) is a neutral role that maintains a graph of relationships between all roles, claims, and identities with a corresponding transparency log that generates verifiable receipts to “notarize” the recording of these relationships and claims being established. Importantly, privacy is enabled in this Notary role because the submitters have the option of submitting hashes of claims to protect information, or may usefully want to publicly declare their association to a claim to allow the public monitoring to avoid duplicate, mistaken or negligent claims which can be identified before enabling any illegitimate usage in the eco-system. A Claim Agent (CA) is a party that produces claims in the form of SD-JWT + receipts from the NA. There is multiple specific claim agent types and the claims definitions of key value pairs they are required or optionally can include. These SD-JWT + receipt objects are then collected by the SE into a digital wallet that it can then use for selective disclosure presentation and incorporate into a “vesper” PASSporT with different “vesper” claim SD-JWT + receipt objects and signed by the delegate certificate with telephone number to tie the telephone number back to the SE.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://appliedbits.github.io/draft-wendt-stir-vesper/draft-wendt-stir-vesper.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wendt-stir-vesper/"/>.
      </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"/>.</t>
    </note>
  </front>
  <middle>
    <?line 56?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Secure Telephone Identity (STI) architecture fundamentally defined by STI certificates in <xref target="RFC8226"/>, PASSporTs in <xref target="RFC8225"/>, and the SIP Identity header field <xref target="RFC8224"/> describe a set of constructs and protocols for the use of tokens and digital signatures to protect the integrity and provide non-repudiation of information as part of a communications session most notably the associated telephone numbers. This document extends that architecture to address the association of a telephone number to a persona (e.g. a person or business entity) given responsibility for the right to use that telephone number. Recently, the illegitimate use of telephone numbers by unauthorized parties and the associated fraudulent activity associated with those communications has generally eroded trust in communications systems. Further, basic reliance on the trust of the signer alone to at the time of the communications without has proven to require time and people consuming work to perform after-the-fact investigation and enforcement activities. Other industries, like the financial industry, have adopted well-known successful practices of Know Your Customer (KYC) or Know Your Business (KYB), otherwise referred to as the application of vetting practices of an entity. This document focuses on a set of roles and the protocol interactions between those roles that can properly establish mechanisms for trusted transactions, an explicit set of processes that should be followed to establish the representation of claims about the persona that are vetted before any communications can be initiated. These claim information establishment transactions are recorded or notarized with authorized or responsible parties while also importantly enabling privacy controls around the disclosure of the persona information. Transparency logging of relationships and transaction events for claim information is also required to further establish trust with optional public disclosure to guarantee uniqueness when desired. The explicit connection between a persona, as a person or business entity, with a telephone number and the responsibilities associated with its use is a critical step towards building the use of telephone numbers and ability to enforce usage policies that allow privacy but discourage taking advantage of those properties for intent to impersonate for illegitimate reasons. Ultimately, the establishment of secure telephone identity with reasonable policies for establishing those identities will result in greater trusted relationships between parties involved in a set of communications.</t>
      <t>This document describes the establishment of a "vesper" (VErifiable Sti PERsona) PASSporT type with corresponding “vesper” claims which are signed claims using a three party trust model represented by SD-JWTs and enabled with transparency logs and corresponding receipts that enable either a privacy protecting hash disclosure or a public disclosure that allows for verifiable eco-system trust that those that validate claim information are legitimate actors in the ecosystem. Additionally, the vesper token and claim architecture provides mechanisms for providing selective disclosure of any personally identifying information to be disclosed to those that the persona chooses directly or in limited cases, for example, based on enforcement actions, required for legitimately authorized legal or regulatory activity.</t>
      <t>In the current state of digital identities, the unique identifier used to identify the persona behind the identifier is obviously a critical part of using an identifier as part of a digital protocol, but just as important is the ability to associate a real-world persona to that identifier as the responsible party behind that identifier. The telephone number as an identifier and as part of a set of traditional communications services offered around the world has been facing a challenge of illegitimate fraud based on the lack of a formal framework for the explicit association of a set of communications to a directly responsible party. The use of "spoofing" of telephone numbers, a practice of the use of telephone numbers by not directly authorized parties, while having very legitimate use-cases, has been exploited by actors of fraudulent intent to either impersonate the legitimate party, or simply obfuscate the actual party behind the call. Fraud and illegitimate activity has proliferated based on the loose connection of telephone numbers to responsible parties.</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?>

</section>
    <section anchor="overview">
      <name>Overview</name>
      <t>The vetting process for entities involves verifying their identity and legitimacy, typically through KYC and KYB vetting procedures. This document proposes a standardized method for representing the results of these vetting procedures using Selective Disclosure JWT (SD-JWT). This document does not address how the KYC/KYB should be performed or what documents or processes should be used. Rather the goal of this document is to create a standardized identifier for the Vetted Entities (VE) to present that they are who they claim to be.</t>
    </section>
    <section anchor="vesper-architectural-overview">
      <name>Vesper Architectural Overview</name>
      <section anchor="introduction-to-vesper-tokens-and-trust-model">
        <name>Introduction to Vesper Tokens and Trust Model</name>
        <t>The use of Vesper Tokens in communications will allow for a trust model enabled by a three party trust system based on an agreed set of vetting policies with a set of privacy enabled features to allow for selective disclosure for communications that require authorized use of a telephone number with the ability to support use-cases that require anonymity all the way up to full disclosure of vetted persona information if that is desired. The establishment of roles that facilitate the trust of the association of a telephone number and other entity information is in the form of claims made by authoritative or identified trusted actors in the eco-system.  This document defines these roles as Claim Agents that have specific types with associated standard mandatory and optional key values.</t>
        <section anchor="key-features-of-vesper-tokens">
          <name>Key Features of Vesper Tokens</name>
          <ul spacing="normal">
            <li>
              <t>Selective Disclosure: Entities can choose which information to disclose to different parties.</t>
            </li>
            <li>
              <t>Authorized Use of Telephone Numbers: Vesper tokens ensure that only authorized parties can use telephone numbers.</t>
            </li>
            <li>
              <t>Flexible Use Cases: Vesper tokens can be used for KYC/KYB vetting, Rich Call Data (RCD), and consent claims.  New use-cases can be defined in the future.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="roles-and-responsibilities-in-the-vesper-ecosystem">
        <name>Roles and Responsibilities in the Vesper Ecosystem</name>
        <t>The trust framework defines several roles that facilitate claims about telephone numbers and other entity information. These roles, known as Claim Agents, are responsible for making authoritative claims about the subject entity (SE).</t>
        <section anchor="claim-agent-roles">
          <name>Claim Agent Roles</name>
          <ul spacing="normal">
            <li>
              <t>Vetting Claim Agent (VCA): Handles KYC/KYB vetting and establishes the SE in the ecosystem.</t>
            </li>
            <li>
              <t>Right To Use Claim Agent (RTUCA): Handles the assignment of telephone numbers to the SE.</t>
            </li>
            <li>
              <t>Rich Call Data Claim Agent (RCDCA): Provides vetting and validation of Rich Call Data claims.</t>
            </li>
            <li>
              <t>Consent Claim Agent (CCA): Handles consent claims for allowing SE's to call or message specific telephone numbers.</t>
            </li>
          </ul>
        </section>
        <section anchor="claim-agent-responsibilities">
          <name>Claim Agent Responsibilities</name>
          <t>Claim Agents make claims about the Subject Entity. These agents are registered with a Notary Agent (NA) who maintains a Claim Graph for the Subject Entities and issues transparency receipts for each claim event. Claim Agents issue SD-JWT tokens with the claims and the SE holds these SD-JWT tokens (verifiable claims) in Vesper Wallet (VW).</t>
        </section>
      </section>
      <section anchor="notary-agent-claim-graph-and-transparency-log">
        <name>Notary Agent - Claim Graph and Transparency Log</name>
        <t>In the Vesper ecosystem, Claim Agents issue claims about the Subject Entity.  To ensure trust and accountability between Claim Agents and Subject Entities, all interactions are notarized to the participants responsible by the Notary Agent, which internally operates two key services: the Claim Graph and the Transparency Log.  Importantly, these notarizations can be privacy protected using hashes or can be used for public transparency to be monitored for mis-claims made by other Subject Entities and handled through a resolution process that is eco-system specific (and not defined in this document).</t>
        <section anchor="claim-graph">
          <name>Claim Graph</name>
          <t>The Claim Graph is responsible for building and maintaining a graph of claims related to SEs. Each claim issued by a Claim Agent is added to this graph as a node, with relationships represented as edges between entities.</t>
          <ul spacing="normal">
            <li>
              <t>Snapshot Hashing: Every time a new claim is added or updated in the Claim Graph, the service creates a hash of the current snapshot of the graph. This hash serves as a unique cryptographic representation of the claim state at that moment in time.</t>
            </li>
            <li>
              <t>Transparency: The hashed snapshot is then recorded in the Transparency Log, ensuring that the claims history is transparent, immutable, and auditable. By using cryptographic hashing, the Claim Graph remains secure, and any changes to the claims can be traced and verified.</t>
            </li>
          </ul>
        </section>
        <section anchor="transparency-log">
          <name>Transparency Log</name>
          <t>The Transparency Log is part of the NA’s services and plays a crucial role in ensuring that all claims made by Claim Agents are trustworthy. It allows claims to be verifiable across different agents using cryptographic methods. Once a claim is hashed by the Claim Graph, it is added to the log, making it accessible for verification.</t>
          <ul spacing="normal">
            <li>
              <t>Receipt Issuance: After each claim is recorded, the NA issues a Receipt to the SE. This receipt includes proof that the claim has been added to the Transparency Log. The SE can then present this receipt alongside claims in SD-JWT as proof that the claims have been transparently logged.</t>
            </li>
            <li>
              <t>Interaction with Claim Agents: Claim Agents do not directly modify the Claim Graph. Instead, they interact with NA via its APIs, which serve as a wrapper around both the Claim Graph and Transparency Log. This ensures that claims are properly registered, hashed, and logged without direct manipulation of the underlying data structures.</t>
            </li>
          </ul>
        </section>
        <section anchor="claim-agents-and-privacy">
          <name>Claim Agents and Privacy</name>
          <t>An important feature of this system is its ability to protect the privacy of the SE. Claim Agents are not required to store any private data in the Claim Graph. Instead, they store only the hash of the data, which acts as a representation of the claim without exposing sensitive information.</t>
          <ul spacing="normal">
            <li>
              <t>Public vs. Private Data: If the SE has public data (e.g., a business name or logo), it can be added to the Claim Graph for greater visibility. This allows other Claim Agents to detect fraud or suspicious activity. However, private data should always remain hashed and protected unless specifically required for disclosure by the SE.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="transport-vesper-passport">
        <name>Transport - Vesper PASSporT</name>
        <t>The SE can use claims stored in their Vesper Wallet to generate a Vesper PASSporT, which includes SD-JWTs and associated NA Receipts. This Vesper PASSporT is signed by a delegate certificate and attached to communications, such as in the case of STIR.</t>
        <t>Vesper PASSporT Flow:</t>
        <ol spacing="normal" type="1"><li>
            <t>Using Vesper Wallet, SE creates a Vesper PASSporT containing claims and SD-JWTs.</t>
          </li>
          <li>
            <t>Vesper PASSporT is signed by a delegate certificate.</t>
          </li>
          <li>
            <t>The signed PASSporT is attached to a SIP identity header for verification by the destination party.</t>
          </li>
        </ol>
      </section>
      <section anchor="verification-and-proof-of-authenticity">
        <name>Verification and Proof of Authenticity</name>
        <t>The Authentication Service (AS) and the Verification Service (VS) are responsible for validating the Vesper Token and its claims.</t>
        <section anchor="as-verification">
          <name>AS Verification</name>
          <t>When the Vesper Token is created, the AS verifies its signature. The Vesper Token contains SD-JWTs (with claims) and associated NA Receipts, and its signature is signed by a delegate certificate.</t>
          <ul spacing="normal">
            <li>
              <t>Signature Verification: The AS ensures that the Vesper Token’s signature is valid and matches the certificate provided.</t>
            </li>
            <li>
              <t>Action on Failure: If the Vesper Presentation (the wrapped SD-JWTs and Receipts) is invalid, the AS will stop processing the request, ensuring that the call will not proceed under fraudulent conditions.</t>
            </li>
          </ul>
          <t>NOTE: The relationship between Vesper Wallet that creates Vesper Token and the AS in practice will be likely a trusted relationship and therefore AS may chose to trust the Vesper Token without further verification.</t>
        </section>
        <section anchor="verification">
          <name>Verification</name>
          <t>Once the Vesper Token reaches the Verification Service (VS), the token undergoes further checks to confirm its authenticity and integrity.</t>
          <ul spacing="normal">
            <li>
              <t>Payload Verification: The first step for VS is to verify the Vesper Token’s signature. This ensures that the token has not been tampered with during transit. Any modification to the payload will invalidate the signature, and the VS will reject the communication.</t>
            </li>
            <li>
              <t>SD-JWT Claim Verification: After validating the Vesper Token, the VS looks up each of the SD-JWTs associated with the claim types included in the Vesper Token. Each SD-JWT contains claims made by the Claim Agents and must be verified individually.</t>
            </li>
            <li>
              <t>Public Key Verification: The VS uses the public key provided as a JSON Web Key (JWK) to verify the signatures of the SD-JWTs. Each SD-JWT’s signature ensures that the claim data has not been altered and that the entity issuing the claim is legitimate.</t>
            </li>
          </ul>
        </section>
        <section anchor="final-trust-and-intelligence">
          <name>Final Trust and Intelligence</name>
          <t>Once the VS completes these verifications, it can trust the caller’s identity and the claims made in the Vesper Token.</t>
          <ul spacing="normal">
            <li>
              <t>Caller Trust: The successful validation of the Vesper Token and its claims allows the VS to trust that the caller is who they claim to be.</t>
            </li>
            <li>
              <t>Call Intelligence: In addition to verifying identity, the VS can use the claims enclosed within the Vesper Token for further insights. These claims may include additional information about the caller, such as their vetted identity or other metadata (e.g., business name, consent), which can be used to enhance call routing and decision-making.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>Claim Agent: An entity that is either authorized or trusted in the eco-system to make claims of persona-related information and issues verifiable selectively disclosable tokens containing the vetted claim information. A Claim Agent can be a trusted third party or a service provider that performs the vetting of persona-related information. Claim Agent is a role category where their are defined a set of specific claim agent types with associated claim attribute key values that are either required or optional by specification.</t>
      <t>Vetting Claim Agent (VCA): The Claim Agent entity that initiates and establishes a Subject Entity into the eco-system. Its role is to vet a set of claims that are related to the persona like physical address, business identifiers, contact information and other identifying information. Generally, this information is not disclosed as part of a typical communications transaction, although nothing prevents it.  However, it’s an important set of information to establish the existence and legal standing of a persona. This information is also relevant to a potential legal or policy enforcement action if that becomes required based on alleged illegal or policy violations, something the VCA would be the responsible party to facilitate.</t>
      <t>Right to Use Claim Agent (RTUCA): The Claim Agent entity that generally represents an authorized provider of telephone numbers for direct assignment.</t>
      <t>Rich Call Data Claim Agent (RCDCA): The Claim Agent entity that is responsible for vetting the Rich Call Data claims and validating they represent the Subject Entity and conform to any relevant content policies for any relying eco-systems a Vesper PASSporT token may be used.</t>
      <t>Consent Claim Agent (CCA): The Claim Agent entity that is responsible for handling and vetting consent claims made representing different called party destination numbers toward a calling party originating telephone number.  These could include consent to call/message for specific telephone numbers or consent to calls of various types that correspond to <xref target="I-D.ietf-sipcore-callinfo-spam"/> types of callers, or consent to call with robocalling, AI-enabled, or chatbot types of automated calling or messaging.</t>
      <t>Subject Entity (SE): An entity that is vetted by a Vetting Agent and holds the verifiable token containing the vetted information. The Vetting Entity can be a person or a business entity.</t>
      <t>Notary Agent (NA): The entity that maintains the Claim Graph and Transparency Log. The Notary Agent is responsible for ensuring the integrity and transparency of the claims made by the Claim Agents. The Notary Agent issues receipts for each claim event, which are used to verify the authenticity of the claims. The Notary Agent role is likely performed by a neutral party in the ecosystem.</t>
      <t>Vesper PASSporT or Token: A verifiable token that follows the definition of PASSporT in <xref target="RFC8225"/> created by a Subject Entity containing the presentation of disclosable claims for a specific relying party destination. The Vesper Token is represented as a JSON Web Token (JWT) PASSporT that contains “vesper” claims that are Selective Disclosure JWT (SD-JWT) + transparency receipts generated by the Notary Agent.</t>
    </section>
    <section anchor="vesper-achitecture">
      <name>Vesper Achitecture</name>
      <t>The Vesper architecture is designed around the concept of creating a secure Persona for each Subject Entity (SE) within an eco-system. This Persona is characterized by its verifiability, privacy-preserving nature, tamper resistance, and auditability. It enables SEs to interact with other entities confidently, knowing that their claims and credentials are cryptographically secured and independently verifiable. The architecture ensures that sensitive information is protected while still allowing for seamless, trust-based exchanges between parties.</t>
      <t>The Vesper architecture employs the following key entities to manage and maintain these secure Personas:</t>
      <ul spacing="normal">
        <li>
          <t>Subject Entities (SEs): The organizations whose claims are being issued and verified within the system.</t>
        </li>
        <li>
          <t>Claim Agents (CAs): Entities that facilitate the exchange of claims between SEs and verify the validity of these claims.</t>
        </li>
        <li>
          <t>Notary Agent (NA): A central authority that ensures the integrity, transparency, and auditability of interactions by maintaining a verifiable log of claims and transactions, ensuring tamper-proof records.</t>
        </li>
      </ul>
      <section anchor="high-level-flow">
        <name>High Level Flow</name>
        <t>The Vesper framework follows a high-level flow that involves the provisioning of the Subject Entity and the subsequent management of claims through different Claim Agents. This section outlines the primary interactions between the SE, the Vetting Claim Agent (VCA), the Right To Use Claim Agent (RTUCA), and potentially other Claim Agent services. The flow ends with the SE generating a Vesper PASSporT presentation in order to, for example, use with a STIR Authentication Service while making a phone call. This Vesper PASSporT presentation will include the relevant claims and selected disclosures intended for that call for verification by the Verification Service.</t>
        <t>This overview provides the context for more detailed explanations in subsequent sections.</t>
        <t>High-Level Flow:</t>
        <ol spacing="normal" type="1"><li>
            <t>VCA Provisions SE:
            </t>
            <ul spacing="normal">
              <li>
                <t>The SE is first vetted by the VCA, which performs KYC checks.</t>
              </li>
              <li>
                <t>Once the SE is validated, the event is captured in the Notary Agent (NA) via the Claim Graph (CG) and Transparency Service (TS).</t>
              </li>
              <li>
                <t>The SE receives an SD-JWT containing the KYC claims and a Transparency Receipt, which are stored in the Vesper Wallet (VW).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>SE Contacts RTUCA corresponding to their Telephone Number Assignment:
            </t>
            <ul spacing="normal">
              <li>
                <t>The SE interacts with the Right To Use Claim Agent (RTUCA) to obtain telephone numbers.</t>
              </li>
              <li>
                <t>The RTUCA claims and validates one or more TNs and records the event in the NA, returning an SD-JWT with the assigned TNs and a corresponding Transparency Receipt.</t>
              </li>
              <li>
                <t>The SE stores this data in the VW.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>SE Contacts RCD Claim Agent for Rich Call Data:
            </t>
            <ul spacing="normal">
              <li>
                <t>The SE contacts the Rich Call Data Claim Agent to enrich the telephone call data.</t>
              </li>
              <li>
                <t>The RCD Claim Agent verifies the SE’s claims and adds Rich Call Data to the CG.</t>
              </li>
              <li>
                <t>An SD-JWT containing the new claims and a Transparency Receipt is returned to the SE, which is stored in the VW.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>SE Makes a Phone Call:
            </t>
            <ul spacing="normal">
              <li>
                <t>When the SE makes a phone call, the Vesper Wallet builds a Vesper PASSporT by encapsulating the relevant claims (e.g., KYC, TN assignment, and RCD) into a JWT.</t>
              </li>
              <li>
                <t>The Authentication Service (AS) includes the Vesper PASSporT in the SIP header of the call.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Verification Service (VS) Verifies Vesper PASSporT:
            </t>
            <ul spacing="normal">
              <li>
                <t>The VS receives the Vesper PASSporT and verifies the token and included SD-JWTs.</t>
              </li>
              <li>
                <t>Based on the validated claims, the VS makes decisions regarding the call’s authenticity and proceeds accordingly.</t>
              </li>
            </ul>
          </li>
        </ol>
        <artwork><![CDATA[
+--------------+                    +----------+       +-----------+
|   Subject    |                    | Vetting  |       | Notary    |
|   Entity     |                    |  Claim   |       |  Agent    |
|              |                    |  Agent   |       |           |
+--------------+                    +----------+       +-----------+
      |                                  |                   |
      |<-------- SE creates account -----|                   |
      |                                  |                   |
      |----- Provides KYC values ------->|                   |
      |                                  |                   |
      |<----- KYC Validation complete ---|                   |
      |                                  |                   |
      |                                  |                   |
      |------- KYC notarization ---------------------------->|
      |                                  |                   |
      |<-- Receives KYC SD-JWT+Receipt --|                   |
      |                                  |                   |
+--------------+                    +----------+       +-----------+
| Vesper Wallet|                    | Claim    |       | Notary    |
|    (VW)      |                    |  Agents  |       |  Agent    |
+--------------+                    +----------+       +-----------+
      |                                  |                   |
      |-- Requests TN from RTUCA ------->|                   |
      |                                  |                   |
      |<--- Receives TN SD-JWT+Receipt --|                   |
      |                                  |                   |
      |-- Requests RCD Claims ---------->|                   |
      |                                  |                   |
      |<-- Receives RCD SD-JWT+Receipt --|                   |
      |                                  |                   |
+--------------+                    +----------+       +-----------+
|  Phone Call  |                    | Verifier |       |  Verifier |
| (Vesper PASS)|                    | Service  |       |  Service  |
+--------------+                    +----------+       +-----------+
      |                                  |                   |
      |- Vesper PASSporT in SIP Header ->|                   |
      |                                  |                   |
      |                                  |<---- Verified --- |
]]></artwork>
      </section>
      <section anchor="notary-agent-flows">
        <name>Notary Agent Flows</name>
        <t>The Notary Agent (NA) is responsible for maintaining the integrity and transparency of Subject Entity (SE) claims through the Claim Graph (CG) and Transparency Log. This section provides an in-depth look at how the NA processes claims, records changes to the Claim Graph, and ensures verifiable, immutable records in the Transparency Log. It also explores how Claim Agents (CAs) interact with the NA, and how trust is established across the Vesper framework.</t>
        <section anchor="claim-graph-1">
          <name>Claim Graph</name>
          <t>The CG is a dynamic structure that represents the identity of an SE and tracks all claims related to that identity. Each SE is represented as a node (or IdentityRoot), and additional claims are linked to this root through edges. These claims can represent actions such as KYC validation, telephone number assignments, and rich call data.</t>
          <t>Note: While the Claim Graph is conceptually a graph, its internal representation can be stored as JSON objects in a document database or tables in SQL database for performance optimization.</t>
        </section>
        <section anchor="merkle-tree-and-transparency-log">
          <name>Merkle Tree and Transparency Log</name>
          <t>The Transparency Log is implemented as a Merkle Tree to provide an immutable and cryptographically secure log of claim changes. Each change to the SE’s identity or associated claims results in a new “leaf” being added to the Merkle Tree. This tree structure enables the creation of Notary Receipts, which are verifiable cryptographic proofs that a particular claim was recorded at a specific time.</t>
        </section>
        <section anchor="vetting-claim-agent-vca-provisions-new-subject-entity">
          <name>Vetting Claim Agent (VCA) Provisions New Subject Entity</name>
          <t>The process begins when the Vetting Claim Agent provisions a new SE. The VCA performs KYC checks on the SE and records the SE’s identity in the Claim Graph. The NA creates a new IdentityRoot node for the SE, representing their entity in the system.</t>
          <t>Claim Graph Structure (Entity Creation):</t>
          <artwork><![CDATA[
[entity_id]   --->    {
                        node_type: IdentityRoot,
                        entity_id: 12345,
                        attributes: { ... }
                      }

Transparency Log:
__________________
Tree:        h(d0)
             /
           d0 (Initial creation event)
]]></artwork>
          <t>At this point, the SE is issued an SD-JWT containing their KYC claims and a Notary Receipt, which they store in their Vesper Wallet (VW).</t>
        </section>
        <section anchor="vetting-claim-agent-adds-kyc-claims">
          <name>Vetting Claim Agent Adds KYC Claims</name>
          <t>After creating the SE, the VCA adds the KYC claims to the Claim Graph, linking them to the IdentityRoot node. These KYC claims are hashed for privacy.</t>
          <t>Claim Graph Structure (Adding KYC Claims):</t>
          <artwork><![CDATA[
[entity_id] --- has_kyc ---> [hashed KYC data]

Internal Representation:
{
  node_type: IdentityRoot,
  entity_id: 12345,
  attributes: { ... },
  has_kyc: { hashed_data }
}

Transparency Log:
__________________
Tree:
       h01
      /   \
    h0    h1

Leaves:
   d0    d1 (KYC claims added)
]]></artwork>
          <t>The KYC claims are stored in the Transparency Log, and the SE receives an updated SD-JWT with the KYC claims, along with a Notary Receipt that proves the claims have been recorded immutably. This SD-JWT is presented as proof of identity and KYC verification in subsequent interactions with Claim Agents. The x-vesper-kyc header is used to present this SD-JWT to future Claim Agents.</t>
        </section>
        <section anchor="claim-agent-adds-telephone-number-tn-assignment">
          <name>Claim Agent Adds Telephone Number (TN) Assignment</name>
          <t>The SE contacts the Right To Use Claim Agent (RTUCA) to request the assignment of one or more telephone numbers (TNs). The RTUCA verifies the SE’s identity using the KYC SD-JWT in the x-vesper-kyc header to retrieve the SE’s entity_id. After validation, the RTUCA assigns a telephone number to the SE and updates the Claim Graph.</t>
          <t>Claim Graph Structure (Adding TN Assignment):</t>
          <artwork><![CDATA[
[TN] <- assigned_tn -- [entity_id] -- has_kyc -> [hashed KYC data]

Internal Representation:
{
  node_type: IdentityRoot,
  entity_id: 12345,
  attributes: { ... },
  has_kyc: { hashed_data },
  assigned_tn: { telephone_number }
}

Transparency Log:
_________________
Tree:
       h02
      /   \
    h01   h2
   /   \
 h0    h1

Leaves:
   d0    d1    d2 (TN assignment added)
]]></artwork>
          <t>The TN assignment event is logged in the Transparency Log, and the SE receives an SD-JWT containing the telephone number Right to Use claims and a new Notary Receipt. This SD-JWT is also stored in the SE’s Vesper Wallet for future use.</t>
        </section>
        <section anchor="claim-agent-adds-rich-call-data-rcd">
          <name>Claim Agent Adds Rich Call Data (RCD)</name>
          <t>Next, the SE contacts the Rich Call Data (RCD) Claim Agent to enrich the SE’s telephone call data. The RCD Claim Agent verifies the SE’s identity using the KYC SD-JWT and adds the RCD claims to the Claim Graph.</t>
          <t>Claim Graph Structure (Adding RCD Data):</t>
          <artwork><![CDATA[
[TN] <- assigned_tn -- [entity_id] -- has_kyc -> [hashed KYC data]
                            |
                         has_rcd
                            |
                          [RCD]

Internal Representation:
{
  node_type: IdentityRoot,
  entity_id: 12345,
  attributes: { ... },
  has_kyc: { hashed_data },
  assigned_tn: { telephone_number },
  has_rcd: { rich_call_data }
}

Transparency Log:
_________________
Tree:
          hroot
         /    \
      h01     h23
     /   \   /   \
   h0    h1 h2   h3

Leaves:
   d0    d1   d2   d3 (RCD data added)
]]></artwork>
          <t>Once again, this event is recorded in the Transparency Log, and the SE receives an updated SD-JWT with the RCD claims and a Notary Receipt. The SE stores this SD-JWT in their Vesper Wallet for future verification.</t>
        </section>
        <section anchor="using-sd-jwt-for-trust">
          <name>Using SD-JWT for Trust</name>
          <t>Each step in the claim process relies on the SD-JWT issued by the Issuing Agent and passed via the x-vesper-kyc header. Claim Agents can trust the SE based on the following process:</t>
          <ol spacing="normal" type="1"><li>
              <t>The SE presents the KYC SD-JWT and receipt to the Claim Agent in the API request.</t>
            </li>
            <li>
              <t>The Claim Agent verifies the SD-JWT signature and checks the Transparency Receipt to confirm that the KYC event was logged and notarized by the NA.</t>
            </li>
            <li>
              <t>Once verified, the Claim Agent can trust the SE’s identity and entity_id, allowing further claims (such as TN assignment or RCD claims) to be added securely.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="notary-agent-api">
        <name>Notary Agent API</name>
        <t>The Notary Agent (NA) exposes a set of APIs that allow Claim Agents and other authorized participants in the Vesper ecosystem to interact with the Claim Graph (CG) and the Transparency Log. These APIs are designed to provide secure, auditable interactions for creating entities, adding claims, and verifying Notary Receipts. This section outlines the key APIs available for interacting with the NA and provides an overview of their functionality.</t>
        <section anchor="create-subject-entity-se-api">
          <name>Create Subject Entity (SE) API</name>
          <t>This API is used by a Claim Agent, generally always a Vetting Claim Agent (VCA), to provision a new Subject Entity (SE) in the system. The SE is created in the Claim Graph, and a record is added to the Transparency Log.</t>
          <t>Endpoint:
POST /na/entity/create</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "entity_data": {
    "entity_name": "Company A",
    "address": "123 Main St",
    "contact_email": "info@companya.com",
    "contact_phone": "+1234567890"
  },
  "claim_agent": {
    "id": "vca-001",
    "public_key": "public-key-vca-001"
  }
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "notary_receipt": "NotaryReceipt1234",
  "sd_jwt": "eyJhbGciOi..."
}
]]></artwork>
          <t>entity_data: Information about the SE being created.<br/>
claim_agent: The VCA creating the SE, including its ID and public key.<br/>
entity_id: The unique identifier assigned to the SE.<br/>
notary_receipt: A cryptographic proof that the entity creation was logged in the Transparency Log.<br/>
sd_jwt: The SD-JWT containing the KYC claims and the entity_id for the SE.<br/></t>
        </section>
        <section anchor="add-kyc-claims-api">
          <name>Add KYC Claims API</name>
          <t>Once an SE has been created, the Vetting Claim Agent uses this API to add KYC claims to the Claim Graph. This API also records the event in the Transparency Log and issues a new Notary Receipt.</t>
          <t>Endpoint:
POST /na/entity/{entity_id}/kyc</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "kyc_data": {
    "full_name": "John Doe",
    "document_id": "ID123456789",
    "issue_date": "2023-01-15"
  },
  "issuing_agent": {
    "id": "vca-001",
    "signature": "signature-of-kyc-data"
  }
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "notary_receipt": "NotaryReceipt5678",
  "sd_jwt": "eyJhbGciOi..."
}
]]></artwork>
          <t>kyc_data: The KYC claims (hashed for privacy) being added to the SE’s Claim Graph.<br/>
claim_agent: Information about the VCA making the request, including a signature over the data.<br/>
notary_receipt: The Notary Receipt showing that the KYC claims were recorded.<br/>
sd_jwt: An SD-JWT containing the KYC claims and the entity_id.<br/></t>
        </section>
        <section anchor="add-telephone-number-tn-assignment-api">
          <name>Add Telephone Number (TN) Assignment API</name>
          <t>The Right To Use Claim Agent (RTUCA) uses this API to assign one or more telephone numbers to an SE. The event is logged in the Transparency Log, and an updated SD-JWT is issued to the SE.</t>
          <t>Endpoint:
POST /na/entity/{entity_id}/tn/assign</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "tn_data": {
    "telephone_numbers": ["+1234567890", "+9876543210"]
  },
  "claim_agent": {
    "id": "rtuca-001",
    "public_key": "public-key-ca-001",
    "signature": "signature-of-tn-data"
  }
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "notary_receipt": "NotaryReceipt7890",
  "sd_jwt": "eyJhbGciOi..."
}
]]></artwork>
          <t>tn_data: The telephone numbers being assigned to the SE.<br/>
claim_agent: Information about the RTUCA making the request.<br/>
notary_receipt: Proof that the TN assignment was recorded in the Transparency Log.<br/>
sd_jwt: An updated SD-JWT containing the assigned TN claims and the entity_id.<br/></t>
        </section>
        <section anchor="add-rich-call-data-rcd-claims-api">
          <name>Add Rich Call Data (RCD) Claims API</name>
          <t>The Rich Call Data (RCD) Claim Agent uses this API to add RCD claims to the SE’s Claim Graph. The RCD data is linked to the SE’s telephone numbers, and the event is logged in the Transparency Log.</t>
          <t>Endpoint:
POST /na/entity/{entity_id}/rcd</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "rcd_data": {
    "call_reason": "Business Inquiry",
    "rcd": {
      "caller_name": "Company A",
      "caller_location": "123 Main St"
    }
  },
  "claim_agent": {
    "id": "rcdca-001",
    "public_key": "public-key-ca-002",
    "signature": "signature-of-rcd-data"
  }
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "notary_receipt": "NotaryReceipt8901",
  "sd_jwt": "eyJhbGciOi..."
}
]]></artwork>
          <t>rcd_data: The RCD claims being added to the SE’s identity.<br/>
claim_agent: Information about the RCD Claim Agent making the request.<br/>
notary_receipt: The updated Notary Receipt showing that the RCD claims were recorded.<br/>
sd_jwt: An updated SD-JWT containing the RCD claims and the entity_id.<br/></t>
        </section>
        <section anchor="verify-notary-receipt-api">
          <name>Verify Notary Receipt API</name>
          <t>Any verifier can use this API to check the validity of a Notary Receipt. This allows third parties (such as Verification Services) to confirm that a claim was logged in the Transparency Log.</t>
          <t>Endpoint:
POST /na/verify/receipt</t>
          <t>Request:</t>
          <artwork><![CDATA[
{
  "receipt": "NotaryReceipt1234"
}
]]></artwork>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "status": "verified",
  "log_entry": {
    "entity_id": "12345",
    "timestamp": "2024-09-09T12:00:00Z",
    "claims": {
      "kyc": "verified",
      "tn": "verified",
      "rcd": "verified"
    }
  }
}
]]></artwork>
          <t>receipt: The Notary Receipt being verified.<br/>
status: Whether the receipt is valid and recorded in the Transparency Log.<br/>
log_entry: Details about the entity_id, timestamp, and verified claims.<br/></t>
        </section>
        <section anchor="retrieve-entity-history-api">
          <name>Retrieve Entity History API</name>
          <t>This API allows authorized participants to retrieve the entire history of an SE from the Transparency Log, including all claims added over time.</t>
          <t>Endpoint:
GET /na/entity/{entity_id}/history</t>
          <t>Response:</t>
          <artwork><![CDATA[
{
  "entity_id": "12345",
  "history": [
    {
      "timestamp": "2024-09-09T12:00:00Z",
      "event": "Entity Created",
      "notary_receipt": "NotaryReceipt1234"
    },
    {
      "timestamp": "2024-09-10T10:00:00Z",
      "event": "KYC Claims Added",
      "notary_receipt": "NotaryReceipt5678"
    },
    {
      "timestamp": "2024-09-11T11:00:00Z",
      "event": "TN Assignment Added",
      "notary_receipt": "NotaryReceipt7890"
    }
  ]
}
]]></artwork>
          <t>entity_id: The ID of the SE whose history is being retrieved.<br/>
history: A list of all events associated with the SE, including timestamps and Notary Receipts.<br/></t>
        </section>
      </section>
      <section anchor="vesper-wallet-flows">
        <name>Vesper Wallet Flows</name>
        <t>The Vesper Wallet manages claims, cryptographic keys, and the construction of Vesper PASSporTs. It securely stores all claims (in the form of SD-JWTs) along with the corresponding Notary Receipts, which prove that the claims have been notarized by the Notary Agent (NA). Additionally, the Vesper Wallet handles the generation and management of key pairs used for signing PASSporTs and requesting delegate certificates.</t>
        <section anchor="vesper-wallet-key-pair-generation">
          <name>Vesper Wallet Key Pair Generation</name>
          <t>The Vesper Wallet creates and manages a public/private key pair. This key pair is used for two purposes:</t>
          <ul spacing="normal">
            <li>
              <t>Requesting Delegate Certificate: The public key is sent to a Certificate Authority (CA) to obtain a Delegate Certificate, which authorizes the SE to use specific telephone numbers (TNs).</t>
            </li>
            <li>
              <t>Signing Vesper PASSporTs: The private key is used to sign Vesper PASSporTs, which are cryptographically bound to the SE’s claims.</t>
            </li>
          </ul>
          <t>Key Pair Generation Flow:</t>
          <artwork><![CDATA[
+-------------------+                 +-----------------+
|  Vesper Wallet    |                 | Certificate     |
|   (VW)            |                 |    Authority    |
+-------------------+                 +-----------------+
      |                                        |
      |<-- Create public/private key pair      |
      |                                        |
      |---> Request Delegate Certificate  ---->|
      |        (Includes public key)           |
      |                                        |
      |<---- Delegate Certificate issued ------|
      |                                        |
]]></artwork>
        </section>
        <section anchor="storage-of-sd-jwts-and-notary-receipts">
          <name>Storage of SD-JWTs and Notary Receipts</name>
          <t>The Vesper Wallet stores SD-JWTs for each claim type, along with the corresponding Notary Receipts. These SD-JWTs represent claims such as KYC, telephone number assignment, and rich call data (RCD). The Notary Receipts are proof that each claim has been logged in the Transparency Log by the NA.</t>
          <t>SD-JWT Storage Structure:</t>
          <artwork><![CDATA[
+------------------+       +-----------------+
|   Vesper Wallet  |       |  Claims Storage |
+------------------+       +-----------------+
      |                             |
      |--> Stores SD-JWTs --------->|
      |      + Notary Receipts      |
      |                             |
      +-----------------------------+
]]></artwork>
          <t>Each claim stored in the Vesper Wallet contains:</t>
          <ul spacing="normal">
            <li>
              <t>SD-JWT: The selective disclosure JWT containing the claim.</t>
            </li>
            <li>
              <t>Notary Receipt: Proof from the Transparency Log that the claim was notarized.</t>
            </li>
          </ul>
        </section>
        <section anchor="building-the-vesper-token">
          <name>Building the Vesper Token</name>
          <t>When the SE needs to present claims (e.g., during a phone call), the Vesper Wallet constructs a Vesper Token, which serves as a presentation of the claims to the Verification Service (VS). The Vesper Token contains:</t>
          <ol spacing="normal" type="1"><li>
              <t>Claim Type: Identifies the type of claim (e.g., KYC, TN, RCD).</t>
            </li>
            <li>
              <t>SD-JWT: The SD-JWT for the claim, containing selectively disclosable claims.</t>
            </li>
            <li>
              <t>Notary Receipt: The Notary Receipt that verifies the claim was recorded in the Transparency Log.</t>
            </li>
          </ol>
          <t>Vesper Token Structure:</t>
          <artwork><![CDATA[
{
  ...
  "claims": [
    {
      "type": "vca",
      "sd_jwt": "eyJhbGciOi...",
      "receipt": "NotaryReceipt1234"
    },
    {
      "type": "tnca",
      "sd_jwt": "eyJhbGci...",
      "receipt": "NotaryReceipt5678"
    },
    {
      "type": "rcdca",
      "sd_jwt: "eyJhbGci...",
      "receipt": "NotaryReceipt8901"
    }
  ]
  ...
}
]]></artwork>
          <t>Once the Vesper Token is built, it is included in a Vesper PASSporT. The Vesper PASSporT is a specialized form of PASSporT that encapsulates multiple Vesper Tokens and is signed by the SE’s private key (the same private key associated with the Delegate Certificate).</t>
        </section>
        <section anchor="signing-the-vesper-passport">
          <name>Signing the Vesper PASSporT</name>
          <t>The Vesper PASSporT is signed using the SE’s private key, which is associated with the Delegate Certificate. This signature binds the claims and their associated receipts to the SE and ensures that the Vesper PASSporT can be trusted by the Verification Service (VS).</t>
          <t>Signing the Vesper PASSporT:</t>
          <artwork><![CDATA[
+-------------------+       +----------------------+
|  Vesper Wallet    |       | Delegate Certificate |
+-------------------+       +----------------------+
      |                                |
      |<-- Uses private key to sign  --|
      |   Vesper PASSporT              |
      |                                |
]]></artwork>
          <t>The signed Vesper PASSporT is then sent to the Authentication Service (AS), which includes it in the SIP header during a call.</t>
        </section>
        <section anchor="passing-the-vesper-passport-to-the-authentication-service-as">
          <name>Passing the Vesper PASSporT to the Authentication Service (AS)</name>
          <t>Once the Vesper PASSporT is signed, it is passed to the Authentication Service (AS). The AS inserts the Vesper PASSporT into the SIP header, which is transmitted as part of the phone call. This allows the Verification Service (VS) to receive the Vesper PASSporT for validation.</t>
          <t>Sending Vesper PASSporT:</t>
          <artwork><![CDATA[
+-------------------+       +----------------------+
|  Vesper Wallet    |       | Authentication       |
|   (VW)            |       |     Service (AS)     |
+-------------------+       +----------------------+
      |                                 |
      |-- Pass Vesper PASSporT -------->|
      |      to AS                      |
      |                                 |
]]></artwork>
        </section>
        <section anchor="verification-of-vesper-passport-by-vs">
          <name>Verification of Vesper PASSporT by VS</name>
          <t>When the Verification Service (VS) receives the Vesper PASSporT, it performs several verification steps to ensure the validity of the claims:</t>
          <ol spacing="normal" type="1"><li>
              <t>Signature Verification: The VS checks the signature on the Vesper PASSporT using the public key from the Delegate Certificate to confirm that the SE legitimately signed the token.</t>
            </li>
            <li>
              <t>SD-JWT Verification: The VS goes through the SD-JWTs inside the Vesper PASSporT and verifies their individual signatures. Each SD-JWT contains a JWK (JSON Web Key) representing the public key used to sign the claim.</t>
            </li>
          </ol>
          <t>JWK Claim Example:</t>
          <artwork><![CDATA[
{
  "alg": "RS256",
  "typ": "JWT",
  "jwk": {
    "kty": "RSA",
    "kid": "key-id",
    "n": "...",
    "e": "..."
  }
}
]]></artwork>
          <ol spacing="normal" type="1"><li>
              <t>Receipt Validation: For each SD-JWT, presence of Notary Receipt should be sufficient to accept the claims.  However, VS may optionally choose to verify the Notary Receipts against the Transparency Log to ensure that the claims were notarized by the NA.  This step would be done out of the call path in different process or service.  If the receipt is not valid, the VS will put the Vesper PASSporT claims on the black list for the future calls.</t>
            </li>
          </ol>
          <t>Verification Process:</t>
          <artwork><![CDATA[
+-------------------+        +---------------------+
| Verification      |        |  Transparency Log   |
|  Service (VS)     |        |                     |
+-------------------+        +---------------------+
      |                                 |
      |----> Verifies Vesper PASSporT   |
      |     signature (Delegate Cert)   |
      |                                 |
      |--> Verifies SD-JWTs signatures  |
      |                                 |
      |--- Validates Notary Receipts -->|
      |                                 |
]]></artwork>
          <t>Once the Vesper PASSporT and its claims are verified, the VS can make decisions based on the presented claims, such as authenticating the call and allowing it to proceed.</t>
        </section>
      </section>
    </section>
    <section anchor="the-vesper-passport">
      <name>The “vesper” PASSporT</name>
      <t>A Vesper PASSporT introduces a mechanism for the verification of provable claims based on third party validation and vetting of authorized or provable information that the verifier can have greater trust because through the vesper PASSporT and associated claims there is a signed explicit relationship with two important concepts in the vesper framework:</t>
      <ul spacing="normal">
        <li>
          <t>the Claim Agent that is known to be a valid participant in the vesper framework and has a type association with the claims being made</t>
        </li>
        <li>
          <t>the transparency receipt created by the Notary Agent representing the time and claim assertion event recorded</t>
        </li>
      </ul>
      <t>The Vesper PASSporT is a PASSporT as defined in <xref target="RFC8225"/> which is a JSON Web Token <xref target="RFC7519"/> and upon creation should include the standard PASSporT claims including the “orig” and “dest” and “iat” claims required for replay attack protection. It <bcp14>MUST</bcp14> include a PASSporT type, “ppt”, with the value of the string “vesper” in the protected header of the PASSporT.
A Vesper PASSporT, as can any PASSporT, can contain any claims that a relying party verification service might understand, but the intention of the Vesper framework is that a Vesper PASSporT contain one or more “vesper” claim objects, defined in the “Vesper Claims” section.</t>
      <section anchor="compact-form-and-other-representations-of-vesper-information">
        <name>Compact Form and Other Representations of Vesper Information</name>
        <t>The use of the compact form of PASSporT is not specified for a “vesper” PASSporT primarily because generally or specifically when using the <xref target="RFC8224"/> defined identity header field as the transport of a “vesper” PASSporT there <bcp14>MUST NOT</bcp14> be any corresponding vesper information or claims provided that are unprotected or not signed to validate it's issuer in SIP <xref target="RFC3261"/> or SIP header fields, nor should there be due to the trusted intent of "vesper" claims or "vesper" PASSporTs. "Vesper" claims and PASSporTs are intended to only be used with the identity header field defined in <xref target="RFC8224"/>. Other uses may be considered but <bcp14>MUST</bcp14> consider the use of digital signatures to tie responsible parties and issuers to vesper related information.</t>
      </section>
    </section>
    <section anchor="vesper-claims">
      <name>Vesper Claims</name>
      <t>A Vesper Claim is defined as a JWT claim <xref target="RFC7519"/> JSON object with a claim key that is the string “vesper” and with a claim value that is a JSON object containing the following key values:</t>
      <ul spacing="normal">
        <li>
          <t>a “type” key with the claim value as the string that defines the claim agent type defined in the “Claim Agent” section of this document or future claim agent types defined and registered in claim agent IANA registry</t>
        </li>
        <li>
          <t>a “claim-token” key with a claim value of the SD-JWT <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/> which represents the actual signed claims from the Claim Agent and defined in the section “Vesper Claim SD-JWT”</t>
        </li>
        <li>
          <t>a “receipt” key with the claim value of the Signed Vesper Timestamp the Claim Agent received from the Notary Agent defined in the “Signed Vesper Timestamp” section of the document.</t>
        </li>
      </ul>
      <section anchor="vesper-claim-sd-jwt-selective-disclosure-json-web-tokens">
        <name>Vesper Claim SD-JWT (Selective Disclosure JSON Web Tokens)</name>
        <t>This section defines the vesper claims object as a SD-JWT, defined in <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/>. The claim and issuance process and disclosure of information closely follows the SD-JWT Issuance and Presentation Flow, Disclosure and Verification, and more generally the three-party model (i.e. Issuer, Holder, Verifier) defined in SD-JWT.  The Issuer in the context of the vesper token is the Claim Agent, the Holder corresponds to the Subject Entity, and the Verifier is the the receiver of the Vesper Claim, which in the context of this document would be contained in a Vesper Claim object that is signed inside of a Vesper PASSporT.</t>
      </section>
      <section anchor="sd-jwt-and-disclosures">
        <name>SD-JWT and Disclosures</name>
        <t>SD-JWT is a digitally signed JSON document containing digests over the selectively disclosable claims with the Disclosures outside the document. Disclosures can be omitted without breaking the signature, and modifying them can be detected. Selectively disclosable claims can be individual object properties (name-value pairs) or array elements. When presenting an SD-JWT to a Verifier, the Holder only includes the Disclosures for the claims that it wants to reveal to that Verifier. An SD-JWT can also contain clear-text claims that are always disclosed to the Verifier.</t>
        <t>To disclose to a Verifier a subset of the SD-JWT claim values, a Holder sends only the Disclosures of those selectively released claims to the Verifier as part of the SD-JWT. The use of Key Binding is an optional feature.</t>
      </section>
      <section anchor="vesper-claim-sd-jwt-data-formats">
        <name>Vesper Claim SD-JWT Data Formats</name>
        <t>An SD-JWT is composed of</t>
        <ul spacing="normal">
          <li>
            <t>an Claim Agent signed JWT, and</t>
          </li>
          <li>
            <t>zero or more Disclosures.</t>
          </li>
        </ul>
        <t>The serialized format for the SD-JWT is the concatenation of each part delineated with a single tilde (‘~’) character as follows:</t>
        <artwork><![CDATA[
<Issuer-signed JWT>~<Disclosure 1>~<Disclosure 2>~...~<Disclosure N>~
]]></artwork>
        <t>The payload of a vesper token as an SD-JWT is a JSON object according to the following rules:</t>
        <t>The payload <bcp14>MAY</bcp14> contain the _sd_alg key described in Section 5.1.1 of <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/>.
The payload <bcp14>MAY</bcp14> contain one or more digests of Disclosures to enable selective disclosure of the respective claims, created and formatted as described in Section 5.2.
The payload <bcp14>MAY</bcp14> contain one or more decoy digests to obscure the actual number of claims in the SD-JWT, created and formatted as described in Section 5.2.5.
The payload <bcp14>MAY</bcp14> contain one or more non-selectively disclosable claims.
The payload <bcp14>MAY</bcp14> contain the Holder’s public key(s) or reference(s) thereto, as explained in Section 5.1.2.
The payload <bcp14>MAY</bcp14> contain further claims such as iss, iat, etc. as defined or required by the application using SD-JWTs.</t>
        <t>In order to represent the vetted claim information about a VE. The SD-JWT <bcp14>MUST</bcp14> include the following claims:</t>
        <t>iss: Issuer, the Claim Agent.
sub: Subject, the subject entity represented by a unique entity-id
iat: Issuance timestamp.
exp: Expiry timestamp.
claim-data-hash: Hash of the claim data.
transparency-receipt: Transparency receipt issued by the transparency service.  (SVCT)
(optional) cnf: Public key of the Subject Entity, only if key binding is required, defined in <xref target="RFC7800"/></t>
      </section>
    </section>
    <section anchor="claim-agents">
      <name>Claim Agents</name>
      <t>Claim Agents are entities that act as issuers in the three party trust model, but generally validate information provided by a Subject Entity via either checking an authorized source or via a vetting procedure.  The details of either of these processes are very likely application or jurisdiction specific and should follow an eco-system specific set of policies and therefore are out-of-scope of this document.</t>
      <t>There are different types of claims that can be validated on behalf of a subject entity, but specific to telephone number identities and the entities that are assigned the right to use telephone numbers and more generally the subject and focus of this document there are two required claim types defined in this document and two optional supplemental claim types defined in this document.  It is anticipated that future specifications may define new claim types with additional relevant information that requires trust and validation and therefore an IANA registry for Vesper Claim Agent types is setup to register unique type indicators.</t>
      <section anchor="claim-agent-types-and-claim-values">
        <name>Claim Agent Types and Claim Values</name>
        <t>Each Claim Agent Type has a corresponding unique string that uniquely identifies a Claim Agent as a particular type and the associated claim object generated by a claim agent to include defined set of claim key values that include both required and optional key values.</t>
        <section anchor="vetting-claim-agent-vca">
          <name>Vetting Claim Agent - “vca”</name>
          <t>The Vetting Claim Agent is a required claim agent data type and is also the first claim that <bcp14>MUST</bcp14> be established to establish a globally unique entity-id to represent the Subject Entity in the Notary Agent uniquely.</t>
          <t>The Vetting Claim object is defined to include the following key values in the claim object:</t>
          <artwork><![CDATA[
+---------------------+-------------+------------------------------+
| Claim Info Key      | Value Type  | Value Description            |
+---------------------+-------------+------------------------------+
| address             | JSON object |                              |
+---------------------+-------------+------------------------------+
| street_address      | String      |                              |
| locality            | String      |                              |
| region              | String      |                              |
| country             | String      |                              |
| postal_code         | String      |                              |
+---------------------+-------------+------------------------------+
| contact_given_name  | String      |                              |
| contact_family_name | String      |                              |
| contact_email       | String      |                              |
| contact_phone_num   | String      |                              |
+---------------------+-------------+------------------------------+
| business_ids        | JSON Array  |                              |
+---------------------+-------------+------------------------------+
| EIN                 | String      |                              |
+---------------------+-------------+------------------------------+
]]></artwork>
        </section>
        <section anchor="right-to-use-claim-agent-rtuca">
          <name>Right to Use Claim Agent - “rtuca”</name>
          <t>The Right to Use Claim Agent is a required claim agent data type and is tied to a telephone number service provider or Responsible Organization that is authorized to assign telephone numbers. The Subject Entity has a business relationship with their telephone number provider that also either directly or through a relationship with a Claim Agent can validate the assigned Telephone Number.</t>
          <t>Note: the telephone number service provider also should provide the mechanism to provide a delegate certificate with the telephone number resource as part of the TNAuthList.</t>
          <t>The Vetting Claim object is defined to include the following key values in the claim object:</t>
          <artwork><![CDATA[
+---------------------+-------------+------------------------------+
| Claim Info Key      | Value Type  | Value Description            |
+---------------------+-------------+------------------------------+
| telephone_num       | Value Array | Array of e.164 Strings       |
+---------------------+-------------+------------------------------+
]]></artwork>
        </section>
        <section anchor="rich-call-data-claim-agent-rcdca">
          <name>Rich Call Data Claim Agent - “rcdca”</name>
          <t>The Rich Call Data Claim Agent is an optional claim agent data type and is tied to Rich Call Data as defined in <xref target="I-D.ietf-stir-passport-rcd"/>.</t>
          <t>The Rich Call Data Claim object is defined to include the following key values in the claim object:</t>
          <artwork><![CDATA[
+---------------------+-------------+------------------------------+
| Claim Info Key      | Value Type  | Value Description            |
+---------------------+-------------+------------------------------+
| rcd Array           | JSON Array  | Array of rcd claims objects  |
+---------------------+-------------+------------------------------+
| rcd                 | JSON Object | rcd claim                    |
| rcdi                | JSON Object | rcdi claim                   |
| crn                 | JSON Object | call reason claim            |
+---------------------+-------------+------------------------------+
]]></artwork>
        </section>
        <section anchor="consent-claim-agent-cca">
          <name>Consent Claim Agent - “cca”</name>
          <t>The Consent Claim Agent is an optional claim agent data type and is tied to a consent assertion associated to a destination telephone number.</t>
          <t>The Consent Claim object is defined to include the following key values in the claim object:</t>
          <artwork><![CDATA[
+---------------------+-------------+------------------------------+
| Claim Info Key      | Value Type  | Value Description            |
+---------------------+-------------+------------------------------+
| consent_assertion   | JSON Array  | Array consent_assertion objs |
+---------------------+-------------+------------------------------+
| consent_type        | String      | consent_type                 |
| destination_tn      | e.164 array | array of destination tns     |
+---------------------+-------------+------------------------------+
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="vesper-passport-token-as-a-wrapper-for-multiple-vesper-claims-presentation">
      <name>Vesper PASSporT Token as a wrapper for Multiple Vesper Claims Presentation</name>
      <t>A Subject Entity (SE), acting as the Holder of multiple Vesper claims as SD-JWT + reciepts, may need to present a combination of these tokens to satisfy various verification requirements in a single interaction. For instance, in the STIR ecosystem, the SE might first present a vetting Vesper claim to a Telephone Number Service Provider (TNSP) to prove its identity. Once trusted, the TNSP issues a Right To Use (RTU) Vesper token for a specific Telephone Number (TN) and associated Rich Call Data (RCD). The SE can then present both the vetting and RTU Vesper claims to the AS when signing a call.</t>
      <section anchor="structure-of-multiple-vesper-claim-presentation">
        <name>Structure of multiple Vesper Claim Presentation</name>
        <t>When creating a multiple Vesper Claim presentation, the SE assembles a package that may contain:</t>
        <ol spacing="normal" type="1"><li>
            <t>Multiple Base SD-JWTs: The core JWTs from each Vesper token (e.g., KYC/KYB and RTU), representing the vetted claims.</t>
          </li>
          <li>
            <t>Disclosures: The selectively disclosable claims from each token that are relevant to the verifier.</t>
          </li>
        </ol>
        <t>The presentation package is composed as follows:</t>
        <artwork><![CDATA[
<SD-JWT-1>~<Disclosure 1-1>~<Disclosure 1-2>~...<SD-JWT-2>~
  <Disclosure 2-1>~<Disclosure 2-2>~
]]></artwork>
        <t>In this format:</t>
        <ul spacing="normal">
          <li>
            <t>&lt;SD-JWT-1&gt; and &lt;SD-JWT-2&gt; represent the KYC/KYB and RTU Vesper tokens, respectively.</t>
          </li>
          <li>
            <t>&lt;Disclosure 1-1&gt;, &lt;Disclosure 1-2&gt;, etc., represent selectively disclosed claims from each token.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="preventing-replay-attacks">
      <name>Preventing Replay Attacks</name>
      <t>A replay attack occurs when a malicious actor intercepts a valid token or message and reuses it to gain unauthorized access or perform unauthorized actions. In the context of Vesper tokens, this could involve reusing a token or presentation package to fraudulently sign calls or access services. To address the potential replay attack issue in the Vesper token ecosystem, JWT ID (JTI) claim is used.</t>
      <section anchor="mitigation-strategy-jwt-id-jti-claim">
        <name>Mitigation Strategy - JWT ID (JTI) Claim</name>
        <ul spacing="normal">
          <li>
            <t>Description: The JTI claim is a unique identifier for each JWT. This identifier ensures that each token is distinct, even if it contains the same claims. The JTI can be used by the verifier to track tokens and detect if the same token is being reused maliciously.</t>
          </li>
          <li>
            <t>Implementation:  </t>
            <ul spacing="normal">
              <li>
                <t>When a Vesper token (SD-JWT) is issued, the Claim Agent includes a unique jti value in the JWT payload.</t>
              </li>
              <li>
                <t>Verifiers, such as the AS, should store recent JTI values temporarily (e.g., in a cache) to detect if the same token is being presented multiple times within a short period. This prevents replay attacks using old tokens.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Example:</t>
        <artwork><![CDATA[
{
  "iss": "https://vetting-claim-agent.example.com",
  "sub": "Business_42",
  "iat": 1683000000,
  "exp": 1883000000,
  "jti": "unique-token-id-12345",
  ...
}
]]></artwork>
      </section>
      <section anchor="example-issuance">
        <name>Example Issuance</name>
        <t>The Issuer is using the following input claim set:</t>
        <artwork><![CDATA[
{
  "sub": "Business_42",
  "telephone_number_rtu": [
    +18001231234,
    +18881231234
  ],
  "rcd": [
    {"nam":"Business_42","icn":"https://example.com/logo.png"}
  ]
  "business_ids": [
    {"EIN":"123456789"}
  ]
  "address": {
    "street_address": "123 Main St",
    "locality": "Anytown",
    "region": "Anystate",
    "country": "US"
  },
  "contact_given_name": "John",
  "contact_family_name": "Doe",
  "contact_email": "johndoe@example.com",
  "contact_phone_number": "+12025550101"
}
]]></artwork>
        <t>The Issuer in this case made the following decisions:</t>
        <ul spacing="normal">
          <li>
            <t>The "telephone_number_rtu" array and contents is always visible.</t>
          </li>
          <li>
            <t>The "rcd" array is always visible, but its contents are selectively disclosable.</t>
          </li>
          <li>
            <t>The sub element and essential verification data (iss, iat, cnf, etc.) are always visible.</t>
          </li>
          <li>
            <t>All other claims are selectively disclosable.</t>
          </li>
          <li>
            <t>For address, all of the claims can only be selectively disclosed in full.</t>
          </li>
        </ul>
        <t>The following payload is used for the SD-JWT:</t>
        <artwork><![CDATA[
{
  "_sd": [
    "CrQe7S5kqBAHt-nMYXgc6bdt2SH5aTY1sU_M-PgkjPI",
    "JzYjH4svliH0R3PyEMfeZu6Jt69u5qehZo7F7EPYlSE",
    "PorFbpKuVu6xymJagvkFsFXAbRoc2JGlAUA2BA4o7cI",
    "TGf4oLbgwd5JQaHyKVQZU9UdGE0w5rtDsrZzfUaomLo",
    "XQ_3kPKt1XyX7KANkqVR6yZ2Va5NrPIvPYbyMvRKBMM",
    "XzFrzwscM6Gn6CJDc6vVK8BkMnfG8vOSKfpPIZdAfdE",
    "gbOsI4Edq2x2Kw-w5wPEzakob9hV1cRD0ATN3oQL9JM",
    "jsu9yVulwQQlhFlM_3JlzMaSFzglhQG0DpfayQwLUK4"
  ],
  "iss": "https://vetting-claim-agent.example.com",
  "iat": 1683000000,
  "exp": 1883000000,
  "sub": "Business_42",
  "telephone_number_rtu": [
    +18001231234,
    +18881231234
  ],
  "rcd": [
    {
      "...": "pFndjkZ_VCzmyTa6UjlZo3dh-ko8aIKQc9DlGzhaVYo"
    }
  ],
  "business_ids": [
    {
      "...": "7Cf6JkPudry3lcbwHgeZ8khAv1U1OSlerP0VkBJrWZ0"
    }
  ],
  "svt": "8khAv1U1OSlerP0VkBJrWZ07Cf6JkPudry3lcbwHgeZ",
  "vcm": {
      "vcm_version": 1,
      "vetting_agent": {
          "agent_name": "Vetting Authority Inc.",
          "agent_metadata": {}
      },
      "vetted_entity": {
          "entity_id": "VE654321",
          "entity_name": "Business_42"
      },
      "vetting_metadata": []
  },
  "_sd_alg": "sha-256",
  "cnf": {
    "jwk": {
      "kty": "EC",
      "crv": "P-256",
      "x": "TCAER19Zvu3OHF4j4W4vfSVoHIP1ILilDls7vCeGemc",
      "y": "ZxjiWWbZMQGHVWKVQ4hbSIirsVfuecCE6t4jT9F2HZQ"
    }
  }
}
]]></artwork>
        <t>The following Disclosures are created by the Issuer:</t>
        <t>Claim contact_given_name:</t>
        <artwork><![CDATA[
SHA-256 Hash: jsu9yVulwQQlhFlM_3JlzMaSFzglhQG0DpfayQwLUK4
Disclosure:
WyIyR0xDNDJzS1F2ZUNmR2ZyeU5STjl3IiwgImdpdmVuX25hbWUiLCAiSm9o
biJd
Contents: ["2GLC42sKQveCfGfryNRN9w", "contact_given_name", "John"]
]]></artwork>
        <t>Claim contact_family_name:</t>
        <artwork><![CDATA[
SHA-256 Hash: TGf4oLbgwd5JQaHyKVQZU9UdGE0w5rtDsrZzfUaomLo
Disclosure:
WyJlbHVWNU9nM2dTTklJOEVZbnN4QV9BIiwgImZhbWlseV9uYW1lIiwgIkRv
ZSJd
Contents: ["eluV5Og3gSNII8EYnsxA_A", "contact_family_name", "Doe"]
]]></artwork>
        <t>Claim contact_email:</t>
        <artwork><![CDATA[
SHA-256 Hash: JzYjH4svliH0R3PyEMfeZu6Jt69u5qehZo7F7EPYlSE
Disclosure:
WyI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBIiwgImVtYWlsIiwgImpvaG5kb2VA
ZXhhbXBsZS5jb20iXQ
Contents: ["6Ij7tM-a5iVPGboS5tmvVA", "contact_email",
   "johndoe@example.com"]
]]></artwork>
        <t>Claim phone_number:</t>
        <artwork><![CDATA[
SHA-256 Hash: PorFbpKuVu6xymJagvkFsFXAbRoc2JGlAUA2BA4o7cI
Disclosure:
WyJlSThaV205UW5LUHBOUGVOZW5IZGhRIiwgInBob25lX251bWJlciIsICIr
MS0yMDItNTU1LTAxMDEiXQ
Contents: ["eI8ZWm9QnKPpNPeNenHdhQ", "contact_phone_number",
"+1-202-555-0101"]
]]></artwork>
        <t>Claim business_ids:</t>
        <artwork><![CDATA[
SHA-256 Hash: XQ_3kPKt1XyX7KANkqVR6yZ2Va5NrPIvPYbyMvRKBMM
Disclosure:
WyJRZ19PNjR6cUF4ZTQxMmExMDhpcm9BIiwgInBob25lX251bWJlcl92ZXJp
ZmllZCIsIHRydWVd
Contents: ["Qg_O64zqAxe412a108iroA", "business_ids", true]
]]></artwork>
        <t>Claim address:</t>
        <artwork><![CDATA[
SHA-256 Hash: XzFrzwscM6Gn6CJDc6vVK8BkMnfG8vOSKfpPIZdAfdE
Disclosure:
WyJBSngtMDk1VlBycFR0TjRRTU9xUk9BIiwgImFkZHJlc3MiLCB7InN0cmVl
dF9hZGRyZXNzIjogIjEyMyBNYWluIFN0IiwgImxvY2FsaXR5IjogIkFueXRv
d24iLCAicmVnaW9uIjogIkFueXN0YXRlIiwgImNvdW50cnkiOiAiVVMifV0
Contents: ["AJx-095VPrpTtN4QMOqROA", "address", {"street_address":
"123 Main St", "locality": "Anytown", "region": "Anystate",
"country": "US"}]
]]></artwork>
        <t>Array Entry:</t>
        <artwork><![CDATA[
SHA-256 Hash: pFndjkZ_VCzmyTa6UjlZo3dh-ko8aIKQc9DlGzhaVYo
Disclosure: WyJsa2x4RjVqTVlsR1RQVW92TU5JdkNBIiwgIlVTIl0
Contents: ["lklxF5jMYlGTPUovMNIvCA", "{"nam":"Business_42",
  "icn":"https://example.com/logo.png"}"]
]]></artwork>
        <t>Array Entry:</t>
        <artwork><![CDATA[
SHA-256 Hash: 7Cf6JkPudry3lcbwHgeZ8khAv1U1OSlerP0VkBJrWZ0
Disclosure: WyJuUHVvUW5rUkZxM0JJZUFtN0FuWEZBIiwgIkRFIl0
Contents: ["nPuoQnkRFq3BIeAm7AnXFA", "123456789"]
]]></artwork>
        <t>The payload is then signed by the Issuer to create a JWT like the following:</t>
        <artwork><![CDATA[
eyJhbGciOiAiRVMyNTYiLCAidHlwIjogImV4YW1wbGUrc2Qtand0In0.eyJfc2QiOiBb
IkNyUWU3UzVrcUJBSHQtbk1ZWGdjNmJkdDJTSDVhVFkxc1VfTS1QZ2tqUEkiLCAiSnpZ
akg0c3ZsaUgwUjNQeUVNZmVadTZKdDY5dTVxZWhabzdGN0VQWWxTRSIsICJQb3JGYnBL
dVZ1Nnh5bUphZ3ZrRnNGWEFiUm9jMkpHbEFVQTJCQTRvN2NJIiwgIlRHZjRvTGJnd2Q1
SlFhSHlLVlFaVTlVZEdFMHc1cnREc3JaemZVYW9tTG8iLCAiWFFfM2tQS3QxWHlYN0tB
TmtxVlI2eVoyVmE1TnJQSXZQWWJ5TXZSS0JNTSIsICJYekZyendzY002R242Q0pEYzZ2
Vks4QmtNbmZHOHZPU0tmcFBJWmRBZmRFIiwgImdiT3NJNEVkcTJ4Mkt3LXc1d1BFemFr
b2I5aFYxY1JEMEFUTjNvUUw5Sk0iLCAianN1OXlWdWx3UVFsaEZsTV8zSmx6TWFTRnpn
bGhRRzBEcGZheVF3TFVLNCJdLCAiaXNzIjogImh0dHBzOi8vaXNzdWVyLmV4YW1wbGUu
Y29tIiwgImlhdCI6IDE2ODMwMDAwMDAsICJleHAiOiAxODgzMDAwMDAwLCAic3ViIjog
InVzZXJfNDIiLCAibmF0aW9uYWxpdGllcyI6IFt7Ii4uLiI6ICJwRm5kamtaX1ZDem15
VGE2VWpsWm8zZGgta284YUlLUWM5RGxHemhhVllvIn0sIHsiLi4uIjogIjdDZjZKa1B1
ZHJ5M2xjYndIZ2VaOGtoQXYxVTFPU2xlclAwVmtCSnJXWjAifV0sICJfc2RfYWxnIjog
InNoYS0yNTYiLCAiY25mIjogeyJqd2siOiB7Imt0eSI6ICJFQyIsICJjcnYiOiAiUC0y
NTYiLCAieCI6ICJUQ0FFUjE5WnZ1M09IRjRqNFc0dmZTVm9ISVAxSUxpbERsczd2Q2VH
ZW1jIiwgInkiOiAiWnhqaVdXYlpNUUdIVldLVlE0aGJTSWlyc1ZmdWVjQ0U2dDRqVDlG
MkhaUSJ9fX0.XaB1KmNGBE-uKjT8M3VSu65QVWdNMjuhJI1sIEM4TIEs6Ae2f0DfWP80
TAg79QIhbz04IIrrXyrEbzkeZLoVHQ

The issued SD-JWT might look as follows:

eyJhbGciOiAiRVMyNTYiLCAidHlwIjogImV4YW1wbGUrc2Qtand0In0.eyJfc2QiOiBb
IkNyUWU3UzVrcUJBSHQtbk1ZWGdjNmJkdDJTSDVhVFkxc1VfTS1QZ2tqUEkiLCAiSnpZ
akg0c3ZsaUgwUjNQeUVNZmVadTZKdDY5dTVxZWhabzdGN0VQWWxTRSIsICJQb3JGYnBL
dVZ1Nnh5bUphZ3ZrRnNGWEFiUm9jMkpHbEFVQTJCQTRvN2NJIiwgIlRHZjRvTGJnd2Q1
SlFhSHlLVlFaVTlVZEdFMHc1cnREc3JaemZVYW9tTG8iLCAiWFFfM2tQS3QxWHlYN0tB
TmtxVlI2eVoyVmE1TnJQSXZQWWJ5TXZSS0JNTSIsICJYekZyendzY002R242Q0pEYzZ2
Vks4QmtNbmZHOHZPU0tmcFBJWmRBZmRFIiwgImdiT3NJNEVkcTJ4Mkt3LXc1d1BFemFr
b2I5aFYxY1JEMEFUTjNvUUw5Sk0iLCAianN1OXlWdWx3UVFsaEZsTV8zSmx6TWFTRnpn
bGhRRzBEcGZheVF3TFVLNCJdLCAiaXNzIjogImh0dHBzOi8vaXNzdWVyLmV4YW1wbGUu
Y29tIiwgImlhdCI6IDE2ODMwMDAwMDAsICJleHAiOiAxODgzMDAwMDAwLCAic3ViIjog
InVzZXJfNDIiLCAibmF0aW9uYWxpdGllcyI6IFt7Ii4uLiI6ICJwRm5kamtaX1ZDem15
VGE2VWpsWm8zZGgta284YUlLUWM5RGxHemhhVllvIn0sIHsiLi4uIjogIjdDZjZKa1B1
ZHJ5M2xjYndIZ2VaOGtoQXYxVTFPU2xlclAwVmtCSnJXWjAifV0sICJfc2RfYWxnIjog
InNoYS0yNTYiLCAiY25mIjogeyJqd2siOiB7Imt0eSI6ICJFQyIsICJjcnYiOiAiUC0y
NTYiLCAieCI6ICJUQ0FFUjE5WnZ1M09IRjRqNFc0dmZTVm9ISVAxSUxpbERsczd2Q2VH
ZW1jIiwgInkiOiAiWnhqaVdXYlpNUUdIVldLVlE0aGJTSWlyc1ZmdWVjQ0U2dDRqVDlG
MkhaUSJ9fX0.XaB1KmNGBE-uKjT8M3VSu65QVWdNMjuhJI1sIEM4TIEs6Ae2f0DfWP80
TAg79QIhbz04IIrrXyrEbzkeZLoVHQ~WyIyR0xDNDJzS1F2ZUNmR2ZyeU5STjl3IiwgI
mdpdmVuX25hbWUiLCAiSm9obiJd~WyJlbHVWNU9nM2dTTklJOEVZbnN4QV9BIiwgImZh
bWlseV9uYW1lIiwgIkRvZSJd~WyI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBIiwgImVtYWl
sIiwgImpvaG5kb2VAZXhhbXBsZS5jb20iXQ~WyJlSThaV205UW5LUHBOUGVOZW5IZGhR
IiwgInBob25lX251bWJlciIsICIrMS0yMDItNTU1LTAxMDEiXQ~WyJRZ19PNjR6cUF4Z
TQxMmExMDhpcm9BIiwgInBob25lX251bWJlcl92ZXJpZmllZCIsIHRydWVd~WyJBSngt
MDk1VlBycFR0TjRRTU9xUk9BIiwgImFkZHJlc3MiLCB7InN0cmVldF9hZGRyZXNzIjog
IjEyMyBNYWluIFN0IiwgImxvY2FsaXR5IjogIkFueXRvd24iLCAicmVnaW9uIjogIkFu
eXN0YXRlIiwgImNvdW50cnkiOiAiVVMifV0~WyJQYzMzSk0yTGNoY1VfbEhnZ3ZfdWZR
IiwgImJpcnRoZGF0ZSIsICIxOTQwLTAxLTAxIl0~WyJHMDJOU3JRZmpGWFE3SW8wOXN5
YWpBIiwgInVwZGF0ZWRfYXQiLCAxNTcwMDAwMDAwXQ~WyJsa2x4RjVqTVlsR1RQVW92T
U5JdkNBIiwgIlVTIl0~WyJuUHVvUW5rUkZxM0JJZUFtN0FuWEZBIiwgIkRFIl0~
]]></artwork>
        <t>Presentation</t>
        <t>The following non-normative example shows a Vesper PASSporT as it would be sent from the Holder (SE) to the Verifier.</t>
        <t>Add Example</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="json-web-token-claims">
        <name>JSON Web Token claims</name>
        <t>This specification requests that the IANA add two new claims to the JSON Web Token Claims registry as defined in <xref target="RFC7519"/>.</t>
        <t>Claim Name: “vesper”</t>
        <t>Claim Description: A JSON object that includes both an SD-JWT object containing Vesper Claims from a Vesper Claim Agent and a Notary Agent transparency receipt object as required by the STIR Vesper framework</t>
        <t>Change Controller: IESG</t>
        <t>Specification Document(s): [RFCThis]</t>
      </section>
      <section anchor="passport-types">
        <name>PASSporT Types</name>
        <t>This specification requests that the IANA add a new entry to the Personal Assertion Token (PASSporT) Extensions registry for the type “vesper” which is specified in [RFCThis].</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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="RFC7519">
        <front>
          <title>JSON Web Token (JWT)</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <date month="May" year="2015"/>
          <abstract>
            <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7519"/>
        <seriesInfo name="DOI" value="10.17487/RFC7519"/>
      </reference>
      <reference anchor="RFC7800">
        <front>
          <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <date month="April" year="2016"/>
          <abstract>
            <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7800"/>
        <seriesInfo name="DOI" value="10.17487/RFC7800"/>
      </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="I-D.ietf-oauth-selective-disclosure-jwt">
        <front>
          <title>Selective Disclosure for JWTs (SD-JWT)</title>
          <author fullname="Daniel Fett" initials="D." surname="Fett">
            <organization>Authlete</organization>
          </author>
          <author fullname="Kristina Yasuda" initials="K." surname="Yasuda">
            <organization>Keio University</organization>
          </author>
          <author fullname="Brian Campbell" initials="B." surname="Campbell">
            <organization>Ping Identity</organization>
          </author>
          <date day="3" month="September" year="2024"/>
          <abstract>
            <t>   This specification defines a mechanism for selective disclosure of
   individual elements of a JSON object used as the payload of a JSON
   Web Signature (JWS) structure.  It can be used for multiple
   applications, including but not limited to the selective disclosure
   of JSON Web Token (JWT) claims.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-selective-disclosure-jwt-12"/>
      </reference>
      <reference anchor="I-D.ietf-sipcore-callinfo-spam">
        <front>
          <title>SIP Call-Info Parameters for Labeling Calls</title>
          <author fullname="Henning Schulzrinne" initials="H." surname="Schulzrinne">
            <organization>Columbia University</organization>
          </author>
          <date day="30" month="August" year="2019"/>
          <abstract>
            <t>   Called parties often wish to decide whether to accept, reject or
   redirect calls based on the likely nature of the call.  For example,
   they may want to reject unwanted telemarketing or fraudulent calls,
   but accept emergency alerts from numbers not in their address book.
   This document describes SIP Call-Info parameters and a feature tag
   that allow originating, intermediate and terminating SIP entities to
   label calls as to their type, confidence and references to additional
   information.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-sipcore-callinfo-spam-04"/>
      </reference>
      <reference anchor="I-D.ietf-stir-passport-rcd">
        <front>
          <title>PASSporT Extension for Rich Call Data</title>
          <author fullname="Chris Wendt" initials="C." surname="Wendt">
            <organization>Somos Inc.</organization>
          </author>
          <author fullname="Jon Peterson" initials="J." surname="Peterson">
            <organization>Neustar Inc.</organization>
          </author>
          <date day="5" month="June" year="2023"/>
          <abstract>
            <t>   This document extends PASSporT, a token for conveying
   cryptographically-signed call information about personal
   communications, to include rich meta-data about a call and caller
   that can be signed and integrity protected, transmitted, and
   subsequently rendered to the called party.  This framework is
   intended to include and extend caller and call specific information
   beyond human-readable display name comparable to the "Caller ID"
   function common on the telephone network and is also enhanced with a
   integrity mechanism that is designed to protect the authoring and
   transport of this information for different authoritative use-cases.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-stir-passport-rcd-26"/>
      </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>
    <?line 1287?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
y5Wrlr0aYqpNipwfkzshMjXGSNNWUW3seXj/bGRG293vYdbwXgmFyRzGrYfx
Wd16vZNgZZmZwi14Ub8jb4XZXJ3APBGnbNIpawf02LdnUYNh8BJqsPo0NYAR
/xTGD3Sg/TJCoK5jXQOYTjmex+N10NeziUHJEv5cskBSvyDyU/zcWvnj/Pxx
ylAyMM6jCH3Ovy4tiugAFqG8UyGxpoqdQXkyfdHIdup2nSnTlKc2lc4oVV3Z
nOoylNja5BjPfCvY6PdgP9tZXsm9PIr1j2qgLwF07D4xJY1eGfAYrmH9X+BG
slnFOlCmNCgcRGMMoxxPRIx/01p5D//rtVfXV1bgf5da8acrt8kLCMSVyXnM
pP57Jk/mB0NeKij3iJzKWKd7SjDw0lFg9GFYqB6OulOBXQf4eVxSn+C6t0U5
x3Z7H8viqQ/PMrZFOujOQoZT5asWS9Oe9OxwLV0CyfPskWWfNy4EY2NkLB2X
SukM9QKrpS+YiFVpuUJKAwfUGQDf3Z7L3WTe32eNkZdREiUo0ED1XHjEse+Y
ES3Y8Wo2vD3H5MMw2HzGItorvfbK/EXYJgk80GcvgzTRFyyj3Wu35y/DiTx4
4UqUDY+R8qc5Bi9lbOpsmVYMUgHEakXDWKrgVdBUfkdzUxxxc0qEQ6n9V1fO
17WE6QNh1lM2aSt8K/mvrHh+9wcuUWGi4F0TGAgrlmyIJcDIZSyBrqWsh5yC
25XfQjnXLCRbLPXPlMTVJTvAieex88LnhNNSzJNh7JW4p6q3p+wsWUbQkKjy
eFaXrDyyevepYhZSO9It7UHVi/0oy013LoQ/XL4+HaG9xBOp2FxN/fdcxyTa
y8ACyMcwulSk5Jrf1avU8bF6eZSOTWLnK9V1Qq1UBAf1UXsYyNx4n8JrGXmS
1rmRjl71llr1plk144JVyJmcKqpspPWgauuJfga3RIFfO7AOnVbcQPdihDdR
YHqkPh7HXkk5fauXg74PWbV1LlY0GtlLym/YkdzVmPUBl6ZyZGBVY6dRc4Wq
IIdNX0pJTXMym6pPUWKWCw1eXWrQr85t0DeU2GjyGtVz1TfhH3N9Xk0K1gtW
O2+WOf84qXPiNJsD16UXXjwDhb4KvNfCJEV61+TVLnZ0NyiNCEt1M/yeTcO2
a9ciNjY+1t8xg8PbkPB0gWj7XFPK7udQosF11EfIvXqrVCYQo2uaL6Lzykes
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
g6vwcvp2v3j7frr2czi6TH/Y+WH7+CLubqtXjtNsZzD5OO1P3z7Mxvv+9d3t
Tr7zeWNwmg5X93fjjbON1Q8bb9IfhnqW3u7Vm/TT4Po+WNs/8fdmH/snl2fv
z4Ld7ZX7tazYyrPLr1dnfjr+lKpXPp98eX17/LFof559/uHjxuHtz/3Tt7PL
1b6/dpgdd+6OLwazg7vTjx8ODvQrX3eyr/f58ODtbvJ2c39r+Pau//Hdh9uD
5Gr33d1R9+PV5LhzGWxcBXov14OjvPNmO/h59WH1433rfu3+ePurf5sO3o/6
7eHp1spG7/B1evLp/b6e5Safvp/1p/H9yUk82okPvrzej78e+N2dr9fx6GR3
ZWty5c9O7j+dfaQigT+pxmcvZknPZz3/MkKvagliwRds4bKTBDe3l1/6m1/H
s57/9uwmvkxfB6PWbfrO73w8Gb7fine/jvz+RWpVGGzOp/il8X/YvHq7f3s8
DbLZ63g4uN+7Di/f3Y427tpn7aNuHGbHK/3bD/vZ+eVKefz8jiodznm6bmA+
srvh2O5nAR+/AHHJmTm0dTFFucBS4xv5kb7UJF/52Uyx6E4yNHUZrTfGYeGr
Hj/f5OdvzpRh8IVNJeUpQ7unQn+bu3a5c4RuN1AbWGrnwu1ZK/qb6QAmMfnU
nmfkt3R9ISC0hiPbxYVMeaHtTavRUHaHXx3rAejbB+pYsLmxfdp+f3k3fX20
t/Pm5s35m7urbj/d6xy3O5+ieCvOf7jbDHfD8dC8SRNcPtxE5+eDy4OT3b3+
OdCZN6NBtxNlef9qGg43t98Wb25673dW9y5P5vYaUezTEGY7/p+rnTs1H5jP
rqtY36psUJHPunsbuG0Kg173XkBSGmYp643zWWd2uvKwdbi1/7Xb3lm9PDsc
n65ezsKztW7vJn7die6vO+NgEoz708+ra6PB+Vn0aXMj6o7fp41BtB80NoX9
Yve31d1Pm29W848nd+Hm1e5VNjs8PXx/j43gaoSdpgg7P5UPzj0CS/x54gxe
wCJKZ7AfD+CqD8/eJwerQa93G+8fbfcvB8nhm5P++w98Bpew9zgP+++nF+ft
mL67Pb1rXHZLZxDG0/7a0fXr6+5hp/Nu+yLJHza+bNhnYAt0TRbonjgDEvGe
2P0L2HAZAla750Bzt1eKi15/0o8/7F2M3/cOP58WQXwpu+8XF7B7/nty5++u
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
Ggb/98KVDxxk4ZtAuK+fDJcb/x/Wei7w/BEBAA==

-->

</rfc>
