[Seat] Re: A continuity-and-revocation layer above attested TLS, with running code
Serhii Nikolaichuk <nikolaichuk.s.f@gmail.com> Thu, 24 September 2026 12:12 UTC
Received: from mail-wm2-x10.google.com (mail-wm2-x10.google.com [IPv6:2a00:1450:4864:31::10]) (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 BCECE31 for <seat@ietf.org>; Thu, 24 Sep 2026 12:12:46 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=gmail.com header.s=20251104 header.b=CEBgs+OE; arc=pass ("google.com:s=arc-20260327:i=1"); dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx.ietf.org: domain of nikolaichuk.s.f@gmail.com designates 2a00:1450:4864:31::10 as permitted sender) smtp.mailfrom=nikolaichuk.s.f@gmail.com
Received: by mail-wm2-x10.google.com with SMTP id 5b1f17b1804b1-49ccff31419so17036705e9.3 for <seat@ietf.org>; Thu, 24 Sep 2026 05:12:46 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1790251966; cv=none; d=google.com; s=arc-20260327; b=opEKftpqwD7du6yzKbj1QkrkOTjTUMmQrU83bLVZBAmlHRUOn6jtWwJhUzMHw/27HT MnoHgUNPm/H2RXOwLhxFiYStt9XdkRsj14AmGrg2mPvVXBsvFHPP1jtsHLUrOsyIrz61 C6GBC2cy4+Nd8USCgF0dpPbmERNt/cwLo9VplzLmrHkrv7/n+rVrkpZ00P4Dl0OF9/Go hscsPDgvLM17HQ1E1mxahXy4V0289T0epIgEiI7HURqYfx0eZpA2wtvtdhmk+gRNpeBZ tbJhAo1X1L+rqyIkbX/Y8Jxt6k0z2tqdMsbfqg9Nn+mmWDETlfn31EWJkPz9Pt2IXxIn gOfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:dkim-signature; bh=fu0PWI9tjDgBJZ17pJMuL33iT0/QRan3OSYSjkd7Uq0=; fh=vKTLdhMp6kUFB/sPkBFyJEMGIaYOa8lKtXBFTicKHmM=; b=pewezagbqxNEwoXaAs5YC6L97hDZvaKNTr256+VWwoB1G2ZYTILkGUPjxqbKkN0JUu qoOOoiik1NkB+Qe68yk1RLlVzFvJWoD+VmS3J5vVeZzMtyGVibIGBMV3/zVGFrA6wPOU mN1tKYMdepA7mov00FeEiRGbrGRKbzyQikIJi1AzJybt6CQ8Lxy3hp3WRlmjAQAOcCMh xZ/iKIlSnu4816JsQW8e9lSJXO+SGhqpO+nXf8ATqfsWLEOKtVRAyE0BqCAKoO8lJrGz pvWBp8Cb7gKkSxtGjzvycQjcQv0ZHuYNrl5XCu4+5H50PaHsAT6rLrNOienKF7/e1f4z nQIw==; 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=20251104; t=1790251965; x=1790856765; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:mime-version:references :in-reply-to:from:from:to:cc:subject:date:message-id:reply-to :content-type; bh=fu0PWI9tjDgBJZ17pJMuL33iT0/QRan3OSYSjkd7Uq0=; b=CEBgs+OESZXx99I1FNZrKLmA3cT1l4hcFy1M9+znyto48lIq0MQST+NJXjdUDpDHCx Bvjq4fSBxQyC/MAonPWXGkts4YsicEy0DphSOjPk2BNxyS3o+QNqHD1DENfPWJ2jrGfW bTEvW3d91IoyBNiQa33BsqblNjB6Ux1ITQygx+P4TdWE0f0PFenvWrjoKdJ6iFfaepq6 CjUhkPA6T9dTD4YVrLoJvaAyQfuGgfPoh2OjG9fcgXpwwYzAuboeCFpSrZr7cVYnuO06 G3B4I3zJ71wtfkvXFme/KU3eQi2gv6DaFTD90pLugzv1HVs/hALF0OHu3ysD15ZNAwtB PsAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790251965; x=1790856765; h=content-type:cc:to:subject:message-id:date:mime-version:references :in-reply-to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=fu0PWI9tjDgBJZ17pJMuL33iT0/QRan3OSYSjkd7Uq0=; b=rha/8MhWXDnBcskzh92jlgZCNybFcqQMzDtpNlZdJP5rAtug1ybSoCQpYBW/YjD9KG YwftmxpBjIIOCGa1xX2xMsfQ/GRGvtD9uvC3rJnbMXVVSQ/zbVvGvv0reA5kUNw97DI+ k1kcEesOg1TeXI1u8KeFY55yzxW4BOrb9TBwii+7FgojBp52akwemCgtG5PcjhP90kgw nP4AbmcH8P6BB+56LX0a6ShQDOGRYsk+lOqXIynlbMy7QUoAmmjonWRpYE4sHSppQitG Qx4Db1PMfqqV62xiHpJQWRvVUeX6JNb7sqCp7jKGNPLQODu6yM1HhNYHQQX8zX08+tD3 jdHA==
X-Forwarded-Encrypted: i=1; AKwUvBwJStUuKED/5/AutYZsCTnFELgb/Qt1aF6sWCmOAj13vigADdg575sNeHTINZ4o1QZYMJXp@ietf.org
X-Gm-Message-State: AFuF++n/pjf0hYPEKRFkpxjBXLxW6fYtcxfogWFs6EZhSbiTkIIRR8Pz hS4SwEJcRB4WK3PNRez03sYPfz9kZGIYqYD98xZ/FE0wGvVe6VqZ6kDQhxW8wa9ZaxteYva8def Yx5RhNnoBBV8U/CmwkdCVJNs47V3tNA==
X-Gm-Gg: AYBFou3+pOTwVB0K3JshBRql0f4p8ho/rPUygTi33fIoFPNgbJX/BS8WcZ6o5fVh1QC WY4C8mRPec8aRAL5jcQFQqyTzhwFNzRClcPnlfp7aXGSU0qb4+tSZmk1EmEp1uivUYf5r9k7//l thkhsC/hgw3amdQ7PoO6Fu60rJ3KFEZN3Kb/TFGKnITktbOkPb5w4CJwMhKV5P4CsbnBc1ArhYU LOFA9jBmVTVKdWC29zt5FbDtPk0JEktlkvRvWi2rdrYPU/fSczYiU23c4Cv89LbnuH/Aap/n0KS sYz8NjCrMTWaP9QBAdldQbZrf6X2NAme3N96+Rvb6aq7FJDjb3Rw7qAgLKvMdQYxcB+vfMJeHSc RgwxnZUOMKr8Bc0ujsW+s2pudQQckFJy7M6INnIdj9CT+tDcANMy1uaaGN4eQu/aoTz1NXIbyg7 YAFK9fKC/bFy2uUYthKKZ6
X-Received: by 2002:a05:600c:4e4c:b0:49c:edfa:15a with SMTP id 5b1f17b1804b1-49fe7b6f02bmr31484875e9.13.1790251964403; Thu, 24 Sep 2026 05:12:44 -0700 (PDT)
Received: from 101988054943 named unknown by gmailapi.google.com with HTTPREST; Thu, 24 Sep 2026 05:12:43 -0700
Received: from 101988054943 named unknown by gmailapi.google.com with HTTPREST; Thu, 24 Sep 2026 05:12:43 -0700
From: Serhii Nikolaichuk <nikolaichuk.s.f@gmail.com>
In-Reply-To: <1790248652400348935.1790248652@vision4d.ai>
References: <1790248652400348935.1790248652@vision4d.ai>
MIME-Version: 1.0
Date: Thu, 24 Sep 2026 05:12:43 -0700
X-Gm-Features: AclHuK9Qg6zhsCA1VfVBWg0PTC26B6eLemTMZuqf2-k-srnBXb0QhsYknW_tIx4
Message-ID: <CADj3X6u+wB0b7J6uNBSfyRU-uPqOiD==CbGDv4ruH+i6yxCt7g@mail.gmail.com>
To: waqas.nawaz@vision4d.ai
Content-Type: multipart/alternative; boundary="000000000000659645065c398444"
X-Spamd-Bar: /
Message-ID-Hash: 3TIWEER2OYAISCXNATHRVQMLT76D6TM4
X-Message-ID-Hash: 3TIWEER2OYAISCXNATHRVQMLT76D6TM4
X-MailFrom: nikolaichuk.s.f@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-seat.ietf.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: rats@ietf.org, seat@ietf.org
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [Seat] Re: A continuity-and-revocation layer above attested TLS, with running code
List-Id: "Secure Evidence and Attestation Transport (SEAT) WG" <seat.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/seat/oMcAt8fK8SSKa8L_81jvISkixck>
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>
Waqas, VCEK on the runs in the release: the GCP guests sign with the chip's VCEK, fetched from AMD's KDS by CHIP_ID and path-validated to the ARK. The verifier also takes VLEK-signed reports (the AWS captures in the repository), chaining through the VLEK certificate the guest reads from the host's certificate table, and refuses a VLEK report that arrives without that leaf. Nothing in the continuity anchor rests on which key signed: the instance is REPORT_ID, and the VLEK case is the reason -- one key per region, CHIP_ID zeroed. Yes, exporters: RFC 8446 Section 7.5, through the stack's standard call (SSL_export_keying_material in OpenSSL; Go, rustls and BoringSSL have the same), under two labels of our own, EXPERIMENTAL-hatls-continuity-exporter for the chain and EXPERIMENTAL-hatls-session-context for the first link; the working group's own post-handshake document binds the same way (draft-fossati-seat-expat, EXPORTER-cmw-attestation). Each endpoint derives both from its own key schedule; nothing that binds is sent on the wire. The v0.1 client read the exporter off the wire instead -- that is the relay defect recorded in docs/AUDIT.md and closed before v0.3.0. The limit that comes with exporters: the endpoint that holds the TEE must also hold the TLS session, so behind a TLS-terminating proxy there is nothing to bind. That is a property of channel binding, not of this layer. The review is welcome. Start with the test suite (PYTHONPATH=. python3 -m pytest tests/ -q, no hardware needed) and docs/AUDIT.md, which lists every defect I found in my own code first. Serhii On Thu, Sep 24, 2026 06:17 AM, waqas.nawaz@vision4d.ai wrote: > Serhii, > You say SEV-SNP. Do you use VLEK or VCEK? > Don't you require exporters? How do you do that? I will review your code > next week. > > Thanks, > Waqas > > @IETF Admin: I get three separate copies of Serhii's email. Is this my > configuration problem or is it normal? Is it fixable? > > > > On Thu, Sep 24, 2026 at 2:55 AM Serhii Nikolaichuk < > nikolaichuk.s.f@gmail.com> wrote: > > Waqas, > > Nothing in HATLS adds early attestation. The layer starts where the > handshake ends: every value it binds comes out of the completed TLS 1.3 key > schedule, it runs over plain TLS 1.3 with no attestation extension > underneath, and its README says so in as many words. > > What it adds is what the use-cases document asks for and leaves > unspecified (3.8.1, 4.8): continuity across a connection's lifetime -- a > re-attestation that cannot be answered with an earlier report, and a stolen > identity key re-hosted on another chip refused on its first message -- > proved in ProVerif and measured on live SEV-SNP, reproducible from a clone > of the tagged release. > > I signed the abstract you quote, and my numbers say what it says: with the > 5.1.1 binder an earlier report is accepted at a later reattestation, which > 8.4 concedes in prose and #60 shows with two AMD-signed reports carrying > byte-identical REPORT_DATA; a TDX quote in the first flight costs an extra > round trip against a long certificate chain and a post-quantum key share, > while post-handshake conveyance leaves the first flight untouched. #74 and > #75 are two more defects in the same document. I file measurements where > the working group keeps its issues, whatever I think of the document; that > is what a tracker is for. > > If you find a line in the release where the chain depends on early > attestation, show me the line. > > Serhii > > On Wed, Sep 23, 2026 03:44 PM, waqas.nawaz@vision4d.ai wrote: > >> As you say in abstract of your draft and cite MITRE document, key point >> separately from attacks is need for continuous attestation. Then why add >> the complexity and attacks of early attestation at all? >> >> Cheers, >> Waqas >> >> >> On Tue, Sep 22, 2026 at 6:17 PM Serhii Nikolaichuk < >> nikolaichuk.s.f@gmail.com> wrote: >> >> Following up on my two notes of the 21st. The parts of this that belong >> to the working >> group's documents are now in their trackers rather than on the list, and >> everything else >> is in one tagged release with the raw hardware reports. Pointers, so the >> list has them: >> >> On draft-fossati-seat-early-attestation (yaronf/draft-fossati-seat-ear >> ly-attestation): >> >> #74 With a HelloRetryRequest, "Hash(ClientHello...ServerHello)" in 5.1.1 >> has four >> defensible readings, and they give four different binders in 200 of 200 >> handshakes; >> Appendix C steers toward the wrong ones and 5.1.2 makes the disagreement >> a fatal >> attestation_failed. A one-sentence fix is proposed. >> https://www.google.com/url?q=https://github.com/yaronf/draft >> -fossati-seat-early-attestation/issues/74&source=gmail&ust= >> 1790180231627000&sa=E >> >> #75 A resumed TLS 1.3 handshake carries no Certificate message, so the >> extension of >> 4.1 has no carrier there; the only MUST about resumption is in the >> document history >> while 8.6 says a resumed connection inherits the appraisal. >> https://www.google.com/url?q=https://github.com/yaronf/draft >> -fossati-seat-early-attestation/issues/75&source=gmail&ust= >> 1790180231627000&sa=E >> >> #60 Section 8.4 reproduced on a live SEV-SNP guest with the 5.1.1 binder >> computed as >> written from the real transcript: two genuine reports in one connection >> carry >> byte-identical REPORT_DATA and the stale one is accepted at >> reattestation. ProVerif >> finds that trace with a constant binder and proves order with a chained >> one. Of the >> 5.4 options, Extended Key Update would give order for free; >> post-handshake auth and >> CertificateUpdate would not. >> https://www.google.com/url?q=https://github.com/yaronf/draft >> -fossati-seat-early-attestation/issues/60%23issuecomment- >> 5779862051&source=gmail&ust=1790180231627000&sa=E >> >> On draft-ietf-seat-use-cases (ietf-wg-seat/draft-ietf-seat-use-cases): >> >> #8 What "the identifier provided to the machine" actually is, read at the >> ABI offsets >> across 87 SEV-SNP reports from two clouds and two TDX guests: VCEK names >> the chip, >> VLEK the region, REPORT_ID the instance; CHIP_ID is all-zero on AWS while >> the >> report's MASK_CHIP_KEY flag reads 0; on TDX only the host-supplied >> MROWNER differs, >> unless the guest extends an RTMR, which I measured on two TDs. >> https://www.google.com/url?q=https://github.com/ietf-wg-seat >> /draft-ietf-seat-use-cases/issues/8%23issuecomment-577986 >> 3014&source=gmail&ust=1790180231627000&sa=E >> >> #60 On key migration between trusted environments: the firmware ABI marks >> ReportID as >> migrating with the guest, and an owner-authorised transfer, honoured only >> toward an >> instance the relying party has itself seen attest, measured on live >> SEV-SNP. >> https://www.google.com/url?q=https://github.com/ietf-wg-seat >> /draft-ietf-seat-use-cases/issues/60%23issuecomment- >> 5779864103&source=gmail&ust=1790180231627000&sa=E >> >> Section 4 of the use-cases draft asks proposals to state which of its >> goals they meet and >> how. That statement, goal by goal, with three goals not met and said so, >> is here: >> https://www.google.com/url?q=https://github.com/nikolaichuk7 >> /hatls/blob/v0.3.0/docs/SEAT-GOALS.md&source=gmail&ust= >> 1790180231627000&sa=E >> >> Two corrections of my own from the same pass: the guest probe in my >> repository had been >> unable to answer a connection since v0.2.0 (recorded results predate the >> defect; the >> "clone it and run it" invitation did not), and a "7.96 ms beacon" I had >> quoted as a rate >> was one report's latency while my own file held a 10 s maximum: the host >> throttles a >> guest to about ten SEV-SNP reports per ten seconds. Both are fixed and >> written up. >> >> Release, with every measurement reproducible from a clone: >> https://www.google.com/url?q=https://github.com/nikolaichuk7 >> /hatls/releases/tag/v0.3.0&source=gmail&ust=1790180231627000&sa=E >> >> I will keep further detail on the issues rather than here. >> >> Serhii Nikolaichuk >> The Capital Index, Austin, Texas >> >> >
- [Seat] A continuity-and-revocation layer above at… Serhii Nikolaichuk
- [Seat] Re: A continuity-and-revocation layer abov… Serhii Nikolaichuk
- [Seat] Re: A continuity-and-revocation layer abov… Serhii Nikolaichuk
- [Seat] Re: A continuity-and-revocation layer abov… waqas.nawaz
- [Seat] Re: A continuity-and-revocation layer abov… Serhii Nikolaichuk
- [Seat] Re: A continuity-and-revocation layer abov… waqas.nawaz
- [Seat] Re: A continuity-and-revocation layer abov… Serhii Nikolaichuk
- [Seat] Re: A continuity-and-revocation layer abov… waqas.nawaz
- [Seat] Re: A continuity-and-revocation layer abov… Serhii Nikolaichuk