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


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

]>


<rfc ipr="trust200902" docName="draft-novak-rats-tacra-03" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="TACRA">Trustworthy Acquisition of Credentials via Remote Attestation</title>

    <author initials="M." surname="Novak" fullname="Mark F. 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>
    <author initials="S." surname="Nikolaichuk" fullname="Serhii Nikolaichuk">
      <organization>The Capital Index LLC</organization>
      <address>
        <email>nikolaichuk.s.f@gmail.com</email>
      </address>
    </author>

    <date year="2026" month="November" day="02"/>

    <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 104?>

<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.
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 title="About This Document" removeInRFC="true">
      <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 117?>

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

<t>Success of a technology is ultimately measured by its adoption.
The Remote ATtestation 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.
One key requirement for successful deployment of Remote Attestation-capable workloads is minimal blast radius: so long as a change in the workload is authorized, the clients and servers it interacts with should not notice any difference.
The minimum blast radius requirement comes from real-world deployments: it is common for authentication and authorization policies on Relying Parties to remain static for long periods of time.
It is therefore impractical to have the Relying Party make complex decisions based on the credential's changing content.</t>

<t>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>

<t><list style="symbols">
  <t>It may be a compiled object or container provided by a third party</t>
  <t>It may be implemented in a language not easily changed or upgraded with new capabilities</t>
  <t>Such a system may require extensive and significant review by an authority before changes to the core algorithm can be made</t>
  <t>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 from moving in lockstep</t>
</list></t>

<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?>

<t><list style="symbols">
  <t>Proof-of-Possession Credential: a credential that requires a private asymmetric signing key to sign statements using this credential
  <list style="symbols">
      <t>PKIX certificate <xref target="RFC5280"/></t>
      <t>WIMSE Workload Identity Certificate (WIC) and Workload Identity Token (WIT) <xref target="WIMSE"/></t>
      <t>etc.</t>
    </list></t>
  <t>Bearer Token Credential: a credential that does not require proof of possession of a secret to use:
  <list style="symbols">
      <t>Pre-shared symmetric key</t>
      <t>API key</t>
      <t>JSON Web Token JWT <xref target="RFC7519"/></t>
      <t>etc.</t>
    </list></t>
  <t>Credential Type: a catch-all term for any concrete credential type from the two lists above</t>
  <t>Credential, a.k.a. Identity Document: an instance of a Credential Type</t>
  <t>Credential Type token: the name of a Credential Type in a Credential Acquisition Mechanism and in the container of <xref target="container"/>:
  <list style="symbols">
      <t><spanx style="verb">x509</spanx>: a PKIX certificate</t>
      <t><spanx style="verb">wic</spanx>: a WIMSE Workload Identity Certificate</t>
      <t><spanx style="verb">wit</spanx>: a WIMSE Workload Identity Token</t>
      <t><spanx style="verb">jwt</spanx>: a JSON Web Token used as a bearer token</t>
      <t><spanx style="verb">api-key</spanx>: an API key</t>
      <t><spanx style="verb">psk</spanx>: a pre-shared symmetric key</t>
      <t><spanx style="verb">private-key</spanx>: a private key shared by the instances of a replicated service</t>
    </list></t>
  <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"/>, etc.</t>
  <t>Credential Acquisition System (CAS): a client-server architecture comprising a CAS Client and a CAS Server which implements a Credential Acquisition Mechanism</t>
  <t>Credential Acquisition Mode: one of
  <list style="numbers" type="1">
      <t>Credential Enrollment (minting new proof-of-possession credential), or</t>
      <t>Credential Retrieval (retrieving an existing, pre-provisioned credential of any Credential Type)</t>
    </list></t>
  <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>
  <t>Target: an octet string that identifies the RATS-unaware Relying Party for which the Attester seeks credentials.
Two Targets are the same only when those octets are identical.
This document does not assign a character encoding or a Unicode normalization.
A protocol profile specifies how a configured name is encoded into that octet string.
A profile that starts from Unicode text uses UTF-8 in Normalization Form C (<xref target="RFC5198"/>), so the Attester and the RATS Relying Party produce the same octets from the same name.
Examples of such names are a URI and a SPIFFE ID (<xref target="SPIFFE"/>).</t>
  <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>
  <t>CSK: Credential Signing Key for proof-of-possession credentials; CSKpri and CSKpub refer to the private and public portions, respectively</t>
  <t>CEK: Credential Encryption Key for retrieved secrets; CEKpri and CEKpub refer to the private and public portions, respectively</t>
  <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>
  <t>Freshness Kind: how freshness is established for one credential acquisition exchange; see <xref target="freshness-kind"/></t>
</list></t>

<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><list style="symbols">
  <t><spanx style="verb">present-*</spanx> kinds return a Freshness Handle. The Attester binds that Handle into Evidence (<xref target="binding"/>).</t>
  <t><spanx style="verb">absent-*</spanx> kinds return no Handle. The Attester binds a timestamp from a trusted clock or an epoch marker already held locally, or makes no freshness claim.</t>
</list></t>

<t>The Freshness Kind is one of:</t>

<t><list style="symbols">
  <t><spanx style="verb">absent-timestamp</spanx>: no Freshness Handle is returned; the Attester binds a timestamp from a trusted clock into Evidence (<xref target="RFC9334"/>, Section 10.1)</t>
  <t><spanx style="verb">absent-none</spanx>: no Freshness Handle is returned; Evidence carries no freshness claim</t>
  <t><spanx style="verb">absent-epoch</spanx>: no Freshness Handle is returned; the Attester binds an epoch marker already held locally into Evidence (<xref target="RFC9334"/>, Section 10.3)</t>
  <t><spanx style="verb">present-nonce</spanx>: Initiate-Credential-Acquisition returns a single-use nonce as the Freshness Handle; the Attester binds that Handle into Evidence (<xref target="RFC9334"/>, Section 10.2)</t>
  <t><spanx style="verb">present-epoch</spanx>: Initiate-Credential-Acquisition returns the current epoch marker as the Freshness Handle; the Attester binds that Handle into Evidence and retries Initiate-Credential-Acquisition if the epoch has moved (<xref target="RFC9334"/>, Section 10.3)</t>
</list></t>

<t>It is <bcp14>NOT RECOMMENDED</bcp14> to use the <spanx style="verb">absent-none</spanx> Freshness Kind as it creates an opportunity of an unlimited replay of Evidence against the RATS Relying Party.</t>

<t>A Freshness Handle has a lifetime, set by its originator, after which the originator no longer accepts it.
Initiate-Credential-Acquisition <bcp14>MAY</bcp14> return the lifetime with the Handle.
The lifetime <bcp14>SHOULD</bcp14> leave the Attester time to produce the Evidence that carries the Handle: a platform may rate-limit attestation requests, so that an Attester waits several seconds for one report.
A Freshness Handle originator <bcp14>SHOULD NOT</bcp14> set a lifetime below 60 seconds.</t>

<t>A <spanx style="verb">present-nonce</spanx> Freshness Handle is unpredictable (Section 10.2 of <xref target="RFC9334"/>): its originator <bcp14>MUST</bcp14> generate it with at least 128 bits of entropy, issue it once and never reuse it.
Its length is set by the protocol profile.
Initiate-Credential-Acquisition takes no requested length.
The Handle enters the Evidence through the digest (<xref target="binding"/>), not as the freshness input itself, so no platform needs a Handle of a particular size.</t>

<t>Under <spanx style="verb">absent-timestamp</spanx>, the RATS Relying Party accepts Evidence whose timestamp is no older than the maximum age its policy sets, and no later than its own clock by more than the skew it tolerates.
Initiate-Credential-Acquisition <bcp14>MAY</bcp14> return that maximum age, so that the Attester knows it.
Section 10.1 of <xref target="RFC9334"/> notes that in many TEEs a clock is only available outside the TEE and cannot be trusted by it.
On such a platform the timestamp bounds the age of the Evidence by a clock set by whoever serves the Attester the current time: Evidence made with that clock set ahead is accepted once the RATS Relying Party's clock reaches the timestamp, less the skew, and for the maximum age after that.
A RATS Relying Party that needs a bound on the real age of Evidence uses a <spanx style="verb">present-*</spanx> Freshness Kind, or requires the Attester's time to be attested.</t>

</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 are motivated by the TWI SIG requirements, while focusing on a portable and extensible implementation.</t>

<t><list style="numbers" type="1">
  <t>Must 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>
  <t>Must support current and future credential formats:
  <list style="symbols">
      <t>X.509 Certificates</t>
      <t>WIMSE Workload Identity Certificates (WICs)</t>
      <t>WIMSE Workload Identity Tokens (WITs)</t>
      <t>Bearer tokens (JWTs, API Keys)</t>
      <t>Pre-shared keys</t>
      <t>Future formats through architectural extensibility</t>
    </list></t>
  <t>Should limit the trust boundary expansion of the Attesting Environment to the minimum</t>
  <t>Must support, transparently to the Attester, most current and future Credential Acquisition Mechanisms:
  <list style="symbols">
      <t>EST (RFC 7030)</t>
      <t>SPIFFE/SPIRE</t>
      <t>ACMEv2 (RFC 8555)</t>
      <t>Future mechanisms through architectural extensibility</t>
    </list></t>
  <t>Must support Workloads utilizing different Credential Acquisition Mechanisms per-target</t>
  <t>Must support both Background Check and Passport RATS modes, indistinguishably from the point of view of the Attester</t>
  <t>Must support most current and future RATS Verifiers, Credential Authorities, and Secret Vaults, transparently to the Attester</t>
  <t>Must not assume that the Attester has network access</t>
  <t>Must be compatible with all existing and future Confidential Computing platforms meeting minimum requirements around secure cryptography and evidence generation</t>
  <t>Should restrict visibility of fetched secrets to the Attester, specifically excluding visibility by the CAS Client and CAS Server</t>
</list></t>

</section>
<section anchor="architecture"><name>Architecture</name>

<section anchor="attesters-role"><name>Attester's Role</name>

<t><list style="numbers" type="1">
  <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>
  <t>To acquire credentials, CAI always uses a two-phase sequence:
  <list style="numbers" type="1">
      <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>
      <t>It then generates and sends out Evidence, which is how the Attester demonstrates its security, possession of cryptographic key material, and capabilities</t>
    </list></t>
  <t>The Attester receives either an error or a newly acquired credential</t>
</list></t>

</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>

<t><list style="numbers" type="1">
  <t>None of the existing broadly deployed Credential Acquisition Mechanisms support this two-phase sequence.</t>
  <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>
</list></t>

<t>CAS protocols that are supported must therefore be able to carry Initiate-Credential-Acquisition, and must be capable of fetching and returning sealed, rather than plaintext, secrets.
All Credential Acquisition Mechanisms examined to date appear extensible to accommodate such changes without a lot of additional effort, and without risking backwards compatibility.</t>

</section>
<section anchor="architecture-overview"><name>Architecture Overview</name>

<t>At the high level, the TACRA architecture allows an Attester to obtain credentials from either a Credential Authority or a Secret Vault, both RATS Relying Parties, by interacting with these Relying Parties and the Verifier through an untrusted Credential Acquisition System (CAS).
The CAS can be any existing system, such as Enrollment over Secure Transport (EST), Secure Production Identity Framework for Everyone (SPIFFE/SPIRE), Automated Certificate Management Environment (ACMEv2), etc., extended with additional commands related to Remote Attestation.
The job of the Credential Acquisition System is to carry messages between the Attester and these back-end services using the Credential Acquisition System's own protocol.
This is illustrated below.</t>

<figure title="High-Level TACRA Architecture" anchor="fig-hla"><artwork type="ascii-art"><![CDATA[
                                      Enroll     +------------+
                               +-----------------> Credential |
                               |  +--------------+ Authority  |
                               |  |  Credential  +----+--^----+
             Initiate/         |  |                   |  |
             Enroll/           |  |                   |  |
+----------+ Retrieve  +-------+--v----+         +----v--+----+
|          +----------->  Credential   +--------->            |
| Attester |           |  Acquisition  |         |  Verifier  |
|          <-----------+    System     <---------+            |
+----------+ Initiate- +-------+--^----+         +----+--^----+
             Response/         |  |                   |  |
             Credential        |  |                   |  |
                               |  |  Credential  +----v--+----+
                               |  +--------------+   Secret   |
                               +----------------->   Vault    |
                                     Retrieve    +------------+
]]></artwork></figure>

<t>A more detailed architecture is illustrated below.</t>

<figure title="Detailed TACRA architecture" anchor="fig-tacra"><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]--v-+ +----v-----+ +-v-[RATS RP]-+
+-------v------+   |   | Secret Vault +->   RATS   <-+ Credential  |
+<Platform ABI>+   |   +--------------+ | Verifier | | Authority   |
| (Quote, RNG, |   |                    +----------+ +-------------+
|     etc.)    | +-v-[RATS-Unaware RP]---------------+
+--------------+ | Existing Unmodified Relying Party |
                 +-----------------------------------+
]]></artwork></figure>

<t>The CAS 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>

<t><list style="numbers" type="1">
  <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>
  <t>With the Credential Acquisition System Client, via the well-defined Credential Acquisition API (CAAPI), also outlined later in this document.</t>
</list></t>

</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 Mode (enrollment, retrieval) can be offered 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(s) 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 <spanx style="verb">present-nonce</spanx> or <spanx style="verb">present-epoch</spanx> 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 take on the role of 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>

<t><list style="symbols">
  <t>Enrollment: the Credential Acquisition Interface generates a CSK and a CSR. The CSR carries CSKpub and, being self-signed, proves possession of CSKpri. The CSR <bcp14>MUST</bcp14> be bound to the Evidence as specified in <xref target="binding"/>, so that the Credential Authority can be sure the CSR was produced on the Attester's platform that the Evidence describes. Carrying Evidence inside the CSR (<xref target="CSR-ATTEST"/>) does not replace this binding.</t>
  <t>Retrieval: the Credential Acquisition Interface generates an asymmetric encryption key CEK. CEKpub <bcp14>MUST</bcp14> be bound to the Evidence as specified in <xref target="binding"/>. The resulting secrets are sealed to CEKpub, so that only the Attester in possession of CEKpri can read them (<xref target="container"/>).</t>
</list></t>

<t>During both Enrollment and Retrieval, the Attester <bcp14>MAY</bcp14> supply a Credential Hint.
During Enrollment, a Credential Authority <bcp14>MAY</bcp14> use the Credential Hint when assigning a Subject Alternative Name or other certificate properties.
During Retrieval, a Secret Vault maps the Attestation Results to a credential group: stable for replica workloads, and distinct across security domains, tenants and the credentials it releases.
That mapping is performed per the RATS Relying Party's policy; this document does not specify the identifier.
An example of a mapping, not a requirement: SHA-256 over the length-prefixed concatenation, as <xref target="binding"/> prefixes, of an octet string the Secret Vault derives from the Attestation Results, the Target and an octet string that names the release policy.
It is derived from the Attestation Results and not from the Evidence, so that freshness does not change the group.</t>

<t>A Secret Vault <bcp14>MAY</bcp14> use the Credential Hint to select among the credentials that mapping allows for the attested context.
The hint <bcp14>MUST NOT</bcp14> enlarge that set: a CAS that rewrites it obtains nothing the policy would not release, for that Target, to the attested workload the Attestation Results describe.
The RATS Relying Party <bcp14>MAY</bcp14> reject the request if it will not honor the hint.</t>

<t>A Credential Authority <bcp14>MAY</bcp14> include information from the Attestation Results in the credential, for parties that accept the credential and can act on that information.
In that case, the Credential Authority is responsible for ensuring that what it adds does not break RATS-unaware Relying Parties.
For example, it keeps the addition small and, in a certificate, places it in a non-critical extension, which a certificate-using system that does not recognize may ignore (Section 4.2 of <xref target="RFC5280"/>).
Attestation Results can reveal much about the Attester's platform (Section 11 of <xref target="RFC9334"/>), and every party the credential is presented to can read what it carries, so the Credential Authority <bcp14>SHOULD</bcp14> limit what it adds to what those parties need.</t>

</section>
<section anchor="binding"><name>Binding Credential Keys to Evidence</name>

<t>The Evidence of a credential-acquisition exchange <bcp14>MUST</bcp14> carry a digest of three values in its freshness input, the field of the Evidence whose content the Attester chooses:</t>

<t><list style="numbers" type="1">
  <t>the freshness element of the Freshness Kind (<xref target="freshness-kind"/>): the Freshness Handle for the <spanx style="verb">present-*</spanx> kinds, the locally held epoch marker for <spanx style="verb">absent-epoch</spanx>, the Attester's timestamp for <spanx style="verb">absent-timestamp</spanx>, and the empty string for <spanx style="verb">absent-none</spanx>;</t>
  <t>the Target of the corresponding Initiate-Credential-Acquisition call;</t>
  <t>the subject: for Enrollment, the CSR, which carries CSKpub and proves possession of CSKpri; for Retrieval, CEKpub.</t>
</list></t>

<t>The digest is computed over the octet string</t>

<figure><artwork><![CDATA[
binding_input = len32(freshness) || freshness
             || len32(target)    || target
             || len32(subject)   || subject
]]></artwork></figure>

<t>where:</t>

<t><list style="symbols">
  <t><spanx style="verb">len32(x)</spanx> is the length of <spanx style="verb">x</spanx> in octets, as a 32-bit big-endian unsigned integer;</t>
  <t><spanx style="verb">freshness</spanx> is the freshness element; a timestamp is an 8-octet big-endian unsigned count of seconds since 1970-01-01T00:00:00Z;</t>
  <t><spanx style="verb">target</spanx> is the Target octet string; it is not recoded or normalized when the digest is computed: the octets the Attester bound are the octets the RATS Relying Party recomputes over;</t>
  <t><spanx style="verb">subject</spanx> is, for Enrollment, the DER encoding of the CSR; for Retrieval, CEKpub in the encoding the Credential Acquisition Mechanism carries it in, which the protocol profile specifies.</t>
</list></t>

<t>The length prefixes make the encoding unambiguous: no two different sequences of values produce the same octets.
The digest is SHA-512 (<xref target="RFC6234"/>) where the freshness input is 64 octets, e.g., REPORT_DATA of AMD SEV-SNP and REPORTDATA of Intel TDX.
For a field of another size, a protocol profile specifies a hash whose output is the size of the field.</t>

<t>A configured target name that is not already an octet string, such as a URI typed into Attester runtime configuration, is encoded once, by the rule the protocol profile sets, before it is supplied as the Target of Initiate-Credential-Acquisition, Enroll-Credential or Retrieve-Credential.
The RATS Relying Party applies that same rule to the Target in its policy.
Look-alike Unicode strings remain distinct Targets; a profile that uses DNS names specifies how those names are prepared.</t>

<t>The Verifier <bcp14>MUST</bcp14> report in the Attestation Results the value of the freshness input of the Evidence it appraised.
Where the expected freshness value is submitted with the Evidence, as in challenge-response appraisal, it is that value, after the Verifier has checked that the Evidence carries it.
The Credential Authority (Enrollment) or Secret Vault (Retrieval) <bcp14>MUST</bcp14> recompute the digest from the freshness element and the Target of the request and the CSR or CEKpub it received.
It <bcp14>MUST</bcp14> reject the request unless the result equals the value reported in the Attestation Results.
This is the same in the Passport and the Background Check model: either way, the Relying Party compares against a value the Verifier took from, or checked against, the appraised Evidence, never one it has from the CAS alone.</t>

<t>The Freshness Kind reaches the Attester through the CAS, so the Relying Party <bcp14>MUST</bcp14> take the Freshness Kind for a Target from its own policy, not from the request.
The freshness element <bcp14>MUST</bcp14> be checked under that kind before a credential is issued or released.
For the <spanx style="verb">absent-*</spanx> kinds, which return no Freshness Handle, the Relying Party makes that check.
For the <spanx style="verb">present-*</spanx> kinds, the Freshness Handle is either Verifier-originated or RATS Relying Party-originated.
The party that issues a Freshness Handle checks it.
A party, the Verifier included, <bcp14>MUST NOT</bcp14> issue a Freshness Handle that it cannot check:</t>

<t><list style="symbols">
  <t>Verifier-originated: the Verifier issues the Handle and checks it, and the Relying Party relies on the Verifier's check, never on the request alone. The Evidence carries the digest, not the Handle. The Verifier therefore either recomputes the digest from the three values or, in the Background Check model, checks at the Relying Party's request the same Handle the Relying Party used to recompute the digest.</t>
  <t>RATS Relying Party-originated: the Credential Authority (Enrollment) or Secret Vault (Retrieval) issues the Handle and checks it itself. A <spanx style="verb">present-nonce</spanx> Handle is one it issued and has not been used before. A <spanx style="verb">present-epoch</spanx> Handle is the current epoch marker.</t>
</list></t>

<t>Because the CAS is untrusted (<xref target="untrusted-cas"/>), each value mitigates a threat:</t>

<t><list style="symbols">
  <t>without the Target, the CAS could initiate, at the intended Relying Party, for a Target the Attester did not ask for;</t>
  <t>without the freshness element, it could replay;</t>
  <t>without the CSR or CEKpub, it could substitute a key.</t>
</list></t>

<t>The digest shows that the attested environment chose this CSR or CEKpub.
The private keys generated inside the Attesting Environment, CSKpri and CEKpri, <bcp14>MUST NOT</bcp14> leave it.
The digest does not prove it: a public key or its hash in platform Evidence does not by itself demonstrate where its private key is (Section 6.1 of <xref target="CSR-ATTEST"/>).
For Enrollment the subject is the finished CSR, so Evidence that carries this digest cannot travel inside that CSR, as the attribute of <xref target="CSR-ATTEST"/> does, and <xref target="CSR-ATTEST"/> does not replace this binding.
A CSR <bcp14>MAY</bcp14> carry further attestations about its key under <xref target="CSR-ATTEST"/>.
A Credential Authority that relies on such further attestations ensures that their binding to the key has been validated, as Section 6.1 of <xref target="CSR-ATTEST"/> requires.</t>

<t>The binding carries no Relying Party identifier.
Which RATS Relying Party serves the Attester, and what a deployment does about it, is described in <xref target="untrusted-cas"/>.</t>

<t>Producing the binding is the responsibility of the Platform Plug-in, because where the freshness input lives is platform-specific.
It takes one of three forms:</t>

<t><list style="symbols">
  <t>Direct: the Attesting Environment writes the digest into a guest-chosen field of the hardware Evidence. Examples are REPORT_DATA of an AMD SEV-SNP attestation report, REPORTDATA of an Intel TDX quote, and the user data of an AWS Nitro attestation document.</t>
  <t>Nested: a lower layer owns that field (for example, a paravisor that sets it at boot), and the digest travels in a nested attestation whose report data the guest controls, such as a vTPM quote.</t>
  <t>Provider-scoped: the Evidence is signed by a key shared across a provider's fleet and identifies the provider's key domain rather than a device. The binding holds, but a Relying Party whose policy requires a per-device identity rejects such Evidence.</t>
</list></t>

<t>A Relying Party <bcp14>MUST NOT</bcp14> assume the Direct form; it learns the form from the Attestation Results or from its appraisal policy.</t>

<t>This binding ties the CSR or CEKpub to the Attester's platform, to the intended Relying Party and Target, and to freshness.
It does not by itself tie the exchange to the channel over which the credential is acquired.
It does not cover the Credential Type or the Credential Hint, which the CAS can change.
A RATS Relying Party <bcp14>MUST NOT</bcp14> issue or release a credential beyond what its policy allows for the attested context.</t>

</section>
<section anchor="container"><name>Sealing the Released Credential</name>

<t>In Retrieval, the Secret Vault releases a credential bundle inside a container sealed to CEKpub (<xref target="binding"/>).
The CAS carries CEKpub and the container, and it is not trusted (<xref target="untrusted-cas"/>).
Sealing keeps the bundle from the CAS.
It does not tell the Attester who sealed it: anyone who saw CEKpub can seal a container to it.
This architecture accepts that.
What the Attester then holds is stated in <xref target="untrusted-cas"/>.</t>

<t>The container is an agreement between the Secret Vault that seals it and the Attester that opens it.
The Credential Acquisition Mechanism carries it and does not read it, so this document specifies it, and a protocol profile names only the suites a Secret Vault accepts.
The construction is as follows.</t>

<t><list style="numbers" type="1">
  <t>The Secret Vault seals the bundle to CEKpub with HPKE in base mode (Section 5.1.1 of <xref target="RFC9180"/>), with the <spanx style="verb">info</spanx> and the associated data below.</t>
  <t><spanx style="verb">info</spanx> is the length-prefixed concatenation, as in <xref target="binding"/>, of the label <spanx style="verb">tacra hpke-base v1</spanx>, the Target and the freshness element of the request. The label is ASCII, without a terminating NUL.</t>
  <t>The associated data names the credential group, the Target, the freshness element and the Credential Hint of the request, in the encoding below. The AEAD authenticates it, and the Attester checks that it names what its Evidence bound.</t>
  <t>The container carries the encapsulated key, the ciphertext and the associated data, and names its suite.</t>
</list></t>

<t>The mandatory HPKE suite is KEM DHKEM(P-256, HKDF-SHA256) (identifier 0x0010), KDF HKDF-SHA256 (0x0001) and AEAD AES-256-GCM (0x0002), all of <xref target="RFC9180"/>.
Implementations <bcp14>MUST</bcp14> support it.
A Secret Vault and an Attester <bcp14>MAY</bcp14> use another suite of the HPKE registries (<xref target="RFC9180"/>), named as those registries name its KEM, KDF and AEAD, the hybrid KEM MLKEM768-P256 of <xref target="HPKE-PQ"/> for instance.
Which suites a Secret Vault accepts, the Credential Acquisition Mechanism tells the Attester at Initiate-Credential-Acquisition.</t>

<t>The container is a JSON object (<xref target="RFC8259"/>), the <spanx style="verb">encrypted-credential-bundle</spanx> below, in CDDL (<xref target="RFC8610"/>).
A byte string is carried as a text string holding its unpadded base64url encoding (Section 5 of <xref target="RFC4648"/>), as the control operator <spanx style="verb">.b64u</spanx> defines it (Section 2.1 of <xref target="RFC9741"/>).
The associated data is the JSON Canonicalization Scheme serialization (<xref target="RFC8785"/>) of the <spanx style="verb">aad</spanx> object, and the plaintext is the JCS serialization of a <spanx style="verb">credential-bundle</spanx> object.
In <spanx style="verb">aad</spanx>, <spanx style="verb">target</spanx> is the Target octet string of the request.
<spanx style="verb">handle</spanx> is the freshness element and is present when the request carried one, and <spanx style="verb">credential_hint</spanx> is present when the request carried one.
The Attester compares the decoded <spanx style="verb">target</spanx> octets to the Target of the request; they are the same Target only when those octets are identical.</t>

<figure><sourcecode type="cddl"><![CDATA[
encrypted-credential-bundle = {
  container: "hpke-base",
  suite: {
    kem: text,
    kdf: text,
    aead: text,
  },
  enc: text .b64u bytes,
  ciphertext: text .b64u bytes,
  aad: {
    group_id: text,
    target: text .b64u bytes,
    ? handle: text .b64u bytes,
    ? credential_hint: text,
  },
}

credential-bundle = {
  credential_items: [+ credential-item],
  ? metadata: { * text => any },
}

credential-item = {
  type: text,
  value: text .b64u bytes,
  ? format: text,
  ? kid: text,
  ? purpose: [+ text],
  ? algorithm: text,
  ? exportable: bool,
  ? shared: bool,
}
]]></sourcecode></figure>

<t>Each credential item carries a Credential Type token as its <spanx style="verb">type</spanx> and the credential as its <spanx style="verb">value</spanx>, the unpadded base64url of the credential's octets.
Those octets are a DER certificate for <spanx style="verb">x509</spanx> and <spanx style="verb">wic</spanx>, a DER PrivateKeyInfo (<xref target="RFC5958"/>) for <spanx style="verb">private-key</spanx>, the key octets for <spanx style="verb">psk</spanx>, and the UTF-8 encoding of the token for <spanx style="verb">wit</spanx>, <spanx style="verb">jwt</spanx> and <spanx style="verb">api-key</spanx>.
<spanx style="verb">format</spanx>, when present, names another encoding of those octets, which the Secret Vault and the Attesters it serves agree on out of band.
<spanx style="verb">kid</spanx>, <spanx style="verb">purpose</spanx>, <spanx style="verb">algorithm</spanx>, <spanx style="verb">exportable</spanx> and <spanx style="verb">shared</spanx> are the key-block attributes the Secret Vault's policy sets.
<spanx style="verb">metadata</spanx> <bcp14>MAY</bcp14> carry <spanx style="verb">validity_seconds</spanx> (integer) and <spanx style="verb">secret_version</spanx> (string).</t>

<t>The Attester, through its Credential Acquisition Interface, <bcp14>MUST</bcp14> refuse a container whose associated data does not name its Target, its freshness element and its Credential Hint, or whose suite it does not support.
These checks come before it opens anything.
After these checks pass, the Attester unseals the ciphertext using CEKpri.
The Secret Vault's container for another request does not open, since it is not encrypted to the same CEKpub.
The CAS can see CEKpub and therefore can seal a container of its own choosing to it instead of the one returned by the Secret Vault.
That container passes these checks and opens, and what the Attester then holds is stated in <xref target="untrusted-cas"/>.</t>

<t>CEKpub travels in the encoding its KEM defines, and those octets are the subject of the binding (<xref target="binding"/>).
For a Diffie-Hellman KEM that is the DER encoding of a SubjectPublicKeyInfo (<xref target="RFC5280"/>).
For DHKEM(P-256, HKDF-SHA256) it is one for id-ecPublicKey on prime256v1 (<xref target="RFC5480"/>), whose subjectPublicKey holds the uncompressed point (Section 2.2 of <xref target="RFC5480"/>).
Those 65 octets are the recipient public key that HPKE deserializes (Section 7.1.1 of <xref target="RFC9180"/>).
For the KEMs of <xref target="HPKE-PQ"/>, which have no SubjectPublicKeyInfo form, it is the encapsulation key itself.
The Attesting Environment <bcp14>MUST</bcp14> generate a brand new CEK for each Retrieve-Credential request.</t>

</section>
<section anchor="summary-of-rats-roles"><name>Summary of RATS Roles</name>

<texttable title="RATS roles in TACRA" anchor="tab-rats-roles">
      <ttcol align='left'>TACRA Component</ttcol>
      <ttcol align='left'>RATS Role</ttcol>
      <ttcol align='left'>Remarks</ttcol>
      <c>Attester</c>
      <c>Attester</c>
      <c>Attesting Environment extended and complemented by CAI, CAAPI, Platform Plug-in</c>
      <c>CAI</c>
      <c>Part of Attester</c>
      <c>Library or Sidecar assisting Attester in obtaining credentials</c>
      <c>Platform Plug-in</c>
      <c>Part of Attester</c>
      <c>Invoked by CAI to perform platform-specific Remote Attestation and key generation operations</c>
      <c>CAAPI Client</c>
      <c>Part of Attester</c>
      <c>Invoked by CAI to communicate with CAS Client</c>
      <c>CAS Client</c>
      <c>None: Conduit only</c>
      <c>CAS Client extended by Remote Attestation Plug-in; <bcp14>SHOULD</bcp14> be outside the Attester's trust boundary and, wherever it runs, is trusted for nothing beyond carrying messages (<xref target="untrusted-cas"/>)</c>
      <c>CAS Server</c>
      <c>None: Conduit only</c>
      <c>CAS Server extended by Remote Attestation Plug-in; forwards Freshness Handles, Evidence, and Attestation Results; does not appraise</c>
      <c>Secret Vault</c>
      <c>RATS Relying Party</c>
      <c>Invoked in the Retrieval variant of this architecture; seals what it releases to CEKpub, opaquely to CAS Client and CAS Server (<xref target="container"/>)</c>
      <c>Credential Authority</c>
      <c>RATS Relying Party</c>
      <c>Invoked in the Enrollment variant of this architecture</c>
      <c>Verifier</c>
      <c>Verifier</c>
      <c>No changes in RATS Verifier role or implementation</c>
      <c>RATS-Unaware Relying Party</c>
      <c>None</c>
      <c>No changes in RUP role or implementation</c>
</texttable>

</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>

<t><list style="symbols">
  <t>Target name: the octet string of the Target definition, for example a profile-encoded URI of the RUP</t>
  <t>Credential Type the Attester plans to use with this Target</t>
  <t>Credential Hint (optional) the Attester wishes to communicate when obtaining the credential</t>
</list></t>

<t>Returns:</t>

<t><list style="symbols">
  <t>On success:
  <list style="symbols">
      <t>Credential acquisition mechanism: "enroll" or "retrieve"</t>
      <t>Freshness Kind (<xref target="freshness-kind"/>): one of <spanx style="verb">absent-timestamp</spanx>, <spanx style="verb">absent-none</spanx>, <spanx style="verb">absent-epoch</spanx>, <spanx style="verb">present-nonce</spanx>, or <spanx style="verb">present-epoch</spanx></t>
      <t>Freshness Handle, when the Freshness Kind is <spanx style="verb">present-nonce</spanx> or <spanx style="verb">present-epoch</spanx></t>
      <t>Lifetime of the Freshness Handle, when one is returned (optional, <xref target="freshness-kind"/>)</t>
      <t>Maximum Evidence age, when the Freshness Kind is <spanx style="verb">absent-timestamp</spanx> (optional, <xref target="freshness-kind"/>)</t>
      <t>The signature algorithms the Credential Authority accepts for the CSK, when the Credential Acquisition Mode is Enrollment</t>
      <t>The HPKE suites of the container (<xref target="container"/>) the Secret Vault accepts, when the Credential Acquisition Mode is Retrieval</t>
    </list></t>
  <t>On failure: enumerated reason for failure, such as:
  <list style="symbols">
      <t>Invalid Target</t>
      <t>Unsupported Target</t>
      <t>Unsupported Credential Type</t>
      <t>Invalid Credential Hint</t>
      <t>Server error: permission failure</t>
      <t>Server error: server too busy; try again later</t>
      <t>Server error: server unreachable</t>
    </list></t>
</list></t>

</section>
<section anchor="enroll-credential"><name>Enroll-Credential</name>

<t>Enrolls (mints) a new proof-of-possession credential.</t>

<t>Parameters:</t>

<t><list style="symbols">
  <t>Target name matching that of the corresponding Initiate-Credential-Acquisition call</t>
  <t>Credential Type matching that of the corresponding Initiate-Credential-Acquisition call</t>
  <t>Freshness element of <xref target="binding"/>: the Freshness Handle returned by the corresponding Initiate-Credential-Acquisition call, the locally held epoch marker, or the Attester's timestamp; absent for <spanx style="verb">absent-none</spanx></t>
  <t>Evidence carrying the binding of <xref target="binding"/></t>
  <t>CSR bound to the Evidence as specified in <xref target="binding"/>; the CSR carries CSKpub and proves possession of CSKpri</t>
  <t>Credential Hint (optional) matching that of the corresponding Initiate-Credential-Acquisition call</t>
</list></t>

<t>Returns:</t>

<t><list style="symbols">
  <t>On success: plaintext newly enrolled (minted) credential of the requested type</t>
  <t>On failure: enumerated reason for failure, such as:
  <list style="symbols">
      <t>Invalid Target</t>
      <t>Unsupported Target</t>
      <t>Unsupported Credential Type</t>
      <t>Rejected or unsupported Credential Hint</t>
      <t>Server error: Remote Attestation failure</t>
      <t>Server error: permission failure</t>
      <t>Server error: server too busy; try again later</t>
      <t>Server error: server unreachable</t>
    </list></t>
</list></t>

</section>
<section anchor="retrieve-credential"><name>Retrieve-Credential</name>

<t>Retrieves (fetches pre-existing) credential.</t>

<t>Parameters:</t>

<t><list style="symbols">
  <t>Target name matching that of the corresponding Initiate-Credential-Acquisition call</t>
  <t>Credential Type matching that of the corresponding Initiate-Credential-Acquisition call</t>
  <t>Freshness element of <xref target="binding"/>: the Freshness Handle returned by the corresponding Initiate-Credential-Acquisition call, the locally held epoch marker, or the Attester's timestamp; absent for <spanx style="verb">absent-none</spanx></t>
  <t>Evidence carrying the binding of <xref target="binding"/></t>
  <t>CEKpub bound to the Evidence as specified in <xref target="binding"/></t>
  <t>Credential Hint (optional)</t>
</list></t>

<t>Returns:</t>

<t><list style="symbols">
  <t>On success: wrapped (encrypted to CEKpub) credential of the requested type</t>
  <t>On failure: enumerated reason for failure, such as:
  <list style="symbols">
      <t>Invalid Target</t>
      <t>Unsupported Target</t>
      <t>Unsupported Credential Type</t>
      <t>Rejected or unsupported Credential Hint</t>
      <t>Server error: permission failure</t>
      <t>Server error: Remote Attestation failure</t>
      <t>Server error: server too busy; try again later</t>
      <t>Server error: server unreachable</t>
    </list></t>
</list></t>

</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>

<t><list style="numbers" type="1">
  <t>CAAPI: Initiate-Credential-Acquisition(Target, Credential Type, Credential Hint)
  <list style="symbols">
      <t>Returns Freshness kind and the Credential Acquisition Mode for this Target and Credential Type</t>
    </list></t>
  <t>Platform Plug-in: Generate keys and Evidence for the Credential Acquisition Mode and Freshness kind returned in step 1, with the binding of <xref target="binding"/>, whose freshness element is:
  <list style="symbols">
      <t>Freshness kind of <spanx style="verb">present-nonce</spanx> or <spanx style="verb">present-epoch</spanx>: the Freshness Handle</t>
      <t>Freshness kind of <spanx style="verb">absent-timestamp</spanx>: a timestamp from a trusted clock (<xref target="RFC9334"/>, Section 10.1)</t>
      <t>Freshness kind of <spanx style="verb">absent-epoch</spanx>: the locally held epoch marker</t>
      <t>Freshness kind of <spanx style="verb">absent-none</spanx>: empty (no freshness claim)</t>
      <t>In all cases, the binding covers the CSR (enrollment) or CEKpub (retrieval)</t>
    </list></t>
  <t>CAAPI: Depending on which Credential Acquisition Mode is returned, either
  <list style="symbols">
      <t>Enroll-Credential(Target, Credential Type, Credential Hint, freshness element, CSR, Evidence)</t>
      <t>Retrieve-Credential(Target, Credential Type, Credential Hint, freshness element, CEKpub, Evidence)</t>
    </list></t>
  <t>CAI examining Enroll-Credential or Retrieve-Credential results:
  <list style="symbols">
      <t>If Enroll-Credential or Retrieve-Credential fails because a <spanx style="verb">present-epoch</spanx> marker has moved (or a <spanx style="verb">present-nonce</spanx> is no longer valid), it retries from Initiate-Credential-Acquisition.</t>
      <t>These retries are not visible to the Attester.</t>
    </list></t>
</list></t>

</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>

<t><list style="symbols">
  <t>Target name: the octet string of the Target definition, for example a profile-encoded URI of the RUP</t>
  <t>Credential Type the Attester plans to use with this Target</t>
  <t>Credential Hint (optional)</t>
</list></t>

<t>All of these parameters the Attester <bcp14>MAY</bcp14> learn from runtime configuration.</t>

<t>Returns:</t>

<t><list style="symbols">
  <t>On success: newly acquired credential of the requested type</t>
  <t>On failure: enumerated reason for failure, such as:
  <list style="symbols">
      <t>Invalid Target</t>
      <t>Unsupported Target</t>
      <t>Unsupported Credential Type</t>
      <t>Rejected or unsupported Credential Hint</t>
      <t>Server error: Remote Attestation failure</t>
      <t>Server error: permission failure</t>
      <t>Server error: server too busy; try again later</t>
      <t>Server error: server unreachable</t>
    </list></t>
</list></t>

</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="untrusted-cas"><name>Trust Model: the Credential Acquisition System as an Untrusted Conduit</name>

<t>This section exists because in this architecture the Attester never communicates with the Verifier or the RATS Relying Party directly.
Instead, all messages between the Attester and these services flow through the Credential Acquisition System, and the Attester need not know what those entities are.
Transport security is therefore not end to end.
There is a secure channel between the CAS Client and the CAS Server, and another between the CAS Server and the Verifier or the RATS Relying Party.
The CAAPI between the Attester and the CAS Client is local to the Attester's system.
This architecture seeks to protect credentials acquired by the Attester from disclosure to the Credential Acquisition System.
For that reason, the Attester does not treat the Credential Acquisition System as anything other than a conduit between itself and the services needed for Remote Attestation and credential issuance.
The CAS Client and the CAS Server hold no RATS role and no credential, and they are not assumed to be benevolent.
What a malicious CAS that delays, replays, rewrites or redirects messages can do is restricted as follows.</t>

<t>What each party holds, and what bounds it:</t>

<t><list style="symbols">
  <t>The Attester, with its Credential Acquisition Interface, holds CSKpri or CEKpri inside the environment its Evidence attests.
It can produce Evidence over any value it chooses as the freshness input, and ask for any Target.
The Verifier appraises its platform and the software it runs, and the Credential Authority or Secret Vault decides by its policy, not by what the Attester asks.</t>
  <t>The CAS Client and the CAS Server see every message in transit: the Freshness Handle, the Evidence, the CSR or CEKpub, the Credential Type and the Credential Hint, and the credential or the sealed container.
In the Passport model, the CAS Server also sees the Attestation Results.
The CAS Client and CAS Server can delay, replay and reorder messages.
They can obtain a Freshness Handle from any RATS Relying Party for any Target, carry a request to another RATS Relying Party, and change what the binding (<xref target="binding"/>) does not cover.
In the Passport model, they can also choose the Verifier.
What bounds them:
  <list style="symbols">
      <t>the binding, recomputed by the RATS Relying Party;</t>
      <t>the freshness element;</t>
      <t>the RATS Relying Party's policy;</t>
      <t>the Verifier(s) the RATS Relying Party trusts;</t>
      <t>the container sealed to CEKpub (<xref target="container"/>).</t>
    </list></t>
  <t>The Verifier holds Reference Values, the hardware vendors' roots and, when it originates them, Freshness Handles.
It appraises Evidence and reports the freshness input it read. It decides nothing about credential issuance or retrieval.</t>
  <t>The Credential Authority and the Secret Vault hold the issuance policy, the signing key or the secrets, and the Verifiers they trust.
Each recomputes the binding from the request and from what it holds (<xref target="binding"/>), and checks the freshness element under the Freshness Kind of its policy.
The Secret Vault seals what it releases to CEKpub (<xref target="container"/>).</t>
</list></t>

<t>The various attacks the CAS is capable of and their mitigations are listed below:</t>

<t><list style="symbols">
  <t>Substitution of a value.
If the CAS changes a request by modifying its Target, CSR, CEKpub, or freshness element, that request would be refused by the RATS Relying Party: the digest the RATS Relying Party recomputes no longer equals the one the Verifier read from the Evidence (<xref target="binding"/>).</t>
  <t>Substitution of the Attester.
The CAS can replace the Evidence the Attester supplied with Evidence from a platform of its choosing.
It obtains nothing for the Attester's keys:
  <list style="symbols">
      <t>a platform that is not genuine: its Evidence does not chain to the vendor's root;</t>
      <t>a genuine platform running other software: it fails the Reference Values the policy sets for that Target;</t>
      <t>a genuine platform running the same software: it is another instance of the attested workload, with its own keys, and what it obtains is a credential for those keys.</t>
    </list></t>
  <t>Replay at the same RATS Relying Party.
The RATS Relying Party keeps no record of a CSR or CEKpub it served. Only the freshness element can refuse a second offer of the same request:
  <list style="symbols">
      <t><spanx style="verb">present-nonce</spanx>: one Evidence serves once, as the Handle is consumed on first use;</t>
      <t><spanx style="verb">present-epoch</spanx> and <spanx style="verb">absent-epoch</spanx>: the same request is served again until the epoch moves;</t>
      <t><spanx style="verb">absent-timestamp</spanx>: the same request is served again within the window the RATS Relying Party accepts;</t>
      <t><spanx style="verb">absent-none</spanx>: the same request is served again without limit.</t>
    </list>
What the CAS obtains is a second credential, or a second release, for the Attester's key.
A deployment that counts or audits credentials uses <spanx style="verb">present-nonce</spanx>.</t>
  <t>Redirection to another RATS Relying Party.
The CAS can offer Evidence made for one Credential Authority or Secret Vault to another that trusts the same Verifier and serves a Target of the same name.
Whatever that RATS Relying Party issues or releases is bound to the Attester's keys, so the CAS obtains nothing it can use.
What is at stake is which RATS Relying Party serves the Attester, and who chooses it:
  <list style="symbols">
      <t>This document binds no Relying Party identifier (<xref target="binding"/>).
Binding one would make the second RATS Relying Party refuse every Freshness Kind, including a Freshness Handle it originated itself.</t>
      <t>As it is, the CAS Server chooses among the RATS Relying Parties that trust the same Verifier and serve that Target name.
<spanx style="verb">present-nonce</spanx> keeps one Evidence from serving a second RATS Relying Party, but not the one the CAS Server started the exchange at.</t>
      <t>The binding does not bind the channel.
A channel binding, such as a TLS exporter (<xref target="RFC9266"/>), would have to reach the Attesting Environment from the CAS Client, which this architecture does not assume (Design Goal 8).
The binding names the Target, not the RATS Relying Party, and Evidence can reach any RATS Relying Party.</t>
      <t>The CAS Server picks which Credential Authority or Secret Vault to use as the RATS Relying Party.
A Credential Acquisition Mechanism <bcp14>MAY</bcp14> name that choice, the optional path segment of EST for instance (Section 3.2.2 of <xref target="RFC7030"/>), and such a name is not the Target.</t>
    </list></t>
  <t>Substitution of the response.
In Retrieval, the CAS can return a container of its own making, sealed to CEKpub, which it saw in the request, or the Secret Vault's container for another request.
The second was sealed to another CEK and cannot be unsealed.
The first unseals, and the Attester then holds a credential of the CAS's choosing, not the one the Secret Vault released, which the CAS cannot read.
What follows depends on the Credential Type: with an API key, the Attester's calls then run under the account the CAS chose.
This architecture accepts that risk.</t>
  <t>The choice of Verifier in the Passport model.
The CAS Server chooses the Verifier it sends Evidence to, and relays the Attestation Results.
A RATS Relying Party <bcp14>MUST</bcp14> accept Attestation Results only from a Verifier it trusts, and <bcp14>MUST</bcp14> check that the freshness input they report equals its own recomputation of the binding (<xref target="binding"/>).
Any other Verifier chosen by the CAS is therefore of no use to it.</t>
  <t>What the binding does not cover.
The Credential Type and the Credential Hint travel unbound, and a CAS can change them.
Two things limit the impact of such substitution:
  <list style="numbers" type="1">
      <t>The RATS Relying Party's policy issues or releases nothing beyond what it allows for the attested context, whatever the request says.</t>
      <t>The Attester sees whether the credential it receives is the one it asked for (<xref target="binding"/>, <xref target="credential-hint"/>, <xref target="credential-scope"/>).</t>
    </list>
The Freshness Kind is set by the RATS Relying Party's policy for the Target, not by the request (<xref target="binding"/>).
The Freshness Handle, for the <spanx style="verb">present-*</spanx> kinds, is originated by the Verifier or by the RATS Relying Party (<xref target="binding"/>).</t>
  <t>Denial of service.
The CAS can delay or drop any message, and obtain Freshness Handles it never uses.
This is mitigated by the CAS Client authenticating to the CAS Server, and the CAS Server authenticating to the Verifier and to the RATS Relying Party.
Whichever of them originates Freshness Handles can then bound what it originates per client (<xref target="cas-client-auth"/>).</t>
</list></t>

<t>What the CAS reads.
Evidence is signed, not encrypted, and the CAS Client and the CAS Server read it in transit.
In the Passport model, the CAS Server can also inspect the Attestation Results.
Evidence identifies the platform, its firmware level and the launched software, and may identify the device (Section 7.2 and Section 11 of <xref target="RFC9334"/>).
The RATS architecture expects any entity that relays Evidence, other than the Attester or the intended Verifier, to not have access to it (Section 12.2 of <xref target="RFC9334"/>).
This architecture accepts that the CAS reads Evidence and Attestation Results.
What the CAS cannot read is CSKpri, CEKpri and the secret the Secret Vault seals to CEKpub.</t>

<t>The CAS Client <bcp14>SHOULD</bcp14> be outside the Attester's trust boundary.
Outside it, the CAS Client is not attested as part of the Attester, and this architecture relies on it for nothing beyond carrying messages.
Inside it, as when the CAS Client runs in the same Confidential VM, it shares the Attester's environment and can inspect the secrets the Attester generates and the secrets the CAS Server returns.
While it is possible for the Secret Vault to release the secrets to the CAS Server in plaintext and have the CAS Server seal them using CEKpub, this architecture does not allow it, as doing so would violate Design Goal 10.</t>

<t>A compromised platform attestation key breaks every guarantee above.
The Verifier's defences are the vendor's root, which the platform attestation key must chain to, and the TCB level the Evidence reports, which the Verifier's policy can require to be current.
Under <spanx style="verb">absent-timestamp</spanx>, Evidence carries the current value of the Attester's clock, and its freshness is only as good as that clock (<xref target="freshness-kind"/>).
Where a credential is honoured once issued or released is set by the Credential Authority's or Secret Vault's policy, as for any credential, and not by the binding, which only keeps Evidence for one Target from obtaining a credential for another (<xref target="credential-scope"/>).</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="credential-scope"><name>Credential Scope</name>

<t>The binding (<xref target="binding"/>) ensures that Evidence produced for one Target does not obtain a credential for another.
It does not limit where the credential is honored once issued or released: that is the credential's scope, set, as for any credential, by the policy of the Credential Authority or Secret Vault and by the RATS-unaware Relying Parties that accept the credential.
A certificate, for example, is bound to the identities in its subject alternative names (Section 4.2.1.6 of <xref target="RFC5280"/>), and a JSON Web Token can name its intended recipients in its audience claim, which a recipient not named there rejects (Section 4.1.3 of <xref target="RFC7519"/>).
The scope comes from that policy and not from the request: the Credential Type and the Credential Hint, which the binding does not cover, cannot widen it (<xref target="binding"/>, <xref target="credential-hint"/>).
A deployment that needs a credential usable only at the requested Target issues or releases it with that scope.</t>

</section>
<section anchor="cas-client-auth"><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.</t>

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

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

</section>


  </middle>

  <back>


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

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



<reference anchor="RFC4648">
  <front>
    <title>The Base16, Base32, and Base64 Data Encodings</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="October" year="2006"/>
    <abstract>
      <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4648"/>
  <seriesInfo name="DOI" value="10.17487/RFC4648"/>
</reference>
<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="RFC5480">
  <front>
    <title>Elliptic Curve Cryptography Subject Public Key Information</title>
    <author fullname="S. Turner" initials="S." surname="Turner"/>
    <author fullname="D. Brown" initials="D." surname="Brown"/>
    <author fullname="K. Yiu" initials="K." surname="Yiu"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="T. Polk" initials="T." surname="Polk"/>
    <date month="March" year="2009"/>
    <abstract>
      <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography. This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5480"/>
  <seriesInfo name="DOI" value="10.17487/RFC5480"/>
</reference>
<reference anchor="RFC5958">
  <front>
    <title>Asymmetric Key Packages</title>
    <author fullname="S. Turner" initials="S." surname="Turner"/>
    <date month="August" year="2010"/>
    <abstract>
      <t>This document defines the syntax for private-key information and a content type for it. Private-key information includes a private key for a specified public-key algorithm and a set of attributes. The Cryptographic Message Syntax (CMS), as defined in RFC 5652, can be used to digitally sign, digest, authenticate, or encrypt the asymmetric key format content type. This document obsoletes RFC 5208. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5958"/>
  <seriesInfo name="DOI" value="10.17487/RFC5958"/>
</reference>
<reference anchor="RFC6234">
  <front>
    <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="May" year="2011"/>
    <abstract>
      <t>Federal Information Processing Standard, FIPS</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6234"/>
  <seriesInfo name="DOI" value="10.17487/RFC6234"/>
</reference>
<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>
<reference anchor="RFC8610">
  <front>
    <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="C. Vigano" initials="C." surname="Vigano"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2019"/>
    <abstract>
      <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8610"/>
  <seriesInfo name="DOI" value="10.17487/RFC8610"/>
</reference>
<reference anchor="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>
<reference anchor="RFC9180">
  <front>
    <title>Hybrid Public Key Encryption</title>
    <author fullname="R. Barnes" initials="R." surname="Barnes"/>
    <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
    <author fullname="B. Lipp" initials="B." surname="Lipp"/>
    <author fullname="C. Wood" initials="C." surname="Wood"/>
    <date month="February" year="2022"/>
    <abstract>
      <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
      <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9180"/>
  <seriesInfo name="DOI" value="10.17487/RFC9180"/>
</reference>
<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="RFC9741">
  <front>
    <title>Concise Data Definition Language (CDDL): Additional Control Operators for the Conversion and Processing of Text</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="March" year="2025"/>
    <abstract>
      <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point. RFCs have added to this extension point in both an application-specific and a more general way.</t>
      <t>The present document defines a number of additional generally applicable control operators for text conversion (bytes, integers, printf-style formatting, and JSON) and for an operation on text.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9741"/>
  <seriesInfo name="DOI" value="10.17487/RFC9741"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

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



<reference anchor="RFC5198">
  <front>
    <title>Unicode Format for Network Interchange</title>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <author fullname="M. Padlipsky" initials="M." surname="Padlipsky"/>
    <date month="March" year="2008"/>
    <abstract>
      <t>The Internet today is in need of a standardized form for the transmission of internationalized "text" information, paralleling the specifications for the use of ASCII that date from the early days of the ARPANET. This document specifies that format, using UTF-8 with normalization and specific line-ending sequences. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5198"/>
  <seriesInfo name="DOI" value="10.17487/RFC5198"/>
</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="RFC9266">
  <front>
    <title>Channel Bindings for TLS 1.3</title>
    <author fullname="S. Whited" initials="S." surname="Whited"/>
    <date month="July" year="2022"/>
    <abstract>
      <t>This document defines a channel binding type, tls-exporter, that is compatible with TLS 1.3 in accordance with RFC 5056, "On the Use of Channel Bindings to Secure Channels". Furthermore, it updates the default channel binding to the new binding for versions of TLS greater than 1.2. This document updates RFCs 5801, 5802, 5929, and 7677.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9266"/>
  <seriesInfo name="DOI" value="10.17487/RFC9266"/>
</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>Palo Alto Networks</organization>
      </author>
      <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
         <organization>Defakto Security</organization>
      </author>
      <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
         <organization>Independent</organization>
      </author>
      <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
         <organization>Zscaler</organization>
      </author>
      <date day="30" month="October" 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-03"/>
   
</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="22" month="October" 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&#x27;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-32"/>
   
</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="28" month="October" 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-20"/>
   
</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="17" month="October" 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-09"/>
   
</reference>

<reference anchor="HPKE-PQ">
   <front>
      <title>Post-Quantum and Post-Quantum/Traditional Hybrid Algorithms for HPKE</title>
      <author fullname="Richard Barnes" initials="R." surname="Barnes">
         <organization>Cisco</organization>
      </author>
      <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
         <organization>Selkie Cryptography</organization>
      </author>
      <date day="6" month="July" year="2026"/>
      <abstract>
	 <t>   Updating key exchange and public-key encryption protocols to resist
   attack by quantum computers is a high priority given the possibility
   of &quot;harvest now, decrypt later&quot; attacks.  Hybrid Public Key
   Encryption (HPKE) is a widely-used public key encryption scheme based
   on combining a Key Encapsulation Mechanism (KEM), a Key Derivation
   Function (KDF), and an Authenticated Encryption with Associated Data
   (AEAD) scheme.  In this document, we define KEM algorithms for HPKE
   based on both post-quantum KEMs and hybrid constructions of post-
   quantum KEMs with traditional KEMs, as well as a KDF based on SHA-3
   that is suitable for use with these KEMs.  When used with these
   algorithms, HPKE is resilient with respect to attacks by a quantum
   computer.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-hpke-pq-05"/>
   
</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 year="n.d."/>
  </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 year="n.d."/>
  </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 year="n.d."/>
  </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 year="n.d."/>
  </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 year="n.d."/>
  </front>
</reference>
<reference anchor="ENVOY" target="https://envoyproxy.io">
  <front>
    <title>The Envoy Proxy</title>
    <author >
      <organization>Envoy</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

</references>


<?line 878?>

<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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
xtRv3S8r2JXQSyIJK26mpmWmAAZUQnu0mt6/PD876ndeYhCG9cW4jpYSDLJU
l4v4yiU5cFdy2Me7O54gfyQ/0fAiRI2PaIejtceGHGXBOygxNzZzlX3PWrLq
wiVpdGPlnclQQy/JMM4Cy5QGnXFc+VsMhEmxbwgqmBR04k3ipSZFVj15aGI7
lXJwnmbQ29SFnqZ6YJKI1lV6ewbTNGwPPnpjy6JK26MLcmeqm4Uvk6tlr1hy
G5L9yDuKUWJV47agZO9OIDyxTuecy28RMLj5L54at0ILpvbP1mL2ILnDJQTv
IAm5o80+78jrt0rGlHCgtqTIIPex20iyjKJHuy0VuhoL0RBuazCN1giA3133
S0Z9pe3JG7mnwSwUylo5Jc6eXzdpAYiM/VraD3tt7XesugG/202E9BhDclLp
WSQWlKpBJC0bVJe5hjgcDX/yVrat3mTmd/7x5ncONFvUyumzMXtumo7U03Pb
NVgBg3F+mmZz2PsAFJbVQkJQuU8alxrkn23Ek94NYPtIv/Se8pdvc0d3Nv4Q
UYNovOi6y68qy2EBygGK4YuMc25lea2PSeHHuiiAn1RYJgRFU8wh4Vq/215a
5ZQSgmyLGEcjk6wjRaoqbkiM1RpvUZRqKwnGloHjmeUHvzm7uYXi/n4jv2jz
03smiw3p5bEN58vn3pGHbltKtuWdP0+YPDRTyrHGlZ8SsY6DRMPdIWiH519e
A0nq9LVWv9qWSb6d//1ep7qJDXqeRG5CydwOiTjivJn4rbUjNxkKbXi7/yPR
mHMKXOR8olX70xtpTovquI32/G8gUS1WITpZ+hLIFLfpJadpa2/0/0+b/s+n
TWyb/mLytJXMbCYPNyU2qpxgIW3PTcCL+H+INNzyrn8hBfk9SQOr62ipkQr+
Q6mXICE8mHkNoiYXsZjfzkKwn0yzEj1IgFITo6XYNSW+9vQxP9gNPnfFSNBa
u11NC1R8nZJJYC7pmyzF6bnoqNyFynjxGLyUie8oDXVVirbdXrRAXJJSmJfM
JgKz6by4AfmZq/DQKge7iMOeehgbCnyEV/sWDbkctKNRlNjbEnbYkOxZH7Ga
c2wiIFx/2G+YvgfJj+pvsB08LMmwOs6WefGFaLl+PVGA9DI58OJQ24mXeo2a
btjM3vloFtSad+qq7SR/84ANNXIQVJzhrjbWij0m//meVx+ra5OnDh70D/Z3
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

-->

</rfc>

