[Lake] Re: Fwd: [Ufmrg] Relay Attacks in Intra-handshake Attestation for Confidential Agentic AI Systems

Yuxuan Song <yuxuan.song@inria.fr> Mon, 12 January 2026 14:50 UTC

Return-Path: <yuxuan.song@inria.fr>
X-Original-To: lake@mail2.ietf.org
Delivered-To: lake@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 46E8CA6729E6 for <lake@mail2.ietf.org>; Mon, 12 Jan 2026 06:50:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -3.398
X-Spam-Level:
X-Spam-Status: No, score=-3.398 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, PDS_BAD_THREAD_QP_64=0.999, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=inria.fr
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 5c19SN5Y-GaV for <lake@mail2.ietf.org>; Mon, 12 Jan 2026 06:50:09 -0800 (PST)
Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id DB1FDA6729DE for <lake@ietf.org>; Mon, 12 Jan 2026 06:50:08 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=date:from:to:cc:message-id:in-reply-to:references: subject:mime-version; bh=M3aaVibNGTgO55Cp7FYjJzc8oQXd/+L2Gf304ROSI70=; b=aRdaS6eeuzKbpjdgyfsyH+Fy9gkAULqHdOwnQK9JXiGRXAw2x95kPtpz LYmlipbjgvs6m4JtecmctyMFOs1U2gGF2DUFuwBGUt2BaxyCc3qVhCpVL xnwpy1UgzbWf9Qvo6Yn1k7ebtAJ/a0gTjG0Ec99gR7bmYcX6Mkve1uwwG g=;
X-CSE-ConnectionGUID: ZZU9eyDyTsSZ+X3jyvLB5w==
X-CSE-MsgGUID: c3nn88OJQHC9tYBmu/1Q0w==
Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=Pass smtp.mailfrom=yuxuan.song@inria.fr; spf=None smtp.helo=postmaster@zcs2-store3.inria.fr
Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of yuxuan.song@inria.fr designates 128.93.142.8 as permitted sender) identity=mailfrom; client-ip=128.93.142.8; receiver=mail2-relais-roc.national.inria.fr; envelope-from="yuxuan.song@inria.fr"; x-sender="yuxuan.song@inria.fr"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 include:mailout.safebrands.com a:basic-mail.safebrands.com a:basic-mail01.safebrands.com a:basic-mail02.safebrands.com ip4:128.93.142.0/24 ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:128.93.162.3 ip4:128.93.162.88 ip4:89.107.174.7 mx ~all"
Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@zcs2-store3.inria.fr) identity=helo; client-ip=128.93.142.8; receiver=mail2-relais-roc.national.inria.fr; envelope-from="yuxuan.song@inria.fr"; x-sender="postmaster@zcs2-store3.inria.fr"; x-conformance=spf_only
X-ThreatScanner-Verdict: Negative
X-IronPort-AV: E=Sophos;i="6.21,221,1763420400"; d="scan'208,217";a="258162906"
X-MGA-submission: MDFHzmNqNFgMMbE9Kl3HfLy91pc1wNKf5wId1zUcrk39cAt/44wICeev+89THHh+lcjMgyK2qOL4xwGbN+3oXneq59Gsx58yNXmdTPCeLy7HU/uun469leiRJNOPYft5udXXjD7ZHsgIpHvkbtasxChjaekHmNnQrP24kKms4X2qtA==
Received: from zcs2-store3.inria.fr ([128.93.142.8]) by mail2-relais-roc.national.inria.fr with ESMTP; 12 Jan 2026 15:50:07 +0100
Date: Mon, 12 Jan 2026 15:50:07 +0100
From: Yuxuan Song <yuxuan.song@inria.fr>
To: Muhammad Usama Sardar <muhammad_usama.sardar@tu-dresden.de>
Message-ID: <751199456.37323066.1768229407858.JavaMail.zimbra@inria.fr>
In-Reply-To: <f40756f9-a7d3-4d3e-a744-1e273d96c496@tu-dresden.de>
References: <5521ffe4-4f9f-4470-93a2-644841713996@tu-dresden.de> <f40756f9-a7d3-4d3e-a744-1e273d96c496@tu-dresden.de>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_88270232-b839-42e0-9e27-55e59de83a1f"
X-Originating-IP: [128.93.82.30]
X-Mailer: Zimbra 10.1.13_GA_4837 (ZimbraWebClient - GC143 (Win)/10.1.14_GA_4838)
Thread-Topic: Relay Attacks in Intra-handshake Attestation for Confidential Agentic AI Systems
Thread-Index: BvhhO5KkgMY8kgARx0sDXEt+FJfvog==
Message-ID-Hash: 6IU5TW4EBU5GYBDZE4ZPSUDDW2LTTKSW
X-Message-ID-Hash: 6IU5TW4EBU5GYBDZE4ZPSUDDW2LTTKSW
X-MailFrom: yuxuan.song@inria.fr
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: lake <lake@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Lake] Re: Fwd: [Ufmrg] Relay Attacks in Intra-handshake Attestation for Confidential Agentic AI Systems
List-Id: Lightweight Authenticated Key Exchange <lake.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/lake/5NLjTO5Bz8w-epYkmBrr55ImsBU>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lake>
List-Help: <mailto:lake-request@ietf.org?subject=help>
List-Owner: <mailto:lake-owner@ietf.org>
List-Post: <mailto:lake@ietf.org>
List-Subscribe: <mailto:lake-join@ietf.org>
List-Unsubscribe: <mailto:lake-leave@ietf.org>

Hi Usama, 

Thanks for the information. We are currently working on it, we'll share our latest results in the next IETF meeting. 

BR, 
Yuxuan. 

> De: "Muhammad Usama Sardar" <muhammad_usama.sardar@tu-dresden.de>
> À: "lake" <lake@ietf.org>
> Envoyé: Dimanche 11 Janvier 2026 02:58:26
> Objet: [Lake] Fwd: [Ufmrg] Relay Attacks in Intra-handshake Attestation for
> Confidential Agentic AI Systems

> Hi lakers,

> Sending this separately to keep the two discussions separate.

> We discovered relay attacks in intra-handshake attestation implementations of
> attested TLS. Our intuition (no formal proof yet) is that the attacks should
> apply to attested EDHOC protocol in intra-handshake attestation [6] as well --
> at least for the case of Responder as Attester.

> Welcome any questions/thoughts/opinions.

> -Usama

> PS: For any follow-up, please keep me explicitly in To/CC.

> -------- Forwarded Message -------- Subject: 	[Ufmrg] Relay Attacks in
> Intra-handshake Attestation for Confidential Agentic AI Systems
> Date: 	Sun, 11 Jan 2026 02:17:42 +0100
> From: 	Muhammad Usama Sardar [ mailto:muhammad_usama.sardar@tu-dresden.de |
> <muhammad_usama.sardar@tu-dresden.de> ]
> To: 	[ mailto:seat@ietf.org | seat@ietf.org ] [ mailto:seat@ietf.org |
> <seat@ietf.org> ] , UFMRG IRTF [ mailto:ufmrg@irtf.org | <ufmrg@irtf.org> ]

> Hi SEAT and UFMRG,

> # Context

> We (i.e., I, Dr. Viacheslav Dubeyko [IBM], and Prof. Jean-Marie Jacquet
> [University of Namur]) did an extensive exploration of binding mechanisms in
> intra-handshake attestation for confidential agentic AI systems, that was
> presented on mic at SEAT meeting 124 and later submitted as a draft [0] with
> focus on AI agent. In line with the scope of SEAT charter, we also did formal
> analysis in state-of-the-art tool ProVerif and we would like to share a summary
> of our findings from our formal analysis with the hope that the analysis
> provides important data points to WG for making informed decisions.

> # Key Finding

> All analyzed binding mechanisms and implementations are ad-hoc and all of them
> result in relay attacks.

> Please note that this includes Meta's AI [1] for which a thorough security
> assessment [2] was carried out by Trail of Bits and they were unable to capture
> the relay attacks but as kindly clarified by Tjaden Hess, no formal methods
> were used in their review process. Our analysis shows the value of formal
> methods in the review process.

> # Fundamental Issue
> Basically, there is no binding of Evidence to the TLS connection in all of these
> implementations.

> # TEE-agnostic System Model

>     * Layered Attester (e.g., Intel TDX)
>     * Composite Attester (e.g., Arm CCA)
> # Scope of Attested TLS

>     * Intra-handshake attestation

> # Formalization Approach

>     * Symbolic security analysis

> # Formalization Tool

>     * ProVerif

> # Binding Mechanisms

> A . We considered the following values for user-defined field "rdata" in TEEs

>     1. Client's TLS nonce
>     2. Client's Attestation nonce
>     3. Early exporter
>     4. (Hash of) Server's public key

> Question for WG/RG : Is someone aware of any other value that folks use in
> "rdata"? If possible, please share a link to specification and/or
> implementation together.
> B . Combinations:
> We considered the following combinations of binding mechanisms from A :

>     1. Hash (Client's TLS nonce || Server's public key)
>     2. Hash (Client's Attestation nonce || Server's public key)

> Question for WG/RG : Is someone aware of any other combination that folks use in
> "rdata"? If possible, please share a link to specification and/or
> implementation together.

> # Prominent Industrial Implementations

>     1. Edgeless Systems Contrast [3]: uses binding mechanism B .2
>     2. Cocos AI [4]
>     3. CCC proof-of-concept [5]: Implementation of draft-fossati-tls-attestation
>     4. Meta’s AI [1]: uses binding mechanism A .1
> Question for WG/RG : Is someone aware of any other intra-handshake attestation
> implementation? If possible, please share a link to specification and/or
> implementation together.

> # Binding Levels

>     1. Shared DH secret (g^xy)
>     2. Client's handshake traffic key (htsc)
>     3. Client's application traffic key (atsc)

> # Correlation Properties

>     * G1: Correlation of Evidence to Shared DH Secret
>     * G2: Correlation of Evidence to Client’s Handshake Traffic Key
>     * G3: Correlation of Evidence to Client’s Application Traffic Key

> # Results

> We proved the proposition: G3 => G2 => G1

> We discovered relay attacks in all above proposals for binding mechanisms as
> well as all implementations analyzed. We provide a formal proof of insecurity
> that all above binding mechanisms and implementations fail to even achieve G1
> property (Level 1 binding).

> Any binding that involves server's public key needs additional assumption that
> server's public key does not leak.

> In general, all solutions fail when server's public key is leaked. In other
> words, extension of TLS with attestation in these implementations is not really
> bringing much benefit from a security perspective and rather giving a false
> sense of security.

> We believe that it is not possible to achieve level 3 binding for
> intra-handshake attestation within the scope of SEAT charter.

> # Implementation Issues

>    * Meta's AI uses client's TLS nonce (instead of attestation nonce), and hence
>     does not provide Evidence freshness.
>     * Cocos AI abuses the SNI extension to convey attestation nonce.
>    * Edgeless Systems Contrast was abusing the SNI extension to convey attestation
>     nonce, and currently abusing the ALPN extension to convey attestation nonce.

> # Proposed Mitigation

>    * We propose a cryptographic binder and modify CertificateVerify message, which
>     achieves level 2 binding.

> # Paper and Artifacts
> A paper draft has been prepared and artifacts are well-documented. If you are
> interested in reviewing one/both of them and can provide some feedback until
> 19th Jan, please reach out to me off-list. If someone can substantially improve
> the paper and/or artifacts, we are very welcoming to adding you as co-author.
> We will make the paper and artifacts public later on.

> # Contributors
> We thank Juho Forsén, Mariam Moustafa, Markus Rudy, Tjaden Hess, Yuning Jiang,
> and Pavel Nikonorov for sharing their insights and providing valuable feedback.

> # Other known related implementations

>    * Attested EDHOC: Our intuition (no formal proof yet) is that the attacks should
>    apply to attested EDHOC protocol in intra-handshake attestation [6] as well --
>    at least for the case of Responder as Attester. We will reach out to LAKE WG to
>     inform them about these attacks.
>    * Attested Noise: Confer's private inference [7] uses binding mechanism A .4 [8]
>    for Noise protocol. This implementation started just 3 weeks ago (with holidays
>    in between) and is not mature yet. Anyway, we will reach out to the implementer
>     (Moxie Marlinspike) to inform him about these attacks.

> # Feedback/Ideas
> We believe that we have explored all options in intra-handshake attestation
> within the scope of SEAT charter. We look forward to your thoughts and ideas on
> how we can mutually progress this work forward.

> -Usama

> [0] [ https://datatracker.ietf.org/doc/draft-jiang-seat-dynamic-attestation/ |
> https://datatracker.ietf.org/doc/draft-jiang-seat-dynamic-attestation/ ]

> [1] [
> https://ai.meta.com/static-resource/private-processing-technical-whitepaper |
> https://ai.meta.com/static-resource/private-processing-technical-whitepaper ]

> [2] [
> https://github.com/trailofbits/publications/blob/master/reviews/2025-08-meta-whatsapp-privateprocessing-securityreview.pdf
> |
> https://github.com/trailofbits/publications/blob/master/reviews/2025-08-meta-whatsapp-privateprocessing-securityreview.pdf
> ]
> [3] [
> https://github.com/CCC-Attestation/meetings/blob/main/materials/MarkusRudy.contrast-atls-ccc-attestation.pdf
> |
> https://github.com/CCC-Attestation/meetings/blob/main/materials/MarkusRudy.contrast-atls-ccc-attestation.pdf
> ]

> [4] [ https://docs.cocos.ultraviolet.rs/atls |
> https://docs.cocos.ultraviolet.rs/atls ]

> [5] [ https://github.com/ccc-attestation/attested-tls-poc |
> https://github.com/ccc-attestation/attested-tls-poc ]

> [6] [ https://datatracker.ietf.org/doc/draft-ietf-lake-ra/ |
> https://datatracker.ietf.org/doc/draft-ietf-lake-ra/ ]

> [7] [ https://confer.to/blog/2026/01/private-inference/ |
> https://confer.to/blog/2026/01/private-inference/ ]

> [8] [
> https://github.com/ConferLabs/confer-proxy/blob/0f69f522f7597c6587741055e86ae802c10891ab/src/main/java/org/moxie/confer/proxy/attestation/AttestationService.java#L145
> |
> https://github.com/ConferLabs/confer-proxy/blob/0f69f522f7597c6587741055e86ae802c10891ab/src/main/java/org/moxie/confer/proxy/attestation/AttestationService.java#L145
> ]

> --
> Lake mailing list -- lake@ietf.org
> To unsubscribe send an email to lake-leave@ietf.org