Re: [tsvwg] Regarding DTLS and UDP options
Tom Herbert <tom@herbertland.com> Tue, 18 April 2017 16:37 UTC
Return-Path: <tom@herbertland.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1DC0F127286 for <tsvwg@ietfa.amsl.com>; Tue, 18 Apr 2017 09:37:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=herbertland-com.20150623.gappssmtp.com
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 zXTTJFRt0sdA for <tsvwg@ietfa.amsl.com>; Tue, 18 Apr 2017 09:37:23 -0700 (PDT)
Received: from mail-qk0-x235.google.com (mail-qk0-x235.google.com [IPv6:2607:f8b0:400d:c09::235]) (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 1B9CB12441E for <tsvwg@ietf.org>; Tue, 18 Apr 2017 09:37:23 -0700 (PDT)
Received: by mail-qk0-x235.google.com with SMTP id p68so135103128qke.1 for <tsvwg@ietf.org>; Tue, 18 Apr 2017 09:37:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=XHEEdX+8vtKxyKwRzRgD4ZR3Gg8WiaJxbb23Oh2tghQ=; b=sG44+0+cxH0jzWoO/HQnZWMMqJ3TL5jgC/9GZ84Ww9igUDUQ20FCjJJ4qdLnj+vmLH K1uqzyFRo+s9WYxtVRH6ZftQaZRoLDbZudbfx283BcBnA+/6oZ2UZrLPuI+BpfUIj5CH KoSIVVs483R1IjmomxVaBUFC4gLvnFzIS3KvWa4Xx/LlXWNJOypjhQiteGtFmn1UESnr Sqay/XoCCzdw70626SxZ75jwCeSqS67JFWd3X4YcCt7DQFRULhBxCF9jwmJfciuITpuk yDgujn4o5gE3cNi6RFVg1NbUyyX+S+e9iegT49gOBbtl1kuG1yqz/fiXJesrwLGIACtC y6xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=XHEEdX+8vtKxyKwRzRgD4ZR3Gg8WiaJxbb23Oh2tghQ=; b=QBGFj8sEzJhDFH33X1DBFYFbecPY01yAdSaENhOGlxEm3fdpR77KMLqw9zys5pK8pd tNdqSi+amzQYDZQLm0Ws9dHmcTT5Q5QudL6wfdbww6bAEG/dJg+cTPWBKW52gWtwa+yQ 37Bg02aRmv1kpL0Iudaldj+pOuwxwRCjHvgI3G8njBQaIyQcDwubWaJBK6d5XbfRtZzz 4y+ROQUIi6eOCohDHHwnAxTR8GJqipFL3GHHoivkSm4zh4lOC6sIvZsheqf6pHIG9hga kXIiGU1DQj8qupkLQQgKrvyct/KIADzYplDWn7/e+KhOXtNLF5pCFIpwbYCMYau0o+2G qoWw==
X-Gm-Message-State: AN3rC/4WWligEx3y9aPqV5/7bJepPmoY363fFE56TaxRq0igYNaT5N1l /9UND8YzD5C92rVJaElqYH2LOUnD6w==
X-Received: by 10.55.89.196 with SMTP id n187mr13470985qkb.322.1492533442177; Tue, 18 Apr 2017 09:37:22 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.140.97.10 with HTTP; Tue, 18 Apr 2017 09:37:21 -0700 (PDT)
In-Reply-To: <58F5C07C.4000707@erg.abdn.ac.uk>
References: <CACL_3VFeJs7KzG9Bchh15bfZ3CmaOPWcfisEreNoGYK5CsEJ+g@mail.gmail.com> <3a4a6b78-8146-de4c-6246-7bd09de44f1c@isi.edu> <CACL_3VFkr3mGe-yTbvHrTZcKVCpEv3FeSOyoShUxCK5+9Tdqqg@mail.gmail.com> <c79fe3d0-8567-ea7d-72fc-bd33732df60e@isi.edu> <CACL_3VHmoCSo23OWqQFq7upw749CqMK7iazXrBKZARzwbzY5mw@mail.gmail.com> <f97f08d4-0070-437a-e22a-8782497c76eb@isi.edu> <4e36af95-84c3-bc7e-b18a-614f8bfab662@isi.edu> <58F48403.8080302@erg.abdn.ac.uk> <a0f656e8-e847-db54-6046-2078364d428b@isi.edu> <CALx6S36HYHdbGoJHNb+mVY6reu9RLikLxDJqrPgwO9tF1EfSgQ@mail.gmail.com> <8b1829ba-4e8d-5ee1-e24c-f42962f47dde@isi.edu> <CALx6S36=7KbTtv9QNUBTg6gPYQQighsPD_+mWNc=wUQTX70VBQ@mail.gmail.com> <8378ae17-c023-25a2-76e7-07b858916849@isi.edu> <CALx6S35chiqMtqKa+zahfZnLZrQzfYUF7D9m0QGbkwFVpRwHag@mail.gmail.com> <bfc36611-6817-fbf9-a9c7-5bdde179b665@isi.edu> <CALx6S34qAh0mXGi8nuRtTiorf_1TE4V0NQ1QhqCcW0hmxOgc-Q@mail.gmail.com> <58F5C07C.4000707@erg.abdn.ac.uk>
From: Tom Herbert <tom@herbertland.com>
Date: Tue, 18 Apr 2017 09:37:21 -0700
Message-ID: <CALx6S35N5WYvPHzTNo+trUecGgFPWv+xyXu4uampijc2w=DoSw@mail.gmail.com>
To: "gorry@erg.abdn.ac.uk" <gorry@erg.abdn.ac.uk>
Cc: Joe Touch <touch@isi.edu>, tsvwg <tsvwg@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/6zKF07WkTL7p9qwbVe0Ycl7lZMI>
Subject: Re: [tsvwg] Regarding DTLS and UDP options
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Apr 2017 16:37:25 -0000
On Tue, Apr 18, 2017 at 12:30 AM, Gorry Fairhurst <gorry@erg.abdn.ac.uk> wrote: > On 17/04/2017, 23:31, Tom Herbert wrote: > > Joe: How and why should these be different? >> >> > Tom: > >> TCP options are pretty much required for operation of the TCP >> protocol, this is why they will never be ossified and why it's one of >> the few methods of protocol extensibility that is viable on the >> Internet. IP options on the other hand were never required for IP to >> operate hence they were quickly ossified. In this context, UDP options >> are more like IP options since they are not required for use with UDP. >> So there is a possibility that some vendors (e.g. a firewall) may just >> decide that to start dropping packets or throwing packets that might >> have them into a slow path similar to IP options. If something like >> this is not consistently supported in the Internet, then applications >> are unlikely to use it. I wish this wasn't reality and that the end to >> end model was actually adhered to, but when writing Internet >> applications we have to stick with what is known to work... ie. plain >> TCP/IP or UDP/IP (where support for the latter is still a little shaky >> since some network operators refer to think of UDP as nothing more >> than a DOS vector). >> >> Tom >> > I have opinions on this para, in that I think options in TCP can be selected > by the TCP stack, they do not explicitly need to be turned on or off by > applications. A simple example: Timestamp or MSS. If we had similar options > for UDP, this could also be automated by the stack (e.g., MSS to know the > maximum receive datagram size). I have ideas of a number of such things that > could be automatable, and plan to try these as soon as we have a stack that > supports this. > Gorry, UDP is a connectionless and unreliable protocol, so if the stack were to on its own accord add an MSS to a packet how and no response was seen how would it know the difference between a one way communication and the packet was dropped because some intermediate device enforces IP len == UDP len? My concern with retrofitting UDP is that I don't think it can be done so that all ambiguities are eliminated and hence it will never be completely robust. For instance, in TCP any part of the TCP header after the first twenty bytes must be TCP options-- there is no other possible interpretation of these bits allowed by the protocol. But, correct interpretation of UDP options in the surplus space is inherently probabilistic. Even if we put in checksums and magic numbers and get the probability of misinterpretation very low it will not be zero. If some existing device happens to be adding random bits beyond the UDP header (as the draft points out it was never a requirement that lengths need to match) and this is subsequently misinterpreted as UDP options causing insidious effects, even if this happens just once, it is a problem with the protocol not the implementation. I think ambiguity is manageable if it is only the communicating hosts that process the options and the use of options is expressly enabled for both transmit and receive. If some intermediate device wereto start parsing and possibly modifying options on its own accord this would be exceedingly dangerous in my opinion. Such a problem would potentially be a nightmare to debug in real networks since we don't even have tools that can would analyze trailers. Fortunately, trailers are unlikely to be considered by intermediate devices so this problem is unlikely today. Nevertheless, I think the draft should say up from that intermediate devices MUST NOT process, examine, or modify UDP options. A related concern I have is around security and whether ambiguity can be exploited. For instance, someone could easily forge a UDP fragment using the UDP option. If a device supports UDP options they will interpret this as fragment, if they don't they will see this as plain UDP packet. This are very different interpretations of the same bits however both devices could claim protocol conformance-- that's a potential problem. This becomes a real problem if the ambiguity can be somehow exploited to bypass security. The draft should probably include some more consideration for use with NAT. For instance: "A host SHOULD indicate FRAG support by transmitting an unfragmented datagram using the Fragmentation option" If the host lives behind a NAT this would effectively indicate support for FRAG for all the hosts sitting behind the NAT. I doubt that's the intent! FRAG should probably be based on UDP 4-tuple, but even packets on that flow might not always be going to the same host (an IP anycast destination for example). Also, the draft should mention multicast and whether or not UDP options are allowed with that. Thanks, Tom > Sure, options may not be supported by specific paths - although I suspect > that enough paths already do support to make it worth trying in many cases. > The UDP (plus options) transport stack can then include mechanisms to decide > how to handle loss of options, just as TCP stacks do this today. > Applications do not need to be involved - perhaps other than to "enable" the > sender stack to do the correct thing. > > Gorry > > > >
- [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Gorry Fairhurst
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Tom Herbert
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Tom Herbert
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Tom Herbert
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Tom Herbert
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Tom Herbert
- Re: [tsvwg] Regarding DTLS and UDP options Gorry Fairhurst
- Re: [tsvwg] Regarding DTLS and UDP options Tom Herbert
- Re: [tsvwg] Regarding DTLS and UDP options Tom Herbert
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Tom Herbert
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- Re: [tsvwg] Regarding DTLS and UDP options Joe Touch
- [tsvwg] Fwd: New Version Notification for draft-t… Joe Touch
- Re: [tsvwg] Fwd: New Version Notification for dra… Derek Fawcus
- Re: [tsvwg] New Version Notification for draft-to… C. M. Heard
- Re: [tsvwg] Fwd: New Version Notification for dra… Joe Touch
- Re: [tsvwg] Fwd: New Version Notification for dra… Tom Herbert
- Re: [tsvwg] New Version Notification for draft-to… Joe Touch
- Re: [tsvwg] Fwd: New Version Notification for dra… Derek Fawcus
- Re: [tsvwg] Fwd: New Version Notification for dra… Tom Herbert
- Re: [tsvwg] Fwd: New Version Notification for dra… Joe Touch
- Re: [tsvwg] Fwd: New Version Notification for dra… Joe Touch
- Re: [tsvwg] Fwd: New Version Notification for dra… Derek Fawcus
- Re: [tsvwg] Fwd: New Version Notification for dra… Derek Fawcus
- Re: [tsvwg] Fwd: New Version Notification for dra… Joe Touch
- Re: [tsvwg] Fwd: New Version Notification for dra… Tom Herbert
- Re: [tsvwg] Fwd: New Version Notification for dra… Joe Touch
- Re: [tsvwg] Fwd: New Version Notification for dra… Joe Touch
- [tsvwg] summary of issues for draft-touch-tsvwg-u… Joe Touch
- Re: [tsvwg] Fwd: New Version Notification for dra… Tom Herbert
- Re: [tsvwg] New Version Notification for draft-to… C. M. Heard
- Re: [tsvwg] Fwd: New Version Notification for dra… Joe Touch
- Re: [tsvwg] New Version Notification for draft-to… Joe Touch
- Re: [tsvwg] New Version Notification for draft-to… C. M. Heard
- Re: [tsvwg] New Version Notification for draft-to… Joe Touch
- Re: [tsvwg] New Version Notification for draft-to… C. M. Heard
- Re: [tsvwg] New Version Notification for draft-to… Joe Touch
- Re: [tsvwg] New Version Notification for draft-to… Gorry Fairhurst
- Re: [tsvwg] New Version Notification for draft-to… C. M. Heard
- Re: [tsvwg] New Version Notification for draft-to… Joe Touch
- Re: [tsvwg] New Version Notification for draft-to… C. M. Heard
- Re: [tsvwg] New Version Notification for draft-to… Joe Touch
- Re: [tsvwg] New Version Notification for draft-to… Gorry Fairhurst
- Re: [tsvwg] New Version Notification for draft-to… C. M. Heard
- Re: [tsvwg] New Version Notification for draft-to… Joe Touch