Re: [tcpm] draft-ietf-tcpm-tcpsecure-00.txt

Mitesh Dalal <mdalal@cisco.com> Tue, 04 May 2004 18:52 UTC

Received: from optimus.ietf.org (iesg.org [132.151.1.19]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA20539 for <tcpm-archive@odin.ietf.org>; Tue, 4 May 2004 14:52:33 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BL50G-0005Li-3A for tcpm-archive@odin.ietf.org; Tue, 04 May 2004 14:50:54 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id i44Ioqjr020558 for tcpm-archive@odin.ietf.org; Tue, 4 May 2004 14:50:52 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BL4rj-0002wl-ET for tcpm-web-archive@optimus.ietf.org; Tue, 04 May 2004 14:42:03 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA19621 for <tcpm-web-archive@ietf.org>; Tue, 4 May 2004 14:42:00 -0400 (EDT)
Received: from ietf-mx.ietf.org ([132.151.6.1] helo=ietf-mx) by ietf-mx with esmtp (Exim 4.32) id 1BL4rg-0006Wt-PV for tcpm-web-archive@ietf.org; Tue, 04 May 2004 14:42:00 -0400
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1BL4qn-0006Oy-00 for tcpm-web-archive@ietf.org; Tue, 04 May 2004 14:41:06 -0400
Received: from optimus.ietf.org ([132.151.1.19]) by ietf-mx with esmtp (Exim 4.12) id 1BL4ph-0006GY-00 for tcpm-web-archive@ietf.org; Tue, 04 May 2004 14:39:57 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BL4lu-0001Be-5E; Tue, 04 May 2004 14:36:02 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BL4dG-0006wl-Ij for tcpm@optimus.ietf.org; Tue, 04 May 2004 14:27:06 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA18046 for <tcpm@ietf.org>; Tue, 4 May 2004 14:27:03 -0400 (EDT)
Received: from ietf-mx.ietf.org ([132.151.6.1] helo=ietf-mx) by ietf-mx with esmtp (Exim 4.32) id 1BL4dE-0004Vh-0L for tcpm@ietf.org; Tue, 04 May 2004 14:27:04 -0400
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1BL4cE-0004N4-00 for tcpm@ietf.org; Tue, 04 May 2004 14:26:03 -0400
Received: from sj-iport-3-in.cisco.com ([171.71.176.72] helo=sj-iport-3.cisco.com) by ietf-mx with esmtp (Exim 4.12) id 1BL4bV-0004E7-00 for tcpm@ietf.org; Tue, 04 May 2004 14:25:17 -0400
Received: from sj-core-5.cisco.com (171.71.177.238) by sj-iport-3.cisco.com with ESMTP; 04 May 2004 10:39:06 +0000
Received: from mira-sjc5-b.cisco.com (IDENT:mirapoint@mira-sjc5-b.cisco.com [171.71.163.14]) by sj-core-5.cisco.com (8.12.10/8.12.6) with ESMTP id i44IOjW9009792; Tue, 4 May 2004 11:24:45 -0700 (PDT)
Received: from mdalal-u10.cisco.com (mdalal-u10.cisco.com [128.107.162.178]) by mira-sjc5-b.cisco.com (MOS 3.4.5-GR) with ESMTP id ASW60919; Tue, 4 May 2004 11:23:57 -0700 (PDT)
Date: Tue, 04 May 2004 11:24:43 -0700
From: Mitesh Dalal <mdalal@cisco.com>
To: Mark Allman <mallman@icir.org>
cc: Kacheong Poon <kacheong.poon@sun.com>, tcpm@ietf.org
Subject: Re: [tcpm] draft-ietf-tcpm-tcpsecure-00.txt
In-Reply-To: <20040504161038.52F2577A71D@guns.icir.org>
Message-ID: <Pine.GSO.4.58.0405041119160.19385@mdalal-u10.cisco.com>
References: <20040504161038.52F2577A71D@guns.icir.org>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Sender: tcpm-admin@ietf.org
Errors-To: tcpm-admin@ietf.org
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on ietf-mx.ietf.org
X-Spam-Status: No, hits=0.0 required=5.0 tests=AWL autolearn=no version=2.60


On Tue, 4 May 2004, Mark Allman wrote:

>
> > I don't agree that the current proposal uses the "behavior
> > described in 793" for protection.  Responding to a RST is
> > not a correct behavior.  It is very clear in RFC 793 what
> > a RST means.  A stack can ignore the RST (pretend that the
> > RST is dropped elsewhere (-:), but responding to it is bad.
> > I think any proposal suggesting a response to a RST is not
> > acceptable to a host vendor.
>
> I agree that the proposed scheme is not rfc793 conformant.  But, I don't
> see how the last sentence above follows from the previous few.  We can
> evolve and change.  RFC793 has been and will continue to be updated.
> (I'm not arguing that the proposed change is The Way To Go, just trying
> to understand your argument.)

Here are few of my thoughts to the above discussion:

There are 2 main aspects of our solution that needs justification
as to how they may fit into the existing spec.

1. Only an exact match RST is acceptable.
(as opposed to a RST within window)

2. Sending an ACK for an in-window RST
(as opposed to aborting the connection).

The case 1 above is easy to see. An RST is unreliable and can be
dropped in the network. Hence if we drop a RST that was in window
but not an exact match, we can safely assume that it was never send.
No harm done. I believe Kacheong and others have already figured this out.

Now case 2 above:

Here is a scenario which can readily happen with base spec.  A and
B are peers in ESTAB state.  B is sendind data to A.  data 2 gets
dropped.  B has a critical failure, decides to send a RST.  sequence
number 4 is within window of A.  A sends ACKs; which are in flight
relative to RST 4, for data 1 and 3 (hence I have shown the RST
to reach A after the ACK has been sent out).  But as far as B (and the
imaginary middlebox) is concerned, it appeared later in time wrt to
RST and may have actually be triggered by the RST itself.  B has no
way of knowing this. It will ultimately send an RST with a sequence
number that was borrowed from the ACK. So, if this scenario cannot be
successfully handled by middleboxes and endhosts, it may not be able
to handle our changes as well. The point I am trying to emphasize is
sending an ACK looks totally benign and is still looks like a plausible
scenario within the semantics of the base spec.

A				  B
|<----1---2-----3--------<--------|
|				  |
|               <--RST--4---------|
|---------> ACK 1-------->	  |
|---------> ACK 1 (for 3)	  |
|<---RST-4---			  |
|				  |
| <--RST-1------------------------|


similarly for the SYN part, ACKs from A to B maybe in flight, when
a SYN lands up at A. Middleboxes and endhost have no way of knowing
if the ACK was send after the SYN was received at A or otherwise and
given the liberal principle, they will still need to act on it based
on the guidelines laid down in 793.
Further, I even hypothesize that the middleboxes on receiving the
SYN, will actually send a RST to the inside endhost and not
simply forward the SYN and hence converting the SYN scenario to
a RST scenario. If there are no middleboxes, our fix is even more
cleaner (except for the very rare scenario where the SYN carries
an ISN that matches our rcv.nxt-1)

The above logic can be extrapolated if we put in a middlebox.
Difference will be seen based on where the RST gets dropped, between
the middlebox and B or between the middlebox and A. But since both
of them have equal probability of happening, we can safely disregard
the details.

Thanks
Mitesh


_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://www1.ietf.org/mailman/listinfo/tcpm