[TLS] Re: draft-sheffer-tls-pqc-continuity-02: four comments on the client cache rules
Yaron Sheffer <yaronf.ietf@gmail.com> Mon, 03 August 2026 19:26 UTC
Return-Path: <yaronf.ietf@gmail.com>
X-Original-To: tls@mail2.ietf.org
Delivered-To: tls@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id B3CC0122EADB8 for <tls@mail2.ietf.org>; Mon, 3 Aug 2026 12:26:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1785785205; bh=UfT/MEZHK7Mum/Kl9clb61c+ehQna9q5Kldea6TUcxw=; h=Date:Subject:To:References:From:In-Reply-To; b=ePjVxluQwaUrilbTyQ63yqHx9HtsatHOjJWUo4l7+tLw66Y67iz/IUxt4lsffuj9P BN2YSXVxa3Mu647dNSCyGUx3rap9lYJGEFlbz34y5voZ3HGkjaKMU1mTWUfTswexRw b7ZeqKlTrJaN2W9kSBcL/Q3X4IKDJNr/VYzDtx0I=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 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, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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=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 4MyqPrG-qQeX for <tls@mail2.ietf.org>; Mon, 3 Aug 2026 12:26:45 -0700 (PDT)
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) (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 05958122EADB3 for <tls@ietf.org>; Mon, 3 Aug 2026 12:26:45 -0700 (PDT)
Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-47f7872abb6so2289063f8f.3 for <tls@ietf.org>; Mon, 03 Aug 2026 12:26:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785785204; x=1786390004; darn=ietf.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to:content-type; bh=2YrzaEvmmgr7HBa5fKhAei19JiLupNMdlOBfjFCu2GU=; b=LRCkT/0t9sIkJSnlW8o2EKJiqzl0ZEjzgekwXIecEGiuGS6sg03cHZ8vsG0oEFgCyW Tc9RZHFiKc/RZNhqPHwQ/T1URHus53SvqukU4z/1j1A0aKBCiGCKFBPiP+25Y944HBwH mQ89yXixlnqrMyE8PIkmKOPbyOZLvnHN+nHwRrv86FLc+cujyLGvnSFqJoCqB8NQB6LS jD8HiGz+w+hce4Vjuwcevg2OU7Jf2fs9/F6QXrb0rKTGBB9k1FdljxP3RDZXR06268v8 +I1bYtPEvvjMFovxeyGCEgM3FjL05Xyi8RAWJ0w+zBLNYBMASJOZpkMFpfvzvZgv7m2v iLaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785785204; x=1786390004; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=2YrzaEvmmgr7HBa5fKhAei19JiLupNMdlOBfjFCu2GU=; b=jTumlazxyxIz4A9jvlf3tbZ/u0K76UZtFvwckcsXwghPorZJVac1Sb5QA/vJVImCFi G2jPN1jDhk5nTEbpWbrYjvu4J+QomURXIiADN73hJDVgF6gO61AUugz8vFKJ7hrpx202 PcYQ9dZKI9peyt4QmO/NdddGsaSn6atXtEQqFNaRiIiy8Js/zs6z6pnHzVicvjLEDvSM QIu3HO6vqMraSBlMSuidf2SEY5G80g3u2UHtXyp42v/negDI1ntQlLT1HXJ4AAkuzigy WvupWUx1vlMRjL1pS84lGYwwXMPpMLWHUf6T3wHw3Ht1DxL7g/5ogldig/9oK/ZeqnVt jt8w==
X-Forwarded-Encrypted: i=1; AHgh+RoPFBc4v9wTgWEZZZp00xq6aIqQDmkVOgjUbDhbSingq7s192pbIdpm842QEv51KBxHZ4I=@ietf.org
X-Gm-Message-State: AOJu0YzDuHQga17RJf5OQdrEc+CeeRxQOWLyxTEnS5UuIR61mv4RGtYO nEwi//9i/scguaa4zzq4rdMpisyfZDeKo2pbJLtNNC0UU3kTgVHLfsOYk+hthD0Fio8=
X-Gm-Gg: AR+sD11tLe3dEuf9DSep1MxUlXow+icYk4GL7ITYRMJ76bloI7KTKti4ZrySIGwau8E rRCXxMR4JzBAYkyupsgGOpeelSD+jh7x6LlGCaz18UO9RBzzgfpGRA2aoBH6yTET6y2vW53L/Il e/RxRtP+Xw27jVuomtAyTiGTs0e7qydKZ3Nf/9Rbyk2JtaK4Ou0YtgB82IovxiP+uGZzQD1EUzV 3xICGbayB+x6xtqVZPPj4p5jhg4GUiU4efVKSb5z+0dGzhLj2aezJkey1Q5xCpUtXP1fGaUxmRd MuTV7SZvN1zqkiQcg2zBXOMPrpjLlLJ9JeIinRcVruEY6bVnUnQGb5uhTDtKjhiMnC/KdkSafca 9Bh5f7drhLonV3kzcsoRVb6swqrQoj6ec8xNXhQVJWkQ5jpj1X9ah0QzTXByGTTCEnCZRSSBW6G TOS7k0Ya97kTMPg1lo43+EKbVc1smBM4HYkB1FW+yuDnQnTARCx4/cfIbEI3yfVPbpHv7ZhWTIe QIFEX4ODJ4rBZLb603lNqDnf6KCOltZfMF2poXE2J9z1hNt8Q2INiEZ
X-Received: by 2002:a05:6000:1acf:b0:47f:73fb:daa1 with SMTP id ffacd0b85a97d-47fd72b5179mr26826141f8f.19.1785785203774; Mon, 03 Aug 2026 12:26:43 -0700 (PDT)
Received: from [192.168.68.100] (IGLD-84-229-147-168.inter.net.il. [84.229.147.168]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47fd458bf7csm36997205f8f.32.2026.08.03.12.26.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Aug 2026 12:26:43 -0700 (PDT)
Message-ID: <591819d7-3b4b-4ee6-bead-c1632db801c4@gmail.com>
Date: Mon, 03 Aug 2026 22:26:41 +0300
MIME-Version: 1.0
User-Agent: Betterbird (Windows)
To: Nazmus Salehin Sammo <mit252100@stud.mit.edu.au>, "tls@ietf.org" <tls@ietf.org>
References: <SEZPR02MB7994150469B3D1468943F4C7A1D62@SEZPR02MB7994.apcprd02.prod.outlook.com>
Content-Language: en-US
From: Yaron Sheffer <yaronf.ietf@gmail.com>
In-Reply-To: <SEZPR02MB7994150469B3D1468943F4C7A1D62@SEZPR02MB7994.apcprd02.prod.outlook.com>
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Message-ID-Hash: WM5F2RVMNF3ZG62BBAX2EIU5Y2YCC4HE
X-Message-ID-Hash: WM5F2RVMNF3ZG62BBAX2EIU5Y2YCC4HE
X-MailFrom: yaronf.ietf@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tls.ietf.org-0; header-match-tls.ietf.org-1; header-match-tls.ietf.org-2; header-match-tls.ietf.org-3; header-match-tls.ietf.org-4; 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: [TLS] Re: draft-sheffer-tls-pqc-continuity-02: four comments on the client cache rules
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/tlyn2fThgbnq7ROrBi-K8pqavII>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Owner: <mailto:tls-owner@ietf.org>
List-Post: <mailto:tls@ietf.org>
List-Subscribe: <mailto:tls-join@ietf.org>
List-Unsubscribe: <mailto:tls-leave@ietf.org>
Hi Nazmus,
Thank you for your review and the issues you submitted. We will review and address them shortly.
Best,
Yaron
Hi all,
I have been doing a formal analysis of the PQ authentication negotiationdrafts as part of an MRes, and I have readdraft-sheffer-tls-pqc-continuity-02 in full. Four comments on theclient-side cache rules. All four are filed on the draft's tracker withthe detail and the suggested text. I am summarising them here for therecord, rather than starting four threads.
1. Resumption is not addressed. [1]
Enforcement is anchored entirely on the server Certificate message(S3.2: "apply its PQC policy to every CertificateEntry in theserver's Certificate message"). Per RFC 8446 S4.4.2 the server sendsCertificate for every key exchange method "except PSK", and S2.2 saysdirectly that on resumption the server "does not send a Certificateor a CertificateVerify message". So on a resumed handshake thatobligation applies to an empty set. It is satisfied with nothing tocheck, the MUST-abort cannot fire, and the commitment is neverconsulted. Confirmed on OpenSSL 3.6.2 with a genuine ML-DSA-65 chain:the resumed handshake completed (Reused, TLSv1.3) with 0 Certificateand 0 CertificateVerify messages. The draft has no occurrence ofresumption, PSK, ticket or 0-RTT.
RFC 8672 S2, covering the same TLS-layer pinning pattern, handledthis explicitly: "As a result, PSK handshakes MUST NOT include theextension defined here." That reasoning rested on the misissuancethreat model and does not carry over unchanged to the undisclosedCRQC attacker of S1, but it is a ready precedent. Exploitation isbounded by the 7-day ticket cap in RFC 8446 S4.6.1. This is not aharvest-now, decrypt-later attack and I am not claiming it is. Thespecification gap stands on its own, independent of any attacker.
2. The withdrawal path lacks the condition its own rule 1 has. [2]
S3.6 rule 1 conditions caching on "after the handshake completessuccessfully". Rule 2 conditions clearing only on receiving theextension. The suggested fix is one clause, copied from rule 1.
Two things to be clear about. First, the condition is not new:RFC 6797 S8.1 has gated all HSTS state change, including themax-age=0 removal, on a clean secure transport since 2012, andRFC 7469 S2.3.1 does the same for pin deletion. Since S1 says thisextension is modelled on HSTS, the honest description is that thenormative text did not restate a condition the stated model alreadyhas. Second, the reference implementation already does the rightthing: it defers both the cache update and the cache delete toSSL_CB_HANDSHAKE_DONE behind an X509_V_OK check, and says why in asource comment. So there is no exploitable instance that I know of.My concern is only that none of that appears in the normative text,and a second implementer reading rule 2 literally would be conformantwithout it. S4 of the draft already says the intended thingnon-normatively ("until they observe zero on a completed handshake"),which is why I think this is editorial rather than a design change.
3. A question about the port in the cache key. [3]
S3.4 keys entries by (RFC 9525 identity, port, TLS/DTLS) and saysentries differing in any of these MUST NOT be merged, while theserver's obligation in S3.7 carries no port qualifier and thereference identity is port-independent. So the client enforcessomething narrower than the server has committed to. I am askingrather than asserting: I do not think this is a bypass, since underS3.4 no commitment is in force for the key that gets used, but I alsodo not think it is the trust-on-first-use case S5.1 documents, sinceS5.1's own justification depends on the client eventually connectingdirectly, which never happens for a port it never uses. Related: S1invokes HSTS, but RFC 6797 S8.3 says "the HSTS Policy applies to HTTPover any TCP port of an HSTS Host", so the scoping differs from thenamed model. That may be deliberate for DTLS and non-web use. If soit would be worth saying.
Martin's IETF-126 comments on this cache key not working forbrowsers, and on non-uniform multi-CDN deployment, are in the samearea. I am not claiming new ground there, only asking about the portdimension specifically.
4. "The port" is not defined. [4]
S3.4 does not say whether "the port" is the authority port from theURI or the TCP port actually connected to. These differ under anHTTPS RR carrying a port SvcParam, where per RFC 9460 S9.1 the origindoes not change. The two readings give opposite answers about whethera cached commitment applies, and that decides whether the scopequestion in (3) is reachable at all. Two sentences would fix it.
None of this touches issue #23. I have Tamarin models behind (1) and(2) and am happy to share them, with the caveat that they are models ofthe S3.2, S3.5 and S3.6 client state machine, not security proofs ofTLS 1.3. The OpenSSL result behind (1) is the stronger evidence.
Thanks for the draft. Rule 3 of S3.6 and the S4 text made the first twoof these much easier to pin down than they would otherwise have been.
Nazmus Salehin SammoMelbourne Institute of Technology, Melbourne, AustraliaStudent ID: MIT252100
[1] https://github.com/yaronf/draft-sheffer-tls-pqc-continuity/issues/29" rel="nofollow">https://github.com/yaronf/draft-sheffer-tls-pqc-continuity/issues/29[2] https://github.com/yaronf/draft-sheffer-tls-pqc-continuity/issues/27" rel="nofollow">https://github.com/yaronf/draft-sheffer-tls-pqc-continuity/issues/27[3] https://github.com/yaronf/draft-sheffer-tls-pqc-continuity/issues/28" rel="nofollow">https://github.com/yaronf/draft-sheffer-tls-pqc-continuity/issues/28[4] https://github.com/yaronf/draft-sheffer-tls-pqc-continuity/issues/26" class="moz-txt-link-freetext" rel="nofollow"> https://github.com/yaronf/draft-sheffer-tls-pqc-continuity/issues/26
_______________________________________________ TLS mailing list -- tls@ietf.org To unsubscribe send an email to tls-leave@ietf.org
- [TLS] draft-sheffer-tls-pqc-continuity-02: four c… Nazmus Salehin Sammo
- [TLS] Re: draft-sheffer-tls-pqc-continuity-02: fo… Yaron Sheffer