<?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.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-johansson-direct-presentation-arch-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="direct-presentation">A reference architecture for direct presentation credential flows</title>
    <seriesInfo name="Internet-Draft" value="draft-johansson-direct-presentation-arch-00"/>
    <author initials="L." surname="Johansson" fullname="Leif Johansson">
      <organization>Sunet</organization>
      <address>
        <email>leifj@sunet.se</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <keyword>direct presentation credentials</keyword>
    <abstract>
      <?line 96?>

<t>This document defines a reference architecture for direct presentation flows of digital credentials. The architecture introduces the concept of a presentation mediator as the active component responsible for managing, presenting, and selectively disclosing credentials while preserving a set of security and privacy promises that will also be defined.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/leifj/wallet-refarch"/>.</t>
    </note>
  </front>
  <middle>
    <?line 100?>

<section anchor="conventions">
      <name>Conventions</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="introduction">
      <name>Introduction</name>
      <t>Digital credentials, which assert claims about individuals, organizations, or devices, have become essential tools in modern identity systems. Whether verifying an individual's qualifications, attesting to an enterprise's compliance, or authorizing an IoT device, these credentials rely on secure, efficient, and privacy-preserving mechanisms for their use.</t>
      <t>Traditional federated identity systems often rely on intermediaries or delegation, which can compromise user privacy or introduce inefficiencies. This document presents an architecture for direct presentation flows, where credentials are presented directly to verifiers without unnecessary intermediaries, empowering the data subject or their authorized representative to maintain control over the credential's use.</t>
      <t>At the heart of this architecture is the presentation mediator, an active software component responsible for facilitating secure and privacy-aware interactions. This mediator works in tandem with passive credential stores, verifiers, and issuers, creating a scalable and interoperable system that can adapt to diverse regulatory and operational environments.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <section anchor="naming-the-elephant-in-the-room">
        <name>Naming the elephant in the room</name>
        <t>The term "digital wallet" or "digital identity wallet" is often used to denote a container for digital objects representing information about a subject. Such objects are often called "digital credentials". The use of the word "wallet" is both historic, stemming from the origin of some types of wallet in the "crypto" or digital asset community, aswell as meant to make the user think of a physical wallet where digital credentials correspond to things like credit cards, currency, loyalty cards, identity cards etc.</t>
        <t>Arguably the use of the term wallet is often confusing since it may lead to assumptions about the fungibility of identity or that credentials are exchanged as part of a monetary transaction. In this specification we will use the term "persentation mediator" when traditionally the term "identity wallet" or "wallet" has been used.</t>
      </section>
      <section anchor="terminology-used-in-this-specification">
        <name>Terminology used in this specification</name>
        <t>To anchor this architecture, we define key terms:</t>
        <ul spacing="normal">
          <li>
            <t>A presentation mediator is an active software component that manages the presentation of credentials to the verifier on behalf of the data subject.</t>
          </li>
          <li>
            <t>A credential store is a passive repository for securely storing credentials. It supports the presentation mediator by providing access to stored credentials without performing active operations.</t>
          </li>
          <li>
            <t>The data subject is the entity the credential pertains to, such as an individual or organization.</t>
          </li>
          <li>
            <t>A presenter is the actor that delivers a credential to a verifier. While often the data subject, the presenter could also be an authorized agent or software acting on their behalf.</t>
          </li>
          <li>
            <t>A credential is a signed, structured document containing claims about a subject, issued by a trusted entity.</t>
          </li>
          <li>
            <t>An attestation is a statement about a credential, often used to validate or certify its properties, such as its integrity or scope.</t>
          </li>
          <li>
            <t>A presentation proof is a derived artifact that proves claims from a credential in a specific interaction with a verifier.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="a-note-on-history">
      <name>A Note on History</name>
      <t>The origins of the notion of digital identity goes back to the mid 1990s. Historically, Internet protocols were designed to deal with authentication and (sometimes) authorization, i.e. the question of what entity is accessing the protocol and what they are allowed to do. Digital identity can be thought of as a generalization of the concept of a user identifier in a protocol. Today we typically use the term data subject (abbreviated as 'subject' when there is no risk of confusion) to denote the actor whoese data is beeing acted upon by the protocol. Most internet protocols represent the data subject as a "user" identified by a single unique identifier. Identifier in use by Internet protocols were typically never designed to be unified - each security protocol typically designed a separate structure of identifiers.</t>
      <t>Identifier schemes such as kerberos principal names or X.509 distinguished names are often assumed to be unique across multiple protocol endpoints. This introduces linkability across multiple protocol endpoints. Historically this was never seen as an issue.</t>
      <t>When web applications were build that required some form of user authentication the notion of externalized or <em>federated</em> user authentication was established as a way to offload the work involved in user management from each web application to some form of centralized service. This is sometimes called "single sign on" - a term used to describe the (sometimes, but not alwasy desirable) property of authentication flows that a user can login in (sign on) once and have the "logged in" state recognized across multiple applications. State replication across multiple web application carries with it a separate set of concerns which is not discussed here.</t>
      <t>In the late 1990s multiple protocols for "web single sign-on" were developed. Soon the need to connect multiple "SSO-systems" across different administrative and technical realms was recognized. Bridging administrative realms is often called "federating" those realms and the term "federated identity" owes its origin to this practice. The development of standard protocols for federating identity such as the Security Assertion Markup Language <xref target="SAML"/> and Open ID Connect <xref target="OPENIDC"/> were initially created in the early to mid 2000s. These protocols are widely deployed today.</t>
      <t>The notion of digital identity evolved as a generalization of the "single sign-on" concept because modern federation protocols (OIDC, SAML etc) are able to transport not only shared state about the sign-in status of a user (eg in the form of a login-cookie) but can also be used to share information about the subject (user) accessing the service. In some cases identity federation protocols made it possible to fully externalize identity management from the application into an "identity provider"; a centralized service responsible for maintaining information about users and <em>releasing</em> such information in the form of <em>attributes</em> to trusted services (aka relying parties).</t>
      <t>Federated identity can be thought of as an architecture for digital identity where information about data subjects is maintained by identity providers and shared with relying parties (sometimes called service providers) as needed to allow subjects to be authenticated and associated with appropriate authorization at the relying party.</t>
      <t>Here is an illustration of how most federation protocols work. In this example the Subject is requesting some resource at the RP that requires authentication. The RP issues an authentication requests which is sent to the IdP. The IdP prompts the user to present login credentials (username/password or some other authentication token) and after successfully verifying that the Subject matches the login credentials in the IdPs database the IdP returns an authentication response to the RP.</t>
      <t>A brief illustration of the typical federation flow is useful. For the purpose of this illustration we are not considering the precise way in which protocol messages are transported between IdP and RP, nor do we consider how the Subject is represented in the interaction between the IdP and RP (eg if a user-agent is involved).</t>
      <artset>
        <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="270px" preserveAspectRatio="none" version="1.1" viewBox="0 0 388 270" width="388px">
            <defs/>
            <g>
              <line x1="35" x2="35" y1="36.7999" y2="234.4" stroke="black" stroke-width="0.5"/>
              <line x1="204.775" x2="204.775" y1="36.7999" y2="234.4" stroke="black" stroke-width="0.5"/>
              <line x1="365.0801" x2="365.0801" y1="36.7999" y2="234.4" stroke="black" stroke-width="0.5"/>
              <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="60.5498" x="5" y="5" stroke="black" stroke-width="0.5"/>
              <text fill="black" font-family="sans-serif" font-size="14" x="12" y="25.9999">Subject</text>
              <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="60.5498" x="5" y="233.4" stroke="black" stroke-width="0.5"/>
              <text fill="black" font-family="sans-serif" font-size="14" x="12" y="254.3999">Subject</text>
              <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="33.1099" x="188.775" y="5" stroke="black" stroke-width="0.5"/>
              <text fill="black" font-family="sans-serif" font-size="14" x="195.775" y="25.9999">RP</text>
              <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="33.1099" x="188.775" y="233.4" stroke="black" stroke-width="0.5"/>
              <text fill="black" font-family="sans-serif" font-size="14" x="195.775" y="254.3999">RP</text>
              <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="34.9019" x="348.0801" y="5" stroke="black" stroke-width="0.5"/>
              <text fill="black" font-family="sans-serif" font-size="14" x="355.0801" y="25.9999">IdP</text>
              <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="34.9019" x="348.0801" y="233.4" stroke="black" stroke-width="0.5"/>
              <text fill="black" font-family="sans-serif" font-size="14" x="355.0801" y="254.3999">IdP</text>
              <polygon fill="black" points="193.33,64.3999,203.33,68.3999,193.33,72.3999,197.33,68.3999" stroke="black" stroke-width="1.0"/>
              <line x1="35.2749" x2="199.33" y1="68.3999" y2="68.3999" stroke="black" stroke-width="1.0"/>
              <text fill="black" font-family="sans-serif" font-size="13" x="42.2749" y="63.7999">Initiate authentication flow</text>
              <polygon fill="black" points="353.531,94,363.531,98,353.531,102,357.531,98" stroke="black" stroke-width="1.0"/>
              <line x1="205.33" x2="359.531" y1="98" y2="98" stroke="black" stroke-width="1.0"/>
              <text fill="black" font-family="sans-serif" font-size="13" x="212.33" y="93.4">Authentication request</text>
              <polygon fill="black" points="46.2749,123.6,36.2749,127.6,46.2749,131.6,42.2749,127.6" stroke="black" stroke-width="1.0"/>
              <line x1="40.2749" x2="364.531" y1="127.6" y2="127.6" stroke="black" stroke-width="1.0"/>
              <text fill="black" font-family="sans-serif" font-size="13" x="52.2749" y="123">Prompt for login credentials</text>
              <polygon fill="black" points="353.531,153.2,363.531,157.2,353.531,161.2,357.531,157.2" stroke="black" stroke-width="1.0"/>
              <line x1="35.2749" x2="359.531" y1="157.2" y2="157.2" stroke="black" stroke-width="1.0"/>
              <text fill="black" font-family="sans-serif" font-size="13" x="42.2749" y="152.6">Presents login credentials</text>
              <polygon fill="black" points="216.33,182.8,206.33,186.8,216.33,190.8,212.33,186.8" stroke="black" stroke-width="1.0"/>
              <line x1="210.33" x2="364.531" y1="186.8" y2="186.8" stroke="black" stroke-width="1.0"/>
              <text fill="black" font-family="sans-serif" font-size="13" x="222.33" y="182.2">Authentication response</text>
              <polygon fill="black" points="46.2749,212.4,36.2749,216.4,46.2749,220.4,42.2749,216.4" stroke="black" stroke-width="1.0"/>
              <line x1="40.2749" x2="204.33" y1="216.4" y2="216.4" stroke="black" stroke-width="1.0"/>
              <text fill="black" font-family="sans-serif" font-size="13" x="52.2749" y="211.8">Success!</text>
              <!--SRC=[TOz12W8n34NtFKKyG2ymYE1oTcLwWjh9QAGsOvCorxT5HX1q_L_U8xvUxXWLx0acDy2OIIaeGgXwmwmKWn9dM19lPd8T6-V6dR_dWi-AegPjO1lZtzO1NE77gh1mWSHNoX0Bplqm935-R-zMLr3QA3_OrZvQ-oSkAsV1Zw-3_HbVOqIHWta1]-->
  </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
Subject -> RP: Initiate authentication flow
RP -> IdP: Authentication request
IdP --> Subject: Prompt for login credentials
Subject --> IdP: Presents login credentials
RP <-- IdP: Authentication response
Subject <-- RP: Success!
]]></artwork>
      </artset>
      <t>Note that</t>
      <ul spacing="normal">
        <li>
          <t>The Subject only presents login credentials to the RP</t>
        </li>
        <li>
          <t>The IdP learns which RP the subject is requesting access to</t>
        </li>
        <li>
          <t>The RP trusts the IdP to accurately represent information about the Subject</t>
        </li>
      </ul>
      <t>The limitation of this type of architecture and the need to evolve the architecture into direct presentation flow is primarily the second point: the IdP has information about every RP the Subject has ever used. Together with the use of linkable attributes at the RP this becomes a major privacy leak and a signifficant drawback of this type of architecture.</t>
      <t>The notion of "Self Sovreign Identity" (SSI) was first introduced in the blogpost <xref target="PathToSSI"/> by Christopher Allen. The concept initially relied heavily on the assumed dependency on blockchain technology. Recently there has been work to abstract the concepts of SSI away from a dependency on specificy technical solutions and desribe the key concepts of SSI independently of the use of blockchain.</t>
      <t>The purpose of this document is to create a reference architecture for some of the concepts involved in SSI in such a way that different implementations can be contrasted and compared. This document attempts to define a set of core normative requirement and also introduce the notion of direct presentation flow to denote the practice of using a mediator to allow the data subject control over the digital credential sharing flow.</t>
      <t>Direct presentation flow should be seen as a generalization of the Self-Sovereign Identity concept in the sense that unlike SSI, direct presentation make no assumptions or value judgements about the relative merits of third party data ownership and control. The basic architecture of direct presentation does empower the user with more control than the federated model does but in the SSI architecture the user always has full control over every aspect of data sharing with the RP. This is not necessarily true (eg for legal reasons) in all cases which is why there is a need to desribe the technical underpinnings of direct presentation flows in such a way that the full SSI model can be a special case of a direct presentation architecture.</t>
    </section>
    <section anchor="actors-and-entities">
      <name>Actors and Entities</name>
      <section anchor="subject-and-presenter">
        <name>Subject and Presenter</name>
        <t>The data subject is the entity that the credential describes, such as an individual, an organization, or even an IoT device. However, the presenter—the actor delivering the credential to the verifier—may not always be the data subject. For example, an administrator might present credentials on behalf of an organization, or a software agent might act as a presenter in automated workflows.</t>
        <t>This distinction between the data subject and the presenter allows the architecture to support complex use cases, such as power-of-attorney scenarios or enterprise credentialing systems.</t>
      </section>
      <section anchor="presentation-mediator">
        <name>Presentation Mediator</name>
        <t>The presentation mediator (mediator for short) is the core active component of this architecture. It initiates and mediates credential presentations, ensuring compliance with data subject preferences and system policies. For example, it might enforce selective disclosure, revealing only the subject's date of birth to a verifier while withholding other personal details. The subject controls a presentation mediator.</t>
        <t>Unlike a credential store, the presentation mediator is responsible for orchestrating interactions with verifiers, performing cryptographic operations, and generating presentation proofs.</t>
        <t>The mediator is used by the subject to communicate with issuers and verifiers. The nature of the control the user has over the mediator varies but minimally the user must be able to initiate the receipt of credentials from an issuer and the generation and transmission of presentation proofs to a verifier.</t>
      </section>
      <section anchor="credential-store">
        <name>Credential Store</name>
        <t>The credential store is a passive repository where credentials are securely stored. Its primary function is to provide the presentation mediator with access to the credentials it needs to generate presentation proofs. By separating storage from active mediation, the architecture enhances modularity and allows credential stores to be managed independently from presentation logic.</t>
      </section>
      <section anchor="credentials-and-presentation-proofs">
        <name>Credentials and Presentation Proofs</name>
        <t>A digital identity credential (abbreviated as 'credential' in this document) is an object representing a set of data associated with a subject. The credential <bcp14>MAY</bcp14> contain data that uniquely identify a single subject. A digital identity credential is typically cryptographically bound both to the issuer and to the mediator where it is stored. A presentation proof (abbreviated as 'presentation' in this document) is a proof that a particular issuer has provided a particular set of credentials to the mediator. A presentation can be verified by at least one verifier. A presentation proof can be based on data present in a single credential or in multiple or even on the result of computations based on a set of credentials. A common example is a presentation proof that a subject is legally permitted to take driving lessons. This is a binary attribute the result of a computation involving knowledge of both the biological age of the subject aswell as legal restrictions that apply to the juristiction where the verifier is operating.</t>
      </section>
      <section anchor="issuer-and-verifier">
        <name>Issuer and Verifier</name>
        <t>An issuer is a set of protcol endpoints that allow a mediator to receive a credential. Credentials issued by the issuer are cryptographically bound to that issuer and to the receiving mediator.</t>
        <t>A verfier is a set of protocol endpoints that allow a mediator to send a presentation to a verifier. A verifier is typically a component used to provide an application with data about the subject - for instance in the context of an authentication process.</t>
      </section>
    </section>
    <section anchor="presentation-flows">
      <name>Presentation Flows</name>
      <t>Credential presentation flows describe how information from credentials are transmitted from the mediator to the verifier. This architecture focuses on direct presentation flows, but it also accommodates variations such as delegated and assisted presentations.</t>
      <section anchor="direct-presentation-flow">
        <name>Direct Presentation Flow</name>
        <t>The basic direct presentation flows looks like this:</t>
        <artset>
          <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="448px" preserveAspectRatio="none" version="1.1" viewBox="0 0 767 448" width="767px">
              <defs/>
              <g>
                <rect fill="white" height="101.8" width="10" x="223.52" y="93" stroke="black" stroke-width="1.0"/>
                <rect fill="white" height="131.4001" width="10" x="223.52" y="256" stroke="black" stroke-width="1.0"/>
                <rect fill="white" height="72.2" width="10" x="479.3651" y="122.6" stroke="black" stroke-width="1.0"/>
                <rect fill="white" height="29.6" width="10" x="710.211" y="285.6" stroke="black" stroke-width="1.0"/>
                <rect fill="none" height="149.0001" width="629.9152" x="10" y="53.7999" stroke="#000000" stroke-width="1.5"/>
                <rect fill="none" height="178.6001" width="577.2368" x="184.5771" y="216.8" stroke="#000000" stroke-width="1.5"/>
                <line x1="50" x2="50" y1="36.7999" y2="412.4001" stroke="black" stroke-width="0.5"/>
                <line x1="227.5771" x2="227.5771" y1="36.7999" y2="412.4001" stroke="black" stroke-width="0.5"/>
                <line x1="483.7032" x2="483.7032" y1="36.7999" y2="412.4001" stroke="black" stroke-width="0.5"/>
                <line x1="639.2223" x2="639.2223" y1="36.7999" y2="412.4001" stroke="black" stroke-width="0.5"/>
                <line x1="714.6081" x2="714.6081" y1="36.7999" y2="412.4001" stroke="black" stroke-width="0.5"/>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="60.5498" x="20" y="5" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="27" y="25.9999">Subject</text>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="60.5498" x="20" y="411.4001" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="27" y="432.4">Subject</text>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="67.8858" x="194.5771" y="5" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="201.5771" y="25.9999">Mediator</text>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="67.8858" x="194.5771" y="411.4001" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="201.5771" y="432.4">Mediator</text>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="51.3239" x="458.7032" y="5" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="465.7032" y="25.9999">Issuer</text>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="51.3239" x="458.7032" y="411.4001" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="465.7032" y="432.4">Issuer</text>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="57.3858" x="611.2223" y="5" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="618.2223" y="25.9999">Verifier</text>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="57.3858" x="611.2223" y="411.4001" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="618.2223" y="432.4">Verifier</text>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="73.2058" x="678.6081" y="5" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="685.6081" y="25.9999">Presenter</text>
                <rect fill="white" height="30.7999" rx="2.5" ry="2.5" width="73.2058" x="678.6081" y="411.4001" stroke="black" stroke-width="0.5"/>
                <text fill="black" font-family="sans-serif" font-size="14" x="685.6081" y="432.4">Presenter</text>
                <rect fill="white" height="101.8" width="10" x="223.52" y="93" stroke="black" stroke-width="1.0"/>
                <rect fill="white" height="131.4001" width="10" x="223.52" y="256" stroke="black" stroke-width="1.0"/>
                <rect fill="white" height="72.2" width="10" x="479.3651" y="122.6" stroke="black" stroke-width="1.0"/>
                <rect fill="white" height="29.6" width="10" x="710.211" y="285.6" stroke="black" stroke-width="1.0"/>
                <path d="M10,53.7999 L111.2251,53.7999 L111.2251,61.3999 L101.2251,71.3999 L10,71.3999 L10,53.7999 " fill="white" stroke="#000000" stroke-width="1.5"/>
                <rect fill="none" height="149.0001" width="629.9152" x="10" y="53.7999" stroke="#000000" stroke-width="1.5"/>
                <text fill="black" font-family="sans-serif" font-size="13" font-weight="bold" x="25" y="67.7999">issuance</text>
                <polygon fill="black" points="211.52,89,221.52,93,211.52,97,215.52,93" stroke="black" stroke-width="1.0"/>
                <line x1="50.2749" x2="217.52" y1="93" y2="93" stroke="black" stroke-width="1.0"/>
                <text fill="black" font-family="sans-serif" font-size="13" x="57.2749" y="88.4">«initiate credential request»</text>
                <polygon fill="black" points="467.3651,118.6,477.3651,122.6,467.3651,126.6,471.3651,122.6" stroke="black" stroke-width="1.0"/>
                <line x1="233.52" x2="473.3651" y1="122.6" y2="122.6" stroke="black" stroke-width="1.0"/>
                <text fill="black" font-family="sans-serif" font-size="13" x="240.52" y="118">request credential</text>
                <line x1="489.3651" x2="531.3651" y1="152.2" y2="152.2" stroke="black" stroke-width="1.0"/>
                <line x1="531.3651" x2="531.3651" y1="152.2" y2="165.2" stroke="black" stroke-width="1.0"/>
                <line x1="490.3651" x2="531.3651" y1="165.2" y2="165.2" stroke="black" stroke-width="1.0"/>
                <polygon fill="black" points="500.3651,161.2,490.3651,165.2,500.3651,169.2,496.3651,165.2" stroke="black" stroke-width="1.0"/>
                <text fill="black" font-family="sans-serif" font-size="13" x="496.3651" y="147.6">«generate credential»</text>
                <polygon fill="black" points="239.52,190.8,229.52,194.8,239.52,198.8,235.52,194.8" stroke="black" stroke-width="1.0"/>
                <line x1="233.52" x2="483.3651" y1="194.8" y2="194.8" stroke="black" stroke-width="1.0"/>
                <text fill="black" font-family="sans-serif" font-size="13" x="245.52" y="190.2">credential</text>
                <path d="M184.5771,216.8 L299.6342,216.8 L299.6342,224.4 L289.6342,234.4 L184.5771,234.4 L184.5771,216.8 " fill="white" stroke="#000000" stroke-width="1.5"/>
                <rect fill="none" height="178.6001" width="577.2368" x="184.5771" y="216.8" stroke="#000000" stroke-width="1.5"/>
                <text fill="black" font-family="sans-serif" font-size="13" font-weight="bold" x="199.5771" y="230.8">verification</text>
                <polygon fill="black" points="244.52,252,234.52,256,244.52,260,240.52,256" stroke="black" stroke-width="1.0"/>
                <line x1="238.52" x2="638.9152" y1="256" y2="256" stroke="black" stroke-width="1.0"/>
                <text fill="black" font-family="sans-serif" font-size="13" x="250.52" y="251.4">request presentation</text>
                <polygon fill="black" points="698.211,281.6,708.211,285.6,698.211,289.6,702.211,285.6" stroke="black" stroke-width="1.0"/>
                <line x1="233.52" x2="704.211" y1="285.6" y2="285.6" stroke="black" stroke-width="1.0"/>
                <text fill="black" font-family="sans-serif" font-size="13" x="240.52" y="281">«prompt to select credential(s)»</text>
                <polygon fill="black" points="244.52,311.2001,234.52,315.2001,244.52,319.2001,240.52,315.2001" stroke="black" stroke-width="1.0"/>
                <line x1="238.52" x2="714.211" y1="315.2001" y2="315.2001" stroke="black" stroke-width="1.0"/>
                <text fill="black" font-family="sans-serif" font-size="13" x="250.52" y="310.6">«select claims from credential(s)»</text>
                <line x1="233.52" x2="275.52" y1="344.8001" y2="344.8001" stroke="black" stroke-width="1.0"/>
                <line x1="275.52" x2="275.52" y1="344.8001" y2="357.8001" stroke="black" stroke-width="1.0"/>
                <line x1="234.52" x2="275.52" y1="357.8001" y2="357.8001" stroke="black" stroke-width="1.0"/>
                <polygon fill="black" points="244.52,353.8001,234.52,357.8001,244.52,361.8001,240.52,357.8001" stroke="black" stroke-width="1.0"/>
                <text fill="black" font-family="sans-serif" font-size="13" x="240.52" y="340.2001">«generate presentation proof selection»</text>
                <polygon fill="black" points="627.9152,383.4001,637.9152,387.4001,627.9152,391.4001,631.9152,387.4001" stroke="black" stroke-width="1.0"/>
                <line x1="228.52" x2="633.9152" y1="387.4001" y2="387.4001" stroke="black" stroke-width="1.0"/>
                <text fill="black" font-family="sans-serif" font-size="13" x="235.52" y="382.8001">presentation proof</text>
                <!--SRC=[TPAnReKm34Ltli9ZE_035MBlKAbIfUvfCCWLBw6Eyxw_CG6QyEXcMxudrtOczd412Y4QPx41W8_uzOrMe6rxUCE1Z7X-WQuZHv8I1Ciue4ln38m_4OFqlGgD5RfhmwxIuciY8qFNjWLianMaIfyrXLgjv52DJEYGQoFP0AD4TYVgW1VSebYQBShR5XfqGzDCwvBko3IIDKBUQVVdcc_s7eTR64EoSRHVlhZ7A-CzA_AK2_lR8Y0U0ivwZx-ndiBpQUE7icBgqYlcJfeDtGACwOKhQh65Q-xvPnm7AKTEYVVZPZxbrOaU6_-xYkx_5m00]-->
  </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
group issuance
   Subject --> Mediator: <<initiate credential request>>
   activate Mediator
   Issuer <-- Mediator: request credential
   activate Issuer
   Issuer --> Issuer: <<generate credential>>
   return credential
   deactivate Issuer
   deactivate Mediator
   deactivate Subject
end

group verification
   Verifier --> Mediator: request presentation
   activate Mediator
   Mediator --> Presenter: <<prompt to select credential(s)>>
   activate Presenter
   Mediator <-- Presenter: <<select claims from credential(s)>>
   deactivate Presenter
   Mediator --> Mediator: <<generate presentation proof selection>>
   return presentation proof
   deactivate Mediator
end
]]></artwork>
        </artset>
        <t>The mediator (acting on behalf of the subject) requests a credential from the issuer. The way this flow is initiated is implementation dependent and in some cases (notably in <xref target="OIDC4VCI"/>) the flow often starts with the subject visiting a web page at the issuer where the subject is first authenticated and then presented with means to launch a credential issuance request using their mediator. These details are left out from the diagram above.</t>
        <t>The credential is generated by the issuer presumably based on information the issuer has about the data subject but exactly how the credential is generated is implementation dependent and out of scope for this specification. The claims in the credential typically comes from some source with which the issuer has a trust relationship. The term "authentic source" is sometimes used when there is a need to distinguish the source of the claims in a credential from the source of the credential which by definition is the issuer.</t>
        <t>The mediator receives a credential from the issuer. The credential is bound both to the mediator and to the issuer in such a way that presentation proofs generated from the credential can be used to verify said bindings.</t>
        <t>At some later point, the subject wants to use the credentials in their mediator to provide identity data to an application. The application has a verifier (a specific software component responsible for verifying presentation proofs) associated with it. The mediator - often after involving the user in some form of interaction to choose which credential(s) to use and what parts of the credential(s) to include - generates a presentation proof and sends it to the verifier. The precise way this flow is initiated is again implementation dependent and in some cases (notably <xref target="OIDC4VP"/>) the flow starts with the subject visiting the application and hitting a "login" button which directs the users device to launch the mediator to complete the flow. These details are left out of the diagram above.</t>
        <t>Upon receipt of the presentation the verifier verifies the issuer and mediator binding (aka holder binding) of the proof and - if the implementation supports revocation - the current validity of the underlying credential(s). If successful the data in the proof is made available to the application.</t>
      </section>
      <section anchor="delegated-or-assisted-presentation-flow">
        <name>Delegated or Assisted Presentation Flow</name>
        <t>Delegated flows occur when a third party, such as an enterprise or legal representative, is authorized to present credentials on behalf of the data subject. The presentation mediator ensures that delegation is properly scoped and authorized, preventing misuse.</t>
        <t>Assisted flows involve granting limited rights to a third party to act on behalf of the data subject. This may take the form of a secondary credential that grants access to the mediator for the purpose of generating and transmitting presentation proofs on behalf of the data subject.</t>
      </section>
    </section>
    <section anchor="normative-requirements">
      <name>Normative Requirements</name>
      <section anchor="subject-control">
        <name>Subject control</name>
        <t>The mediator <bcp14>SHOULD</bcp14> provide the subject with the means to control which data from a credential is used in a presentation proof.</t>
        <t>The mediator <bcp14>MUST NOT</bcp14> be able to generate a presentation proof without the participation and approval of the data subject.</t>
      </section>
      <section anchor="selective-disclosure">
        <name>Selective Disclosure</name>
        <t>A conformant implementation <bcp14>SHOULD</bcp14> identify a format for representing digital credentials that make it possible for the subject to select a subset of the data present in the credential for inclusion in a presentation proof.</t>
        <t>Note that there are situations where selective disclosure isn't applicable, for instance when the data subject is legally complelled to present a credential. Exactly when selective disclosure is available as an option and what aspects of the credential is meaningful to select is an implementation issue and out of scope.</t>
      </section>
      <section anchor="issuer-binding">
        <name>Issuer Binding</name>
        <t>A verifier <bcp14>MUST</bcp14> be able to verifiy the identity of the issuer of the credential from a presentation proof.</t>
      </section>
      <section anchor="mediator-binding">
        <name>Mediator Binding</name>
        <t>The verifier <bcp14>MUST</bcp14> be able to verify that the mediator sending the presentation proof is the same mediator that received the credential from which the presentation proof was derived.</t>
        <t>Note that this is often termed 'holder' binding because the mediator is sometimes called the holder.</t>
      </section>
      <section anchor="non-linkability-and-data-minimization">
        <name>Non-linkability and data minimization</name>
        <t>The verifier <bcp14>MUST NOT</bcp14> be able to infer information about data or subjects not present in the presentation. This includes any association between the mediator or subject and other issuers and verifiers not associated with the presentation. In particular, colluding verifiers <bcp14>MUST NOT</bcp14> be able to infer data not present in presentation proofs.</t>
      </section>
      <section anchor="revocation">
        <name>Revocation</name>
        <t>A conformant implementation <bcp14>SHOULD</bcp14> provide a way for an issuer to revoke an issued digital credential in such a way that subsequent attempts by a verifier to verify the authenticity of proofs based on that credential fail.</t>
      </section>
    </section>
    <section anchor="profiles">
      <name>Profiles</name>
      <t>Several profiles of this reference architecture exist. We present two below.</t>
      <section anchor="openid-and-sd-jwt">
        <name>OpenID and SD-JWT</name>
        <t>A minimal profile of the direct presentation credential architecture is as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Digital credentials are represented as SD-JWT objects <xref target="SDJWT"/></t>
          </li>
          <li>
            <t>An issuer implements the OP side of <xref target="OIDC4VCI"/></t>
          </li>
          <li>
            <t>A verifier implements RP side of <xref target="OIDC4VP"/></t>
          </li>
          <li>
            <t>A mediator implements the RP side of <xref target="OIDC4VCI"/> and the OP side of <xref target="OIDC4VP"/></t>
          </li>
        </ol>
        <t>A mediator conforming to this profile is essentially an openid connect store-and-proove proxy with a user interface allowing the subject control over selective disclosure.</t>
        <t>This minimal profile fulfills several of the requirements in the previous section:</t>
        <ul spacing="normal">
          <li>
            <t>Selective disclosure is provided by the use of SD-JWT objects to represent credential and presentation objects.</t>
          </li>
          <li>
            <t>Issuer binding is provided by a combination of digital signatures on SD-JWTs and OpenID connect authentication between the mediator and issuer.</t>
          </li>
          <li>
            <t>Non-linkability is provided by not reusing SD-JWTs from the issuer for multiple presentations. The mediator <bcp14>MAY</bcp14> obtain multiple copies of the same SD-JWT credentials from the mediator at the same time. These can then be used to generate separate presentation objects, never reusing the same SD-JWT credential for separate verifiers.</t>
          </li>
        </ul>
        <t>This profile does not provide any solution for revocation and it leaves the question of how OpenID connect entities (issuers, verifiers and mediator) trust each other. There are also real scalability issues involved in how the digital signature keys are managed but as a minimal profile it illustrates the components necessary to make a direct presentation architecture work.</t>
      </section>
      <section anchor="anoncreds">
        <name>Anoncreds</name>
        <t>TODO: write about hyperledger &amp; anoncreds</t>
      </section>
      <section anchor="the-eu-digital-identity-wallet">
        <name>The EU Digital Identity Wallet</name>
        <t>The EU digital identity wallet (EUID wallet) as defined by the architecture reference framework <xref target="ARF"/> is an evolving profile for a direct presentation architecture that includes several aspects of the minimal profile above. Note that the EUID wallet specification is in flux and subect to signifficant change.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>One of the main security considerations of a direct presentation credential architecture is how to establish the transactional trust between both the entities (mediators, issuers and verifiers) aswell as the technical trust necessary for the cryptographic binding between the digital credentials and their associated presentation. Digital credentials are sometimes long-lived which also raises the issue of revocation with its associated security requirements.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>None so far</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="SDJWT">
          <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="1" month="March" year="2025"/>
            <abstract>
              <t>   This specification defines a mechanism for the selective disclosure
   of individual elements of a JSON-encoded data structure used as the
   payload of a JSON Web Signature (JWS).  The primary use case is the
   selective disclosure of JSON Web Token (JWT) claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-selective-disclosure-jwt-17"/>
        </reference>
        <reference anchor="OIDC4VP" target="https://openid.net/specs/openid-connect-4-verifiable-presentations-1_0-07.html#name-authors-addresses">
          <front>
            <title>OpenID for Verifiable Presentations</title>
            <author initials="O." surname="Terbu" fullname="Oliver Terbu">
              <organization/>
            </author>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization/>
            </author>
            <author initials="K." surname="Yatsuda" fullname="Kristina Yatsuda">
              <organization/>
            </author>
            <author initials="A." surname="Lemmon" fullname="Adam Lemmon">
              <organization/>
            </author>
            <author initials="T." surname="Looker" fullname="Tobias Looker">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OIDC4VCI" target="https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html">
          <front>
            <title>OpenID for Verifiable Credential Issuance</title>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization/>
            </author>
            <author initials="K." surname="Yatsuda" fullname="Kristina Yatsuda">
              <organization/>
            </author>
            <author initials="T." surname="Looker" fullname="Tobias Looker">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="SAML" target="http://www.oasis-open.org/committees/security/docs/cs-sstc-core-01.pdf">
          <front>
            <title>Assertions and Protocol for the OASIS Security Assertion Markup Language (SAML)</title>
            <author fullname="Phillip Hallam-Baker" initials="P." surname="Hallam-Baker">
              <organization>VeriSign</organization>
            </author>
            <author fullname="Eve Maler" initials="E." surname="Maler">
              <organization>Sun Microsystems</organization>
            </author>
            <date day="31" month="May" year="2002"/>
          </front>
          <seriesInfo name="OASIS Committee Specification" value="sstc-core"/>
        </reference>
        <reference anchor="OPENIDC">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author initials="N." surname="Sakimura" fullname="Nat Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley" fullname="John Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones" fullname="Michael Jones">
              <organization/>
            </author>
            <author initials="B." surname="de Medeiros" fullname="Breno de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore" fullname="Chuck Mortimore">
              <organization/>
            </author>
            <date year="2014"/>
          </front>
        </reference>
        <reference anchor="PathToSSI" target="http://www.lifewithalacrity.com/2016/04/the-path-to-self-soverereign-identity.html">
          <front>
            <title>The Path to Self-Sovereign Identiy</title>
            <author initials="C." surname="Allen" fullname="Chrisopher Allen">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ARF" target="https://digital-strategy.ec.europa.eu/en/library/european-digital-identity-wallet-architecture-and-reference-framework">
          <front>
            <title>The European Digital identity Wallet architecture and Reference framework</title>
            <author initials="" surname="COM" fullname="The European Commission">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 344?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Several people have contributed to this text through discussion. The author especially wishes to acknowledge the following individuals who have helped shape the thinking around trust and identity in general and this topic in particular.</t>
      <ul spacing="normal">
        <li>
          <t>Pamela Dingle</t>
        </li>
        <li>
          <t>Heather Flanagan</t>
        </li>
        <li>
          <t>Peter Altman</t>
        </li>
        <li>
          <t>Giuseppe DeMarco</t>
        </li>
        <li>
          <t>Lucy Lynch</t>
        </li>
        <li>
          <t>R.L. 'Bob' Morgan</t>
        </li>
        <li>
          <t>Jeff Hodges</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
