<?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-01" 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-01"/>
    <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[
  Attesting
  Environment      ┌─────── Credential Acquisition System ─────────┐
┌─[Attester]───┐   │ SPIRE Agent,                   SPIRE Server,  │
│   Workload   │   │ EST Client,...                 EST Server,... │
│┌───<CAI>────┐│   │┌──────────────┐  Credential   ┌──────────────┐│
││    CAI     ││   ││  CAS Client  │  Acquisition  │  CAS Server  ││
││ Library or ││   ││┌────────────┐│   Protocol    │┌────────────┐││
││ Container  ││   │││   TACRA    ││ (EST, SPIRE,  ││   TACRA    │││
││┌─<CAAPI>──┐││   │││ CAS Client ││     etc.)     ││ CAS Server │││
│││  CAAPI   ├┼┼───┼┼►  Plug-in   │├───────────────┼►  Plug-in   │││
│││  Client  │││   ││└────────────┘│               │└──────────┬─┘││
││└──────────┘││   │└──────────────┘               └───────────┼──┘│
││┌──────────┐││   └───────────────────────────────────────────┼───┘
│││ Platform │││                    ┌─Retrieve Key/Credential──┴──┐
│││ Plug-in  │││                    │        ┌─Remote Attestation─┤
││└─────┬────┘││                    │        │         ┌─Mint New─┘
│└──────┼─────┘├───┐                │        │         │ Credential
└───────┼──────┘   │   ┌─[RATS RP]──▼─┐ ┌────▼─────┐ ┌─▼─[RATS RP]─┐
┌───────▼──────┐   │   │ Secret Vault ├─►   RATS   ◄─┤ Credential  │
├<Platform ABI>┤   │   └──────────────┘ │ Verifier │ │ Authority   │
│ (Quote, RNG, │   │                    └──────────┘ └─────────────┘
│     etc.)    │ ┌─▼─[RATS-Unaware RP]───────────────┐
└──────────────┘ │ Existing Unmodified Relying Party │
                 └───────────────────────────────────┘
]]></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 526?>

<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:
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
CcjhRVB1PHL3mt9r55aiy7o8kiox6WyH3nEwUXwpOUvIy8dPoqPLl09ejph3
Kq2Ni+ZaigPAt299x/J373o4CNqp3uxR0JptieOtUimPo2lyTjOOJpV0yhmn
JXp/szH/Aq4iislYzIQdDdbckKSUprAfegZ6/+3Pwq4Lyp/URCXcyekXdYow
BzNbOPYGgGUUNgNlNGFneZQc7UxXhfjCaKnE8Yyaw5Q1CvTMuVBwAe0ZBsQD
K+C8ZnVvxzXK3PKZ7Y0adibIDVcxGz0RuFgKbJN7jYZhmNM4SK1pbV/M7gPC
7UPAEBPuMAVZCcs8MwVwy8THvibS98z3uMtTxfGur0xRBQLVJN4J8K/8Hfis
cGJJR1/h1hG6gzb+wXW3sI6PTS3rjHyWUXnQqYl8jZPxWV9CQf12OIunQoD1
K0YI1hLMFhS9TCS0y3yiA/tSyMRHN0M5z4O3p+ya6cwnKABN0A+oHXHdEugG
l/jy60j6U7NrYhaJYJgJpuwJg4/smeLyIB5jBvXfuQaS+6zDzRF2qt3hdokm
6FiDwU/f1oxPVUf2h/2uxmEPB4kxWe+AxNyxHySPvGfR9JpIEvvK3y1tYB/5
s/PWdhZQa6Liqy6u9HvhPA9rldzERRJbC7BxaO6RRZ2RdsHR9sI7QF5w5sVc
gstcrZiY/gKpiq+NId3wGgTRXcplv1UEkuyuZcg8zm2ofXyRu5rWJKvHVEzD
zaIRoZXR7ug/J+TSHvvV+R0jImdcxlPzig8IPps4ZpjkCo3CglAyx9zhamf6
YUfQimPz0uO6Jv27mHVnfMW5aDSqaaHYyJPuUN59cQ/8DmdIcZj0wtDmEmzr
90Asy4FDBEZ9D1ZNvCqtSzjiyc2zpBdhLcHQNyYA68eKm7268BJhgasLp9Xi
+Ori/AQNjGEQOtXuT1KaZvBiYPherHOr3HaFYd5+sOuQvGR+5B7dVPeN0nZe
5nQT6BEvcSBeiPPJ7yydrYLRYNdKuEpaoPCbevrN8JyIp4Y90IeCJ+zLSwYa
8TtmeUYD8QcNiYpkc5q9NpE4MUHM9NUFK40Oz/oW51x1s+99Rzun+mOoytam
u5QladqqS3Nc7N7BhcTCDHQvM9vS07WiOunG+Mo3YTqU2P4h2PzQystD+/we
p1VcH6f2Uf9+/eB9v3Fgvt+MmPU7QmZtSGzcjs124KvdgmB3JM4O+5LNeXga
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

-->

</rfc>
