[Rats] draft-yossif-psea-02: an EAT profile seeking review, and what an audit of its reference implementation found
Mohamad Khalil Yossif <mohamad@yuthent.com> Thu, 30 July 2026 09:35 UTC
Return-Path: <mohamad@yuthent.com>
X-Original-To: rats@mail2.ietf.org
Delivered-To: rats@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id A32A4120EE804 for <rats@mail2.ietf.org>; Thu, 30 Jul 2026 02:35:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1785404104; bh=bka0/n7sJENEPmyMMTdwwY7PVlCTbBs1VUx38Bf5d48=; h=From:Subject:Date:To; b=bKzliyaenAnmFD3lAOKXJYMBE2pPhXDBi4CdRMxo7kgiC+doMKQma9Tc8qSIGa384 ihuU7AcuuvsHUcu9I+mX9S/CUlvRRDcsHKiKa8Vx4tFrzjQ9k/gB7Zcf3UlfyoFZT+ ogHYj/KTFrgTUltFoHM7hXrhdfi3bzgRgHuDO+sE=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=yuthent.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 MWY1O1je8lTs for <rats@mail2.ietf.org>; Thu, 30 Jul 2026 02:35:04 -0700 (PDT)
Received: from out-02.pe-bsn.jellyfish.systems (out-02.pe-bsn.jellyfish.systems [66.29.159.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id E2FC7120EE7FD for <rats@ietf.org>; Thu, 30 Jul 2026 02:35:03 -0700 (PDT)
Received: from MTA-15.privateemail.com (unknown [10.50.14.40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by BSN-01.privateemail.com (Postfix) with ESMTPS id 4h9kZ91RT8z3hhTF for <rats@ietf.org>; Thu, 30 Jul 2026 05:34:57 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=yuthent.com; s=default; t=1785404097; bh=bka0/n7sJENEPmyMMTdwwY7PVlCTbBs1VUx38Bf5d48=; h=From:Subject:Date:To:From; b=WFvjIBTlJDyzo5dAyqWNhjb3YuQuROPP9Ed5Fd9yj2Kg/RVt0ucdJ8okvJH2TGcgC I9gecBoL8k//Fhz7XNM+cLbLUH/eSIHisa2hDr2KucOguAFRDzzKK5J/tvOYlO8Tap k9R7DvsFaUyYf4d+P+azoAif7oLg0QrU1odAAO+urruTXV90DI6hzcZVrKK3jBjGuV BGSfzucfcSkx/PbcKRszl0ow9zjb1gRe5SudfHQNNO20fpfKiW02mL470Q2fHZrp9N osqrIA9KMie4c+VuxhJ9jPWmVznEBB244kcrQ2TXOtL5HA5PcNQLsSLPPJ365Ex4nw HZf0IzmMVPuzA==
Received: from mail.privateemail.com (K8S-PROD-WORKER-15 [79.177.153.50]) by mta-15.privateemail.com (Postfix) with ESMTPA id 4h9kZ84gyKz3hhT6 for <rats@ietf.org>; Thu, 30 Jul 2026 05:34:56 -0400 (EDT)
From: Mohamad Khalil Yossif <mohamad@yuthent.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_81DE90B0-9F02-4681-A2D6-7266EB09F61D"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.600.51.1.1\))
Message-Id: <B17EA83C-4C7B-4222-B0C7-C5A1D8A36C17@yuthent.com>
Date: Thu, 30 Jul 2026 12:34:44 +0300
To: rats@ietf.org
X-Mailer: Apple Mail (2.3864.600.51.1.1)
Message-ID-Hash: LDHSOLO6D3GZSHB7WRHN6FPRTELJDASD
X-Message-ID-Hash: LDHSOLO6D3GZSHB7WRHN6FPRTELJDASD
X-MailFrom: mohamad@yuthent.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-rats.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Rats] draft-yossif-psea-02: an EAT profile seeking review, and what an audit of its reference implementation found
List-Id: Remote ATtestation procedureS <rats.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/zhzEbAwl6SqB6cuWHHgtJ3SMBbw>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rats>
List-Help: <mailto:rats-request@ietf.org?subject=help>
List-Owner: <mailto:rats-owner@ietf.org>
List-Post: <mailto:rats@ietf.org>
List-Subscribe: <mailto:rats-join@ietf.org>
List-Unsubscribe: <mailto:rats-leave@ietf.org>
> Hi all, > > I posted this on 25 and 28 July, both times before my subscription was > confirmed, so both are presumably held. Apologies if any of them > appears alongside this. There is enough new since the first attempt > that this is a different message rather than a resend. > > draft-yossif-psea defines an EAT profile and has never been reviewed by > this group. That is my omission, not an oversight of anyone here. > > https://datatracker.ietf.org/doc/draft-yossif-psea/ > > What it is. A compact JWS whose payload is an EAT-JSON claims-set, > signed ES256 by a user-verification-gated key on the user's > authenticator, carrying evidence that a human approved one specific > action at the moment that action executes. It reuses ueid, eat_nonce, > submods and eat_profile from RFC 9711 alongside JWT registered claims, > and adds psea_* claims for what EAT does not register: an action-payload > hash under JCS canonical encoding, a user-verification claim with two > normative anchoring cases, a monotonic replay counter, and an operation > and assurance-level binding. > > The new part, and the reason this is worth your time rather than mine. > > Since the first attempt I published a reference Attester and Verifier > alongside the draft, and then audited them. The reference was never > conformant to the document it claimed to implement. It omitted two > REQUIRED claims entirely - ueid and eat_profile - implemented no > additionalProperties check at all, and compared psea_proof_version as > an integer against a schema declaring the string "1". Corrected in > lockstep, and the correction is public along with the vectors the > profile still fails: > > https://github.com/yuthent/psea-spec/tree/main/conformance > > Twenty-one vectors against an external negative-class list. Thirteen > pass, three fail, five are not representable against this carrier. The > three failures are on the record deliberately: no named-principal > reference, no ordering input between authorization and effect, and a > composition case where two artifacts verify for one action under > different principals. > > Four things I would value a read on. > > 1. Section 3.1.1 states the profile in the form RFC 9711 Section 7 asks > for. Does it state everything that section expects, and is anything in > it phrased in a way this group would not recognize? > > 2. The profile is strict rather than ignore-unknown: additionalProperties > false, a conforming Verifier rejects any undeclared claim, any unknown > version, and any unrecognized crit parameter, and the wire format is > versioned as a whole rather than extended in place. That departs from > what EAT and JWT consumers customarily do. Defensible profile decision, > or mistake? > > 3. ueid carries a deterministic per-issuer value under the RAND type tag > - 0x01 followed by SHA-256(deviceId || iss) - so one device yields a > distinct ueid per deployment. Rationale in Section 7.1. This is the item > I am least confident about and I would rather be told now. > > 4. Section 8.3 requests a urn:ietf:params:psea sub-namespace for the > profile identifier, with a fallback URI if it is not granted. Is that > the right mechanism for an EAT profile identifier, and is there > precedent I should be following instead? > > The ordering failure above may be the most interesting one for this > group. Nothing in the token establishes that the signature preceded the > effect it authorizes; iat is producer-asserted and the counter orders > proofs from one attester against each other, not against a real-world > event. The next revision states that as a known limitation rather than > attempting to close it. If this group considers it closable within an > attestation token rather than needing an external ordering input, that > would change what the revision should say. > > Mohamad Khalil-Yossif
- [Rats] draft-yossif-psea-02: an EAT profile seeki… Mohamad Khalil Yossif
- [Rats] Re: draft-yossif-psea-02: an EAT profile s… Thomas Fossati