Re: [tsvwg] Regarding DTLS and UDP options

Joe Touch <touch@isi.edu> Tue, 18 April 2017 18:36 UTC

Return-Path: <touch@isi.edu>
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 C56D81293DA for <tsvwg@ietfa.amsl.com>; Tue, 18 Apr 2017 11:36:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-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 dAOZoraa0KhN for <tsvwg@ietfa.amsl.com>; Tue, 18 Apr 2017 11:36:56 -0700 (PDT)
Received: from nitro.isi.edu (nitro.isi.edu [128.9.208.207]) (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 C514312FC17 for <tsvwg@ietf.org>; Tue, 18 Apr 2017 11:36:56 -0700 (PDT)
Received: from [128.9.184.37] ([128.9.184.37]) (authenticated bits=0) by nitro.isi.edu (8.13.8/8.13.8) with ESMTP id v3IIaFBr005513 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 18 Apr 2017 11:36:15 -0700 (PDT)
To: Tom Herbert <tom@herbertland.com>
References: <CACL_3VFeJs7KzG9Bchh15bfZ3CmaOPWcfisEreNoGYK5CsEJ+g@mail.gmail.com> <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> <CALx6S35N5WYvPHzTNo+trUecGgFPWv+xyXu4uampijc2w=DoSw@mail.gmail.com> <cf24acdf-002c-f6ed-de20-d1193ea229a3@isi.edu> <CALx6S349mwFhZ6-2tmLjPLPz4YcX6efoZckRiEPW3y4A3nKKjA@mail.gmail.com>
Cc: "gorry@erg.abdn.ac.uk" <gorry@erg.abdn.ac.uk>, tsvwg <tsvwg@ietf.org>
From: Joe Touch <touch@isi.edu>
Message-ID: <a8a1a2db-52e0-85e0-2be5-4baff1d86222@isi.edu>
Date: Tue, 18 Apr 2017 11:36:15 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <CALx6S349mwFhZ6-2tmLjPLPz4YcX6efoZckRiEPW3y4A3nKKjA@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-MailScanner-ID: v3IIaFBr005513
X-ISI-4-69-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/Ehr0EjkmcFXK2pRdjwYRbcDTTEI>
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 18:36:58 -0000


On 4/18/2017 11:16 AM, Tom Herbert wrote:
>> UDP packets and TCP packets can already be forged.
>>
>> If that's your concern, you need to use true transport-layer or network
>> layer security.
>>
> 1) Yes, that is my concern. UDP is already dicey in terms of security,
> the risks introduced with these extensions needs to be thoroughly
> vetted before I'd ever deploy in my network
Do you feel the same about new TCP options?

> 2) It can't be a requirement to turn up security everywhere just to
> use UDP options
It isn't for new TCP options either, though.

> 3) My example is a contrived attack against the new protocol that
> might be deployed, the mitigations to defend such an attack should be
> part of the protocol not deferred to some other layer
The protocol extension already includes OCS and AE for that reason,
though there's no way that UDP can protect the entire IP header too
(that's what IPsec is designed for).

>
>> And endpoints can claim conformance all they want; forged packets are
>> already noncompliant. No protocol is robust to forged packets except
>> those that support authentication or encryption.
>>
> That's misses the crux of my argument. In my example, an attacker
> forged a packet with can be "correctly" interpreted as either fragment
> or a non-fragment. Which interpretation depends on the node that
> processes it (sort of a Copenhagen Interpretation for network
> protocols I suppose :-) ). But a packet cannot simultaneously be a
> fragment and a not fragment, that is nonsensical (packets don't have
> duality in this instance). This must be considered an error condition.
The solution to your  example would be for the protocol to allow only
the hidden FRAG mechanism. Right now that's optional.

However, note that forged packet can add a new extension that has two
effects - one for upgraded endpoints, one for legacy - already. In TCP.

The solution to *that* ambiguity is to confirm new options before using
them and use them only when confirmed - as noted in Section 10.

> This ambiguity does not occur in IP or IPv6 and has been introduced by
> the protocol specification not incorrect implementation. 
It occurs the same way you could forge a new IP option that is accepted
or ignored, depending on the endpoint support.

> It's unlikely
> in practice that this would cause problems, however, as I mentioned
> above, if this can be exploited as a security vulnerability that will
> be a concern of mine.
>
> I thought a one point there was the idea that the UDP checksum would
> be incorrect so that in the case I describe above a fragment would be
> dropped and not misinterpreted by a node that doesn't support
> fragments. Is there a reason that wouldn't work?

I'm not sure - again, I think your concerns about misinterpreting the
data are addressed by allowing only FRAG as LITE.

But I'm not sure I understand the example.

Consider that if I can forge a FRAG, I can forge an entire UDP packet. I
don't need anything new to have this vulnerability.

Joe