<?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.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-novak-rats-tacra-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="TACRA">Trustworthy Acquisition of Credentials via Remote Attestation</title>
    <seriesInfo name="Internet-Draft" value="draft-novak-rats-tacra-00"/>
    <author initials="M." surname="Novak" fullname="Mark Novak">
      <organization>J.P. Morgan Chase &amp; Co.</organization>
      <address>
        <email>mark.f.novak@jpmchase.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>Henk.Birkholz@ietf.contact</email>
      </address>
    </author>
    <date year="2026" month="September" day="11"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>trustworthy workload identity</keyword>
    <keyword>remote attestation</keyword>
    <keyword>credential enrollment</keyword>
    <keyword>credential retrieval</keyword>
    <abstract>
      <?line 88?>

<t>There is a large class of "RATS-Unaware" Relying Parties (RUPs) that Attesters nevertheless need to interoperate with.
Existing deployed services, which precede the introduction of Remote Attestation, are often difficult to change/update in significant ways due to, among other reasons, organizational friction, technological inertia, and regulatory policies.
There are significant advantages if workloads can be incrementally updated in the trustworthiness of the platform, without disrupting their clients and servers.</t>
      <t>This document describes an architecture by which Remote Attestation is utilized for providing Attesters with Identity Documents (keys or credentials) to authenticate to RUPs.
This architecture is intended to work with common credential acquisition protocols and mechanisms such as EST, SPIFFE/SPIRE, ACMEv2, and many others.</t>
      <t>Another important but separate goal is to encapsulate the Attester-side complexity of Remote Attestation and credential acquisition similar to how Envoy does it.
This allows Attesters to be implemented in a way that abstracts away the details of credential acquisition: both the protocols used and the Credential Acquisition Mechanisms employed, whether minting new (Enrollment), or requesting existing (Retrieval) credentials.
Likewise, the choice between RATS Passport and Background Check models is made opaque to the Attester, further simplifying its development.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://TheBankster.github.io/rats-tacra/draft-novak-rats-tacra.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-novak-rats-tacra/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Remote ATtestation ProcedureS Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/TheBankster/rats-tacra"/>.</t>
    </note>
  </front>
  <middle>
    <?line 101?>

<section anchor="intro">
      <name>Introduction</name>
      <t>Success of a technology is ultimately measured by its adoption.
The Remote ATestation procedureS (RATS) Architecture <xref target="RFC9334"/> requires that RATS Relying Parties understand Attestation Results, execute Appraisal Policy for Attestation Results, and have trust in Verifiers.
A change in Evidence may lead to a change in either the Attestation Results or Appraisal Policy for Attestation Results.
However, it is common for authentication and authorization policies on Relying Parties to remain static for long periods of time.
This is achieved by limiting which entities get to receive the credentials used for authentication and authorization, rather than have the Relying Party make complex decisions based on the credential's changing content.</t>
      <t>One key requirement for successful deployment of Remote Attestation-capable workloads is minimal blast radius.
When a workload is moved from a legacy to a remotely attestable Trusted Execution Environment, that workload can use Remote Attestation to obtain a stable and trustworthy Identity Document, while its clients and servers do not notice anything different.
For that, a mechanism is required by means of which a Secret Vault or a Credential Authority takes on the role of RATS Relying Party.
This provides an intermediation between Attestation Results and the RATS-Unaware Relying Parties whose authentication and authorization policies may precede the introduction of Remotely Attestable Workloads and remain static for long periods of time.
For the RATS-Unaware Relying Parties, these adoption barriers are eliminated, as these RUPs are capable of authenticating their clients utilizing Identity Document types they are already familiar with.</t>
      <t>In summary, rather than using Remote Attestation directly against the RUP, the Attester uses it to obtain from the RATS Relying Party a key, bearer token or proof-of-possession credential that is compatible with the RUP.
This document details an Architecture by which legacy Identity Document issuance mechanisms are replaced or modified such that functionally identical Identity Documents are issued, but with the additional prerequisite of successful Remote Attestation of the workloads in question.</t>
      <section anchor="reasons-for-rats-unaware-relying-party-immutability">
        <name>Reasons for RATS-Unaware Relying Party Immutability</name>
        <t>The most important and most common scenario addressed here is that of a workload that employs Remote Attestation but whose Relying Party has no capacity to process Attestation Results or execute Appraisal Policy for Attestation Results.
This RATS-Unaware Relying Party is typically unable to make the corresponding changes for a number of reasons:</t>
        <ul spacing="normal">
          <li>
            <t>It may be a compiled object or container provided by a third party</t>
          </li>
          <li>
            <t>Or it may be implemented in a language not easily changed or upgraded with new capabilities</t>
          </li>
          <li>
            <t>Further, such a system may require extensive and significant review by an authority before changes to the core algorithm can be made</t>
          </li>
          <li>
            <t>Or, finally, the reluctance to change may come from organizational friction within an enterprise where the remotely attesting workload is organizationally separate from its Relying Party and different priorities of different parts of organization prevent them moving in lockstep</t>
          </li>
        </ul>
        <t>In all of these cases, it is assumed that the remotely attesting workload can make the necessary changes to perform remote attestation, and that interoperability with the RUP will be preserved so long as the pre-shared key, bearer token, or proof-of-possession credential obtained by the workload following Remote Attestation matches that expected by the RUP.</t>
      </section>
    </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?>

<ul spacing="normal">
        <li>
          <t>Proof-of-Possession Credential: a credential that requires a private asymmetric signing key to sign statements using this credential
          </t>
          <ul spacing="normal">
            <li>
              <t>PKIX certificate <xref target="RFC5280"/></t>
            </li>
            <li>
              <t>WIMSE Workload Identity Certificate (WIC) and Workload Identity Token (WIT) <xref target="WIMSE"/></t>
            </li>
            <li>
              <t>etc.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Bearer Token Credential: a credential that does not require proof of possession of a secret to use:
          </t>
          <ul spacing="normal">
            <li>
              <t>Pre-shared symmetric key</t>
            </li>
            <li>
              <t>API key</t>
            </li>
            <li>
              <t>JSON Web Token JWT <xref target="RFC7519"/></t>
            </li>
            <li>
              <t>etc.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Credential Type: a catch-all term for any concrete credential type from the two lists above</t>
        </li>
        <li>
          <t>Credential, a.k.a. Identity Document: an instance of a Credential Type</t>
        </li>
        <li>
          <t>Credential Acquisition Mechanism: one of any number of existing or future mechanisms for acquiring credentials, such as <xref target="RFC7030"/>, <xref target="SPIFFE"/>/<xref target="SPIRE"/>, <xref target="RFC8555"/>, <xref target="DAA"/>, etc.</t>
        </li>
        <li>
          <t>Credential Acquisition System (CAS): a client-server architecture comprising a CAS Client and a CAS Server which implements a Credential Acquisition Mechanism</t>
        </li>
        <li>
          <t>Credential Acquisition Mode: one of
          </t>
          <ol spacing="normal" type="1"><li>
              <t>Credential Enrollment (minting new proof-of-possession credential), or</t>
            </li>
            <li>
              <t>Credential Retrieval (retrieving an existing, pre-provisioned credential of any Credential Type)</t>
            </li>
          </ol>
        </li>
        <li>
          <t>Replica workloads: workloads that are functionally indistinguishable from the point of view of clients that authenticate to them or servers that they authenticate to; typical in "horizontal scale-out" scenarios where multiple identical workload instances are launched to handle the load in parallel</t>
        </li>
        <li>
          <t>Target: the RATS-unaware Relying Party for which the Attester seeks credentials</t>
        </li>
        <li>
          <t>Credential Hint: optional, implementation-defined information supplied by the Attester about the credential it expects. The Attester <bcp14>MAY</bcp14> obtain the hint from runtime configuration. A RATS Relying Party <bcp14>MAY</bcp14> use the hint, ignore it, or reject the request. This document does not specify the hint's syntax or meaning.</t>
        </li>
        <li>
          <t>CSK: Credential Signing Key for proof-of-possession credentials; CSKpri and CSKpub refer to the private and public portions, respectively</t>
        </li>
        <li>
          <t>CEK: Credential Encryption Key for retrieved secrets; CEKpri and CEKpub refer to the private and public portions, respectively</t>
        </li>
        <li>
          <t>Freshness Handle: a Handle as defined in <xref target="INTERACTION-MODELS"/> (for example an attestation nonce or an Epoch Marker), bound into Evidence to demonstrate freshness</t>
        </li>
        <li>
          <t>Freshness Kind: how freshness is established for one credential-acquisition exchange; see <xref target="freshness-kind"/></t>
        </li>
      </ul>
      <t>Note: WITs are JWTs that require key confirmation.
That makes them proof-of-possession credentials, whereas JWTs are used without key confirmation and are thus considered bearer tokens.</t>
      <section anchor="freshness-kind">
        <name>Freshness Kind</name>
        <t>This document classifies Evidence freshness for a credential-acquisition exchange by combining the methods in Section 10 of <xref target="RFC9334"/> with whether Initiate-Credential-Acquisition (<xref target="Initiate-Credential-Acquisition"/>) returns a Freshness Handle.</t>
        <t><tt>present-*</tt> kinds return a Freshness Handle; the Attester embeds that Handle in Evidence.
<tt>absent-*</tt> kinds return no Handle; the Attester uses a trusted clock, an epoch identifier already held locally, or no freshness claim.</t>
        <t>The Freshness Kind is one of:</t>
        <ul spacing="normal">
          <li>
            <t><tt>absent-timestamp</tt>: no Freshness Handle is returned; the Attester stamps Evidence from a trusted clock (<xref target="RFC9334"/>, Section 10.1)</t>
          </li>
          <li>
            <t><tt>absent-none</tt>: no Freshness Handle is returned; Evidence carries no freshness claim</t>
          </li>
          <li>
            <t><tt>absent-epoch</tt>: no Freshness Handle is returned; the Attester embeds an epoch identifier already held locally (<xref target="RFC9334"/>, Section 10.3)</t>
          </li>
          <li>
            <t><tt>present-nonce</tt>: Initiate-Credential-Acquisition returns a single-use nonce as the Freshness Handle; the Attester embeds that Handle in Evidence (<xref target="RFC9334"/>, Section 10.2)</t>
          </li>
          <li>
            <t><tt>present-epoch</tt>: Initiate-Credential-Acquisition returns the current epoch marker as the Freshness Handle; the Attester embeds that Handle in Evidence and retries Initiate-Credential-Acquisition if the epoch has moved (<xref target="RFC9334"/>, Section 10.3)</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="design-goals">
      <name>Design Goals</name>
      <t>This architecture is a result of work by the Confidential Computing Consortium's Trustworthy Workload Identity (TWI) SIG <xref target="TWISIGCharter"/> which has published a set of Definitions <xref target="TWISIGDef"/> and Requirements <xref target="TWISIGReq"/>.
The requirements published by the TWI SIG are deliberately high-level.
The design goals specified here fully align with the TWI SIG requirements, while focusing on a portable and extensible implementation.</t>
      <ol spacing="normal" type="1"><li>
          <t><bcp14>MUST</bcp14> support mechanisms for enrolling (minting new) as well as retrieving (pre-existing) credentials; the workload knows what Credential Type it will need when it launches, but discovers whether it will have to retrieve an existing or enroll a new credential at runtime.</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> support most current and future credential formats:
          </t>
          <ul spacing="normal">
            <li>
              <t>X.509 Certificates</t>
            </li>
            <li>
              <t>WIMSE Workload Identity Certificates (WICs)</t>
            </li>
            <li>
              <t>WIMSE Workload Identity Tokens (WITs)</t>
            </li>
            <li>
              <t>Bearer tokens (JWTs, API Keys)</t>
            </li>
            <li>
              <t>TPM 2.0 DAA Group Certificates (for Replica workloads)</t>
            </li>
            <li>
              <t>Pre-shared keys</t>
            </li>
            <li>
              <t>Future formats through architectural extensibility</t>
            </li>
          </ul>
        </li>
        <li>
          <t><bcp14>SHOULD</bcp14> limit the trust boundary expansion of the Attesting Environment to the minimum</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> support, transparently to the Attester, most current and future Credential Acquisition Mechanisms:
          </t>
          <ul spacing="normal">
            <li>
              <t>EST (RFC 7030)</t>
            </li>
            <li>
              <t>SPIFFE/SPIRE</t>
            </li>
            <li>
              <t>ACMEv2 (RFC 8555)</t>
            </li>
            <li>
              <t>TPM 2.0 DAA Join protocol (based on TPM 2.0 AK Cert)</t>
            </li>
            <li>
              <t>Future mechanisms through architectural extensibility</t>
            </li>
          </ul>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> support Workloads utilizing different Credential Acquisition Mechanisms per-target</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> support both Background Check and Passport RATS modes, indistinguishably from the PoV of the Attester</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> support most current and future RATS Verifiers, Credential Authorities, and Secret Vaults, transparently to the Attester</t>
        </li>
        <li>
          <t><bcp14>MUST NOT</bcp14> assume that the Attester has network access</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> be compatible with all existing and future Confidential Computing platforms meeting minimum requirements around secure cryptography and evidence generation</t>
        </li>
        <li>
          <t><bcp14>SHOULD</bcp14> restrict visibility of fetched secrets to the Attester, specifically excluding visibility by the CAS Client and CAS Server</t>
        </li>
      </ol>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <section anchor="attesters-role">
        <name>Attester's Role</name>
        <ol spacing="normal" type="1"><li>
            <t>At the Attester level, all work is performed by a new Acquire-Credential call through a dedicated ENVOY-like <xref target="ENVOY"/> Credential Acquisition Interface (CAI) which handles all the underlying complexity; this maximally simplifies Attester development.</t>
          </li>
          <li>
            <t>To acquire credentials, CAI always uses a two-phase sequence:
            </t>
            <ol spacing="normal" type="1"><li>
                <t>It requests and obtains a Freshness Kind (<xref target="freshness-kind"/>); freshness <bcp14>MAY</bcp14> come from the Verifier, or the Relying Party, or <bcp14>MAY</bcp14> even be empty <xref target="INTERACTION-MODELS"/> <xref target="ATTESTATION-FRESHNESS"/></t>
              </li>
              <li>
                <t>It then generates and sends out Evidence, which is how the Attester demonstrates its security, possession of cryptographic key material, and capabilities</t>
              </li>
            </ol>
          </li>
          <li>
            <t>The Attester receives either an error or a newly acquired credential</t>
          </li>
        </ol>
      </section>
      <section anchor="required-modifications-to-existing-credential-acquisition-mechanisms">
        <name>Required Modifications to Existing Credential Acquisition Mechanisms</name>
        <t>It is not a goal, and, at any rate, it is not possible, to leave credential acquisition protocols and mechanisms (EST, SPIFFE/SPIRE, etc.) unmodified.
These mechanisms currently do not support Remote Attestation, for the following reasons:</t>
        <ol spacing="normal" type="1"><li>
            <t>None of the existing broadly deployed Credential Acquisition Mechanisms support this two-phase sequence, but all appear extensible to accommodate such changes without a lot of additional effort, and without risking backwards compatibility. CAS protocols <bcp14>MUST</bcp14> be able to carry Initiate-Credential-Acquisition; they need not be nonce-based.</t>
          </li>
          <li>
            <t>The credentials that these existing mechanisms return are typically visible in plaintext to the control plane (the CAS Client and the CAS Server), whereas it is a common requirement to keep the knowledge of authentication secrets to the Attesters and a small number of trusted services, such as Secret Vaults and HSMs.</t>
          </li>
        </ol>
      </section>
      <section anchor="architecture-overview">
        <name>Architecture Overview</name>
        <figure anchor="fig-tacra">
          <name>TACRA architecture</name>
          <artwork type="ascii-art"><![CDATA[
{::include tacra_architecture.txt}
]]></artwork>
        </figure>
        <t>This Architecture assumes the existence of a Credential Acquisition System (CAS), such as Enrollment over Secure Transport (EST), Secure Production Identity Framework for Everyone (SPIFFE/SPIRE), Automated Certificate Management Environment (ACMEv2), etc., that comprises a client and a server.
The CAS Client is presumed to be running on the Attester's system, but outside the Attesting Environment.
The CAS Server is a remote service invoked by the CAS Client over the CAS protocol.
Which CAS protocol is used <bcp14>MUST</bcp14> remain opaque to the Attester.</t>
        <t>The Attester (the workload) runs inside an Attesting Environment, such as a Confidential Computing Trusted Execution Environment or TEE.
It obtains credentials by invoking the Credential Acquisition Interface (CAI), defined in this document.
CAI insulates the Attester from all the details of platform-specific and protocol-specific aspects and services involved in Remote Attestation and credential enrollment/retrieval.
The CAI <bcp14>MAY</bcp14> be a statically or dynamically linked library, an Envoy-style sidecar, or any other mechanism, but it <bcp14>MUST</bcp14> be part of the Attesting Environment.</t>
        <t>CAI interacts with the outside world on behalf of the Attester via two channels:</t>
        <ol spacing="normal" type="1"><li>
            <t>With the underlying hardware platform to utilize its platform-specific functions, such as generating keys and obtaining evidence, via the platform-type-specific plugin, and</t>
          </li>
          <li>
            <t>With the Credential Acquisition System Client, via the well-defined Credential Acquisition API (CAAPI), also outlined later in this document.</t>
          </li>
        </ol>
      </section>
      <section anchor="architecture-meeting-design-goals">
        <name>Architecture Meeting Design Goals</name>
        <t>In the text that follows, numbers in the format "(Goal #)" refer to the corresponding numbered items in the list of Design Goals in the opening section of this document.</t>
        <t>CAAPI and the Platform Plug-in being the only two communication mechanisms needed to interact with the outside world, no network or storage stack are needed by the Attester (Goal 8).
The server side of CAAPI is part of the CAS Client.
There can be as many Credential Acquisition Client implementations as there are Credential Acquisition Mechanisms (Goal 4): EST Client, SPIRE Agent, etc.
There is no restriction against multiple Credential Acquisition Mechanisms collectively serving the same Attester, with different mechanisms utilized for different targets (Goal 5).
Existing CAS Clients are extended to support Remote Attestation via dedicated CAS Client Plug-ins.</t>
        <t>The Credential Acquisition System controls which Credential Types and which Credential Acquisition Mechanisms (enrollment, retrieval) can be provisioned to the Attester for any Attester-supplied target, without the Attester's knowledge or involvement (Goal 1).
If a Credential Type specified by the Attester is unavailable due to Credential Acquisition System limitations, an error will result.
It is an administrative error to pair an Attester with a Credential Acquisition System that is unable to supply it with the Credential Type it requires.</t>
        <t>The Credential Acquisition Server implements the server side of the corresponding Credential Acquisition Mechanism and interacts with the RATS Verifier, the Identity Provider (e.g., a Credential Authority for minting new certificates) and the Secret Vault for fetching existing keys or credentials, on the Attester's behalf (Goal 7).
The Credential Types supported by this Architecture are limited only by what the Credential Acquisition System can support (Goal 2).
Existing Credential Acquisition Servers are extended to support Remote Attestation via dedicated CAS Server Plug-ins.
The CAS Server's interactions with the Verifier are those of a conduit, not of a Relying Party.
When Initiate-Credential-Acquisition returns a Verifier-originated or RATS Relying Party-originated Freshness Handle, the CAS Server obtains that Handle and forwards it; it <bcp14>MUST NOT</bcp14> generate <tt>present-nonce</tt> or <tt>present-epoch</tt> values.
In the Passport model, the CAS Server forwards Evidence to the Verifier and forwards the resulting Attestation Results to the Credential Authority or Secret Vault, which remain the Relying Parties that execute Appraisal Policy for Attestation Results.
In the Background Check model, the Relying Party typically obtains Attestation Results from the Verifier directly; the CAS Server need not be on that path.
The CAS Server <bcp14>MUST NOT</bcp14> appraise, modify, or replace Attestation Results.
These Verifier exchanges are opaque to the Attester.</t>
        <t>This arrangement shields the Attester developers from having to know the details of the platform on which the Attester runs (Goal 9).
It restricts the unavoidable expansion of the Attesting Environment to the smallest possible amount (Goal 3).
There is no difference, from the standpoint of the Attester, whether the RATS Passport or Background Check model is being used (Goal 6).</t>
        <t>Under the covers and opaquely to the Attester, the Credential Acquisition Interface discovers and utilizes one of two Credential Acquisition Modes: Enrollment and Retrieval.
Enrollment corresponds to minting new proof-of-possession credentials, and Retrieval is used to fetch preshared keys, bearer tokens and shared proof-of-possession credentials (e.g., for Replica workloads).
In both cases, the associated secrets remain opaque to the CAS at all times (Goal 10) even if the credential, such as an X.509 certificate, is public and can be returned in plaintext.</t>
        <ul spacing="normal">
          <li>
            <t>Enrollment: the Credential Acquisition Interface generates a CSK and CSR and includes alongside Evidence CSKpub and the CSR. There <bcp14>MUST</bcp14> exist a binding between the CSR/CSKpub and Evidence. It is possible to include Evidence in the CSR, or vice versa: include the CSR in Evidence. The details of how this is decided at runtime are TBD (TODO: discuss, with reference to <xref target="CSR-ATTEST"/>). A Credential Authority <bcp14>MAY</bcp14> use a Credential Hint when assigning a Subject Alternative Name or other certificate properties.</t>
          </li>
          <li>
            <t>Retrieval: the Credential Acquisition Interface generates an asymmetric encryption key CEK and includes CEKpub in Evidence. The resulting secrets are encrypted to CEKpub, ensuring that only the Attester in possession of CEKpri can decrypt them. A Secret Vault <bcp14>MAY</bcp14> use a Credential Hint to locate the credential to return.</t>
          </li>
        </ul>
        <t>During both Enrollment and Retrieval, the Attester <bcp14>MAY</bcp14> supply a Credential Hint.
The RATS Relying Party <bcp14>MAY</bcp14> reject the request if it will not honor the hint.</t>
      </section>
      <section anchor="summary-of-rats-roles">
        <name>Summary of RATS Roles</name>
        <table anchor="tab-rats-roles">
          <name>RATS roles in TACRA</name>
          <thead>
            <tr>
              <th align="left">TACRA Component</th>
              <th align="left">RATS Role</th>
              <th align="left">Remarks</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Attester</td>
              <td align="left">Attester</td>
              <td align="left">Attesting Environment extended and complemented by CAI, CAAPI, Platform Plug-in</td>
            </tr>
            <tr>
              <td align="left">CAI</td>
              <td align="left">Part of Attester</td>
              <td align="left">Library or Sidecar assisting Attester in obtaining credentials</td>
            </tr>
            <tr>
              <td align="left">Platform Plug-in</td>
              <td align="left">Part of Attester</td>
              <td align="left">Invoked by CAI to perform platform-specific Remote Attestation and key generation operations</td>
            </tr>
            <tr>
              <td align="left">CAAPI Client</td>
              <td align="left">Part of Attester</td>
              <td align="left">Invoked by CAI to communicate with CAS Client</td>
            </tr>
            <tr>
              <td align="left">CAS Client</td>
              <td align="left">None: Conduit only</td>
              <td align="left">CAS Client extended by Remote Attestation Plug-in, <bcp14>SHOULD</bcp14> be outside the Attester's trust boundary</td>
            </tr>
            <tr>
              <td align="left">CAS Server</td>
              <td align="left">None: Conduit only</td>
              <td align="left">CAS Server extended by Remote Attestation Plug-in; forwards Freshness Handles, Evidence, and Attestation Results; does not appraise</td>
            </tr>
            <tr>
              <td align="left">Secret Vault</td>
              <td align="left">RATS Relying Party</td>
              <td align="left">Invoked in the Retrieval variant of this architecture; <bcp14>SHOULD</bcp14> encrypt retrieved results to CEKpub in order to keep it from leaking to the CAS Server</td>
            </tr>
            <tr>
              <td align="left">Credential Authority</td>
              <td align="left">RATS Relying Party</td>
              <td align="left">Invoked in the Enrollment variant of this architecture</td>
            </tr>
            <tr>
              <td align="left">Verifier</td>
              <td align="left">Verifier</td>
              <td align="left">No changes in RATS Verifier role or implementation</td>
            </tr>
            <tr>
              <td align="left">RATS-Unaware Relying Party</td>
              <td align="left">None</td>
              <td align="left">No changes in RUP role or implementation</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="credential-acquisition-api-caapi">
      <name>Credential Acquisition API (CAAPI)</name>
      <t>The Credential Acquisition API allows the Attester to communicate with the Credential Acquisition System.
These APIs are invoked by the Credential Acquisition Interface, covered in the next section.
CAAPI can be implemented using any mechanism suitable for interprocess communication, including but not limited to Protobuf/gRPC.
Here only the high-level description is provided.</t>
      <section anchor="Initiate-Credential-Acquisition">
        <name>Initiate-Credential-Acquisition</name>
        <t>Initiates the credential acquisition process by obtaining Freshness and validating that the indicated Target name, Credential Type, and Credential Hint, if any, are supported by the CAS.</t>
        <t>Parameters:</t>
        <ul spacing="normal">
          <li>
            <t>Target name, e.g., the server URI to which the Attester wishes to authenticate</t>
          </li>
          <li>
            <t>Credential Type the Attester plans to use with this Target</t>
          </li>
        </ul>
        <t>Returns:</t>
        <ul spacing="normal">
          <li>
            <t>On success:
            </t>
            <ul spacing="normal">
              <li>
                <t>Credential acquisition mechanism: "enroll" or "retrieve"</t>
              </li>
              <li>
                <t>Freshness Kind (<xref target="freshness-kind"/>): one of <tt>absent-timestamp</tt>, <tt>absent-none</tt>, <tt>absent-epoch</tt>, <tt>present-nonce</tt>, or <tt>present-epoch</tt></t>
              </li>
              <li>
                <t>Freshness Handle, when the Freshness Kind is <tt>present-nonce</tt> or <tt>present-epoch</tt></t>
              </li>
              <li>
                <t>Other TBD pertinent information, such as supported ciphers, etc. (TODO: define)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>On failure: enumerated reason for failure, such as:
            </t>
            <ul spacing="normal">
              <li>
                <t>Invalid Target</t>
              </li>
              <li>
                <t>Unsupported Target</t>
              </li>
              <li>
                <t>Unsupported Credential Type</t>
              </li>
              <li>
                <t>Server error: permission failure</t>
              </li>
              <li>
                <t>Server error: server too busy; try again later</t>
              </li>
              <li>
                <t>Server error: server unreachable</t>
              </li>
              <li>
                <t>etc. (TBD)</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="enroll-credential">
        <name>Enroll-Credential</name>
        <t>Enrolls (mints) a new proof-of-possession credential.</t>
        <t>Parameters:</t>
        <ul spacing="normal">
          <li>
            <t>Target name matching that of the corresponding Initiate-Credential-Acquisition call</t>
          </li>
          <li>
            <t>Credential Type matching that of the corresponding Initiate-Credential-Acquisition call</t>
          </li>
          <li>
            <t>Evidence, bound to the previously returned Freshness Handle, if any</t>
          </li>
          <li>
            <t>CSR matching, and bound to, the Evidence (TODO: discuss CSR-to-Evidence binding/relationship)</t>
          </li>
          <li>
            <t>Credential Hint (optional)</t>
          </li>
        </ul>
        <t>Returns:</t>
        <ul spacing="normal">
          <li>
            <t>On success: plaintext newly enrolled (minted) credential of the requested type</t>
          </li>
          <li>
            <t>On failure: enumerated reason for failure, such as:
            </t>
            <ul spacing="normal">
              <li>
                <t>Invalid Target</t>
              </li>
              <li>
                <t>Unsupported Target</t>
              </li>
              <li>
                <t>Unsupported Credential Type</t>
              </li>
              <li>
                <t>Rejected or unsupported Credential Hint</t>
              </li>
              <li>
                <t>Server error: Remote Attestation failure</t>
              </li>
              <li>
                <t>Server error: permission failure</t>
              </li>
              <li>
                <t>Server error: server too busy; try again later</t>
              </li>
              <li>
                <t>Server error: server unreachable</t>
              </li>
              <li>
                <t>etc. (TBD)</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="retrieve-credential">
        <name>Retrieve-Credential</name>
        <t>Retrieves (fetches pre-existing) credential.</t>
        <t>Parameters:</t>
        <ul spacing="normal">
          <li>
            <t>Target name matching that of the corresponding Initiate-Credential-Acquisition call</t>
          </li>
          <li>
            <t>Credential Type matching that of the corresponding Initiate-Credential-Acquisition call</t>
          </li>
          <li>
            <t>Evidence, bound to the previously returned Freshness Handle, if any</t>
          </li>
          <li>
            <t>CEKpub matching the Evidence (TODO: discuss CEK-to-Evidence binding/relationship)</t>
          </li>
          <li>
            <t>Credential Hint (optional)</t>
          </li>
        </ul>
        <t>Returns:</t>
        <ul spacing="normal">
          <li>
            <t>On success: wrapped (encrypted to CEKpub) credential of the requested type</t>
          </li>
          <li>
            <t>On failure: enumerated reason for failure, such as:
            </t>
            <ul spacing="normal">
              <li>
                <t>Invalid Target</t>
              </li>
              <li>
                <t>Unsupported Target</t>
              </li>
              <li>
                <t>Invalid Credential Type</t>
              </li>
              <li>
                <t>Rejected or unsupported Credential Hint</t>
              </li>
              <li>
                <t>Server error: failed remote attestation</t>
              </li>
              <li>
                <t>Server error: permission failure</t>
              </li>
              <li>
                <t>Server error: remote attestation failure</t>
              </li>
              <li>
                <t>Server error: server too busy; try again later</t>
              </li>
              <li>
                <t>Server error: server unreachable</t>
              </li>
              <li>
                <t>etc. (TBD)</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="caapi-invocation-sequence">
        <name>CAAPI Invocation Sequence</name>
        <t>The caller (normally the Credential Acquisition Interface) first decides which Target it wishes to authenticate to, using which Credential Type.
CAAPI offers no facilities for discovering these; they are decided out of band, for example from Attester runtime configuration.</t>
        <t>The typical invocation flow is:</t>
        <ol spacing="normal" type="1"><li>
            <t>CAAPI: Initiate-Credential-Acquisition(Target, Credential Type)
            </t>
            <ul spacing="normal">
              <li>
                <t>Returns Freshness kind and the Credential Acquisition Mode for this Target and Credential Type</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Platform Plug-in: Generate keys and Evidence for the Credential Acquisition Mode and Freshness kind returned in step 1:
            </t>
            <ul spacing="normal">
              <li>
                <t>Freshness kind of <tt>present-nonce</tt> or <tt>present-epoch</tt>: embed the Freshness Handle in Evidence</t>
              </li>
              <li>
                <t>Freshness kind of <tt>absent-timestamp</tt>: stamp Evidence from a trusted clock (<xref target="RFC9334"/>, Section 10.1)</t>
              </li>
              <li>
                <t>Freshness kind of <tt>absent-epoch</tt>: embed the locally held epoch marker</t>
              </li>
              <li>
                <t>Freshness kind of <tt>absent-none</tt>: no freshness claim</t>
              </li>
              <li>
                <t>In all cases, include in Evidence CSKpub plus CSR (enrollment) or CEKpub (retrieval)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>CAAPI: Depending on which Credential Acquisition Mode is returned, either
            </t>
            <ul spacing="normal">
              <li>
                <t>Enroll-Credential(Target, Credential Type, Credential Hint, CSR, Evidence)</t>
              </li>
              <li>
                <t>Retrieve-Credential(Target, Credential Type, Credential Hint, CEKpub, Evidence)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>CAI examining Enroll-Credential or Retrieve-Credential results:
            </t>
            <ul spacing="normal">
              <li>
                <t>If Enroll-Credential or Retrieve-Credential fails because a <tt>present-epoch</tt> marker has moved (or a <tt>present-nonce</tt> is no longer valid), it retries from Initiate-Credential-Acquisition.</t>
              </li>
              <li>
                <t>These retries are not visible to the Attester.</t>
              </li>
            </ul>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="credential-acquisition-interface-cai">
      <name>Credential Acquisition Interface (CAI)</name>
      <t>The Credential Acquisition Interface can be implemented using any mechanism suitable for local communication, including but not limited to statically linked calls and Protobuf/gRPC.
Here only the high-level description is provided.
The CAI consists of a single Acquire-Credential API, outlined below.
The Acquire-Credential implementation follows the recommended CAAPI invocation sequence.</t>
      <section anchor="acquire-credential">
        <name>Acquire-Credential</name>
        <t>Orchestrates an opaque-to-Attester process by which the Attester acquires a credential that it would need to authenticate to a given Target utilizing the given Credential Type.</t>
        <t>Parameters:</t>
        <ul spacing="normal">
          <li>
            <t>Target name, e.g., the server URI to which the Attester wishes to authenticate</t>
          </li>
          <li>
            <t>Credential Type the Attester plans to use with this Target</t>
          </li>
          <li>
            <t>Credential Hint (optional)</t>
          </li>
        </ul>
        <t>All of these parameters the Attester <bcp14>MAY</bcp14> learn from runtime configuration.</t>
        <t>Returns:</t>
        <ul spacing="normal">
          <li>
            <t>On success: newly acquired credential of the requested type</t>
          </li>
          <li>
            <t>On failure: enumerated reason for failure, such as:
            </t>
            <ul spacing="normal">
              <li>
                <t>Invalid Target</t>
              </li>
              <li>
                <t>Unsupported Target</t>
              </li>
              <li>
                <t>Unsupported Credential Type</t>
              </li>
              <li>
                <t>Rejected or unsupported Credential Hint</t>
              </li>
              <li>
                <t>Server error: Remote Attestation failure</t>
              </li>
              <li>
                <t>Server error: permission failure</t>
              </li>
              <li>
                <t>Server error: server too busy; try again later</t>
              </li>
              <li>
                <t>Server error: server unreachable</t>
              </li>
              <li>
                <t>etc. (TBD)</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="undesirability-and-inevitability-of-bearer-tokens">
        <name>Undesirability and Inevitability of Bearer Tokens</name>
        <t>This specification supports but discourages the use of bearer token credentials.
They are supported in the interest of maximizing compatibility.
While the specification takes care to deliver bearer token credentials to the Attester securely, subsequent usage, such as using them in authentication against the RUP, still risks leaking them.</t>
      </section>
      <section anchor="credential-acquisition-system-considered-untrustworthy">
        <name>Credential Acquisition System Considered Untrustworthy</name>
        <t>This architecture seeks to protect credentials acquired by the Attester from disclosure to the Credential Acquisition System.
For that reason, it does not treat the Credential Acquisition System as anything other than a conduit between the Attester and the services needed for Remote Attestation and credential issuance.
It leaves open the possibility that the CAS Server would retrieve credentials from Secret Vault in plaintext and itself encrypt them with CEKpub so that only the Attester can read them.
Likewise, it leaves open the possibility that there is no trust boundary between the Attester and CAS Client, and the CAS Client is therefore capable of inspecting the secrets the Attester generates and the secrets the CAS Server returns.
Both of these options are discouraged.</t>
        <t>The CAS is expected to remain benevolent and not tamper with or leak the traffic between the Attester, the Verifier, and the RATS Relying Parties. However, the CAS is still untrusted, and the burden on protection from such attacks rests with these trusted endpoints.</t>
      </section>
      <section anchor="credential-hint">
        <name>Credential Hint</name>
        <t>The Credential Hint is a request, not an authorization.
A Credential Authority or Secret Vault <bcp14>MAY</bcp14> use it when selecting issued credential properties, or locating a stored credential, and <bcp14>MAY</bcp14> ignore or reject it.
The hint <bcp14>MUST NOT</bcp14> cause issuance or release of a credential that Appraisal Policy for Attestation Results or local issuance policy would otherwise deny.</t>
      </section>
      <section anchor="cas-client-authentication-to-cas-server">
        <name>CAS Client Authentication to CAS Server</name>
        <t>In this architecture, Remote Attestation is used to authenticate the Attester to the services (Secret Vault or Credential Authority) involved in Credential Issuance.
In any given implementation, the CAS Client <bcp14>MAY</bcp14> still authenticate to the CAS Server.</t>
        <t>Whether CAS Client authentication must be bound to Attester authentication is left to protocol profiles.
TODO: Define what that binding looks like.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC7030">
          <front>
            <title>Enrollment over Secure Transport</title>
            <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
            <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
            <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
            <date month="October" year="2013"/>
            <abstract>
              <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7030"/>
          <seriesInfo name="DOI" value="10.17487/RFC7030"/>
        </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="RFC8555">
          <front>
            <title>Automatic Certificate Management Environment (ACME)</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <author fullname="D. McCarney" initials="D." surname="McCarney"/>
            <author fullname="J. Kasten" initials="J." surname="Kasten"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8555"/>
          <seriesInfo name="DOI" value="10.17487/RFC8555"/>
        </reference>
        <reference anchor="WIMSE">
          <front>
            <title>WIMSE Workload Credentials</title>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <date day="2" month="July" year="2026"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones up to complex multi-service, multi-cloud, multi-
   tenant deployments.

   This document defines the credentials that workloads use to represent
   their identity.  They can be used in various protocols to
   authenticate workloads to each other.  To use these credentials,
   workloads must provide proof of possession of the associated private
   key material, which is covered in other documents.  This document
   focuses on the credentials alone, independent of the proof-of-
   possession mechanism.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-02"/>
        </reference>
        <reference anchor="CSR-ATTEST">
          <front>
            <title>Use of Remote Attestation with Certification Signing Requests</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Cryptic Forest Software</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Monty Wiseman" initials="M." surname="Wiseman">
              <organization>Independent</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
         </author>
            <date day="2" month="September" year="2026"/>
            <abstract>
              <t>   Certification Authorities (CAs) issuing certificates to Public Key
   Infrastructure (PKI) end entities may require a certificate signing
   request (CSR) to include additional verifiable information to confirm
   policy compliance.  For example, a CA may require an end entity to
   demonstrate that the private key corresponding to a CSR's public key
   is secured by a hardware security module (HSM), is not exportable,
   etc.  The process of generating, transmitting, and verifying
   additional information required by the CA is called remote
   attestation.  While work is currently underway to standardize various
   aspects of remote attestation, a variety of proprietary mechanisms
   have been in use for years, particularly regarding protection of
   private keys.

   This specification defines ASN.1 structures which may carry
   attestation data for PKCS#10 and Certificate Request Message Format
   (CRMF) messages.  Both standardized and proprietary attestation
   formats are supported by this specification.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-29"/>
        </reference>
        <reference anchor="INTERACTION-MODELS">
          <front>
            <title>Reference Interaction Models for Remote Attestation Procedures</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Michael Eckel" initials="M." surname="Eckel">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <date day="2" month="April" year="2026"/>
            <abstract>
              <t>   This document describes interaction models for remote attestation
   procedures (RATS) [RFC9334].  Three conveying mechanisms --
   Challenge/Response, Uni-Directional, and Streaming Remote Attestation
   -- are illustrated and defined.  Analogously, a general overview
   about the information elements typically used by corresponding
   conveyance protocols are highlighted.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-reference-interaction-models-17"/>
        </reference>
        <reference anchor="ATTESTATION-FRESHNESS">
          <front>
            <title>Requesting a Freshness Nonce for Attestation Evidence in Certificate Signing Requests</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Siemens</organization>
            </author>
            <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
              <organization>Siemens</organization>
            </author>
            <author fullname="Joe Mandel" initials="J." surname="Mandel">
              <organization>AKAYLA, Inc.</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="4" month="July" year="2026"/>
            <abstract>
              <t>   When an end entity includes attestation statements in a Certificate
   Signing Request (CSR), the freshness of the conveyed Evidence often
   needs to be established.  A common mechanism is a nonce that is
   obtained from a Relying Party or Verifier and included by the
   Attester in the Evidence.

   This document specifies how an end entity requests such an
   attestation freshness nonce from an RA/CA when using certificate
   lifecycle management protocols.  It defines message formats and
   protocol bindings for the conveyance of nonce request and response
   messages in the Certificate Management Protocol (CMP), Enrollment
   over Secure Transport (EST), and Certificate Management over CMS
   (CMC), including optional type-specific information needed to produce
   fresh Evidence for inclusion in a CSR.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-attestation-freshness-08"/>
        </reference>
        <reference anchor="DAA">
          <front>
            <title>Direct Anonymous Attestation for the Remote Attestation Procedures Architecture</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Christopher Newton" initials="C." surname="Newton">
              <organization>University of Surrey</organization>
            </author>
            <author fullname="Liqun Chen" initials="L." surname="Chen">
              <organization>University of Surrey</organization>
            </author>
            <author fullname="Thanassis Giannetsos" initials="T." surname="Giannetsos">
              <organization>Ubitech</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   This document maps the concept of Direct Anonymous Attestation (DAA)
   to the Remote Attestation Procedures (RATS) Architecture.  The
   protocol entity DAA Issuer is introduced and its mapping with
   existing RATS roles in DAA protocol steps is specified.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-daa-09"/>
        </reference>
        <reference anchor="TWISIGCharter" target="https://github.com/confidential-computing/governance/blob/main/SIGs/TWI/TWI_Charter.md">
          <front>
            <title>Trustworthy Workload Identity (TWI) Special Interest Group - Charter</title>
            <author>
              <organization>Confidential Computing Consortium Trustworthy Workload Identity SIG</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="TWISIGDef" target="https://github.com/confidential-computing/twi/blob/main/TWI_Definitions.md">
          <front>
            <title>Trustworthy Workload Identity (TWI) Special Interest Group - Definitions</title>
            <author>
              <organization>Confidential Computing Consortium Trustworthy Workload Identity SIG</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="TWISIGReq" target="https://github.com/confidential-computing/twi/blob/main/TWI_Requirements.md">
          <front>
            <title>Trustworthy Workload Identity (TWI) Special Interest Group - Requirements</title>
            <author>
              <organization>Confidential Computing Consortium Trustworthy Workload Identity SIG</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPIFFE" target="https://github.com/spiffe/">
          <front>
            <title>Secure Production Identity Framework for Everyone</title>
            <author>
              <organization>spiffe.io</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPIRE" target="https://spiffe.io/docs/latest/spire-about/spire-concepts/">
          <front>
            <title>SPIRE Concepts</title>
            <author>
              <organization>spiffe.io</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ENVOY" target="https://envoyproxy.io">
          <front>
            <title>The Envoy Proxy</title>
            <author>
              <organization>Envoy</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 503?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank the Confidential Computing Consortium's Trustworthy Workload Identity (TWI) Special Interest Group <xref target="TWISIGCharter"/> for the definitions <xref target="TWISIGDef"/> and requirements <xref target="TWISIGReq"/> that motivated this work.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1d63Ibx5X+zyq9wyxdtSG8AKiLFdtQbhBFWbQtiUtQVlJb
W/EAaAATDmbg6RlSsKx9ln2WfbI93zl9mwsIKnZ2/SOpJCIGPX05fS7fuXRj
MBjcOyiTMlWj6LKodHmTF+VqG41nP1SJTsokz6J8EZ0Uaq6yMolTHV0ncXSh
1nmponFZKl3GaHXvIJ5OC3VN3YxPLsb3DmZxqZZ5sR1FSbbI7x3cO5jnsyxe
00DzIl6Ugyy/jq8GRVzqQRnPinhw//69A11N14nW1GG53VDTs9PL5/cOsmo9
VcWIuqBO6Z9PolmeaZXpSo+isqjUvQMa+BHNoVDxKDqcqFlVJOX28N4Bredq
WeTVhh7bWV+6WUfnRT5T86pQE2p7pbbUfE4DRAN066iBTtI8nkcJU6HccotC
uotDItDjmaNVpLIiT9M1fWp+U6iySNR1nNLMVVZhUVF013lGkRDn8C3NK8mW
0Vd4kb9Yx0lKX4Cqf0pUuRjmxZK/iIvZir5YleVGj46P0Q6Pkms1tO2O8eB4
WuQ3Wh2jh2N+c5mUq2pK716u1NM4u9KlKo79tnGbNMZUg/6DtkPpYJjkwVvH
3TwwXJXr9BDMElflKi9kK5KMtvnlMHqF1hguEj56GRdXwUNawij6eng+jF7S
n3EWnaxiraJ/jU7yITdQQp01vTZcDHnsP/1ts56h2XCWrzFuMNxFQt8Uc837
6sbEQ5U2v+SxJ3E2V+maRp7ki/KGmDHCDuna4LPi30DwP2nbeDiLw4FfDKOn
SXG1ytMfg2FfqOyq/pxHfF7EVbbKF6qIJmeX4Th4YWhfEFYgmSEilxgsy4s1
Mda18N3F85MvHz36bBRdjC8n+BoS22jw+OEX90fR+TdnfzYPPr//iB6cTi7t
58cPviTyv7Wfv3j8+PEoGp+8PL1+iEdvz15OTkmgB8+Y4QY3yVqrgZWsAWSD
CXUyuRiMLy+p46BxGq83ejDTxaAubdHZq8vTi/HJ5dnrV4OXr5+dfjsJ3mK+
KhRRR2UzNUgy4kYiAL06WOdEfB5PxhpzD88vTicvXp1OJq2hg2EHi0LpVaY0
v/5sPG6OOI9jfHP59mxy9hXxYFGy7qK9icq4WCqSEysmRjSI945pdxaJUQ8D
erCpShLt42V+rYospvkfT9N8CsHNjqlffUz9439/NSMM13MzRlubv7X668zo
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

-->

</rfc>
