From owner-freebsd-hackers Sun Oct 6 18:36:11 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id SAA24670 for hackers-outgoing; Sun, 6 Oct 1996 18:36:11 -0700 (PDT) Received: from pinky.junction.net (pinky.junction.net [199.166.227.12]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id SAA24658 for ; Sun, 6 Oct 1996 18:36:08 -0700 (PDT) Received: from sidhe.memra.com (sidhe.memra.com [199.166.227.105]) by pinky.junction.net (8.6.12/8.6.12) with ESMTP id RAA16853 for ; Sun, 6 Oct 1996 17:50:04 -0700 Received: from localhost (michael@localhost) by sidhe.memra.com (8.6.12/8.6.12) with SMTP id SAA01757 for ; Sun, 6 Oct 1996 18:31:21 -0700 Date: Sun, 6 Oct 1996 18:31:20 -0700 (PDT) From: Michael Dillon To: freebsd-hackers@freebsd.org Subject: Re: TCP SYN attacks - a simple solution (fwd) Message-ID: Organization: Memra Software Inc. - Internet consulting MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk ---------- Forwarded message ---------- Date: Sun, 6 Oct 1996 20:09:40 -0400 (EDT) From: Avi Freedman To: Matthew Kaufman Cc: rex@cs.su.oz.au, bugtraq@netspace.org, nanog@merit.edu, iepg@iepg.org, matthew@nic.scruz.net Subject: Re: TCP SYN attacks - a simple solution > The idea has been floated before, and I believe it to be the right > solution to this problem. However, I have some suggested improvements: > > 1. The use of a "per boot" secret number allows an attacker to > poll your machine to deduce the secret, and then attack you with > that knowledge. > > A solution to this problem is to use a rapidly changing secret, the > pattern of which cannot be easily deduced, and a sliding window of > acceptance. (If the hash doesn't match the current scheme, but matches > the scheme we were using in the past N seconds, then accept the packet) > > The change interval needs to be short enough that, by the time an > attacker has been able to compute the next number, the window for > accepting that has closed. I figure that if you steal 4 to 12 bytes for mss storage, 2^20 is still enough possibilities that you can just rotate your secret every minutes and test against the old one for 30 seconds... > -matthew kaufman > matthew@scruz.net Yes. > ps. I've been meaning to write this entire scheme, with the enhancements > I propose here, as a draft specification, but I keep getting interrupted > by flooded phone rooms and the like this weekend. *sigh* Hopefully there will be a working implementation of this by week's end. Jeff Weisberg has code which runs on sun3s and (soon, I hope) on other Suns under SunOS. This has always seemed to me to be the best way to do things, though an OS patch to go to hashed-entry into arrays of PCBs is a definite win to back-implement into SunOS (for example) in general. Avi