Re: [Spud] related draft in TSVWG

Joe Touch <touch@isi.edu> Mon, 27 June 2016 23:41 UTC

Return-Path: <touch@isi.edu>
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 E461312DA89 for <spud@ietfa.amsl.com>; Mon, 27 Jun 2016 16:41:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.326
X-Spam-Level:
X-Spam-Status: No, score=-8.326 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-1.426] 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 og00oLpMqFe4 for <spud@ietfa.amsl.com>; Mon, 27 Jun 2016 16:41:00 -0700 (PDT)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) (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 229D312D9EB for <spud@ietf.org>; Mon, 27 Jun 2016 16:41:00 -0700 (PDT)
Received: from [128.9.184.182] ([128.9.184.182]) (authenticated bits=0) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id u5RNdjxp017864 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Mon, 27 Jun 2016 16:39:46 -0700 (PDT)
To: Tom Herbert <tom@herbertland.com>
References: <57719746.6030304@isi.edu> <CALx6S34KiyVHs74TWhM=meypbB7BWkeJD-t_P76ZtkRY3Y+LXg@mail.gmail.com> <5771B2E9.6030304@isi.edu> <CALx6S37Y4U7ueDaZDdXyrSWvMF=TR6qZK18qS_XWGQ6caD3A=w@mail.gmail.com>
From: Joe Touch <touch@isi.edu>
Message-ID: <5771B940.50003@isi.edu>
Date: Mon, 27 Jun 2016 16:39:44 -0700
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2
MIME-Version: 1.0
In-Reply-To: <CALx6S37Y4U7ueDaZDdXyrSWvMF=TR6qZK18qS_XWGQ6caD3A=w@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: <https://mailarchive.ietf.org/arch/msg/spud/qlPg7yDAi6_G-Wz8GS1jrznhTHw>
Cc: Aaron Falk <aaron.falk@gmail.com>, Natasha Rooney <nrooney@gsma.com>, spud <spud@ietf.org>
Subject: Re: [Spud] related draft in TSVWG
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: Mon, 27 Jun 2016 23:41:02 -0000


On 6/27/2016 4:34 PM, Tom Herbert wrote:
>> First, yes, if this were a strict requirement, than UDP implementations
>> would discard UDP segments that were smaller than the IP payload -- in
>> practice, they don't.
>>
> I would not be at all surprised if there are middle boxes that either
> drop such packets or truncate them to UDP length in the name of
> security.
We haven't done exhaustive tests, but so far we've seen good behavior.

>> The good news is that there are no known specs (at least none I've heard
>> of yet or know of otherwise) that use this trick except:
>>
>> a) UDP-lite, which uses a different transport protocol number and has
>> different semantics
>>     in UDP-lite, the entire IP payload is treated as the UDP payload,
>> which isn't compatible with RFC768
>>
>>     i.e., it basically delivers both what UDP considers the payload AND
>> the extended area to the app layer
>>
>> b) there's a defensive patent that talks about this, which we already
>> know about but AFAIK never got beyond the though level
>>
>>     (it's the typical patent with permissions compatible with IETF
>> standards, again AFAIK)
>>
>> This does appear to be the first system that will spec this out. We do
>> include the new OCS (option checksum), which might help avoid accidental
>> ambiguous use (I.e., UDP OCS ought to help avoid processing these other
>> uses as UDP checksum).
>>
> You might want to look at magic numbers for this purpose also.

A checksum is just a dynamic, context-sensitive magic number. There's a
lot lower chance of a checksum being correct in a random sequence than a
magic number.

> Unfortunately, similar to the idea of putting bits in UDP payload for
> interpretation in the network, protocol correctness in this method is
> only probabilistic. That is the best we could achieve is 99.999..%
> correctness, not 100%.
That's true for everything. Anyone could have deployed an unassigned TCP
option number in an unknown way too.

>
>> We can add text to address this issue, though we would appreciate also
>> knowing if anyone is aware of existing uses other than the two above.
>>
> Probably should also expressly forbid the network to modify options in
> flight, that is where things get really scary in the above ambiguous
> identification problem.
Oh, yes. FYI, the OCS is just over the option space, not over the UDP
payload, UDP header, or IP pseudoheader.

Joe