[tcpm] Re: I-D Action: draft-ietf-tcpm-tcp-ghost-acks-06.txt
"yepeng.pan" <yepeng.pan@cispa.de> Thu, 02 July 2026 15:46 UTC
Return-Path: <yepeng.pan@cispa.de>
X-Original-To: tcpm@mail2.ietf.org
Delivered-To: tcpm@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 7210F10CB020B for <tcpm@mail2.ietf.org>; Thu, 2 Jul 2026 08:46:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783007191; bh=jKSZhHKyLL6liL3PGJhnE3MkmAx5cKXFf+uZykeoftQ=; h=Date:Subject:To:CC:References:From:In-Reply-To; b=gWPKCVc9v2qJcTUm75iT3snhydCnA/jasCCi8EdW2Pg7rWN3+0IGWmauL46T9goK8 64bk9j350lIX2VsV77EWSOm4nn13uSzBFEXyzXj5W0mRpj+WL28wn7ciSrsSdG4ciF mnCxD49+ujZuzfx0cgrX06+HCCMaq+pV3gEFMRx8=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -4.395
X-Spam-Level:
X-Spam-Status: No, score=-4.395 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_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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 (2048-bit key) header.d=cispa.de
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 U8cQ-4Zcjm_c for <tcpm@mail2.ietf.org>; Thu, 2 Jul 2026 08:46:30 -0700 (PDT)
Received: from mx-2023-1.gwdg.de (mx-2023-1.gwdg.de [134.76.10.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 6E59910CAFE54 for <tcpm@ietf.org>; Thu, 2 Jul 2026 08:45:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=cispa.de; s=2023-rsa; h=In-Reply-To:From:References:CC:To:Subject:MIME-Version:Date: Message-ID:Content-Type:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=3xt+pdcPGcC/jedDb6h4LSvSEkviLUS45UfW3D9fN34=; b=Pj7x/DjVI5LmKxx0f6NArUSkcq jx4BeTuH0l+gx6fD2MmRwDp13lIxcZvIDoxK8K6ou8FsqrDTfq58i5KDMgjHdUdXcjQQNSH/UQ/JD L89jyHu223XWH7Ppz1zOc42zeTOQg3tGY6ka5eJ7Xft5mSwU17yDN0BTnPkWSu6gysa+LAUetCN1S Wy6bFoOt5XVRJCgVAp7W2Zv0EnukNjeGR4Ngqy09pUkqQ4JyXJOnBrsoG+u5f7vABIP23KC+Bpyg6 qtXrxfZnI0yfL9pVc7J/t21DNAW1Nu4aDUh5U5UrcWgNk0nYnITgKsQiqPp7B/DHSnDBuomfBn+EH qqQkfL7g==;
Received: from mailer.gwdg.de ([134.76.10.26]:50841) by mailer.gwdg.de with esmtp (GWDG Mailer) (envelope-from <yepeng.pan@cispa.de>) id 1wfJay-0059A8-29; Thu, 02 Jul 2026 17:44:56 +0200
Received: from mbx19-gwd-08.um.gwdg.de ([10.108.142.61] helo=email.gwdg.de) by mailer.gwdg.de with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (GWDG Mailer) (envelope-from <yepeng.pan@cispa.de>) id 1wfJay-000A5Y-1y; Thu, 02 Jul 2026 17:44:56 +0200
Received: from [192.168.178.68] (10.250.9.200) by MBX19-GWD-08.um.gwdg.de (10.108.142.61) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.43; Thu, 2 Jul 2026 17:44:56 +0200
Content-Type: multipart/alternative; boundary="------------0O70HeR00pN6bV7Qt4HZevn4"
Message-ID: <ec20440d-2a81-4424-8f10-4bd066e27030@cispa.de>
Date: Thu, 02 Jul 2026 17:44:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Michael Tuexen <michael.tuexen@lurchi.franken.de>, Yoshifumi Nishida <nsd.ietf@gmail.com>
References: <178117962003.265229.294235247641884940@dt-datatracker-56f887f959-hdgj4> <CAAK044STmO4eeEBZ4q9aYD+PsMxQP0HWVuFnUovr44P-VinP8Q@mail.gmail.com> <73F38D66-ACFE-4D4A-B3A4-8D98D1D4D9E2@lurchi.franken.de> <CAAK044Rs66WScHMF2z8C8fbr1Xf9SvCgHLwc3xWyJXKdMFgS+Q@mail.gmail.com> <B2930D44-006B-47C2-9794-142D4F5C6589@lurchi.franken.de>
From: "yepeng.pan" <yepeng.pan@cispa.de>
Autocrypt: addr=yepeng.pan@cispa.de; keydata= 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 0YemZ6i4H+0zvyJPVxqkmcA=
In-Reply-To: <B2930D44-006B-47C2-9794-142D4F5C6589@lurchi.franken.de>
X-Originating-IP: [10.250.9.200]
X-ClientProxiedBy: MBX19-SUB-06.um.gwdg.de (10.108.142.71) To MBX19-GWD-08.um.gwdg.de (10.108.142.61)
X-Virus-Scanned: (clean) by clamav
Message-ID-Hash: YOMHLXDJZ3TGMQHOY342KPD6F2AHATXK
X-Message-ID-Hash: YOMHLXDJZ3TGMQHOY342KPD6F2AHATXK
X-MailFrom: yepeng.pan@cispa.de
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tcpm.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: tcpm@ietf.org, Christian Rossow <rossow@cispa.de>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [tcpm] Re: I-D Action: draft-ietf-tcpm-tcp-ghost-acks-06.txt
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/EeMUL7hgove4pYfDjxzmd6N4uVk>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Owner: <mailto:tcpm-owner@ietf.org>
List-Post: <mailto:tcpm@ietf.org>
List-Subscribe: <mailto:tcpm-join@ietf.org>
List-Unsubscribe: <mailto:tcpm-leave@ietf.org>
Hi All, I just read the current 07 draft once more. It feels the current section 3 could be merged into section 2 and would also provide better transition; For example: > 2. Ghost ACKs: ... As a concrete example, consider a newly established TCP connection without data transferred during the handshake. There is|SND.UNA == SND.NXT == ISS + 1|.In this case, any segments with|SEG.ACK < SND.UNA|acknowledges bytes that the endpoint has never sent, but they are still considered acceptable since they satisfy the above|SEG.ACK|validation condition. Ghost ACKs thus ease blind payload injection attacks, particularly for newly established TCP connections and potentially spoofed TCP connections. and then section 3 can be removed. Best regards Yepeng Pan On 7/2/2026 12:04 PM, Michael Tuexen wrote: >> On 2. Jul 2026, at 03:46, Yoshifumi Nishida<nsd.ietf@gmail.com> wrote: >> >> Hi Michael, >> >> Thanks for the reply. I put my comments in lines. >> >> On Mon, Jun 29, 2026 at 11:29 AM Michael Tuexen<michael.tuexen@lurchi.franken.de> wrote: >> >>> 2: Section 4.1 >>> TCP stacks that implement this mitigation SHOULD add the additional boolean >>> state variable NO_ISS_CHECK for each established connection. This variable >>> SHOULD be initialized to false. At the beginning of the SEG.ACK validation, >>> it SHOULD be checked if the ISS is still needed: >>> >>> Should we use MUST instead of SHOULD if we don't have other choice? >> The code was using a mixture of SHOULD and MUST. I think needs to be >> consistent. I suggested SHOULD, since, for example, the FreeBSD implementation >> does not use a boolean variable, but a flag on the TCPCB. I guess this is >> covered by a SHOULD, but not by a MUST. >> >> OK. If there are other ways, I'm fine with SHOULD. >> > Also, I'm wondering if we need the last sentence with RFC2119 word. >>> Something like the following might be enough? >>> >>> This variable SHOULD be initialized to false in order to check if ISS check is needed >> There are two things here: >> 1. How NO_ISS_CHECK is initialized. This happens when the endpoint is created. >> 2. At the beginning of the SEG.ACK validation it should be check if the ISS based check >> is needed. This happens every time an incoming TCP segment is processed. >> So I think keeping the two things in separate sentences is a good thing. They happen >> at different times. Therefore, both should use RFC 2119 terminology. >> I agree, the wording of the last sentence can be improved. What about: >> >> At the beginning of the <tt>SEG.ACK</tt> validation, it <bcp14>SHOULD</bcp14> >> be determined if the <tt>ISS</tt>-based check is still needed:</t> >> >> Yes, works for me. >> >>> 4: Section 4.2 >>> A local variable ACK.MIN SHOULD be computed, which is used to validate the SEG.ACK. >>> >>> SHOULD -> MUST? if there is no other choice >> See above. Here, you could avoid using the local variable, but compute its value >> whenever needed. Covered by a SHOULD, but not by a MUST. >> >> OK. >> >>> 5: Section 4.2 >>> An implementation has to deal with tcpEStatsAppHCThruOctetsAcked overflows. >>> >>> This may look a bit ambiguous guidance. How about something like this? >>> >>> An implementation MAY handle tcpEStatsAppHCThruOctetsAcked overflow. >> What about SHOULD? As far as I know, Linux does not handle it... >> >> SHOULD is also fine for me. > Great. All your comments have been addressed in revision 07. > > Best regards > Michael >> -- >> Yoshi >> _______________________________________________ >> tcpm mailing list --tcpm@ietf.org >> To unsubscribe send an email totcpm-leave@ietf.org
- [tcpm] I-D Action: draft-ietf-tcpm-tcp-ghost-acks… internet-drafts
- [tcpm] Re: I-D Action: draft-ietf-tcpm-tcp-ghost-… Yoshifumi Nishida
- [tcpm] Re: I-D Action: draft-ietf-tcpm-tcp-ghost-… Yoshifumi Nishida
- [tcpm] Re: I-D Action: draft-ietf-tcpm-tcp-ghost-… Michael Tuexen
- [tcpm] Re: I-D Action: draft-ietf-tcpm-tcp-ghost-… Yoshifumi Nishida
- [tcpm] Re: I-D Action: draft-ietf-tcpm-tcp-ghost-… Michael Tuexen
- [tcpm] Re: I-D Action: draft-ietf-tcpm-tcp-ghost-… Michael Tuexen
- [tcpm] Re: I-D Action: draft-ietf-tcpm-tcp-ghost-… yepeng.pan