[Seat] The (slow?) Passport Model-sized elephant in the room

Nathanael Ritz <nathanritz@gmail.com> Tue, 03 November 2026 03:52 UTC

Received: from mail-dl1-x1236.google.com (mail-dl1-x1236.google.com [IPv6:2607:f8b0:4864:20::1236]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id A40FC46 for <seat@ietf.org>; Tue, 03 Nov 2026 03:52:49 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=gmail.com header.s=20260707 header.b=S18QtcFH; spf=pass (mx.ietf.org: domain of nathanritz@gmail.com designates 2607:f8b0:4864:20::1236 as permitted sender) smtp.mailfrom=nathanritz@gmail.com; dmarc=pass (policy=none) header.from=gmail.com; arc=pass ("google.com:s=arc-20260327:i=1")
Received: by mail-dl1-x1236.google.com with SMTP id a92af1059eb24-1931ff67a29so7399621c88.1 for <seat@ietf.org>; Mon, 02 Nov 2026 19:52:49 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1793677962; cv=none; d=google.com; s=arc-20260327; b=poHKCW87qc++HLJ7hck5CGpBU2umBR7UyBmPJ3iXgoOnZzG1ITdZIBz2rKQPvwJWOE 1TIgYny1niFyEc6KXdXXp/YF1/UjtJWSoi+j6qWkk/0Xe6pQGS24xPXNbpmng+pIT6+d Dtf6UOVvlfjde1ksOt2o/37An/Se9vQGboHmSl/vxGYsHuKy6ozHSIIeJOxJb44c7HKR dcD842Ac/9C+nCXQhcrsxZua8VD03F91g/MP23S9hKyWYibom2wZZft7H3BafR96PUZl XS4xoD9PuvVN7oH/GCF/DuzgZ130az1dP1sDW0aK1JL8A+aZzdKNBXNq5V5LaYF4Emuv jQIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=oC53lr8IPJ9uk0uKJsqfaUDGNyZQexHAiXAgwbvF5Wk=; fh=b1A3z6SXeP2LTIhwEU8XNQuQhSjvXxRO5W2vYHUtBv8=; b=gndjvnou5iR5A2EUwhk9ur+V4fW79SNpWfHgDtxVrwKKq9TEDg8EvctJ2dML9G8CAJ Cjr2aA4gS9nsib/2H+VDIscBqcSJZKNcyzW+jC1L0tkBw2j16jyAazToWdrIOlYG0Df3 XZtN1ebHwgvw5LZ2hM3eI+pk7BkCIMA9N8ZCc9E74REFJ45eUQqt7UDf6zzPrvjVdcDI Zd0slka1XHY+m2uxlTedY74LHBcGnq3deeXzPqIJbQEo8LFqriZuJAf7G8/0nfRBlzcL QL5sPVuw5ktjUKxC2actsyFfl6tBesiLdVzaWXhattnJWPq1iyE+f9S0flQYNprFyRU6 2AsQ==; 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=20260707; t=1793677962; x=1794282762; darn=ietf.org; h=content-type:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=oC53lr8IPJ9uk0uKJsqfaUDGNyZQexHAiXAgwbvF5Wk=; b=S18QtcFH50t7RyjZlIFtfvUuuB43XZ9bwe/1tC6DLIDDviq6ElbVBHoGkJQMw9PTKU b7wbhRDL7l7wuYLSvzfYbipX4IB9o8dv+n4deITUO7mR0mnVBGzEP1idqZLazHG1/lGu wiInYc2sOn82Ib1c4kANcp+dEL10eumGY36/3EhWl4cHzdsip1tfdmRGk5FlmrEApaVY hX6Q6Bag+neq/T562gkn2EtFOqgd25JhTmUXgpcPqczQSFP7xP41dqwYzQgs6u1+x9vY I13R/cvOuDuNwkAIGzh8+nj2NPfdmsFmVoZyiVEQRdj8hziS0moGIgvPp4E3YgwR46P+ qSkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793677962; x=1794282762; h=content-type:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=oC53lr8IPJ9uk0uKJsqfaUDGNyZQexHAiXAgwbvF5Wk=; b=jqDAdu0LZICu/EaTBHAigrm2+sB+LlcN8D0kqWiLt9Ifdq5y9mopaAczZH3MnCrAK0 ToYg4jrIzdjLbuRS8/c2ebw+fSmvjcmJrWspilXiAgsGDEzTRgoCS2of4dUcxBh/LqGW mt0ECb2lTTUSBn7ySP4kLVdNGu981Px4lRjcKFqu8o9cG+kahREWR6PIOlRe+WOkeZL/ 7Wiu8pCq8kF2uHgVR99CAv0HoAZ46dspoJllg1kPmfUN9mcJGka84jfylBizwav+sVgz IknK0JegTV9FihDbuEADuvZR6TJZ3eCXf+gsnWFAwc7F6FaxwZMgO9walbodOuPrAlzG EYcg==
X-Gm-Message-State: AFq9FYImkSzMJ0getz6V+A1tuKkovl6p3Enc3h6Kit0qLagCc3A4yV+O OocDqG8Hdmo+Ofek53bQpMCMyzKXwGuvI20IAVCJ5lGsW8smP6vCEtndNP7e3qzfA3mRST5nadY ikjteSQsik7raLTZsOf6joYcmZx83k1+BfCyMugo=
X-Gm-Gg: AYBFou3jALxk0HL5SzjR3iNo1fQ7/S3KFvOsp41yxOMNopoybVL3nwaiIsf2v+CEass FHSItHXXT3hthmPmLXzIhoYkK4282S5QRtYYi3DGYkje9zGeiTJbqpjSsE8GDbBmldHXU4Q7Nhz Pdhl1LVAKLAvU3bQKmoADlCvIJHiP4hDE/al6ZLif3uP+raeCDAm9s4i0IrBKPREh+TKPtCcpNc JmYL7V+x0sAsLdTLVLs6Z2Wdzui0BzCjereHAP8KF0Aw28UBYb/Xulin2OwXfITBknol1JtuW1C 2NeTjqAwWBK4lAhJjGE2AQ6ZhbZtzbg5GJlwYQv3fFctvBJs2wDkDm2GqlxAksvTQZTGdA+eyvP xUfGB9Psj2qlXgkDEW8zdczbsrIQ1yWyL4uqE
X-Received: by 2002:a05:701b:4213:20b0:16c:4eef:a526 with SMTP id a92af1059eb24-1ac5a0b430bmr19169439c88.15.1793677962371; Mon, 02 Nov 2026 19:52:42 -0800 (PST)
MIME-Version: 1.0
References: <CAHxYnaNXQ-5B_Q9Zw2rbQ8b_2w_k+-eAzj40qkxZOjrZqRCEmg@mail.gmail.com> <MRWPR02MB12086309149FBAC53D75D85DBB7FD2@MRWPR02MB12086.eurprd02.prod.outlook.com> <CAHxYnaM=oj6Gtb_ricfrru84pirF9QW0aKp5E8dBGmR3WmeGKQ@mail.gmail.com>
In-Reply-To: <CAHxYnaM=oj6Gtb_ricfrru84pirF9QW0aKp5E8dBGmR3WmeGKQ@mail.gmail.com>
From: Nathanael Ritz <nathanritz@gmail.com>
Date: Mon, 02 Nov 2026 21:52:29 -0600
X-Gm-Features: AclHuK9Ottwti_7rmsJYLzxO1cLm6UEl9I3dORCRtvHkTKuQvYwcex2hJQuiiQk
Message-ID: <CAHxYnaNiQDzSczOxy_QKHNXNHu78SZoVb0WOgYbt_bXB9FQPNw@mail.gmail.com>
To: "seat@ietf.org" <seat@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c9e7ae065f573181"
X-Spamd-Bar: ---------------------------
Message-ID-Hash: 5MFLVA3MB6UVKAFUELMWFQEJNAC43KIE
X-Message-ID-Hash: 5MFLVA3MB6UVKAFUELMWFQEJNAC43KIE
X-MailFrom: nathanritz@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-seat.ietf.org-0; header-match-seat.ietf.org-1; header-match-seat.ietf.org-2; header-match-seat.ietf.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [Seat] The (slow?) Passport Model-sized elephant in the room
List-Id: "Secure Evidence and Attestation Transport (SEAT) WG" <seat.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/seat/QK8_j67VeIqmRLAwncuvfPf4F8g>
List-Archive: <https://mailarchive.ietf.org/arch/browse/seat>
List-Help: <mailto:seat-request@ietf.org?subject=help>
List-Owner: <mailto:seat-owner@ietf.org>
List-Post: <mailto:seat@ietf.org>
List-Subscribe: <mailto:seat-join@ietf.org>
List-Unsubscribe: <mailto:seat-leave@ietf.org>

Hi everyone,

Back in July [0], I raised the following concern that affected both
early-attestation-05
and seat-expat-03: neither draft defined a binder mechanism for Attestation
Results [1], [2].

> _The challenge the charter requirement gives us when the TLS client is
the RP and the TLS server is the Attester is that we do not seem to have a
common understanding (let alone a performant approach) for binding a cached
Attestation Result (AR) on a per-connection basis._

I think the problem was very well articulated by Imran Siddique who had
recently resurfaced the problem on GH, noting that when "nothing requires
an Attestation Result to carry either value, and nothing asks the Relying
Party to compare one [...] a Relying Party following the passport text
accepts any Attestation Result the Verifier signed, for any [transport
signing key], on any connection." [4]

To broadcast very good news then, I observe both major solution drafts
(seat-early-09 and seat-expat-05) now explicitly define a binder mechanism
for Attestation Results [5], [6], hooray!

## The (very negative) Performance Impact

However, I strongly believe that the current approach shared by both
seat-early and seat-expat has inadvertently broken a core property promised
by the Passport Model: /caching/. Note that Section 10 of RFC9334 makes the
intent for some flexibility rather overt, (as Markus had previously
highlighted earlier in this same thread [7]):

> "Some flexibility on the freshness requirement is a key component for
**enabling caching and reuse of both Evidence and Attestation Results**,
which is especially valuable in cases where their computation uses a
substantial part of the resource budget (e.g., energy in constrained
devices)." [8]

However, now seat-expat-05 normatively mandates that, "The Relying Party
MUST compute the binding value as described [...] and verify that it
matches the value in the Attestation Result." and seat-early-09 goes even
further, mandating that "A missing binder or a mismatch MUST cause the
attestation to be considered invalid. If any of these checks fails, the
Relying Party MUST abort the connection with a fatal attestation_failed
alert."

This is TERRIBLE for performance. As outlined in our recent publication,
seat-architecture-01, Section 6.3.4, "Operating Challenges Under the
Background-Check Model":

> "In the Background-Check model, the Relying Party must withhold
application data while performing a synchronous appraisal query to an
available Verifier. This verification fan-out latency compounds channel
setup delays, which increases communication timeouts in lossy or
distributed networks. Furthermore, uncompressed platform Evidence may
exceed network Path MTU limits [...]" [9]

While I appreciate that the authors of seat-early-09 are transparent about
the performance impact of their approach, candidatly describing risks
of "Denial
of Service Through Verifier Requests" [10], the very same performance risks
apply to seat-expat-09. This is not a matter of intra- vs. post- but of
Background-Check vs Passport.

## How Did We Get Here?

In effect, both drafts define a binding mechanism under the Passport Model
that requires a Verifier to be online and available for every handshake
ever. I believe this highlights a conceptual gap that we missed for
seat-architecture-01 but hope to better articulate and demonstrate in rev.
02. In the meantime, I would encourage reviewing the example of topology
combinations seen in Fig 7 of RFC9334 [10] and reviewing recent drafts such
as TACRA [11], to explore specific uses cases where such flexibility is
paramount. Mark Novak also shared similar concerns outlining his Fintech use
case [12]

## Proposed Fix - Renable cached AR support under Passport Conveyance

I believe that the solution is straightforward, thankfully. I've published
a strawman proposal for a fix for draft-early and a complete PR for
seat-expat [13] for consideration.

Cheers,
Nathanael


[0] https://mailarchive.ietf.org/arch/msg/seat/Xwf2c1jfUWeGgHjWGFliKqtqANM/

[1]
https://www.ietf.org/archive/id/draft-fossati-seat-early-attestation-05.html#section-4-5

[2]
https://www.ietf.org/archive/id/draft-fossati-seat-expat-03.html#section-4-4.2.1

[3] https://mailarchive.ietf.org/arch/msg/seat/whMijUHurwGZBMhmV_Eqa1PG7w4/

[4] https://github.com/tls-attestation/exported-attestation/issues/67

[5]
https://www.ietf.org/archive/id/draft-fossati-seat-early-attestation-09.html#section-5.1.2-5

[6]
https://www.ietf.org/archive/id/draft-fossati-seat-expat-05.html#section-4-4.2.2.1.1

[7] https://mailarchive.ietf.org/arch/msg/seat/XJCkeY1jvf4s4vidLc6e7nU1RLs/

[8] https://www.rfc-editor.org/info/rfc9334/#section-10-3

[9]
https://www.ietf.org/archive/id/draft-many-seat-architecture-01.html#name-handshake-latency-and-netwo

[10]
https://www.ietf.org/archive/id/draft-fossati-seat-early-attestation-09.html#section-8.1

[11]
https://www.ietf.org/archive/id/draft-novak-rats-tacra-03.html#section-abstract-3

[12] https://mailarchive.ietf.org/arch/msg/seat/B3vuCv9fzcBMVjBE3ZRGOGF_1dU/

[13] https://github.com/tls-attestation/exported-attestation/pull/72


On Fri, 10 Jul 2026 at 10:48, Nathanael Ritz <nathanritz@gmail.com> wrote:

> Thanks for the feedback Markus. Inline with [NR]:
>
> On Fri, 10 Jul 2026 at 01:26, Markus Rudy <mr@edgeless.systems> wrote:
>
>> Hi Nathanael,
>>
>> I believe you are interpreting freshness differently than RFC 9334
>> defines. For attestation results, freshness is described as mostly being
>> time-based [1].
>
>
> [NR] I don't think we disagree! [1] says about the time-based element that
> "this is essential in deciding whether the included Claims can be
> **considered fresh**", emphasis my own. And it goes on to say that the
> consideration regarding freshness of Claims means, "they still reflect the
> latest state of the Attester, and that any Attestation Result was generated
> using the latest Appraisal Policy for Evidence, Endorsements, and Reference
> Values."
>
> [NR] A cached AR has a timestamp and an expiry. If the Verifier's
> signature that produced the AR is trusted and the AR has not expired, the
> Claims inside the AR are also considered fresh. Let me know if that still
> doesn't sound right to you.
>
>
>> Note the following quote from the 3rd paragraph in particular:
>>
>> > Some flexibility on the freshness requirement is a key component for
>> enabling caching and reuse of both Evidence and Attestation Results
>>
>> The charter may be too strict here.
>
>
> [NR] Well, I was talking about binding to fresh Attestation Credentials.
> However, as it turns out, if that AR includes assertions relating to the
> attester's TLS identity key, then signing the CV with that same
> identity key even provides proof of possession. However, there is no
> compound authentication available. If the identity key is compromised,
> that's the show.
>
> [NR] My concern is that such an approach is vulnerable to an oracle
> attack if that identity key is not strictly confidential (i.e., generated
> within the TEE and never leaves it). In the case where you are looking to
> inject a pre-provisioned private identity key with a cert manager to avoid
> the overhead of webPKI provisioning, a typical AR can't provide the
> assurance that either of the two concrete proposals I mentioned aim to
> deliver.
>
> But to remotely attest measured boot or other non-confidential attesting
>> environments, you probably want fresh evidence instead.
>>
>
> [NR] I don't disagree. I'm not looking to replace fresh Evidence entirely.
> I am just looking to make the Passport Model viable for Confidential
> Computing while still providing the additional assurances that the
> Background-Check model already gives us -- but without the massive overhead
> and performance penalty.
>
> [NR] If you could leverage your injected key mechanism with your trusted
> cert manager, while also getting verifiable per-TEE target environment
> assertions that come from a real confidential key, while **also** not
> needing to strictly keep a Verifier co-located with every RP?
>
> [NR] In short, I am seeking to leverage the performance gains the Passport
> conveyance Model can give us, without forcing a trade-off regarding
> resilience to single key compromise. I admit, the ambition has real "have
> your cake and eat it too" energy.
>
> Cheers,
> Nathanael
>
> On Fri, 10 Jul 2026 at 01:26, Markus Rudy <mr@edgeless.systems> wrote:
>
>> Hi Nathanael,
>>
>> I believe you are interpreting freshness differently than RFC 9334
>> defines. For attestation results, freshness is described as mostly being
>> time-based [1]. Note the following quote from the 3rd paragraph in
>> particular:
>>
>> > Some flexibility on the freshness requirement is a key component for
>> enabling caching and reuse of both Evidence and Attestation Results
>>
>> The charter may be too strict here. In my understanding, using AR was
>> always a trade-off on freshness, and it depends on the use case whether ARs
>> are appropriate. If neither the attester nor the relying party benefit from
>> leaking the ARs, it's probably fine without per-connection freshness. But
>> to remotely attest measured boot or other non-confidential attesting
>> environments, you probably want fresh evidence instead.
>>
>> Cheers, Markus
>>
>>