Re: [Spud] Fwd: New Version Notification for draft-kuehlewind-spud-use-cases-00.txt

Tom Herbert <tom@herbertland.com> Mon, 06 July 2015 17:20 UTC

Return-Path: <tom@herbertland.com>
X-Original-To: spud@ietfa.amsl.com
Delivered-To: spud@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6F3271ACD8E for <spud@ietfa.amsl.com>; Mon, 6 Jul 2015 10:20:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.678
X-Spam-Level:
X-Spam-Status: No, score=-1.678 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-0.7] autolearn=no
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 eKL39dd25y8c for <spud@ietfa.amsl.com>; Mon, 6 Jul 2015 10:20:12 -0700 (PDT)
Received: from mail-ig0-f174.google.com (mail-ig0-f174.google.com [209.85.213.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 405AA1ACC91 for <spud@ietf.org>; Mon, 6 Jul 2015 10:20:12 -0700 (PDT)
Received: by igcsj18 with SMTP id sj18so240020272igc.1 for <spud@ietf.org>; Mon, 06 Jul 2015 10:20:11 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=7l/YvNNTodQYYh7u7vXNCIM+jWp5n1AiOzKCWL+2BDA=; b=TPCmKvyymI6L8xMabT+au69S0o+yUdX3j+e9/0xtTd9dLMpqORu56izm4G4dvmRbX3 Eoc1k3YkdIXdWaGUv7rn2colYZH4kAef7/txFf7jHI4hZFP/kYSvAS5mFFQFBUSAhLav qj99aBh+mr4SGXRJLI1QQd4i4B5y/HOsEhzXwQAtX/ru2lQrtxkFnEwfpZ0vIHYhWgcZ V/XAcVMtzR4pBX7BgYoZEruKSejFk9gf6lyukYj8H0zBksxoDi9MmGO8H+F6X4xfIufX adWKaQdSaBjsUe5NrHndj6ci0ymfXlsSHNgR3V+v26lWGE6YdxfYUIk1+LAZH09VCa7N 8icg==
X-Gm-Message-State: ALoCoQkZMj88OzwlgavLmSec63+AkzsLYXsnRKaR6VmKjk0wLrGLiRI3n74iJhaHk3DIBnQ5C1mJ
MIME-Version: 1.0
X-Received: by 10.42.244.4 with SMTP id lo4mr37319214icb.65.1436203211510; Mon, 06 Jul 2015 10:20:11 -0700 (PDT)
Received: by 10.107.142.86 with HTTP; Mon, 6 Jul 2015 10:20:11 -0700 (PDT)
In-Reply-To: <176C39DB-16F3-4E46-9A1D-22290A38FBA6@tik.ee.ethz.ch>
References: <20150703151910.417.20312.idtracker@ietfa.amsl.com> <176C39DB-16F3-4E46-9A1D-22290A38FBA6@tik.ee.ethz.ch>
Date: Mon, 6 Jul 2015 10:20:11 -0700
Message-ID: <CALx6S37Eo6eAE4GTkAWGe+w0ZhDHyuMym7+txgjai5GRw+pgiQ@mail.gmail.com>
From: Tom Herbert <tom@herbertland.com>
To: =?UTF-8?Q?Mirja_K=C3=BChlewind?= <mirja.kuehlewind@tik.ee.ethz.ch>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/spud/RLZTeg5syUTyyb0BD1SeKCgzuKQ>
Cc: Brian Trammell <ietf@trammell.ch>, spud@ietf.org
Subject: Re: [Spud] Fwd: New Version Notification for draft-kuehlewind-spud-use-cases-00.txt
X-BeenThere: spud@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Session Protocol Underneath Datagrams <spud.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spud>, <mailto:spud-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spud/>
List-Post: <mailto:spud@ietf.org>
List-Help: <mailto:spud-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spud>, <mailto:spud-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Jul 2015 17:20:14 -0000

On Fri, Jul 3, 2015 at 8:24 AM, Mirja Kühlewind
<mirja.kuehlewind@tik.ee.ethz.ch> wrote:
> Hi all,
>
> we’ve just submitted a new use case document. This document describes in more detail the use cases as already presented/discussed at the BoF.
>
> Please review and comment. Also partial reviews of e.g. just one use case are more than welcome. Further if you’d like to contribute to this document, please let use know as well.
>
Hi Mirja, thanks for the draft! Here are my comments.

General comments:

It seems to me there are two motivations for SPUD:

1) A common protocol layer for UDP flow based protocols to pass
through stateful firewalls and NAT.
2) A rich inband flow based QoS signaling initiated by end hosts which
can be interpreted by network devices in the path.

The first motivation seems pretty clear, the inability to pass UDP
(really anything besides TCP) through stateful firewalls has impeded
deployment of new L4 protocols.

The second motivation is less clear. Disregarding previously raised
questions around new DoS vectors and whether we can ever trust
anything anyone says on the Internet, I would ask if SPUD (UDP) is the
right layer for this. The need for this signaling doesn't seem to be
specific to UDP transport protocols, but also should applicable to
TCP, SCTP, and other protocols. Barring that these protocols
transition to running over SPUD (unlikely in the foreseeable future),
it seems like such signaling should be implemented in a more common
layer, maybe something like IP options.

Another general question I have is how much leeway should be taken in
relaxing or modifying the end-to-end semantics of UDP. In particular,
I think an important question is rather middleboxes should be
modifying UDP payloads. We've accepted that NAT devices can modify UDP
port numbers, but mucking with the payload seems worse to me. This
makes end-to-end authentication or integrity checks much more
difficult, and if a packet is ever misclassified as SPUD this could
result in data corruption. This issue also comes up in other
proposals, such as BIER, but those seem have more narrow application
(i.e. for multicast, deployed in closed network not the Internet as
SPUD is intended).

> For everybody who potentially has additional use cases in mind, I personally would appreciate to see future use case descriptions with a similar structure than use in this document. In found it very helpful to capture the most important points. However, this structure is also open for discussion.
>
Use of SPUD with NAT should probably be mentioned in the draft.

It might be worthwhile to consider some more specific applications of
firewalls. For example, if a firewall is deployed between a site and
the Internet, we might be more inclined to trust SPUD directives
received from the internal network as opposed to the Internet.

Another potential use case to investigate would be mobile devices
behind a middlebox.

Comments on the draft:

"This state should be bound to something beyond the five-tuple to link
packets together." question here of whether UDP source should be part
of identifying tuple. UDP encapsulation protocols are defining source
port as an entropy field for ECMP, so it might be good to take out
source port in the tuple.

"Further, to maintain state, the sender must explicitly indicate the
start and end of a tube to the path, while the receiver must confirm
connection establishment.". Sender and receiver might be ambiguous
terms, I like initiator and target if this is meant to indicate
perspective roles in the connection establishment.  An alternative
mode could be  request/response communication where the request
creates the state and the response closes it (this is described in
draft-herbert-gue-session-id-00 ).

I believe the mechanisms described in section 2 and the SPUD prototype
protocol could be vulnerable to something like a classic SYN attack.
That is an attacker could spoof open commands in an attempt to DOS at
the middlebox. Part of the defense against this attack is to do 3-WHS.
This might be already implied in the draft at "This, together with the
first packet following the confirmation, provides a guarantee of
return routability", but this isn't sufficient if the attacker can
also spoof that first packet following the confirmation. A solution is
to have the receiver (target) set part of the tube ID which an
attacker could not predict (this is analogous the requirement that
both SYN and ACK numbers must be synchronized before moving to
Established state in TCP). Please look at
draft-herbert-gue-session-id-00 for more on this.

"A SPUD endpoint receiving a SPUD header with timeout information
should reflect this information to the sender". This is a good example
of the trust problem. Why would we trust an endpoint to do this
correctly? Maybe they just always return the smallest possible value
instead without any regard to the cost at the sender or its network
for sending frequent heart beats. In this case, I think it would be
better for the middlebox (local to the sender) to return the timeout
information to the sender using an out of band protocol. Also, this
might not be needed for every flow, in the common case of a node being
behind a single firewall getting the value once would probably
suffice.

"Therefore it has to send heartbeat fairly rapidly, or might assume a
default value of 150ms that is commonly used today." Where does this
value come from? Couldn't such a rate kill battery on a mobile device?

"An application does not benefit from wronly indicating loss- or
latency-sensitivity" Typo :-)... The question here is what are the
consequences if traffic is incorrectly marked. If mis-marking packets
can adversely affect other non-related flows then this mechanism
potentially becomes the basis for a DoS attack. For example, if
someone arbitrarily decides to mark all their packets as low latency,
increasing the latency of other flows or even worse increasing packet
loss for other correctly marked low latency traffic would be a
problem.

Tom



> Brian and Mirja
>
>
>
>> Anfang der weitergeleiteten Nachricht:
>>
>> Von: internet-drafts@ietf.org
>> Betreff: New Version Notification for draft-kuehlewind-spud-use-cases-00.txt
>> Datum: 3. Juli 2015 17:19:10 MESZ
>> An: "Mirja Kuehlewind" <mirja.kuehlewind@tik.ee.ethz.ch>ch>, "Mirja Kuehlewind" <mirja.kuehlewind@tik.ee.ethz.ch>ch>, "Brian Trammell" <ietf@trammell.ch>ch>, "Brian Trammell" <ietf@trammell.ch>
>>
>>
>> A new version of I-D, draft-kuehlewind-spud-use-cases-00.txt
>> has been successfully submitted by Mirja Kuehlewind and posted to the
>> IETF repository.
>>
>> Name:         draft-kuehlewind-spud-use-cases
>> Revision:     00
>> Title:                SPUD Use Cases
>> Document date:        2015-07-03
>> Group:                Individual Submission
>> Pages:                15
>> URL:            https://www.ietf.org/internet-drafts/draft-kuehlewind-spud-use-cases-00.txt
>> Status:         https://datatracker.ietf.org/doc/draft-kuehlewind-spud-use-cases/
>> Htmlized:       https://tools.ietf.org/html/draft-kuehlewind-spud-use-cases-00
>>
>>
>> Abstract:
>>   The Substrate Protocol for User Datagrams (SPUD) BoF session at the
>>   IETF 92 meeting in Dallas in March 2015 identified the potential need
>>   for a UDP-based encapsulation protocol to allow explicit cooperation
>>   with middleboxes while using new, encrypted transport protocols.
>>   This document summarizes the use cases discuss at the BoF and thereby
>>   proposes a structure for the description of further use cases.
>>
>>
>>
>>
>> Please note that it may take a couple of minutes from the time of submission
>> until the htmlized version and diff are available at tools.ietf.org.
>>
>> The IETF Secretariat
>
> _______________________________________________
> Spud mailing list
> Spud@ietf.org
> https://www.ietf.org/mailman/listinfo/spud