Re: [tcpm] Fwd: New Version Notification for draft-gont-tcpm-rfc1948bis-00

Joe Touch <touch@isi.edu> Mon, 10 January 2011 19:48 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 5134F28C106 for <tcpm@core3.amsl.com>; Mon, 10 Jan 2011 11:48:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.501
X-Spam-Level:
X-Spam-Status: No, score=-102.501 tagged_above=-999 required=5 tests=[AWL=0.098, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
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 2ITmPz6R9iMS for <tcpm@core3.amsl.com>; Mon, 10 Jan 2011 11:48:07 -0800 (PST)
Received: from boreas.isi.edu (boreas.isi.edu [128.9.160.161]) by core3.amsl.com (Postfix) with ESMTP id 1FDB328C0FF for <tcpm@ietf.org>; Mon, 10 Jan 2011 11:48:07 -0800 (PST)
Received: from [128.9.160.166] (abc.isi.edu [128.9.160.166]) (authenticated bits=0) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id p0AJnZEh022567 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT); Mon, 10 Jan 2011 11:49:35 -0800 (PST)
Message-ID: <4D2B62CF.7040307@isi.edu>
Date: Mon, 10 Jan 2011 11:49:35 -0800
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7
MIME-Version: 1.0
To: Fernando Gont <fernando@gont.com.ar>
References: <4D27A097.3040606@gont.com.ar> <4D2B5958.3090304@isi.edu> <4D2B602E.1060408@gont.com.ar>
In-Reply-To: <4D2B602E.1060408@gont.com.ar>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
Subject: Re: [tcpm] Fwd: New Version Notification for draft-gont-tcpm-rfc1948bis-00
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, 10 Jan 2011 19:48:08 -0000

On 1/10/2011 11:38 AM, Fernando Gont wrote:
> Hi, Joe,
>
> On 10/01/2011 04:09 p.m., Joe Touch wrote:
>> IMO, this might be ready for experimental, but shouldn't go
>> standards-track unless it uses an algorithm for which we have
>> substantial experience.
>
> Yes, I'll be backing out SHA-256 and will go back to recommending MD5.
> -- As already noted on this list, this change was political rather than
> technical.
>
> So I assume that this would address your concern and you'd be game for
> std track, right?

The specification of the PRF needs to be more detailed. I.e., state how 
the hash is padded, byte order, and what portion of the output you're 
using (since MD5 hashes are too long).

>> 1) is this the most important change we want to make to TCP
>>
>>      as a WG, we ought to be discussing this for
>>      every standards-track change to TCP; we don't seem
>>      to be doing this as a plan
>
> huh? Why should this be "the most important change to TCP" for us to
> work on it?

This is a general question; we don't want to be spending cycles around 
the edges if we have bigger fish to fry.

>> 2) the discussion of how this doc changes 1948 needs to be included in
>> the core of the doc (Sec 2, IMO), and needs to be updated
>
> No problem with this -- what do others think?
>
>
>
>>      - this is a new algorithm, which, IMO, is experimental at best
>>      the alg proposed in Sec 2 is predictable for a given socket
>>      pair; that seems inconsistent with the security concerns that
>>      drive this doc
>
> Joe, this document is about mitigating blind attacks. If you know the
> socket pair, you can predict the ISN, unless you were able to see the
> ISN of a previous connection for that socket pair -- which is a
> completely different threat-model, that this document does not (and
> doesn't aim to) address.

If knowing the socket pair means you can predict the ISN, then this doc 
shouldn't be discussing the need for a random component or the time value.

I.e., your response above is inconsistent with a LOT of the discussion 
in this doc.

>>      - security concerns with MD5 need to be cited; the current
>>      note cites the definition of MD5 only; it's not clear
>>      they apply for unkeyed use as just a hash function
>
> The I-D cited by Lloyd will be referenced in the next revision.
>
>
>
>>      - the impact of guessing a sequence number should be discussed
>>      better; as per 4953, increasing window sizes and link speeds
>>      means that knowing ISN value isn't as important as it once was
>
> Guessing the ISN is still as important as it was when it comes to
> connection spoofing (note that most of the discussion is about
> connection spoofing and trust relationship exploitation).
>
> We could possibly add an informative reference to RFC 4953 for other
> sequence number issues.
>
>
>> 2) the impact of this doc on TIME_WAIT isn't sufficiently addressed
>>
>>      most machines simply don't keep TW around as long as they
>>      are required; they also sometimes use a single pseudo-random
>>      generator across all connections; this needs to be considered
>>      in more detail
>
> So now you care about running code? -- It's surprising that you're
> raising this, instead of declaring them as bugs and be done with it.

I'm concerned about the performance impact of declaring this a SHOULD.

> Anyway, this document is not about the TIME-WAIT state. And proper
> references are included where appropriate (e.g., the reference to the
> CPNI TCP security document)

If the result of this SHOULD impacts TW performance, then yes, it is 
about TW state.

>> 3) the doc should discuss how it can be implemented on a machine that
>> doesn't know absolute time
>>      even TCP's timestamps don't need to be absolute, but if a
>>      machine always boots the same way with the same info, it
>>      will reuse sequence numbers unless it has a persistent clock,
>>      coordinates time with another party, or has persistent state;
>>      none of these are necessarily true, e.g., for small devices
>
> C'mon, Joe: initialize that timer to a random value, and be done with it.

Stand-alone boxes don't necessarily understand 'random' - if they reboot 
and execute the same code in the same order, their 'random' is 
deterministic. You need to address that. This relates to the other 
concerns about some TCP mods that require state in home routers - it's a 
valid concern. You're declaring a SHOULD; you need to explain what you 
assume is available.

Joe

>> 4) where true authentication is noted as an alternative, TCP-AO should
>> be included, IMO
>
> No problem with this. Will do.
>
> Thanks,