<?xml version="1.0" encoding="US-ASCII"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     version="3"
     docName="draft-liu-wimse-wit-attestation-00"
     submissionType="IETF"
     category="std"
     ipr="trust200902"
     updates=""
     obsoletes=""
     sortRefs="true"
     symRefs="true"
     tocDepth="3"
     tocInclude="true">

  <!-- ***** FRONT MATTER ***** -->
  <front>
    <title>Carrying Remote Attestation Evidence in Workload Identity Tokens (WIT)</title>

    <author fullname="Dapeng Liu" initials="D." surname="Liu">
      <organization>Alibaba Group</organization>
      <address>
        <email>max.ldp@alibaba-inc.com</email>
      </address>
    </author>

    <author fullname="Hongru Zhu" initials="H." surname="Zhu">
      <organization>Alibaba Group</organization>
      <address>
        <email>hongru.zhr@alibaba-inc.com</email>
      </address>
    </author>

    <author fullname="Jian Jin" initials="J." surname="Jin">
      <organization>Alibaba Group</organization>
      <address>
        <email>jinjian.jj@alibaba-inc.com</email>
      </address>
    </author>



    <date year="2026" month="03" day="25"/>

    <area>Security</area>
    <workgroup>WIMSE</workgroup>

    <keyword>WIT</keyword>
    <keyword>Attestation</keyword>
    <keyword>DPoP</keyword>
    <keyword>RATS</keyword>
    <keyword>Confidential Computing</keyword>

    <abstract>
      <t>
        This document specifies how Remote Attestation evidence, as defined by the
        IETF RATS architecture, can be conveyed within a Workload Identity Token (WIT)
        as used in the WIMSE (Workload Identity for Micro-Services Environments)
        framework. The WIT includes attestation measurements that enable fast-path
        policy evaluation without requiring immediate access to full evidence.
        The WIT is bound to the HTTP request using OAuth 2.0 Demonstrating
        Proof-of-Possession (DPoP), ensuring that attestation claims are protected
        against replay and token theft.
      </t>
      <t>
        This specification defines a two-tier verification model: lightweight verification
        using embedded measurements for common scenarios, and deep verification using
        externalized evidence for high-assurance requirements. This enables secure,
        cross-domain verification of workload integrity without requiring direct access
        to platform-specific reference values, while enabling efficient deployments.
      </t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
        In some scenarios of the security-sensitive environments, workloads need to prove not only their identity but
        also the integrity of their execution environment. The WIMSE framework defines
        the Workload Identity Token (WIT) for conveying identity between workloads.
        However, to support confidential computing and remote attestation across
        administrative domains (e.g., multi-cloud), the WIT need to carry verifiable
        attestation evidence.
      </t>
      <t>
        This document extends the WIT specification by defining standard claims for
        attestation and specifying their integration with WIMSE
        and the RATS architecture <xref target="RFC9334"/>.
      </t>
    </section>

    <section anchor="conventions" numbered="true" toc="default">
      <name>Conventions and Terminology</name>
      <t>
        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
        <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
        appear in all capitals.
      </t>
      <t>
        This document uses terms from the RATS architecture <xref target="RFC9334"/>,
        including "Evidence", "Endorsement", and "Reference Value". It also assumes
        familiarity with WIMSE <xref target="I-D.ietf-wimse-s2s-protocol"/> and
        OAuth 2.0 DPoP <xref target="RFC9449"/>.
      </t>
    </section>

    <section anchor="wit_attestation_claims" numbered="true" toc="default">
      <name>Attestation Claims in the WIT</name>
      <t>
        A WIT conveying attestation information MUST include the claims defined in this section.
        When attested_environment is true, the measurements claim MUST be present to enable
        fast-path policy evaluation. All attestation claims MUST be protected by the WIT's
        digital signature and bound to the request via DPoP. The WIT implementation follows
        the JWT Best Current Practices <xref target="RFC8725"/>.
      </t>
      <t>
        This specification defines a two-tier verification model:
      </t>
      <ul spacing="normal">
        <li>
          <strong>Fast Path</strong>: Relying parties evaluate embedded measurements against
          local policy without fetching external evidence. This covers the majority of requests
          with sub-millisecond latency.
        </li>
        <li>
          <strong>Deep Path</strong>: For high-assurance scenarios, relying parties retrieve
          full evidence via evidence_ref and perform cryptographic verification of the complete
          attestation chain.
        </li>
      </ul>

      <section anchor="attested_environment" numbered="true" toc="default">
        <name><tt>attested_environment</tt></name>
        <t>
          The "<tt>attested_environment</tt>" claim is a REQUIRED boolean value indicating
          whether the workload is running in an environment capable of producing
          valid remote attestation evidence.
        </t>
        <t>
          If <tt>true</tt>, the measurements claim MUST be present, and the verifier SHOULD
          evaluate the measurements against its local policy. If <tt>false</tt> or absent,
          no attestation verification is performed.
        </t>
      </section>

      <section anchor="tee_type" numbered="true" toc="default">
        <name><tt>tee_type</tt></name>
        <t>
          The "<tt>tee_type</tt>" claim is a REQUIRED string (when attested_environment is true)
          identifying the type of Trusted Execution Environment (TEE). This value determines
          the format of the measurements claim. Registered values include:
        </t>
        <ul spacing="normal">
          <li><tt>"intel-tdx"</tt> - Intel Trust Domain Extensions</li>
          <li><tt>"amd-sev-snp"</tt> - AMD Secure Encrypted Virtualization - Secure Nested Paging</li>
          <li><tt>"intel-sgx"</tt> - Intel Software Guard Extensions</li>
          <li><tt>"arm-cca"</tt> - ARM Confidential Compute Architecture</li>
        </ul>
        <t>
          This value enables policy-based decisions (e.g., "only accept intel-tdx") and
          determines how the verifier interprets the measurements claim.
        </t>
        <t>
          New TEE types MAY be registered through the IANA registry defined in
          <xref target="iana_tee_types"/>.
        </t>
      </section>

      <section anchor="measurements" numbered="true" toc="default">
        <name><tt>measurements</tt></name>
        <t>
          The "<tt>measurements</tt>" claim is REQUIRED when attested_environment is true.
          It contains a summary of key attestation measurements that enable fast-path
          policy evaluation without retrieving full evidence. The measurements object
          provides sufficient information for relying parties to make authorization
          decisions for common scenarios.
        </t>
        <t>
          The measurements object MUST contain the following members:
        </t>
        <dl spacing="normal">
          <dt><tt>type</tt>:</dt>
          <dd>
            REQUIRED string identifying the measurement format. This value MUST correspond
            to the tee_type claim. Valid values are defined in <xref target="tee_measurements"/>.
          </dd>
          <dt><tt>algorithm</tt>:</dt>
          <dd>
            REQUIRED lowercase string specifying the hash algorithm used for measurements.
            Valid values are "sha256", "sha384", and "sha512". These identifiers correspond
            to the IANA Hash Function Textual Names registry. Implementations MUST support
            "sha384" for TEE measurements; other algorithms MAY be used if specified by the
            TEE type definition.
          </dd>
          <dt><tt>registers</tt>:</dt>
          <dd>
            REQUIRED object containing TEE-specific measurement registers. The structure
            of this object depends on the type field and is defined in <xref target="tee_measurements"/>.
          </dd>
          <dt><tt>summary</tt>:</dt>
          <dd>
            OPTIONAL string containing a hash of all measurements for quick comparison.
            Format: "algorithm:hex_value" where algorithm is a hash algorithm identifier 
            (e.g., "sha384") and hex_value is the lowercase hexadecimal representation 
            without the "0x" prefix (e.g., "sha384:abc123..."). The algorithm identifier 
            SHOULD match the algorithm used in the measurements claim.
          </dd>
        </dl>
        <t>
          Verifiers MUST validate that the type field matches the tee_type claim.
          Verifiers MAY use the summary field for fast comparison against known-good
          values before inspecting individual registers.
        </t>
      </section>

      <section anchor="evidence_ref" numbered="true" toc="default">
        <name><tt>evidence_ref</tt></name>
        <t>
          The "<tt>evidence_ref</tt>" claim is an OPTIONAL URI pointing to a resource that
          contains the full RATS Evidence (e.g., in CWT or EAT format). The resource
          MUST be accessible over HTTPS with TLS 1.2 or higher, and verifiers MUST 
          validate the server certificate according to their trust policy.
        </t>
        <t>
          This claim enables the deep-path verification tier. When present, relying
          parties MAY retrieve the full evidence for cryptographic verification of the
          complete attestation chain. This is RECOMMENDED for high-assurance scenarios
          or when local policy requires validation beyond the measurements claim.
        </t>
        <t>
          Example:
          <eref target="https://kbs.customer.example/evidence/abc123"/>
        </t>
        <t>
          The evidence resource MAY be hosted by a customer-operated Key Broker Service (KBS)
          or cloud provider attestation service. Verifiers MUST authenticate the evidence
          source and validate signatures according to their trust policy.
        </t>
        <t>
          Alternatively, full Evidence MAY be embedded directly as a separate claim
          (e.g., <tt>evidence_cwt</tt>), but this is NOT RECOMMENDED due to size
          constraints in HTTP headers. The measurements + evidence_ref approach provides
          better performance and scalability.
        </t>
      </section>

      <section anchor="tee_measurements" numbered="true" toc="default">
        <name>TEE-Specific Measurement Formats</name>
        <t>
          This section defines the structure of the registers object for each
          supported TEE type. Implementations MUST follow these formats when
          generating or validating measurements claims.
        </t>

        <section anchor="tdx_measurements" numbered="true" toc="default">
          <name>Intel TDX Measurements</name>
          <t>
            For <tt>tee_type="intel-tdx"</tt>, the measurements type MUST be "tdx-rtmr"
            and the registers object MUST contain Runtime Measurement Registers (RTMRs):
          </t>
          <figure>
            <artwork type="json" xml:space="preserve">
{
  "type": "tdx-rtmr",
  "algorithm": "sha384",
  "registers": {
    "rtmr0": "hex_encoded_48_bytes",
    "rtmr1": "hex_encoded_48_bytes",
    "rtmr2": "hex_encoded_48_bytes",
    "rtmr3": "hex_encoded_48_bytes"
  },
  "summary": "sha384:abc123..."
}
            </artwork>
          </figure>
          <t>
            RTMR semantics:
          </t>
          <ul spacing="normal">
            <li><tt>rtmr0</tt>: Initial boot measurements (BIOS, bootloader)</li>
            <li><tt>rtmr1</tt>: OS loader and kernel measurements</li>
            <li><tt>rtmr2</tt>: System configuration measurements</li>
            <li><tt>rtmr3</tt>: Application and runtime measurements</li>
          </ul>
          <t>
            All RTMR values MUST be hex-encoded SHA-384 hashes (96 hex characters).
            The summary field SHOULD be the SHA-384 hash of the concatenation of
            rtmr0||rtmr1||rtmr2||rtmr3.
          </t>
        </section>

        <section anchor="snp_measurements" numbered="true" toc="default">
          <name>AMD SEV-SNP Measurements</name>
          <t>
            The measurement format for <tt>tee_type="amd-sev-snp"</tt> is TBD.
            Future versions of this specification will define the snp-pcr format
            including vTPM PCR values and SNP-specific launch measurements.
          </t>
        </section>

        <section anchor="sgx_measurements" numbered="true" toc="default">
          <name>Intel SGX Measurements</name>
          <t>
            The measurement format for <tt>tee_type="intel-sgx"</tt> is TBD.
            Future versions of this specification will define the sgx-mr format
            including MRENCLAVE and MRSIGNER values.
          </t>
        </section>

        <section anchor="measurements_extensibility" numbered="true" toc="default">
          <name>Extensibility</name>
          <t>
            New TEE types can be supported by defining a new measurement type and
            corresponding registers structure. Implementations encountering an unknown
            type value MUST either reject the WIT or fall back to evidence_ref
            verification if present.
          </t>
          <t>
            To register a new TEE type and measurement format, follow the IANA
            registration process defined in <xref target="iana_tee_types"/>.
            The registration MUST include:
          </t>
          <ul spacing="normal">
            <li>TEE type identifier (e.g., "arm-cca")</li>
            <li>Measurement type identifier (e.g., "cca-rim")</li>
            <li>Hash algorithm(s) used</li>
            <li>Detailed specification of the registers structure</li>
            <li>Semantics of each register field</li>
            <li>Reference to authoritative TEE specification</li>
          </ul>
        </section>
      </section>

      <section anchor="example_wit" numbered="true" toc="default">
        <name>Example WIT with Measurements</name>
        <t>
          The following figure shows a complete example of a WIT payload containing
          attestation measurements:
        </t>
        <figure anchor="example_wit_payload" align="left" suppress-title="false">
        <name>Example WIT Payload with Attestation Claims</name>
        <artwork type="json" xml:space="preserve">
{
  "sub": "spiffe://example.com/ns/default/sa/workload-a",
  "iss": "https://wimse-ca.example.com",
  "iat": 1700000000,
  "exp": 1700003600,
  "jti": "a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8",

  "attested_environment": true,
  "tee_type": "intel-tdx",
  
  "measurements": {
    "type": "tdx-rtmr",
    "algorithm": "sha384",
    "registers": {
      "rtmr0": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456789012345678901234567890abcd",
      "rtmr1": "f1e2d3c4b5a67890123456789012345678901234567890abcdef1234567890abcdef123456789012345678abcd",
      "rtmr2": "1a2b3c4d5e6f78901234567890123456789012345678901234567890abcdef1234567890abcdef1234567890ab",
      "rtmr3": "9f8e7d6c5b4a321098765432109876543210fedcba9876543210fedcba9876543210fedcba987654321098ab"
    },
    "summary": "sha384:2f5d8c9e1a3b7f4e6d8c2a1b9e7f3d5c8a4b6e1f9d3c7a5b2e8f4d1c6a9b3e7f"
  },
  
  "evidence_ref": "https://kbs.customer.example/evidence/tdx/abcd1234"
}
        </artwork>
      </figure>
      <t>
        This JSON represents the payload (claims set) of a signed WIT JWT.
        The attestation claims (attested_environment, tee_type,
        measurements, evidence_ref) are standard top-level members
        of the JWT payload. The measurements enable fast-path policy evaluation,
        while evidence_ref provides access to full attestation evidence for deep
        verification when required.
      </t>
      <t>
        The entire WIT is base64url-encoded and signed (e.g., using RS256),
        forming the token transmitted in the Workload-Identity-Token header.
        A typical WIT with embedded measurements is approximately 800-1200 bytes when
        encoded, suitable for HTTP headers.
      </t>
    </section>
  </section>

    <section anchor="integration_with_dpop" numbered="true" toc="default">
      <name>Integration with OAuth 2.0 DPoP</name>
      <t>
        As required by <xref target="I-D.ietf-wimse-s2s-protocol"/>, the WIT MUST be
        bound to the HTTP request using OAuth 2.0 DPoP <xref target="RFC9449"/>.
      </t>
      <t>
        Note that the DPoP proof binds to the exact WIT string via the "<tt>ath</tt>" 
        claim, which contains the SHA-256 hash of the WIT presented in the 
        Workload-Identity-Token header, ensuring that the attestation claims cannot be 
        substituted or replayed.
      </t>
      <t>
        The DPoP private key is assumed to be securely held by the workload; this 
        specification does not define how the relying party verifies that the DPoP key 
        was generated within the attested TEE. This verification is delegated to the 
        WIT issuer, which validates the TEE evidence before issuing the WIT.
      </t>
      <figure anchor="example_headers" align="left" suppress-title="false">
        <name>Example HTTP Request Headers</name>
        <artwork type="http-message" xml:space="preserve">
POST /api/data HTTP/1.1
Host: service-b.example
Workload-Identity-Token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx
DPoP: eyJhbGciOiJFUzM4NCIsInR5cCI6ImRwb3AifQ.yyyyy
        </artwork>
      </figure>
    </section>

    <section anchor="cross_domain_flow" numbered="true" toc="default">
      <name>Cross-Domain Attestation Workflow</name>
      <t>
        The following diagram illustrates how a workload in Domain A (e.g., Cloud Provider X)
        authenticates to a service in Domain B (e.g., Cloud Provider Y) using a WIT that
        carries attestation measurements. The two-tier verification model enables both fast-path
        policy evaluation and optional deep verification, with DPoP ensuring request binding
        and replay protection.
      </t>
      <figure anchor="fig-cross-domain-flow" align="left" suppress-title="false">
        <name>Cross-Domain WIT + Attestation + DPoP Flow</name>
        <artwork type="ascii-art" xml:space="preserve"><![CDATA[
+----------------+       +----------------+       +----------------+
|   Workload A   |       |   Service B    |       | Attestation    |
| (Domain A)     |       | (Domain B)     |       | Verifier /     |
|                |       |                |       | Policy Engine  |
+----------------+       +----------------+       +----------------+
        |                         |                         |
        | 1. Generate WIT with    |                         |
        |    attestation claims   |                         |
        |    (e.g., tee_type,     |                         |
        |     attested_environment)|                        |
        |------------------------>|                         |
        | 2. Create DPoP proof    |                         |
        |    bound to WIT (ath)   |                         |
        |    and HTTP request     |                         |
        |------------------------>|                         |
        |                         | 3. Validate DPoP:       |
        |                         |    - Signature          |
        |                         |    - htu/htm match      |
        |                         |    - jti not replayed   |
        |                         |    - ath == hash(WIT)   |
        |                         |------------------------>|
        |                         | 4. Fetch Evidence (if   |
        |                         |    evidence_ref present)|
        |                         |<------------------------|
        |                         | 5. Evaluate attestation |
        |                         |    against local policy |
        |                         | (e.g., "only intel-tdx")|
        |                         |                         |
        |<------------------------| 6. Accept or reject     |
        |    Request              |    based on result      |
        |                         |                         |
        +-------------------------+-------------------------+
]]></artwork>
      </figure>
      <t>
        Steps in detail:
      </t>
      <ol spacing="normal">
        <li>
          <strong>WIT Generation</strong>: Workload A constructs a WIT containing identity
          (e.g., SPIFFE ID) and attestation claims (<tt>attested_environment</tt>,
          <tt>tee_type</tt>, <tt>measurements</tt>, optionally <tt>evidence_ref</tt>).
          The measurements claim contains TEE-specific register values that enable
          fast policy evaluation.
        </li>
        <li>
          <strong>DPoP Binding</strong>: Workload A generates a DPoP proof that includes
          the SHA-256 hash of the WIT in the <tt>ath</tt> claim, along with the HTTP method
          (<tt>htm</tt>) and URL (<tt>htu</tt>). This binds the attestation measurements
          to this specific request.
        </li>
        <li>
          <strong>Request Transmission</strong>: The client sends an HTTP request with
          both <tt>Workload-Identity-Token</tt> and <tt>DPoP</tt> headers.
        </li>
        <li>
          <strong>DPoP Validation</strong>: Service B validates the DPoP proof per
          <xref target="RFC9449"/>, ensuring the WIT is bound to this specific request
          and has not been replayed.
        </li>
        <li>
          <strong>Fast-Path Verification</strong>: Service B extracts the measurements
          claim from the WIT and evaluates it against local policy. For most requests,
          this step is sufficient and completes efficiently. Examples include checking 
          if tee_type matches policy, comparing measurements.summary against known-good 
          values, verifying specific registers match approved configurations, and checking 
          if measurements are in a revocation list. If the measurements satisfy policy, 
          Service B grants access immediately.
        </li>
        <li>
          <strong>Deep-Path Verification</strong> (optional): For high-assurance scenarios
          or when fast-path policy is inconclusive, Service B MAY fetch the full RATS
          Evidence from <tt>evidence_ref</tt> (over TLS) and perform cryptographic
          verification of the complete attestation chain. This includes validating the 
          TEE hardware signature, verifying the certificate chain to root-of-trust, 
          checking TCB (Trusted Computing Base) status, and validating measurements match 
          the evidence. Service B MAY cache the evidence verification result to avoid 
          repeated fetches for subsequent requests from the same workload.
        </li>
        <li>
          <strong>Policy Evaluation</strong>: Service B's policy engine makes the final
          authorization decision based on the verification tier used. The policy may
          specify different requirements based on operation sensitivity (e.g., read vs.
          write operations).
        </li>
      </ol>
      <t>
        <strong>Access Decision</strong>: Based on the evaluation, Service B grants or
        denies access. The verification tier used (fast-path vs. deep-path) MAY be
        logged for audit purposes.
      </t>
      <t>
        Note that no direct trust relationship between the TEE attestation root (e.g., Intel TDX
        root key) and Domain B is required. Instead, Domain B relies on its configured policy about
        which TEE types it accepts.
      </t>
    </section>

    <section anchor="security_considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      
      <section anchor="threat_model" numbered="true" toc="default">
        <name>Threat Model</name>
        <t>
          This specification assumes the following trust model and threat environment:
        </t>
        <t>
          <strong>Trust Assumptions:</strong>
        </t>
        <ul spacing="normal">
          <li>The WIT issuer (e.g., workload identity provider) is trusted to correctly
              issue tokens and validate the TEE attestation evidence before inclusion in 
              the WIT. The relying party trusts that the issuer has performed this 
              verification correctly; this specification does not define mechanisms for 
              cryptographically binding the DPoP key to the TEE measurements.</li>
          <li>The TEE hardware root of trust is assumed to be uncompromised for the
              specific TEE types accepted by the relying party.</li>
          <li>The relying party maintains a secure policy configuration that defines
              acceptable TEE types and measurement values.</li>
        </ul>
        <t>
          Future versions of this specification may define mechanisms for cryptographically
          binding the DPoP key to the TEE measurements, enabling relying parties to verify
          this binding independently of the issuer.
        </t>
        <t>
          <strong>Attacker Model:</strong>
        </t>
        <ul spacing="normal">
          <li><strong>Network attacker:</strong> Can intercept, modify, or replay network
              traffic between workloads, but does not possess valid WITs or DPoP keys.</li>
          <li><strong>Compromised workload:</strong> A workload running outside a TEE
              attempting to present falsified attestation claims.</li>
          <li><strong>Malicious relying party:</strong> A service that attempts to harvest
              or replay attestation evidence for other purposes (mitigated by DPoP binding).</li>
        </ul>
        <t>
          <strong>Out of Scope:</strong> This specification does not address attacks against
          the TEE hardware itself (e.g., side-channel attacks, physical attacks), nor does it
          address compromise of the WIT issuer's signing keys. Protection against such threats
          requires additional operational and architectural measures outside the scope of this
          document.
        </t>
      </section>

      <section anchor="security_properties" numbered="true" toc="default">
        <name>Security Properties</name>
        <t>
          The following security considerations apply to implementations of this specification:
        </t>
        <dl spacing="normal">
          <dt>Replay Protection:</dt>
          <dd>
            DPoP's use of <tt>jti</tt> and request binding (<tt>htm</tt>, <tt>htu</tt>,
            <tt>ath</tt>) prevents replay of WITs containing attestation measurements.
            The <tt>ath</tt> claim cryptographically binds the measurements to this
            specific request, preventing an attacker from reusing measurements from
            a compromised token.
          </dd>
          <dt>Measurements Integrity:</dt>
          <dd>
            The measurements claim MUST be protected by the WIT's digital signature.
            Verifiers MUST validate the WIT signature before trusting measurements.
            The measurements themselves are not sufficient for security without signature
            verification.
          </dd>
          <dt>Fast-Path vs. Deep-Path Trade-offs:</dt>
          <dd>
            Fast-path verification using measurements provides performance benefits but
            relies on local policy rather than cryptographic verification. Deployments
            MUST assess the risk level of each operation and choose the appropriate
            verification tier. High-value operations (e.g., financial transactions,
            sensitive data access) SHOULD use deep-path verification with evidence_ref.
          </dd>
          <dt>Measurements Freshness:</dt>
          <dd>
            Measurements represent the state of the workload at WIT issuance time.
            Verifiers SHOULD enforce short WIT lifetimes (exp claim) to ensure
            measurements remain fresh. For long-running operations, verifiers MAY
            require periodic re-attestation.
          </dd>
          <dt>TEE-Specific Vulnerabilities:</dt>
          <dd>
            Different TEE types have different security properties and known vulnerabilities.
            Verifiers MUST maintain up-to-date knowledge of TEE security status and update
            their policies accordingly. The measurements alone do not protect against
            vulnerabilities in the underlying TEE implementation.
          </dd>
          <dt>Privacy:</dt>
          <dd>
            Attestation measurements may reveal platform details (firmware versions,
            configuration, etc.). Deployments SHOULD minimize disclosed information.
            The measurements claim contains only essential values; full evidence via
            evidence_ref MAY contain more detailed information that should be protected
            accordingly.
          </dd>
          <dt>Verifier Policy:</dt>
          <dd>
            The relying party MUST validate attestation measurements against a well-defined
            local policy. Simply checking that measurements are present is insufficient.
            Policies SHOULD specify acceptable TEE types, approved measurement values or 
            ranges, requirements for specific registers, and when deep-path verification 
            is required. Trust in the WIT issuer (e.g., cloud provider CA) is assumed but 
            MUST be explicitly configured.
          </dd>
          <dt>Evidence Source Authentication:</dt>
          <dd>
            When using evidence_ref for deep-path verification, verifiers MUST authenticate
            the evidence source and validate that it is authorized to provide evidence for
            the claimed TEE type. Customer-operated KBS deployments SHOULD use mTLS or
            equivalent authentication.
          </dd>
        </dl>
      </section>
    </section>

    <section anchor="iana_considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      
      <section anchor="iana_jwt_claims" numbered="true" toc="default">
        <name>JSON Web Token Claims Registration</name>
        <t>
          This document registers new claims in the "JSON Web Token Claims"
          registry established by <xref target="RFC7519"/>.
        </t>
        <dl newline="false" spacing="normal">
          <dt>Claim Name:</dt><dd>"attested_environment"</dd>
          <dt>Claim Description:</dt><dd>Indicates attested execution environment</dd>
          <dt>Change Controller:</dt><dd>IETF</dd>
          <dt>Specification Document(s):</dt><dd>[[THIS DOCUMENT]], <xref target="attested_environment"/></dd>
        </dl>
        <dl newline="false" spacing="normal">
          <dt>Claim Name:</dt><dd>"tee_type"</dd>
          <dt>Claim Description:</dt><dd>Identifies Trusted Execution Environment type</dd>
          <dt>Change Controller:</dt><dd>IETF</dd>
          <dt>Specification Document(s):</dt><dd>[[THIS DOCUMENT]], <xref target="tee_type"/></dd>
        </dl>
        <dl newline="false" spacing="normal">
          <dt>Claim Name:</dt><dd>"measurements"</dd>
          <dt>Claim Description:</dt><dd>Contains attestation measurements for fast verification</dd>
          <dt>Change Controller:</dt><dd>IETF</dd>
          <dt>Specification Document(s):</dt><dd>[[THIS DOCUMENT]], <xref target="measurements"/></dd>
        </dl>
        <dl newline="false" spacing="normal">
          <dt>Claim Name:</dt><dd>"evidence_ref"</dd>
          <dt>Claim Description:</dt><dd>URI reference to full RATS Evidence</dd>
          <dt>Change Controller:</dt><dd>IETF</dd>
          <dt>Specification Document(s):</dt><dd>[[THIS DOCUMENT]], <xref target="evidence_ref"/></dd>
        </dl>
      </section>

      <section anchor="iana_tee_types" numbered="true" toc="default">
        <name>WIMSE TEE Types Registry</name>
        <t>
          IANA is requested to create a new registry titled "WIMSE WIT TEE Types"
          under the "WIMSE" namespace. This registry maintains identifiers for
          Trusted Execution Environment types used in the tee_type claim.
        </t>
        
        <section anchor="iana_tee_registration_procedure" numbered="true" toc="default">
          <name>Registration Procedure</name>
          <t>
            Registration of new TEE type values follows the "Specification Required"
            policy as defined in <xref target="RFC8126"/>. The designated experts
            are appointed by the IETF Security Area Directors. The designated expert
            SHALL verify that:
          </t>
          <ul spacing="normal">
            <li>The TEE type is documented in a publicly accessible specification</li>
            <li>The corresponding measurement format is clearly defined</li>
            <li>The TEE type identifier follows the naming convention (lowercase ASCII,
                hyphen-separated, e.g., "vendor-product")</li>
            <li>The registration does not duplicate an existing entry</li>
            <li>The specification defines security considerations specific to the TEE type</li>
          </ul>
          <t>
            In case of dispute or disagreement with the designated expert's decision,
            the registrant may appeal to the IETF Security Area Directors.
          </t>
          <t>
            The registration template consists of the following fields:
          </t>
          <dl spacing="normal">
            <dt>TEE Type:</dt>
            <dd>The requested identifier (e.g., "intel-tdx")</dd>
            <dt>Description:</dt>
            <dd>A brief description of the Trusted Execution Environment</dd>
            <dt>Measurement Type:</dt>
            <dd>The corresponding measurement format identifier</dd>
            <dt>Reference:</dt>
            <dd>URI to the specification document</dd>
            <dt>Change Controller:</dt>
            <dd>The entity responsible for the registration (e.g., "IETF" or organization name)</dd>
          </dl>
        </section>

        <section anchor="iana_tee_initial_values" numbered="true" toc="default">
          <name>Initial Registry Contents</name>
          <t>
            The initial registry contains the following entries:
          </t>
          <table>
            <thead>
              <tr>
                <th>TEE Type</th>
                <th>Description</th>
                <th>Measurement Type</th>
                <th>Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td>intel-tdx</td>
                <td>Intel Trust Domain Extensions</td>
                <td>tdx-rtmr</td>
                <td>[[THIS DOCUMENT]], <xref target="tdx_measurements"/></td>
              </tr>
              <tr>
                <td>amd-sev-snp</td>
                <td>AMD Secure Encrypted Virtualization - SNP</td>
                <td>TBD</td>
                <td>[[THIS DOCUMENT]], <xref target="snp_measurements"/></td>
              </tr>
              <tr>
                <td>intel-sgx</td>
                <td>Intel Software Guard Extensions</td>
                <td>TBD</td>
                <td>[[THIS DOCUMENT]], <xref target="sgx_measurements"/></td>
              </tr>
              <tr>
                <td>arm-cca</td>
                <td>ARM Confidential Compute Architecture</td>
                <td>TBD</td>
                <td>TBD</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8725.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9334.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9449.xml"/>
        <reference anchor="I-D.ietf-wimse-s2s-protocol">
          <front>
            <title>Service-to-Service Authentication Using Workload Identity</title>
            <author fullname="WIMSE Authors"/>
            <date year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-s2s-protocol-07"/>
        </reference>
      </references>
    </references>
  </back>
</rfc>