[TLS] Re: 【Reply to the comments after the presentation in Montreal】RE: Re: FW: New Version Notification for draft-wang-tls-service-affinity-00.txt

Eric Rescorla <ekr@rtfm.com> Sun, 04 January 2026 14:38 UTC

Return-Path: <ekr@rtfm.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 D9FF1A27A584 for <tls@mail2.ietf.org>; Sun, 4 Jan 2026 06:38:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20230601.gappssmtp.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 Bsh3qqPfWjLD for <tls@mail2.ietf.org>; Sun, 4 Jan 2026 06:38:54 -0800 (PST)
Received: from mail-yx1-xb134.google.com (mail-yx1-xb134.google.com [IPv6:2607:f8b0:4864:20::b134]) (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 A732EA27A579 for <tls@ietf.org>; Sun, 4 Jan 2026 06:38:54 -0800 (PST)
Received: by mail-yx1-xb134.google.com with SMTP id 956f58d0204a3-64476c85854so11641871d50.0 for <tls@ietf.org>; Sun, 04 Jan 2026 06:38:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20230601.gappssmtp.com; s=20230601; t=1767537534; x=1768142334; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Iu1pzjX0+yjR6lYOrejogjpTLQORcg/Ux0/rYi9CDwA=; b=BGIgl0I5/R05a1Hml1cDd1pPJ929ADdBqFuT6YvUhR9hFN1fV6nbesj9YN/NrPynV5 kaC7Oo/gLUhMLRZ3laD39C4nrBAlOkqytksqsbYH/p6R+C8Pjc+ExYkam7Gu+sZmTBTe GZ/1mg6991jCpqF0Nl15+PMUuBlHZj5V4gbtCjTvfcFz6R/yoMteluGBTyqMMYglldCQ hN+3G7NR+xSZbNG2YgSN7TPzbjah7A9S9sXQyfq7uacKC5v0zad7ihyJCN8THEff/WrV Lz91iC0IjiKNNt6ZxlfmZC/jvi/8Dr9CjiKooYuPF7Mt8p/nWfUau8es4QUqE6ZZGzBP 6B+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767537534; x=1768142334; h=cc: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; bh=Iu1pzjX0+yjR6lYOrejogjpTLQORcg/Ux0/rYi9CDwA=; b=DNsmtDPvXLpWcoS2XjnXF5vbxH9YtW9xBhfOaN10LBR8gWbeNrPNXDLGbWbQKnhCYk XBSdtLvoSl2pRREUhJFGZVg0qtL3cGsnkcDkA6Myq0g9l1HS4K3d8G0WDVPKshIpzAoh CYazQru1La9JqPpU4p+U6d0YIpSyHZi7/K07LSh19qTMigiC8yT7dLbzGX++XpIWpGz8 506OU6AU+WQw9kCgAQCzyuSHaY5VOrc4UQ28gq0JpdfDD1gih1rakndAaAlPoswgzuPl HWSTz/YKMSI/UETfuRsKYE+6SiRnh+t4lrAqprXobv03ph5kQvGeo6YT75xV0zCkoMkn g2Dg==
X-Gm-Message-State: AOJu0Yyn1T9FQZFw1BUG8EV5PniymbD+VFMMCAiG/bi1gAdRou6r5APq 45jn7M/8ccbbgepqiffIzb7d0ripCDDa5dyCiF0CmF+SslfS1ClKKbirtsy+4qC/dBRPpGtuUSv TPSmNrGtB2P49SEYWif22oJ2VFsPdaIMo1mlrIqhDjCuVVzp/xWvv
X-Gm-Gg: AY/fxX5pNhKFujcVSrnQhwUyOSQ3BRyQoAw4evVGlRhFhrLodo6FgLsZxm0RsrXYCax cJgSYDKYk42n5ETcBB9EyK6RpUB1f+qHuo68GVTIpxUr8SnG9CpOer3F1BS1MblR83U8kdhbx8W y1XZlD1PupAHEtvd3acMRsC+/Pg1KFdcJ4ATRtNpVJ7gBqTn0RzLJ17Vz/HAkB8cU1bK4TFyo1E 0gB9TFkdgqAqF7IeQSXhn+Nt0QilnnWb1uZcIIXsGvB4Gkglf/ADcm4fsUtNAVFESJxKD0Rtkom d7MnVuAuxqnyaSmDaoEh476oAtf3cTv0CWg6dNeMUNAbMkHbLslqdH5ioziLauYvtn7aFtoeXzz JwHAYFdEXfw==
X-Google-Smtp-Source: AGHT+IFRz630CDdooHiW7NutWb4QnLJleUlLJQyHvW2WNeZs5DgbYwsEub5dOeGN2j6CZuKqfXdqCSxREqZRYd55pAM=
X-Received: by 2002:a05:690c:9a0a:b0:78e:6176:2c92 with SMTP id 00721157ae682-78fb3f4a557mr840832917b3.21.1767537533870; Sun, 04 Jan 2026 06:38:53 -0800 (PST)
MIME-Version: 1.0
References: <000001dc7615$cf415b70$6dc41250$@tsinghua.org.cn> <CABcZeBM=59id8msEU2i=qQXiwNKZnHTBAJ85zmEKD8USQF5z_w@mail.gmail.com> <004e01dc7974$957ebab0$c07c3010$@tsinghua.org.cn> <CABcZeBPgw0Fsz0QyD6T2Q8CoZcWbXQS_ptoTqNfbBGydawdVRw@mail.gmail.com> <011601dc7d1b$57b5bf30$07213d90$@tsinghua.org.cn> <CABcZeBMZUe4KuokvccxPGr7SjKhca8aFZcsNTH++A+G9V-94Mw@mail.gmail.com> <015f01dc7d5c$65c56210$31502630$@tsinghua.org.cn>
In-Reply-To: <015f01dc7d5c$65c56210$31502630$@tsinghua.org.cn>
From: Eric Rescorla <ekr@rtfm.com>
Date: Sun, 04 Jan 2026 06:38:17 -0800
X-Gm-Features: AQt7F2rZPvteuxT4sx4RxH4u1AJRHRQ-y1Ks5yBNWkBo3iHTScRctSGRkTjZfzk
Message-ID: <CABcZeBMSBd9mRRcjJ5ci+6bkDne-bbfnsGMG_N+=jOY3Y5buxA@mail.gmail.com>
To: Aijun Wang <wangaijun@tsinghua.org.cn>
Content-Type: multipart/alternative; boundary="000000000000d5707d064790e6a1"
Message-ID-Hash: S3VTR3P6IXQ535TT5EQ2OYOFIIT2NVNF
X-Message-ID-Hash: S3VTR3P6IXQ535TT5EQ2OYOFIIT2NVNF
X-MailFrom: ekr@rtfm.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tls.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: tls@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [TLS] Re: 【Reply to the comments after the presentation in Montreal】RE: Re: FW: New Version Notification for draft-wang-tls-service-affinity-00.txt
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/t5prYjsVRP4KK-L58Ux1sWFvO-s>
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>

On Sun, Jan 4, 2026 at 1:27 AM Aijun Wang <wangaijun@tsinghua.org.cn> wrote:

>                                      Server
>
>        <------------------ First TCP/TLS Connection ---------------->
>        POST /make-payment (1/2) ---\ /---------------- Switch servers
>                        X
>         <---------------------------/ \------------------------------>
>         [Buffer /make-payment (2/2)]
>         <--------------------------------------------------------  ACK
>
>         <-------------------- New TCP/TLS Connection ---------------->
>
>
>
> [If in application layer, the client side doesn’t receive the response
> from make-payment, it needs to send again make-payment(1) and also the
> make-payment(2)]
>
> /make-payment (1/2)-----------------------------------------à
>

You had said earlier that the TLS stack should also be buffering and
re-sending `make-payment(1/2)`. Is that still your view?

-Ekr


> ==========================================================
>
>
>
>
>
> *From:* forwardingalgorithm@ietf.org [mailto:forwardingalgorithm@ietf.org]
> *On Behalf Of *Eric Rescorla
> *Sent:* Sunday, January 4, 2026 10:12 AM
> *To:* Aijun Wang <wangaijun@tsinghua.org.cn>
> *Cc:* tls@ietf.org
> *Subject:* [TLS] Re: 【Reply to the comments after the presentation in
> Montreal】RE: Re: FW: New Version Notification for
> draft-wang-tls-service-affinity-00.txt
>
>
>
>
>
>
>
> On Sat, Jan 3, 2026 at 5:42 PM Aijun Wang <wangaijun@tsinghua.org.cn>
> wrote:
>
> Hi, Eric:
>
>
>
> What we want to is similar with “Resumption and Pre-Shared Key(PSK)” that
> is described in https://datatracker.ietf.org/doc/html/rfc8446#section-2.2
>
> From this section, we can know the application layer will not aware such
> session resumption, TLS layer handles all the procedure. Right?
>
>
>
> Not necessarily. The TLS specification takes no position on when (1)
> clients should attempt resumption and (2) servers should allow it.
>
>
>
>
>
> What you described in previous examples can all happen in the resumption
> process, and the application layer should have their own additional
> confirmation/retry logic.
>
>
>
> I'm not sure that's in fact true. The purpose of the examples was to
> explore that, which is why I asked you to provide your own ladder diagrams
> showing how you thought this worked. Again, can you please do that?
>
>
>
>
>
> For the mentioned draft(
> https://datatracker.ietf.org/doc/draft-wang-tls-service-affinity/) the
> additional exchange signals are to transfer the new server address securely
> after the initial connection.
>
> What’s the client and server need do is to correlate the corresponding
> cryptographic context to the new underlying TCP connection.
>
>
>
> Do you have any suggestions to make the above intension more clearly in
> https://datatracker.ietf.org/doc/draft-wang-tls-service-affinity/?
>
>
>
> As I said, I think this is the wrong design, so my suggestion is you don't
> do it.
>
>
>
> To the extent to which you are trying to make the case otherwise, you
> really need to show your work, which this message does not do.
>
>
>
> -Ekr
>
>
>
>
>
>
>
>
>
> *From:* forwardingalgorithm@ietf.org [mailto:forwardingalgorithm@ietf.org]
> *On Behalf Of *【外部账号】 Eric Rescorla
> *Sent:* Tuesday, December 30, 2025 10:41 PM
> *To:* Aijun Wang <wangaijun@tsinghua.org.cn>
> *Cc:* tls@ietf.org; draft-wang-tls-service-affinity@ietf.org; Mohit Sahni
> <msahni@paloaltonetworks.com>; Aijun Wang <wangaj3@chinatelecom.cn>
> *Subject:* Re: [TLS] Re: 【Reply to the comments after the presentation in
> Montreal】RE: Re: FW: New Version Notification for
> draft-wang-tls-service-affinity-00.txt
>
>
>
>
>
>
>
> On Tue, Dec 30, 2025 at 2:10 AM Aijun Wang <wangaijun@tsinghua.org.cn>
> wrote:
>
> Hi, Eric:
>
>
>
> Contrary to your conclusions, I think the application layer and TLS/TCP
> layer should(already) have their own mechanisms to assure the data
> integrity,
>
>
>
> Yes, which might or might not work correctly, because they are rarely
> tested.
>
>
>
> there is no necessary to consider them again at the protocol layer, we
> need just some guidance for the implementation of client/server sides
> themselves.
>
> If there is data arrival during the switchover, the internal
> implementation logic is the application layer will call the api of TLS/TCP
> to send some data, with the same session identifier.
>
>
>
> I don't know what you mean by "The same session identifier". There is no
> concept in TLS that two different TCP connections are somehow the same
> conceptual flow of data. PSK identifiers solely identify keys.
>
>
>
>
>
>
> In this case, the client doesn't know what has happened. You need
> mechanisms either at the HTTP layer--or more typically at the REST API
> layer--to do the right thing, which might be an idempotency layer
> combined with client-side retransmit.  This is all just a
> straightforward application of the end-to-end argument, and there's no
> real way around it as long as systems might asynchronously fail, but
> it's also a source of defects (think about how many times sites tell
> you not to press the submit button twice) because these mechanisms may
> not have been exercised or tested. For instance, if the server is high
> reliability and the client just assumes that anything it sent works,
> that will be good enough a very large fraction of the time, but not if
> the server has a high failure rate.
>
>
>
> [WAJ] From the example, we can know each application has its own
> confirmation mechanism, because most of them are asynchronous.
>
> The application knows there will be possibilities that the server crash,
> or the underlay connection broken.
>
>
>
> Yes. I said exactly this, but again, they're not always going to be
>
> implemented correctly, and that's largely OK because most
>
> connections don't fail. You're talking about making an exceptional
>
> condition routine.
>
>
>
>
>
> Unfortunately, these transaction semantics only exist at the HTTP
> layer, not the TLS layer, so the TLS layer has no way of knowing to
> wait for the 200 OK, it just knows that the client sent some data, but
> not whether that reflects an outstanding request or something else;
> recall that TLS doesn't even know about the HTTP request/response
> semantics, because it's just a dumb pipe.
>
> [WAJ] TLS needn’t aware the 200 OK signal, it is the job of application
> layer.
>
> TLS/TCP needs only transmit the data from the application layer correctly
> to other side.
>
>
>
> So you're saying that in the example above, the TLS layer ought to inform
>
> the HTTP layer that the connection has failed and trust the HTTP layer
>
> to retry in a safe fashion?
>
>
>
>
>
> In your email, you suggest that the client ought to:
>
> 1. Wait for the server's TCP ACK of all transmitted data, with the
> implied semantics being that once the message is ACKed it will be
> reliably delivered to the server, not just to the TCP stack.
>
> [WAJ] No. I emphasize only the TCP ACK and the TCP stack. Not the
> application stack. That is to say, receiving the TCP ACK doesn’t
> represent the application layer ACK.
>
>
> 2. Buffer any data it receives form the cleint while waiting for the
> ACK and retransmit it on the new connections.
>
> [WAJ] Buffer any data it receives, but can’t transmit immediately during
> the switchover process, not waiting for the application ACK.
>
>
>
> I don't understand what you're saying here. Can you please provide:
>
>
>
> 1. A concrete description of what you believe the rules that the
>
> TLS stack should be following.
>
> 2. New versions of my ladder diagrams that show what you believe the
> correct
>
> behavior is.
>
>
>
> -Ekr
>
>
>
>