Re: [tcpm] draft-gont-tcp-security
Joe Touch <touch@ISI.EDU> Mon, 13 April 2009 21:02 UTC
Return-Path: <touch@ISI.EDU>
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 799AC28C13E; Mon, 13 Apr 2009 14:02:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.399
X-Spam-Level:
X-Spam-Status: No, score=-2.399 tagged_above=-999 required=5 tests=[AWL=-0.115, BAYES_00=-2.599, SARE_MILLIONSOF=0.315]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id afWbtLTLw9qT; Mon, 13 Apr 2009 14:02:58 -0700 (PDT)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) by core3.amsl.com (Postfix) with ESMTP id 127CC3A67A4; Mon, 13 Apr 2009 14:02:40 -0700 (PDT)
Received: from [75.215.162.89] (89.sub-75-215-162.myvzw.com [75.215.162.89]) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id n3DL2Hgg027815; Mon, 13 Apr 2009 14:02:19 -0700 (PDT)
Message-ID: <49E3A856.9020703@isi.edu>
Date: Mon, 13 Apr 2009 14:02:14 -0700
From: Joe Touch <touch@ISI.EDU>
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
MIME-Version: 1.0
To: Fernando Gont <fernando@gont.com.ar>
References: <C304DB494AC0C04C87C6A6E2FF5603DB221318F5E8@NDJSSCC01.ndc.nasa.gov> <49E36AB9.40507@isi.edu> <49E384E9.1050106@gont.com.ar> <49E3878C.9080200@isi.edu> <49E39119.1060902@gont.com.ar>
In-Reply-To: <49E39119.1060902@gont.com.ar>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: Joel Jaeggli <joelja@bogus.com>, "tcpm@ietf.org" <tcpm@ietf.org>, ietf@ietf.org, Joe Abley <jabley@ca.afilias.info>, opsec@ietf.org
Subject: Re: [tcpm] draft-gont-tcp-security
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpm>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Apr 2009 21:02:59 -0000
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Fernando Gont wrote: > Joe Touch wrote: > >>> So we had tcp-secure in 2004, icmp-attacks in 2005, a claim for a >>> trivial attack in 2008 (Outpost24/CERT-FI), and we'll probably continue >>> in this line, because we do nothing about it. >> Whether we have this document or not, we will continue to have people >> who incorrectly assume that TCP is secure. > > That's correct. But we also have people that do know it is not mean to > be secure, but that it should be resilient enough so that it's still > usable. One way or another, most stacks implement counter-measures for > SYN-floods (on which tcpm did publish something), timers on the > FIN-WAIT-2 state, port randomization (on which tsvwg is working), ICP > ISN randomization, etc. > > The reason for which they did that was to improve TCP's security/resiliency. > > Would you argue in favour of predictable ISNs, predictable ports, > time-less FIN-WAIT-2 state, etc.? -- I hope you wouldn't. These measures can be used to reduce the impact of attacks when TCP is not secured. However, they DO NOT make TCP secure. They DO make TCP more brittle - they limit the way in which two legitimate endpoints can do legitimate things. >>>> It summarizes issues already raised by the WG, >>> I believe this statement is unfair with respect to our document. e.g., >>> has the issues described in Section 4.3, Section 9.2, or Section 10 been >>> brought to tcpm before??? >> I didn't say that's all it does ;-) Agreed that it raises other issues, >> many of which are operational. > > Many of which arise if you expect to use TCP in some other scenario that > just two computers in a LAN. If that makes those issues "operational", I > agree. Many of those don't arise for computers in a wide area, or with millions of other computers on the network either. They arise only when there are active attacks, and only for some kinds of attackers (on-path, off-path, high-speed access, etc.) IMO, any decision which would be enabled or disabled depending on whether security was a concern or performance was needed is operational. E.g., port randomization helps only when attackers are off-path and when port use is a fraction of the active port space. That's operational. Ditto for ISN randomization. I.e., if the protection is not needed in the absence of attacks, it may be operational. >>>> TCP itself is not a secure protocol, nor is it intended to be. >>> Yeah. But that does not mean that we should not do our best to improve >>> it. >> It means we should not try to give the incorrect impression that it >> *can* be secured. > > It's security/resiliency can be improved. After all, if that were not > the case, I guess you're wasting your time with TCP-AO. Or is it that > you believe the only way to improve a protocol is to throw crypto at it? I *know* that the only way to secure a protocol is to throw crypto at it. I also *know* that unexpected packets are *not* indications of attacks. These two things are not evident in this document, and should be. Further, this document should make a case as to whether the improvements are operational or not. AFAICT, most are operational. >> Interpreting every unexpected event as an attack makes >> a protocol robust but also brittle; TCP is intended to trade flexibility >> for security, AFAICT, because it is agnostic about intent, and gives the >> benefit of doubt at all times. > > I would prefer that instead of making this type of broad statement, you > would argue against a particular recommendation in > draft-gont-tcp-security, and explain how it makes TCP more brittle. Randomizing ports and ISNs assumes there is a window over which some values are NOT used; that window precludes legitimate exchanges from occurring. That is what I mean by "brittle." >> Consider packet drops. That can happen due to loss, non-malicious >> corruption, or jamming, e.g. In the last case, it makes sense to blast >> copies of packets in the hopes of getting something through, but that's >> NOT what we assume. > > Wasn't this very behavior what lead to the Internet congestion collapse > in the 80's, or am I missing something? Loss of a segment can mean: a) congestion (correlated drops) b) non-correlated drops (not related to increasing traffic) c) active removal (attack) If (a), then you backoff. That's how congestion collapse was addressed. If you believe that packet drops are caused by either non-correlated drops or active removal, you send MORE - you send copies of each packet, e.g. That is NOT what we assume, but what I presume you ought to recommend in a document that assumes that every event that COULD have been an attack probably is an attack. >>> Please talk to vendors. I don't want to reproduce here what seems to >>> be the consensus among vendors with respect to the current state of >>> affairs in terms of how up-to-date our specs are. >> Vendors misapply our protocols then complain that they don't work. Yes, >> there are operational issues, but one severe operational issue is not >> using security for some policy, financial, or operation expense and then >> complaining that nonsecure TCP is being attacked. > > Joe, we're talkng about a simple web server being taken down because of > a SYN flood, a FIN-WAIT-2 flood, or the like. Even the most stupid web > server should survive these types of attacks. If you're talking about implementation advice (don't put all your resources in pending connections), I agree that a good implementation should be implemented well. But that's operational / implementation advice, not protocol advice. I do not agree that all web servers should implement SYN cookies, e.g. Joe -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAknjqFYACgkQE5f5cImnZrtBNwCgiJPsTDBt34Im+s/TFkBm90DE Xn4AoNlUvCAucvZoVVMTpex4sMXAaXb2 =1ijT -----END PGP SIGNATURE-----
- [tcpm] draft-gont-tcp-security Eddy, Wesley M. (GRC-RCN0)[Verizon]
- Re: [tcpm] draft-gont-tcp-security Joe Touch
- Re: [tcpm] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] draft-gont-tcp-security Joe Touch
- Re: [tcpm] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] draft-gont-tcp-security Joe Touch
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joe Touch
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joe Touch
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joe Touch
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joe Touch
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Lars Eggert
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joe Touch
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Smith, Donald
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Smith, Donald
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joel Jaeggli
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Smith, Donald
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joe Touch
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Lars Eggert
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Todd Glassey
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Todd Glassey
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Lars Eggert
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Lars Eggert
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joel Jaeggli
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joe Touch
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Fernando Gont
- Re: [tcpm] [OPSEC] draft-gont-tcp-security Joe Touch