[Teep] Proposal to Carry Raw Report Data in TEEP Protocol messages
Ken Takayama <ken.takayama.ietf@gmail.com> Wed, 04 February 2026 12:09 UTC
Return-Path: <ken.takayama.ietf@gmail.com>
X-Original-To: teep@mail2.ietf.org
Delivered-To: teep@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 3B2EAB1B33D9 for <teep@mail2.ietf.org>; Wed, 4 Feb 2026 04:09:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p3iGOLm-MwTP for <teep@mail2.ietf.org>; Wed, 4 Feb 2026 04:09:16 -0800 (PST)
Received: from mail-ua1-x936.google.com (mail-ua1-x936.google.com [IPv6:2607:f8b0:4864:20::936]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id AAFD0B1B33D1 for <teep@ietf.org>; Wed, 4 Feb 2026 04:09:16 -0800 (PST)
Received: by mail-ua1-x936.google.com with SMTP id a1e0cc1a2514c-948a2d37896so2666994241.0 for <teep@ietf.org>; Wed, 04 Feb 2026 04:09:16 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1770206956; cv=none; d=google.com; s=arc-20240605; b=bRYxLBoYgtzGU4SqGzG8LQ5EEIPwguJ2Ql3EN5fsXje+RiIRK02IEup6ol/CjPzNOX 8fW9D4Y90veIPg81E4nRNW3TjsdmAOpY1Y07kQzx8Vr756s0qu9EerflevwDK9EMeS8b xOo5LpS7dkXqhdqOsQWZMQlvD7KhusIJzD1Wkn6S3jkkrz6KJR6isZEnHcuGXNbKjqK7 B7Kwp6iivjJNBFqB7rNH6bL65m4T0p4ma7tHNSkrX8Lw4KdeypNYBaonaMwgHAD5g9S1 J803FowkCB4Zn7jRJoLVLSiyQeOhvMW//8wkigZMBgF71v82OEVtUEkb8T51BVhBri+z 2ntQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:mime-version:dkim-signature; bh=0c3h+c/cpYKRqBRejr+DhTc2Z6B38d8gLQeS1HJX6AY=; fh=ShO4JCF2D7EmW8yTbpKGEV6/LWt1hjr/cZTTMYB5CDA=; b=Rb1sMH7XcaTivWa9hNfH+VYChGXFu8S8SrmVx3Z4gGoZ9imtAFtA1U5GOUuYfIdbIj VsH8Kc0XO/Y6nn4Z8LOrrzWRkqH+sj38XVHVqdMPodibtO3bN5/mf5FOrLBiiSNy6y9L 9Df/FJnlrSmREdMDBTA3qUJTitqcL+n3SCWR9vK5RTabTqvVoSfEtF2FIbzRC4Xtxy0C IeIyU98l3EUGChuxmgaTXds0wiP5fHzJJ4YOt+48k0XszcDEaTLWhl+JSwHKqQmdyuaN v0mRpCHYDh5PYKxuQmdFwYUkhLKQKxJ7hNxM+zItopt4HgmWIaLK4d2KXopA6sDYt95E T/Wg==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770206956; x=1770811756; darn=ietf.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=0c3h+c/cpYKRqBRejr+DhTc2Z6B38d8gLQeS1HJX6AY=; b=lO6uF7NHv2Vh4r5BqMYW1cWNbe2ybiA1yuH87DSQoR0Ex1zYPBnmS6IPamDHFDZZYY bTP7fW0fzTCqmBcUr189UXDcQl2bz/SephpwtCZ+xAyKUnTFh0klUxQmKH6Jgd3FQ+iR gTWMWeEJ4LBbFAW2pMbHQgeMDZISnLbIfcKURi0HWfHoSGPL+1j+dlzK6R70YkUsIp7V hi/lYgnMnmZna1No8kmrPCuz+zQfHe1rwRCFIFEFCdqQKSLR3Nxp/PfhgjogHh8Ty36F V3FYPJou1w+RH3Q8Cd+DqPBZBHeafko4Yu/IJSchA3m/9gtWKd+MSNLmcRH8VewQ8pKd n1Ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770206956; x=1770811756; h=cc:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=0c3h+c/cpYKRqBRejr+DhTc2Z6B38d8gLQeS1HJX6AY=; b=CKTUUjCQ+Sv6MpvTwGLDLt/hm0W8ec37Ihmru968TXRkPkEHoNCw2+zErCmrmlf/Xz bFy2twMyTeoKHKbgf+PBejiokVtgS/P2wU9SbVSkouYgiwvPhdHc3rocC0RQ4bFjQE98 FkSoiZLfFN1xLssAUU1S70UpgAO/YYGHT9g3tKiEQwEALqjOqdSLaroAO4xocj9oFrTq 3uTBxtPwIZ1PI23MzdPjMIREyirjCj+/HZo2QbpGKqXsJM/6YI0AwsHipQ2ccmiSZqTB AFKcp1R7HWxWMfk3Vn3+wPrUeNYYxvhB2CR3SthI8/NgNP2ciZyPI8k13kTvmgVOVQ4H FiLA==
X-Gm-Message-State: AOJu0YypJw8mh5UT3ZfyK9XVsSqh4Wf14syLppf3JWfQcuclIfUXJwWK clvVKc5nguClN8HZ5Mvxo4/faXLtmHACIXzqgxgfq45Ao2J+N+mnnkwaEB9vuZ0rCVZliLWzgG+ RT70wX3xJVing+LsjgG1fP9w3ab+kug5I+Yls
X-Gm-Gg: AZuq6aIRpiiYqMAtUMlCSkXVstAe2e4BR6IShB8A6vYPsCUs+6nC1V9eYOdlPOvq5W5 vvyg4ocZ8oQsY3TvB2MGxq2vIPNrfizTPyPipef0G7lvUFq4NOxDPTikKMyArQignE6rfZNhJjh mX+7Skb7WLBNwxF2KFe+9y0T+RL9HrUMTDy4V/NGRDUi/j5iLisXh6GJqYzcRCsMb1S+BeywRhZ l6ZvtW6QGbEi0ESkw7j2ZvHchJDNcoMvpXAMzVxT/5jsL91759Z3kRxJcsE0vCeMUH9yKRq7m8p Dkrv9Dep2NCvIodA1jxu9SNgWcwOiTaDsHOBOZIk
X-Received: by 2002:a05:6102:3e81:b0:5f5:4f68:9f7e with SMTP id ada2fe7eead31-5f93947de57mr794910137.8.1770206955784; Wed, 04 Feb 2026 04:09:15 -0800 (PST)
MIME-Version: 1.0
From: Ken Takayama <ken.takayama.ietf@gmail.com>
Date: Wed, 04 Feb 2026 21:09:04 +0900
X-Gm-Features: AZwV_QivCctjeB1xkAv_F2bF2P-iFhHk4ZGNB4J9Ad-Iln59CAxZPBnJA7JckIo
Message-ID: <CAOZByRDtoFbU3unJhfVa_B209UJp51embbGDGxsSsa6KKu2EZQ@mail.gmail.com>
To: "TEEP@ietf.org" <teep@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Message-ID-Hash: ZEWZ7FOKSNIZ5QDRMYWEPZKPTB7IHTHP
X-Message-ID-Hash: ZEWZ7FOKSNIZ5QDRMYWEPZKPTB7IHTHP
X-MailFrom: ken.takayama.ietf@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-teep.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: rats@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Teep] Proposal to Carry Raw Report Data in TEEP Protocol messages
List-Id: A Protocol for Dynamic Trusted Execution Environment Enablement <teep.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/teep/b6u6u4ifwX128UvSEkTjK0P4FS8>
List-Archive: <https://mailarchive.ietf.org/arch/browse/teep>
List-Help: <mailto:teep-request@ietf.org?subject=help>
List-Owner: <mailto:teep-owner@ietf.org>
List-Post: <mailto:teep@ietf.org>
List-Subscribe: <mailto:teep-join@ietf.org>
List-Unsubscribe: <mailto:teep-leave@ietf.org>
To: TEEP Protocol authors
Cc: RATS WG (relates to the EAR document),
This is Ken Takayama.
Since the IETF 124 hackathon, our team has been working on a TEEP+RATS
integrated reference implementation to provide better feedback to the
WGs.
During this effort, we have run into an integration issue with
commodity TEE remote attestation mechanisms (e.g., Intel SGX/TDX and
AMD SEV-SNP).
In this email, I'll propose adding `? raw_report_data => bstr` to TEEP
Protocol messages.
## Background and Motivation
In the current TEEP Protocol specification, the method for agreeing on
the cryptographic keys used by the security wrapper between the TAM
and the TEEP Agent is not explicitly specified.
This seems reasonable because multiple key agreement mechanisms may be
used depending on the deployment.
However, when Remote Attestation is part of establishing trust between
the TAM and the TEEP Agent, additional information may be required to
reliably bind the attestation Evidence to the key material used by the
TEEP Agent.
In widely deployed TEE technologies (Intel SGX, AMD SEV-SNP, Intel
TDX), Remote Attestation works as follows (in RATS terminology):
- The Attesting Environment produces attestation Evidence (e.g., a
Quote or Report).
- The Target Environment can supply up to 64 bytes of report_data,
which the Attesting Environment incorporates into the Evidence.
- When a Verifier successfully validates the Evidence (e.g.,
certificate chain and signatures), the Relying Party can confirm that
the report_data embedded in the Evidence exactly matches the value
provided by the Target Environment.
This mechanism is commonly used to cryptographically bind
application-specific data to Attestation Results.
## What We Are Trying to Achieve
We would like the TAM to verify that the TEEP Agent's public key was
generated inside a trustworthy TEE using Remote Attestation.
The intended flow is:
1. The TEEP Agent (running inside the Target Environment) generates a
key pair inside the TEE.
2. The TAM sends a QueryRequest containing a challenge.
3. The TEEP Agent encodes the following information as an EAT claim set:
```
EAT {
cnf: TEEP Agent public key to claim proof-of-possession,
eat_nonce: challenge-value the TAM sent in QueryRequest
}
```
4. Because this structure generally exceeds the 64-byte limit of
report_data, the hash of the EAT structure is placed into the
report_data field.
5. The Attesting Environment then produces the Evidence including this
report_data.
This approach is commonly used in existing Remote Attestation
implementations; for example, in Intel SGX-based flows [1].
[1] https://github.com/Azure-Samples/microsoft-azure-attestation/blob/master/sgx.attest.sample.oe.sdk/genquotes/common/attestation.cpp#L17-L61
## Problem Statement
In the current TEEP Protocol:
- QueryResponse allows the TEEP Agent to send Evidence to the TAM via
attestation-payload.
- However, when Evidence such as an Intel SGX Quote is included, there
is **no field** to carry the original data that was hashed into
report_data (i.e., the EAT structure containing the TEEP Agent's
public key and the TAM's challenge).
As a result, even after the Evidence is successfully verified by a
Verifier, the TAM cannot recompute the hash over the original EAT
content and compare it with the report_data embedded in the Evidence.
## Proposed Change
Add the following optional field to TEEP Protocol messages which carry
the Evidence (i.e., both QueryRequest and QueryResponse):
```cddl
? raw_report_data => bstr
```
Note: While Evidence typically appears in QueryResponse (TAM -> Agent
challenge, Agent -> TAM Evidence), bidirectional attestation is also
possible (e.g., the Agent challenges the TAM and carries Evidence in
QueryRequest). The optional raw_report_data field therefore applies to
a QueryRequest message that carries Evidence.
## Benefits
In the Background-Check Model, this enables the following verification flow:
1. The TAM forwards the Evidence from QueryResponse to a Verifier.
2. Upon successful verification, the TAM computes the hash of raw_report_data.
3. The TAM compares that hash with the report_data value embedded in
the Evidence.
4. If they match, the TAM can confirm that:
- The Evidence was generated in response to the specified challenge, and
- The TEEP Agent public key was generated inside a trustworthy TEE.
This provides a clear cryptographic binding between the Evidence, the
challenge, and the TEEP Agent's public key.
## Discussions
Q1. Is raw_report_data valuable also for the Passport Model?
A1. Yes, we believe that raw_report_data is valuable also for the
Passport Model.
Even if Evidence were embedded directly into the Attestation Results
by using mechanisms such as ear.raw-evidence defined in EAR [2], it
appears that EAR currently does not define any field that corresponds
to raw_report_data itself.
In other words, while EAR allows raw Evidence to be carried, it does
not seem to provide a way to convey the original report_data from
which that Evidence was derived.
>From this perspective, preserving raw_report_data still has value,
even in the context of the Passport Model.
[2] https://datatracker.ietf.org/doc/html/draft-ietf-rats-ear#section-3-5.8.1
Q2. Why is this not proposed for the Update message?
A2. In the Update message, the attestation-payload is limited to
Attestation Results, which are consumed by the "Other Relying Party"
described in Figure 1 of the TEEP Protocol draft [3].
Even if the Other Relying Party were to require all of
raw_report_data, Evidence, and Attestation Results, both
raw_report_data and Evidence are already held by the TEEP Agent.
Therefore, it is unnecessary to return them again via the Update message.
There may be some Attestation Results for which the Other Relying
Party cannot verify the binding among Attestation Results, Evidence,
and raw_report_data.
However, such limitations may arise from differences in the
information available to the TAM and to the Other Relying Party, and
the binding mechanisms that each of them can realistically employ.
For example, when a TAM submits Evidence to a Verifier via an HTTP
POST and receives the corresponding Attestation Results in the
response, the TAM may establish the binding between Evidence and
Attestation Results through the association of the HTTP request and
response messages themselves.
In such cases, it is meaningful for the Verifier to return Attestation
Results that include raw Evidence using mechanisms such as
ear.raw-evidence defined in EAR [2].
By doing so, the Attestation Results can carry an explicit,
cryptographically verifiable linkage to the Evidence, enabling the
Other Relying Party to securely bind the Attestation Results and the
Evidence without relying on the original transport context.
>From this perspective, recommending the use of ear.raw-evidence in the
EAT Profile of the TEEP Protocol would be reasonable.
If, on the other hand, only Attestation Results that cannot provide
such explicit bindings are available to the Other Relying Party,
handling those cases can be considered out of scope for the TEEP
Protocol, rather than extending the Update message to carry additional
data.
[3] https://datatracker.ietf.org/doc/html/draft-ietf-teep-protocol#figure-1
Best regards,
Ken
- [Teep] Proposal to Carry Raw Report Data in TEEP … Ken Takayama