Re: [Spud] updated draft PLUS charter, rev. 1 June

Brian Trammell <ietf@trammell.ch> Fri, 10 June 2016 15:25 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: spud@ietfa.amsl.com
Delivered-To: spud@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AF0E412D0D9 for <spud@ietfa.amsl.com>; Fri, 10 Jun 2016 08:25:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.328
X-Spam-Level:
X-Spam-Status: No, score=-3.328 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.426, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=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 jnB9jdG8zQvq for <spud@ietfa.amsl.com>; Fri, 10 Jun 2016 08:25:48 -0700 (PDT)
Received: from trammell.ch (trammell.ch [5.148.172.66]) by ietfa.amsl.com (Postfix) with ESMTP id D01E412D756 for <spud@ietf.org>; Fri, 10 Jun 2016 08:25:46 -0700 (PDT)
Received: from [IPv6:2001:67c:10ec:2a49:8000::b9] (unknown [IPv6:2001:67c:10ec:2a49:8000::b9]) by trammell.ch (Postfix) with ESMTPSA id D94521A1677; Fri, 10 Jun 2016 17:25:44 +0200 (CEST)
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
Content-Type: multipart/signed; boundary="Apple-Mail=_C043AD8C-B83E-4E90-A91C-60F1053A5C6C"; protocol="application/pgp-signature"; micalg="pgp-sha512"
X-Pgp-Agent: GPGMail 2.6b2
From: Brian Trammell <ietf@trammell.ch>
In-Reply-To: <CALx6S37uONysFMNJgUs430eFEUuNTMuhcYKtCPBPMs5W6godVQ@mail.gmail.com>
Date: Fri, 10 Jun 2016 17:25:44 +0200
Message-Id: <780953BA-CE7B-4B17-AB9A-27324246FB86@trammell.ch>
References: <85E24D9D-F666-49C3-A022-2F207227A153@trammell.ch> <CAD62q9UiLi1ffGPm=xEXOSH=sqZPv7hYiNBTGvAX52a9dhV8yg@mail.gmail.com> <CAD62q9U7XL8hDqY1VdzuvUvoz0Ec5DDLAS6=kaLxRExu7FY0Kg@mail.gmail.com> <86027402-2F05-4E3B-B9CD-26517A4F007C@tik.ee.ethz.ch> <A4C63A75-9D7E-430E-B986-9981FB929D46@gmail.com> <CA+9kkMBhJ2oCJ1avnGUY4NYTX0VWA_g=YoJSiLcy6u9hJnH-eA@mail.gmail.com> <57573DCF.1030402@isi.edu> <F6BE4EE1-D320-421E-9D86-2F30B2A88792@tik.ee.ethz.ch> <CALx6S35Z7iEp2F7+1PHzAe0qu9st_CNXB9GCzF278HehFiv0Qg@mail.gmail.com> <0f5628e2-a142-8d83-b427-d6b07183cb9e@isi.edu> <CALx6S35KXOioEK60p-m5tGE_H9MWbB=YhJ_sOcW0KP2vR80vvw@mail.gmail.com> <57574C38.6070402@isi.edu> <F44FFD3B-CE7E-45E8-9F04-233C56CA95A0@trammell.ch> <890FE014-D3F8-4D64-8BF8-95B3E4773075@trammell.ch> <CALx6S34jbmaV7vAxr1+-p2HW9i2oKv7Bb138MzsaP71zVh=PQw@mail.gmail.com> <76A9F36B-9C21-4268-8267-16D0D9A78834@trammell.ch> <CALx6S37uONysFMNJgUs430eFEUuNTMuhcYKtCPBPMs5W6godVQ@mail.gmail.com>
To: Tom Herbert <tom@herbertland.com>
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/spud/YQOmRv9NVlRm0Uv7Zbic1WKBpHk>
Cc: spud <spud@ietf.org>
Subject: Re: [Spud] updated draft PLUS charter, rev. 1 June
X-BeenThere: spud@ietf.org
X-Mailman-Version: 2.1.17
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: Fri, 10 Jun 2016 15:25:56 -0000

> On 10 Jun 2016, at 16:57, Tom Herbert <tom@herbertland.com> wrote:
> 
>>> This also potentially creates new attack vectors. Consider that an
>>> attacker sends a well formed PLUS packet to a server running a UDP
>>> Echo Protocol (RFC862). The server will happily reflect the data in a
>>> UDP packet so that devices in the network now thinks it sees a PLUS
>>> packets being sent from the server-- this is not correct.
>> 
>> I'll point out that the operational error here is connecting a server running Echo to the Internet; it might be that there's lots of echo running out there that people don't care about because its amplification factor is a bit crap, though. And this attack doesn't work against a PLUS that meets requirement 6.6 in the spud-req draft.
>> 
> Regardless of what we think of  Echo Server, it is a standard and it
> is legitimate to deploy it on the Internet (DOS concerns can be
> mitigated by rate limiting). Anti address spoofing does not help since
> nothing is being spoofed, all address are properly routable, without
> any sort of authentication between senders and network devices I don't
> that there is anything we can put into in the UDP payload to resolve
> this issue.

Reflecting off an echo server doesn't give you return routability.

>> I don't see how any of this is germane to the PLUS-in-UDP versus PLUS-in-DO question though.
> 
> Robustness, correctness, and security are germane to any discussion of
> a proposed protocol.

You're raising an issue with any protocol that runs over UDP in an Internet with echo servers in it, and my understanding is the arrangement you're proposing here is:

ip
 (EH for path exposure)
udp
  dtls
     (new protocols)

whereas the one I think works is:

ip
udp
  plus for path exposure
    dtls
      (new protocols)

I don't see how these are any different with respect to how they have to handle the echo server attack. What am I missing here?

>>> Note that EH does not have these issues since IP protocol numbers have
>>> global and unambiguous meaning. If an IPv6 packet contains 60 in a
>>> next header field, then that next header may always be parsed to be
>>> destination options.
>> 
>> Using DO to communicate with middleboxes is also not really all that proper -- "destination" is IMO always distinct from "path" -- but since I'm basically saying we need to add a new layer to the stack on top of UDP headers, I probably shouldn't be talking about "proper". :)
>> 
> I was not suggesting DO that was only an example of the invariant
> property that IP protocol numbers have and UDP port numbers don't.
> Hop-by-hop options are probably more appropriate for signaling to/from
> network.

My impression is that HBH options were being more or less deprecated, because they're largely unimplementable in hardware, due to unpredictable header chain lengths and header chain walking time. Am I incorrect here?

(FWIW, sticking this in UDP makes it possible to provide constant offsets when no extension headers are in use and when the superstrate uses the path MTU correctly.)

>> So, this is all well and good; a little digging in ip6(7) and sendmsg(2) seems to indicate that I can at least get and set these with the IPV6_DSTOPT socket option, at least on Linux, but the types involved are still unclear from the documentation. I still think getting this right in a cross-platform way tends to indicate an over-UDP implementation. But that's an engineering question.
>> 
> AFIACT all the major OSes (Linux, WIndows, IOS, BSDs) implement the
> APIs in RFC3542.

Good to know; this makes this idea more deployable. :)

Regards,

Brian

> The caveat is that sending of particular options by
> an unprivileged user can be restricted. As options are defined and
> shown to be safe to use by unprivileged user they can be whitelisted
> and allowed.
> 
> Tom
> 
>> Cheers,
>> 
>> Brian
>>> 
>>