Re: [perpass] TCP Stealth (Was: I-D Action: draft-kirsch-ietf-tcp-stealth-00.txt

Christian Grothoff <grothoff@gnunet.org> Mon, 18 August 2014 13:49 UTC

Return-Path: <grothoff@gnunet.org>
X-Original-To: perpass@ietfa.amsl.com
Delivered-To: perpass@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B418A1A0380 for <perpass@ietfa.amsl.com>; Mon, 18 Aug 2014 06:49:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.85
X-Spam-Level:
X-Spam-Status: No, score=-3.85 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id S05kjTRkmzl0 for <perpass@ietfa.amsl.com>; Mon, 18 Aug 2014 06:49:16 -0700 (PDT)
Received: from smtp1.informatik.tu-muenchen.de (mail-out1.informatik.tu-muenchen.de [131.159.0.8]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9865C1A036E for <perpass@ietf.org>; Mon, 18 Aug 2014 06:49:16 -0700 (PDT)
Received: from [192.168.178.20] (pd95c0f92.dip0.t-ipconnect.de [217.92.15.146]) by mail.net.in.tum.de (Postfix) with ESMTPSA id 741171A39982; Mon, 18 Aug 2014 15:49:13 +0200 (CEST)
Message-ID: <53F2045B.3090602@gnunet.org>
Date: Mon, 18 Aug 2014 15:49:15 +0200
From: Christian Grothoff <grothoff@gnunet.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.7.0
MIME-Version: 1.0
To: Stephane Bortzmeyer <bortzmeyer@nic.fr>, draft-kirsch-ietf-tcp-stealth@tools.ietf.org
References: <20140815064106.17646.23281.idtracker@ietfa.amsl.com> <20140818131512.GA26987@nic.fr>
In-Reply-To: <20140818131512.GA26987@nic.fr>
X-Enigmail-Version: 1.6
Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="N9S9QesHObUQF42no66Gd1ELT505VBAXa"
Archived-At: http://mailarchive.ietf.org/arch/msg/perpass/xApg2fO-ij0MSOfuEb37NsXO7Do
X-Mailman-Approved-At: Mon, 18 Aug 2014 06:50:15 -0700
Cc: perpass@ietf.org
Subject: Re: [perpass] TCP Stealth (Was: I-D Action: draft-kirsch-ietf-tcp-stealth-00.txt
X-BeenThere: perpass@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "The perpass list is for IETF discussion of pervasive monitoring. " <perpass.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/perpass>, <mailto:perpass-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/perpass/>
List-Post: <mailto:perpass@ietf.org>
List-Help: <mailto:perpass-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/perpass>, <mailto:perpass-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Aug 2014 13:49:18 -0000

On 08/18/2014 03:15 PM, Stephane Bortzmeyer wrote:
> [The I-D does not indicate, apparently, a mailing list for discussion
> of the idea. Trying on perpass. Suggestions of a better venue are
> welcome.]
> 
> On Thu, Aug 14, 2014 at 11:41:06PM -0700,
>  internet-drafts@ietf.org <internet-drafts@ietf.org> wrote 
>  a message of 49 lines which said:
> 
>>         Title           : TCP Stealth
>>         Authors         : Julian Kirsch
>>                           Christian Grothoff
>>                           Jacob Appelbaum
>>                           Holger Kenn
>> 	Filename        : draft-kirsch-ietf-tcp-stealth-00.txt
> 
> IMHO, very good idea for an important problem. I would like this
> work to move forward (an independant RFC with status Experimental, may
> be?)
> 
> A few suggestions/remarks:
> 
> * May be a remark about the fact that it is intended for small groups
> (the use of a shared secret limits the scalability). 

That is of course correct.

> * "If the token is incorrect, the operating system pretends that the
> port is closed." If the port is closed, the server will reply with a
> RST. Not very stealth. You meant "If the token is incorrect, the
> operating system won't reply at all"?

We intend the OS to react in the same way as it does for all other ports
where no service is listening.  If the OS policy is to send a RST, it
should also send a RST if the authentication fails If the OS policy is
to drop, it should also drop if the authentication fails.  Stealth here
is about being as indistinguishable as possible from an "ordinary"
closed port.

> * May be a security analysis comparing it to port knocking? 

Eh, this is a port knocking scheme.

> If I'm
> correct, TCP stealth provides min(32, N) bits of secret (32 being the
> size of the ISN and N the number of bits in the shared secret) while
> port knocking provides 16*N bits (N being the number of ports to
> knock).

That depends on the type of port knocking scheme deployed. You could in
theory implement a knock with a 512 byte UDP packet and have a huge
shared secret.  Naturally, if you talk about a knock where just the
destination port is derived from the knock secret, then your analysis is
correct.  But again, there are many ways to implement knocking in general.

> * May be a mention of SPA <http://www.cipherdyne.org/fwknop/>, which
> is closer from TCP Stealth than port-knocking? (The biggest difference
> is that SPA is not stealth, Eve knows you're using SPA.)

There are other differences; for a more detailed analysis I would
suggest you use Julian's Master's thesis, not the RFC. The MS thesis is
freely available at https://gnunet.org/kirsch2014knock

> * Why MD5? I assume that TCP Stealth has no cryptographic agility
> since there is no room to indicate the crypto algorithm (while staying
> stealth) but why MD5, despite RFC 6151?

As (I hope) the thesis explains, MD5 is used for ISN calculations
already, from ISN to SYN flooding protections.  And once reduced to 32
bits, there is no real security advantage of other hash functions, but
there is a speed (and maybe indistinguishability advantage) for MD5.

> * "6. Integraton with Applications" should be Integration

Ack. Fixed in Git, thanks!

-Christian