Re: [lisp] [Tsv-art] Tsvart last call review of draft-ietf-lisp-rfc6830bis-15

"Brian Trammell (IETF)" <ietf@trammell.ch> Tue, 28 August 2018 06:42 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: lisp@ietfa.amsl.com
Delivered-To: lisp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 41009130DDB; Mon, 27 Aug 2018 23:42:14 -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, RCVD_IN_DNSWL_LOW=-0.7] 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 H2pGLI8V0r57; Mon, 27 Aug 2018 23:42:12 -0700 (PDT)
Received: from gozo.iway.ch (gozo.iway.ch [212.25.24.36]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 94AC6130DEC; Mon, 27 Aug 2018 23:42:11 -0700 (PDT)
Received: from gozo.iway.ch (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id 7D4B23405A9; Tue, 28 Aug 2018 08:42:09 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by localhost (ACF/6030.3568); Tue, 28 Aug 2018 08:42:09 +0200 (CEST)
Received: from switchplus-mail.ch (switchplus-mail.ch [212.25.8.236]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gozo.iway.ch (Postfix) with ESMTPS; Tue, 28 Aug 2018 08:42:09 +0200 (CEST)
Received: from [145.14.214.39] (account ietf@trammell.ch HELO [10.11.33.5]) by switchplus-mail.ch (CommuniGate Pro SMTP 6.1.18) with ESMTPSA id 65445939; Tue, 28 Aug 2018 08:42:08 +0200
From: "Brian Trammell (IETF)" <ietf@trammell.ch>
Message-Id: <1514B576-87FD-475F-B6C5-BBA1C2CA94ED@trammell.ch>
Content-Type: multipart/signed; boundary="Apple-Mail=_31FA4454-BFE8-4349-B92D-49E7904B1D6C"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Tue, 28 Aug 2018 08:42:08 +0200
In-Reply-To: <CF5E3C7B-E492-4EE9-A2E6-A2D823C6610F@gmail.com>
Cc: draft-ietf-lisp-rfc6830bis.all@ietf.org, tsv-art@ietf.org, ietf@ietf.org, lisp@ietf.org
To: Dino Farinacci <farinacci@gmail.com>
References: <153538054829.30074.15428909912816972228@ietfa.amsl.com> <ED34F830-1FEF-42BB-BB6E-805D724AB339@gmail.com> <79FA52C8-94AC-43CE-B052-9F921A65E0D5@trammell.ch> <23680BD5-0DD3-4404-888D-D1C78A0A437D@gmail.com> <130902C2-9CEE-4931-8957-D32446723B89@trammell.ch> <CF5E3C7B-E492-4EE9-A2E6-A2D823C6610F@gmail.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/lisp/jEDTN7O0XErFhCo4mZLdYceWsNU>
Subject: Re: [lisp] [Tsv-art] Tsvart last call review of draft-ietf-lisp-rfc6830bis-15
X-BeenThere: lisp@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: List for the discussion of the Locator/ID Separation Protocol <lisp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lisp>, <mailto:lisp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lisp/>
List-Post: <mailto:lisp@ietf.org>
List-Help: <mailto:lisp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lisp>, <mailto:lisp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 Aug 2018 06:42:14 -0000

hi Dino, all,

> On 27 Aug 2018, at 23:29, Dino Farinacci <farinacci@gmail.com> wrote:
> 
>>> LISP’s data plane is a UDP tunnel, and as such there are congestion control issues that must be considered. LISP inplementors and deployers using LISP to carry a mix of traffic that is not predominantly"
>> sorry, ate an interrupt, sorry about that.
>> 
>> ... "congestion controlled itself (i.e., carried by any IETF transport) need to be aware that the ITR is ultimately responsible for not causing undue congestion, for example, using a circuit breaker.”
> 
> Well I hear you, but you know there is a lot of technology developed that uses UDP tunneling. And in this case, it isn’t used like a traditional transport whereby a node is originating traffic. In this case, a LISP router is forwarding packets just like any other IP router forwarding IP packets.

Yep. 8085 is where the we put our best current practices for doing this sort of thing, so IMO it's important for implementors to be aware of the things it says relative to tunneling.

>>> I am not sure what more we can say. There is an depth discussion about DSCP fields and how to use ECN. Basically copies the inner values to the outer header equiv values.
>> 
>> Concretely, I'd add a pointer to RFC 8085, especially section 3.1.11.
> 
> But I am not sure what supporting text we should put around the reference. Please advise.

I'd suggest inserting a new paragraph after paragraph 2 of section 5, something like:


NEW:

As LISP uses UDP encapsulation to carry traffic between ITRs and ETRs across the Internet, implementors should be aware of the provisions of [RFC8085], especially those given in section 3.1.11 on congestion control for UDP tunneling.


>>>>>> (2) This is not transport-specific. Reading the document, it struck me that the
>>>>>> design of the protocol has a few inherently unsafe features related to the fact
>>>>>> that its wire image is neither confidentiality- nor integrity-protected. I
>>>>>> think that all of the potential DDoS and traffic focusing attacks I could come
>>>>>> up with in the hour I spent reviewing the document are indeed mentioned in the
>>>>>> security considerations section, but as the security considerations section
>>>>>> does not give any practical mitigation for dataplane overload attacks, it seems
>>>>>> to be saying that RLOC addresses shouldn't be Internet-accessible, which as I
>>>>>> understand it is not the point of LISP. I haven't seen a secdir review on this
>>>>>> document yet, but I'd encourage the authors to do everything it asks.
>>>>> 
>>>>> RFC 8061 goes along with RFC6830bis. It addresses data-plane confidentiality.
>>>> 
>>>> I haven’t read 8061 yet, but I probably should before continuing this thread.
>>>> 
>>>> I will say that I’m far less concerned about LISP header confidentiality than I am about LISP header integrity, given the opportunities for on-path meddling and off-path spoofing. If the common solution to both is something like sticking everything on the ITR-ETR path in IPSec then this is less of a concern.
>>> 
>>> Well RFC8061 does AEAD on the payload. All data *after* the LISP header.
>>> The encryption is a more integrated model than IPsec, so we can be more efficient by not using extra IP headers and extra control/key exchange protocols.
>> 
>> Okay, that's all well and good. The LISP header itself isn't integrity protected, though?
> 
> It is not, unless the outer UDP checksum is used. Which we suggest to be 0 and when NATs make it non-zero, ETRs ignore it.

Ah. Okay, so two things:

(1) By "integrity protection" I mean "cryptographic integrity protection", in the sense of "preventing on-path attackers or off-path spoofers from being able to influence ITR/ETR state through crafted LISP headers to the detriment of the traffic of others". Looking over 8061, it seems to only cover confidentiality of the data-plane payload, which is extremely useful but not sufficient to prevent these attacks.

The attacks seem to be well enumerated in 6830bis, but the lack of a stated mitigation beyond "be careful" seems to suggest that the mitigation is "don't use LISP", which is of course less than desirable. I'm trying to understand whether the deployment scenarios envisioned for LISP make these attacks less likely (for instance, because the ITR/ETR path itself is generally cryptographically protected with its own outer tunnel), or whether this is something that this document (or a future companion to 8061) needs to worry about.

(2) Checksums provide what I'd call "corruption protection". On "setting the outer UDP checksum to zero", please be aware that this may have undesirable interactions with IPv6 headers; see also section 3.4 (Checksum Guidelines) of 8085.

Thanks, cheers,

Brian