Re: [babel] Benjamin Kaduk's Discuss on draft-ietf-babel-dtls-07: (with DISCUSS and COMMENT)

David Schinazi <dschinazi.ietf@gmail.com> Mon, 12 August 2019 22:29 UTC

Return-Path: <dschinazi.ietf@gmail.com>
X-Original-To: babel@ietfa.amsl.com
Delivered-To: babel@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EF4CC1213B8; Mon, 12 Aug 2019 15:29:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 sQ5ckUpZ2kCY; Mon, 12 Aug 2019 15:29:13 -0700 (PDT)
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) (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 EBF50120C68; Mon, 12 Aug 2019 12:32:07 -0700 (PDT)
Received: by mail-lf1-x133.google.com with SMTP id a30so11973878lfk.12; Mon, 12 Aug 2019 12:32:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=xwpomQLth7TCDOm4vG9zvJyx7ljYZ3BH4K7YZgfOn7s=; b=Z0mw1dkTidmXyONzMdDtlr6nEB/r1ykSGZc8aZbcY4VR8qGXaScrGDeomNvJxrFpPJ bc5QDJr/Ry3o5wVvBwToEvRTQE2spys3N6C7MmV/ZPYFtDs4BlFFIIoxfLSLNkqx8ksq tF2OUVtNN5Mr/2vK1vYVUvRGM8okVp7lMKkQASW/rehNeU02Lxp7UhMz4KtJzh+p4KrG xUGgm3mCwa2QW5Fir25o6dsmfbj/OSP3cj/9M4uHX2SKW+lI/MNeU0102JJDOVfUdoqJ dcxih8o0Lq3AdM+bE+nFt01lHFsXRdIn5S9/MxKArgHRTgV3k/EV/QD2gmek4cBcGelB rRpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xwpomQLth7TCDOm4vG9zvJyx7ljYZ3BH4K7YZgfOn7s=; b=aLwWVRqIY7dpCtbXOT3FzUrmmHvjTmGcz69rCd+orjvKESbgg1bOHRHUZmJA9Cwc1Y L6ycUNQO6QKrUBWfXnVJZOVHW67Fpp3Hgmv8iPAqtixS4Ak/UoeoRrINoDKXspbQtJBW HiEEaijIPTq5z/9QFt19oOxZBTU99IM6HutPQZ64YtGNiQQCVysgGAp9T+gNY2YAT/3p Juro87hr/DoY9ztiwgVJAsI9RkK44UNdkdFhz89ba4lp3+grO9aVdt2WE9BmWb+sJa7D IElyJQJ1Mq4bIayHeMjwRku3T0edNtPYu9kNWBuFKgvn6/z70ahS0oCzLLZPEGOD0FBE exNw==
X-Gm-Message-State: APjAAAVah0WW3lKyy04q1nGQBEH4/L52t7cz5Gfql1aYqjy5VU8RCPU8 DySEuI3g7YHHL873aGQqc2vEPyw8TGNCI7SK11o=
X-Google-Smtp-Source: APXvYqzn5jNP/oPY/1DwAQnFPYbZMQRDYS3qbiWsdIUIUdX/s4D7zIHzI6Om3oYb8DUM5niOKz+FdfQxqzgP9cx4i48=
X-Received: by 2002:a19:ed0f:: with SMTP id y15mr21292854lfy.148.1565638325916; Mon, 12 Aug 2019 12:32:05 -0700 (PDT)
MIME-Version: 1.0
References: <156521337799.8333.13258734665763149206.idtracker@ietfa.amsl.com> <CAPDSy+7ySSn2zGLwd0qsq-FzOHgBbZWmJSBatgBBn6D2TFK00A@mail.gmail.com> <20190810025515.GA48324@kduck.mit.edu>
In-Reply-To: <20190810025515.GA48324@kduck.mit.edu>
From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Mon, 12 Aug 2019 12:31:54 -0700
Message-ID: <CAPDSy+67i6X2f7y84PRs1viBP8r65hY1RtPF7Ei7eiG_T_UpRg@mail.gmail.com>
To: Benjamin Kaduk <kaduk@mit.edu>
Cc: The IESG <iesg@ietf.org>, draft-ietf-babel-dtls@ietf.org, Donald Eastlake <d3e3e3@gmail.com>, babel-chairs <babel-chairs@ietf.org>, Babel at IETF <babel@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000043577f058ff0943f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/4aGrWQnuu3QQ0tsAWUaV-Wrbyxc>
Subject: Re: [babel] Benjamin Kaduk's Discuss on draft-ietf-babel-dtls-07: (with DISCUSS and COMMENT)
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "A list for discussion of the Babel Routing Protocol." <babel.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/babel>, <mailto:babel-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/babel/>
List-Post: <mailto:babel@ietf.org>
List-Help: <mailto:babel-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/babel>, <mailto:babel-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Aug 2019 22:29:19 -0000

Thanks Ben! I've incorporated these comments in the following commit:
https://github.com/jech/babel-drafts/commit/458a9ae6b9b136122d8668b26ba403f4f3a57167

We'll submit an updated draft after this round of comments.

Detailed responses inline.

Thanks,
David



> > Our intent in this document was to leave the complex question of identity
> > to deployment profiles. For example, the homenet working group is
> interested
>
> It would be a fine thing to say explicitly that the details of identity and
> authentication are left to specific profiles.
>

Added the following paragraph to the Applicability section:
    DTLS supports several mechanisms by which nodes can identify
    themselves and prove possession of secrets tied to these identities.
    This document does not prescribe which of these mechanisms
    to use; details of identity management are left to deployment
    profiles of Babel over DTLS.


> > We already have this text in section 2.1:
> >     Nodes MUST use DTLS replay protection to prevent attackers
> >     from replaying stale information.
> > Is there something we should add to that?
>
> I did see that text in 2.1, which is why this comment was less strongly
> worded.  I am interpreting the text I quoted as a description of what
> functionality DTLS does and can provide, and in that context, DTLS provides
> optional replay protection.  If your implementation doesn't offer it, or
> you don't turn it on; you're not protected.  It seems like it would
> misconstrue things to imply that DTLS always provides replay protection,
> since that's not the case!
>

Makes sense. Changed "replay protection" to "optional replay protection".


> > > I see the text about use of multicast Hellos for discovery and the
> > > acknowledgment that an out-of-band neighbor discovery mechanism may be
> > > available.  Are there any such discovery mechanism under development?
> > >
> >
> > There aren't, at least not as standards. This text is there to
> accommodate
> > implementations/deployments that already have a non-standard out-of-band
> > discovery mechanism.
>
> "standard" is a touchy term here in the IETF :)  But I take it there are no
> published drafts or similar, either, in which case there's not anything we
> can make an informative reference to, which is what I was really getting
> at.
>

Fair enough, by "standard" I meant "being openly discussed in a
standardization organization". The only existing out-of-band discovery
mechanism that was discussed was proprietary and has nothing we
can link to.


> > > Section 2.5
> > >
> > > Do we want to talk about the potential consequences of an attacker
> > > arbitrarily delaying valid content (to justify the need for a timeout)?
> > >
> >
> > The section currently states:
> >     This attack could be used to make a node believe it has bidirectional
> >     reachability to a neighbour even though that neighbour has
> disconnected
> >     from the network.
> > What more did you have in mind?
>
> Well, I hadn't thought it through fully.  But would it be possible to delay
> distribution of metric updates, leading to the victim selecting an
> alternate path than it would have otherwise (whether to cause performance
> degredation or make the data-plan traffic go through a place that's easier
> to attack, or otherwise)?  It seems that the need for liveness detection
> would place time bounds on such an attack unless the attacker can
> selectively drop DTLS datagrams and there are Hellos not piggybacked on the
> traffic that is targeted.  I forget how much tolerance for such drastic
> reordering there would be.
>

That's fair. We've added the following text:
    Additionally, an attacker could save some packets and replay them
    later in hopes of propagating stale routing information at a later time.
    To mitigate this, nodes MUST discard received packets that have
    been reordered by more than one IHU interval.


> > > Section 3
> > >
> > >    IP, UDP and DTLS.  Nodes MUST NOT send Babel packets larger than the
> > >    attached interface's MTU adjusted for known lower-layer headers (at
> > >    least UDP and IP) or 512 octets, whichever is larger, but not
> > >    exceeding 2^16 - 1 adjusted for lower-layer headers.  Every Babel
> > >    speaker MUST be able to receive packets that are as large as any
> > >
> > > Aren't these requirements just duplicating what's in 6126bis?  We
> > > probably don't need to repeat the normative language, at least, even if
> > > there's a desire to repeat the content.
> > >
> >
> > These requirements mimic the ones in 6126bis, but with the addition of
> DTLS
> > in the list of underlying layers that add overhead. This section
> references
> > the
> > appropriate section in 6126bis so readers can compare them if need be.
>
> I carefully trimmed the sentences that actually mentioned DTLS; "adjusted
> for known lower-layer headers" is the key phrase (happens twice) that I
> thought was used unchanged.  (But I didn't do a word-by-word comparison.)
>

That sentence is the same in both documents, but "known lower-layer
headers" doesn't mean the same thing in both, since we now have
the DTLS layer. I'm not coming up with an easy way to convey this
without repeating at least some parts of the text in 6126bis.


> > I'm not sure I understand, are you saying there is a difference between
> > the terms "overhead per packet" and "per-packet overhead" ?
>
> "different amounts of overhead per packet" implies something whose
> magnitude varies on a packet-by-packet basis, potentially drastically so,
> whereas "different amounts of per-packet overhead" is more of a fixed
> (potentially range) of overhead across all packets in question.  (And yes,
> I know that CBC padding can fall into the former!)
>

Thanks for the clarification, changed to "per-packet overhead".