Internet-Draft TACRA September 2026
Novak, et al. Expires 15 March 2027 [Page]
Workgroup:
Remote ATtestation ProcedureS
Internet-Draft:
draft-novak-rats-tacra-00
Published:
Intended Status:
Informational
Expires:
Authors:
M. Novak
J.P. Morgan Chase & Co.
M. Richardson
Sandelman Software Works
H. Birkholz
Fraunhofer SIT

Trustworthy Acquisition of Credentials via Remote Attestation

Abstract

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.

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.

Another important but separate goal is to encapsulate the Attester-side complexity of Remote Attestation and credential acquisition similar to how Envoy does it. This allows Attesters to be implemented in a way that abstracts away the details of credential acquisition: both the protocols used and the Credential Acquisition Mechanisms employed, whether minting new (Enrollment), or requesting existing (Retrieval) credentials. Likewise, the choice between RATS Passport and Background Check models is made opaque to the Attester, further simplifying its development.

About This Document

This note is to be removed before publishing as an RFC.

The latest revision of this draft can be found at https://TheBankster.github.io/rats-tacra/draft-novak-rats-tacra.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-novak-rats-tacra/.

Discussion of this document takes place on the Remote ATtestation ProcedureS Working Group mailing list (mailto:rats@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/rats/. Subscribe at https://www.ietf.org/mailman/listinfo/rats/.

Source for this draft and an issue tracker can be found at https://github.com/TheBankster/rats-tacra.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 15 March 2027.

Table of Contents

1. Introduction

Success of a technology is ultimately measured by its adoption. The Remote ATestation procedureS (RATS) Architecture [RFC9334] requires that RATS Relying Parties understand Attestation Results, execute Appraisal Policy for Attestation Results, and have trust in Verifiers. A change in Evidence may lead to a change in either the Attestation Results or Appraisal Policy for Attestation Results. However, it is common for authentication and authorization policies on Relying Parties to remain static for long periods of time. This is achieved by limiting which entities get to receive the credentials used for authentication and authorization, rather than have the Relying Party make complex decisions based on the credential's changing content.

One key requirement for successful deployment of Remote Attestation-capable workloads is minimal blast radius. When a workload is moved from a legacy to a remotely attestable Trusted Execution Environment, that workload can use Remote Attestation to obtain a stable and trustworthy Identity Document, while its clients and servers do not notice anything different. For that, a mechanism is required by means of which a Secret Vault or a Credential Authority takes on the role of RATS Relying Party. This provides an intermediation between Attestation Results and the RATS-Unaware Relying Parties whose authentication and authorization policies may precede the introduction of Remotely Attestable Workloads and remain static for long periods of time. For the RATS-Unaware Relying Parties, these adoption barriers are eliminated, as these RUPs are capable of authenticating their clients utilizing Identity Document types they are already familiar with.

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.

1.1. Reasons for RATS-Unaware Relying Party Immutability

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:

  • It may be a compiled object or container provided by a third party

  • Or it may be implemented in a language not easily changed or upgraded with new capabilities

  • Further, such a system may require extensive and significant review by an authority before changes to the core algorithm can be made

  • Or, finally, the reluctance to change may come from organizational friction within an enterprise where the remotely attesting workload is organizationally separate from its Relying Party and different priorities of different parts of organization prevent them moving in lockstep

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.

2. Conventions and Definitions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

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.

2.1. Freshness Kind

This document classifies Evidence freshness for a credential-acquisition exchange by combining the methods in Section 10 of [RFC9334] with whether Initiate-Credential-Acquisition (Section 5.1) returns a Freshness Handle.

present-* kinds return a Freshness Handle; the Attester embeds that Handle in Evidence. absent-* kinds return no Handle; the Attester uses a trusted clock, an epoch identifier already held locally, or no freshness claim.

The Freshness Kind is one of:

  • absent-timestamp: no Freshness Handle is returned; the Attester stamps Evidence from a trusted clock ([RFC9334], Section 10.1)

  • absent-none: no Freshness Handle is returned; Evidence carries no freshness claim

  • absent-epoch: no Freshness Handle is returned; the Attester embeds an epoch identifier already held locally ([RFC9334], Section 10.3)

  • present-nonce: Initiate-Credential-Acquisition returns a single-use nonce as the Freshness Handle; the Attester embeds that Handle in Evidence ([RFC9334], Section 10.2)

  • present-epoch: Initiate-Credential-Acquisition returns the current epoch marker as the Freshness Handle; the Attester embeds that Handle in Evidence and retries Initiate-Credential-Acquisition if the epoch has moved ([RFC9334], Section 10.3)

3. Design Goals

This architecture is a result of work by the Confidential Computing Consortium's Trustworthy Workload Identity (TWI) SIG [TWISIGCharter] which has published a set of Definitions [TWISIGDef] and Requirements [TWISIGReq]. The requirements published by the TWI SIG are deliberately high-level. The design goals specified here fully align with the TWI SIG requirements, while focusing on a portable and extensible implementation.

  1. 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.

  2. MUST support most current and future credential formats:

    • X.509 Certificates

    • WIMSE Workload Identity Certificates (WICs)

    • WIMSE Workload Identity Tokens (WITs)

    • Bearer tokens (JWTs, API Keys)

    • TPM 2.0 DAA Group Certificates (for Replica workloads)

    • Pre-shared keys

    • Future formats through architectural extensibility

  3. SHOULD limit the trust boundary expansion of the Attesting Environment to the minimum

  4. MUST support, transparently to the Attester, most current and future Credential Acquisition Mechanisms:

    • EST (RFC 7030)

    • SPIFFE/SPIRE

    • ACMEv2 (RFC 8555)

    • TPM 2.0 DAA Join protocol (based on TPM 2.0 AK Cert)

    • Future mechanisms through architectural extensibility

  5. MUST support Workloads utilizing different Credential Acquisition Mechanisms per-target

  6. MUST support both Background Check and Passport RATS modes, indistinguishably from the PoV of the Attester

  7. MUST support most current and future RATS Verifiers, Credential Authorities, and Secret Vaults, transparently to the Attester

  8. MUST NOT assume that the Attester has network access

  9. MUST be compatible with all existing and future Confidential Computing platforms meeting minimum requirements around secure cryptography and evidence generation

  10. SHOULD restrict visibility of fetched secrets to the Attester, specifically excluding visibility by the CAS Client and CAS Server

4. Architecture

4.1. Attester's Role

  1. At the Attester level, all work is performed by a new Acquire-Credential call through a dedicated ENVOY-like [ENVOY] Credential Acquisition Interface (CAI) which handles all the underlying complexity; this maximally simplifies Attester development.

  2. To acquire credentials, CAI always uses a two-phase sequence:

    1. It requests and obtains a Freshness Kind (Section 2.1); freshness MAY come from the Verifier, or the Relying Party, or MAY even be empty [INTERACTION-MODELS] [ATTESTATION-FRESHNESS]

    2. It then generates and sends out Evidence, which is how the Attester demonstrates its security, possession of cryptographic key material, and capabilities

  3. The Attester receives either an error or a newly acquired credential

4.2. Required Modifications to Existing Credential Acquisition Mechanisms

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:

  1. None of the existing broadly deployed Credential Acquisition Mechanisms support this two-phase sequence, but all appear extensible to accommodate such changes without a lot of additional effort, and without risking backwards compatibility. CAS protocols MUST be able to carry Initiate-Credential-Acquisition; they need not be nonce-based.

  2. 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.

4.3. Architecture Overview

{::include tacra_architecture.txt}
Figure 1: TACRA architecture

This Architecture assumes the existence of a Credential Acquisition System (CAS), such as Enrollment over Secure Transport (EST), Secure Production Identity Framework for Everyone (SPIFFE/SPIRE), Automated Certificate Management Environment (ACMEv2), etc., that comprises a client and a server. The CAS Client is presumed to be running on the Attester's system, but outside the Attesting Environment. The CAS Server is a remote service invoked by the CAS Client over the CAS protocol. Which CAS protocol is used MUST remain opaque to the Attester.

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 MAY be a statically or dynamically linked library, an Envoy-style sidecar, or any other mechanism, but it MUST be part of the Attesting Environment.

CAI interacts with the outside world on behalf of the Attester via two channels:

  1. 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

  2. With the Credential Acquisition System Client, via the well-defined Credential Acquisition API (CAAPI), also outlined later in this document.

4.4. Architecture Meeting Design Goals

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.

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.

The Credential Acquisition System controls which Credential Types and which Credential Acquisition Mechanisms (enrollment, retrieval) can be provisioned to the Attester for any Attester-supplied target, without the Attester's knowledge or involvement (Goal 1). If a Credential Type specified by the Attester is unavailable due to Credential Acquisition System limitations, an error will result. It is an administrative error to pair an Attester with a Credential Acquisition System that is unable to supply it with the Credential Type it requires.

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 MUST NOT generate present-nonce or present-epoch values. In the Passport model, the CAS Server forwards Evidence to the Verifier and forwards the resulting Attestation Results to the Credential Authority or Secret Vault, which remain the Relying Parties that execute Appraisal Policy for Attestation Results. In the Background Check model, the Relying Party typically obtains Attestation Results from the Verifier directly; the CAS Server need not be on that path. The CAS Server MUST NOT appraise, modify, or replace Attestation Results. These Verifier exchanges are opaque to the Attester.

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).

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.

  • Enrollment: the Credential Acquisition Interface generates a CSK and CSR and includes alongside Evidence CSKpub and the CSR. There MUST exist a binding between the CSR/CSKpub and Evidence. It is possible to include Evidence in the CSR, or vice versa: include the CSR in Evidence. The details of how this is decided at runtime are TBD (TODO: discuss, with reference to [CSR-ATTEST]). A Credential Authority MAY use a Credential Hint when assigning a Subject Alternative Name or other certificate properties.

  • Retrieval: the Credential Acquisition Interface generates an asymmetric encryption key CEK and includes CEKpub in Evidence. The resulting secrets are encrypted to CEKpub, ensuring that only the Attester in possession of CEKpri can decrypt them. A Secret Vault MAY use a Credential Hint to locate the credential to return.

During both Enrollment and Retrieval, the Attester MAY supply a Credential Hint. The RATS Relying Party MAY reject the request if it will not honor the hint.

4.5. Summary of RATS Roles

Table 1: RATS roles in TACRA
TACRA Component RATS Role Remarks
Attester Attester Attesting Environment extended and complemented by CAI, CAAPI, Platform Plug-in
CAI Part of Attester Library or Sidecar assisting Attester in obtaining credentials
Platform Plug-in Part of Attester Invoked by CAI to perform platform-specific Remote Attestation and key generation operations
CAAPI Client Part of Attester Invoked by CAI to communicate with CAS Client
CAS Client None: Conduit only CAS Client extended by Remote Attestation Plug-in, SHOULD be outside the Attester's trust boundary
CAS Server None: Conduit only CAS Server extended by Remote Attestation Plug-in; forwards Freshness Handles, Evidence, and Attestation Results; does not appraise
Secret Vault RATS Relying Party Invoked in the Retrieval variant of this architecture; SHOULD encrypt retrieved results to CEKpub in order to keep it from leaking to the CAS Server
Credential Authority RATS Relying Party Invoked in the Enrollment variant of this architecture
Verifier Verifier No changes in RATS Verifier role or implementation
RATS-Unaware Relying Party None No changes in RUP role or implementation

5. Credential Acquisition API (CAAPI)

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.

5.1. Initiate-Credential-Acquisition

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.

Parameters:

  • Target name, e.g., the server URI to which the Attester wishes to authenticate

  • Credential Type the Attester plans to use with this Target

Returns:

  • On success:

    • Credential acquisition mechanism: "enroll" or "retrieve"

    • Freshness Kind (Section 2.1): one of absent-timestamp, absent-none, absent-epoch, present-nonce, or present-epoch

    • Freshness Handle, when the Freshness Kind is present-nonce or present-epoch

    • Other TBD pertinent information, such as supported ciphers, etc. (TODO: define)

  • On failure: enumerated reason for failure, such as:

    • Invalid Target

    • Unsupported Target

    • Unsupported Credential Type

    • Server error: permission failure

    • Server error: server too busy; try again later

    • Server error: server unreachable

    • etc. (TBD)

5.2. Enroll-Credential

Enrolls (mints) a new proof-of-possession credential.

Parameters:

  • Target name matching that of the corresponding Initiate-Credential-Acquisition call

  • Credential Type matching that of the corresponding Initiate-Credential-Acquisition call

  • Evidence, bound to the previously returned Freshness Handle, if any

  • CSR matching, and bound to, the Evidence (TODO: discuss CSR-to-Evidence binding/relationship)

  • Credential Hint (optional)

Returns:

  • On success: plaintext newly enrolled (minted) credential of the requested type

  • On failure: enumerated reason for failure, such as:

    • Invalid Target

    • Unsupported Target

    • Unsupported Credential Type

    • Rejected or unsupported Credential Hint

    • Server error: Remote Attestation failure

    • Server error: permission failure

    • Server error: server too busy; try again later

    • Server error: server unreachable

    • etc. (TBD)

5.3. Retrieve-Credential

Retrieves (fetches pre-existing) credential.

Parameters:

  • Target name matching that of the corresponding Initiate-Credential-Acquisition call

  • Credential Type matching that of the corresponding Initiate-Credential-Acquisition call

  • Evidence, bound to the previously returned Freshness Handle, if any

  • CEKpub matching the Evidence (TODO: discuss CEK-to-Evidence binding/relationship)

  • Credential Hint (optional)

Returns:

  • On success: wrapped (encrypted to CEKpub) credential of the requested type

  • On failure: enumerated reason for failure, such as:

    • Invalid Target

    • Unsupported Target

    • Invalid Credential Type

    • Rejected or unsupported Credential Hint

    • Server error: failed remote attestation

    • Server error: permission failure

    • Server error: remote attestation failure

    • Server error: server too busy; try again later

    • Server error: server unreachable

    • etc. (TBD)

5.4. CAAPI Invocation Sequence

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.

The typical invocation flow is:

  1. CAAPI: Initiate-Credential-Acquisition(Target, Credential Type)

    • Returns Freshness kind and the Credential Acquisition Mode for this Target and Credential Type

  2. Platform Plug-in: Generate keys and Evidence for the Credential Acquisition Mode and Freshness kind returned in step 1:

    • Freshness kind of present-nonce or present-epoch: embed the Freshness Handle in Evidence

    • Freshness kind of absent-timestamp: stamp Evidence from a trusted clock ([RFC9334], Section 10.1)

    • Freshness kind of absent-epoch: embed the locally held epoch marker

    • Freshness kind of absent-none: no freshness claim

    • In all cases, include in Evidence CSKpub plus CSR (enrollment) or CEKpub (retrieval)

  3. CAAPI: Depending on which Credential Acquisition Mode is returned, either

    • Enroll-Credential(Target, Credential Type, Credential Hint, CSR, Evidence)

    • Retrieve-Credential(Target, Credential Type, Credential Hint, CEKpub, Evidence)

  4. CAI examining Enroll-Credential or Retrieve-Credential results:

    • If Enroll-Credential or Retrieve-Credential fails because a present-epoch marker has moved (or a present-nonce is no longer valid), it retries from Initiate-Credential-Acquisition.

    • These retries are not visible to the Attester.

6. Credential Acquisition Interface (CAI)

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.

6.1. Acquire-Credential

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.

Parameters:

  • Target name, e.g., the server URI to which the Attester wishes to authenticate

  • Credential Type the Attester plans to use with this Target

  • Credential Hint (optional)

All of these parameters the Attester MAY learn from runtime configuration.

Returns:

  • On success: newly acquired credential of the requested type

  • On failure: enumerated reason for failure, such as:

    • Invalid Target

    • Unsupported Target

    • Unsupported Credential Type

    • Rejected or unsupported Credential Hint

    • Server error: Remote Attestation failure

    • Server error: permission failure

    • Server error: server too busy; try again later

    • Server error: server unreachable

    • etc. (TBD)

7. Security Considerations

7.1. Undesirability and Inevitability of Bearer Tokens

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.

7.2. Credential Acquisition System Considered Untrustworthy

This architecture seeks to protect credentials acquired by the Attester from disclosure to the Credential Acquisition System. For that reason, it does not treat the Credential Acquisition System as anything other than a conduit between the Attester and the services needed for Remote Attestation and credential issuance. It leaves open the possibility that the CAS Server would retrieve credentials from Secret Vault in plaintext and itself encrypt them with CEKpub so that only the Attester can read them. Likewise, it leaves open the possibility that there is no trust boundary between the Attester and CAS Client, and the CAS Client is therefore capable of inspecting the secrets the Attester generates and the secrets the CAS Server returns. Both of these options are discouraged.

The CAS is expected to remain benevolent and not tamper with or leak the traffic between the Attester, the Verifier, and the RATS Relying Parties. However, the CAS is still untrusted, and the burden on protection from such attacks rests with these trusted endpoints.

7.3. Credential Hint

The Credential Hint is a request, not an authorization. A Credential Authority or Secret Vault MAY use it when selecting issued credential properties, or locating a stored credential, and MAY ignore or reject it. The hint MUST NOT cause issuance or release of a credential that Appraisal Policy for Attestation Results or local issuance policy would otherwise deny.

7.4. CAS Client Authentication to CAS Server

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 MAY still authenticate to the CAS Server.

Whether CAS Client authentication must be bound to Attester authentication is left to protocol profiles. TODO: Define what that binding looks like.

8. IANA Considerations

This document has no IANA actions.

9. References

9.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC9334]
Birkholz, H., Thaler, D., Richardson, M., Smith, N., and W. Pan, "Remote ATtestation procedureS (RATS) Architecture", RFC 9334, DOI 10.17487/RFC9334, , <https://www.rfc-editor.org/rfc/rfc9334>.

9.2. Informative References

[ATTESTATION-FRESHNESS]
Tschofenig, H., Brockhaus, H., Mandel, J., and S. Turner, "Requesting a Freshness Nonce for Attestation Evidence in Certificate Signing Requests", Work in Progress, Internet-Draft, draft-ietf-lamps-attestation-freshness-08, , <https://datatracker.ietf.org/doc/html/draft-ietf-lamps-attestation-freshness-08>.
[CSR-ATTEST]
Ounsworth, M., Tschofenig, H., Birkholz, H., Wiseman, M., and N. Smith, "Use of Remote Attestation with Certification Signing Requests", Work in Progress, Internet-Draft, draft-ietf-lamps-csr-attestation-29, , <https://datatracker.ietf.org/doc/html/draft-ietf-lamps-csr-attestation-29>.
[DAA]
Birkholz, H., Newton, C., Chen, L., Giannetsos, T., and D. Thaler, "Direct Anonymous Attestation for the Remote Attestation Procedures Architecture", Work in Progress, Internet-Draft, draft-ietf-rats-daa-09, , <https://datatracker.ietf.org/doc/html/draft-ietf-rats-daa-09>.
[ENVOY]
Envoy, "The Envoy Proxy", n.d., <https://envoyproxy.io>.
[INTERACTION-MODELS]
Birkholz, H., Eckel, M., Pan, W., and E. Voit, "Reference Interaction Models for Remote Attestation Procedures", Work in Progress, Internet-Draft, draft-ietf-rats-reference-interaction-models-17, , <https://datatracker.ietf.org/doc/html/draft-ietf-rats-reference-interaction-models-17>.
[RFC5280]
Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, , <https://www.rfc-editor.org/rfc/rfc5280>.
[RFC7030]
Pritikin, M., Ed., Yee, P., Ed., and D. Harkins, Ed., "Enrollment over Secure Transport", RFC 7030, DOI 10.17487/RFC7030, , <https://www.rfc-editor.org/rfc/rfc7030>.
[RFC7519]
Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token (JWT)", RFC 7519, DOI 10.17487/RFC7519, , <https://www.rfc-editor.org/rfc/rfc7519>.
[RFC8555]
Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. Kasten, "Automatic Certificate Management Environment (ACME)", RFC 8555, DOI 10.17487/RFC8555, , <https://www.rfc-editor.org/rfc/rfc8555>.
[SPIFFE]
spiffe.io, "Secure Production Identity Framework for Everyone", n.d., <https://github.com/spiffe/>.
[SPIRE]
spiffe.io, "SPIRE Concepts", n.d., <https://spiffe.io/docs/latest/spire-about/spire-concepts/>.
[TWISIGCharter]
Confidential Computing Consortium Trustworthy Workload Identity SIG, "Trustworthy Workload Identity (TWI) Special Interest Group - Charter", n.d., <https://github.com/confidential-computing/governance/blob/main/SIGs/TWI/TWI_Charter.md>.
[TWISIGDef]
Confidential Computing Consortium Trustworthy Workload Identity SIG, "Trustworthy Workload Identity (TWI) Special Interest Group - Definitions", n.d., <https://github.com/confidential-computing/twi/blob/main/TWI_Definitions.md>.
[TWISIGReq]
Confidential Computing Consortium Trustworthy Workload Identity SIG, "Trustworthy Workload Identity (TWI) Special Interest Group - Requirements", n.d., <https://github.com/confidential-computing/twi/blob/main/TWI_Requirements.md>.
[WIMSE]
Campbell, B., Salowey, J. A., Schwenkschuster, A., Sheffer, Y., and Y. Rosomakho, "WIMSE Workload Credentials", Work in Progress, Internet-Draft, draft-ietf-wimse-workload-creds-02, , <https://datatracker.ietf.org/doc/html/draft-ietf-wimse-workload-creds-02>.

Acknowledgments

The authors thank the Confidential Computing Consortium's Trustworthy Workload Identity (TWI) Special Interest Group [TWISIGCharter] for the definitions [TWISIGDef] and requirements [TWISIGReq] that motivated this work.

Authors' Addresses

Mark Novak
J.P. Morgan Chase & Co.
Michael Richardson
Sandelman Software Works
Henk Birkholz
Fraunhofer SIT