Re: [babel] Comments about rfc7298bis

Juliusz Chroboczek <jch@irif.fr> Sun, 13 May 2018 13:56 UTC

Return-Path: <jch@irif.fr>
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 70760124B0A for <babel@ietfa.amsl.com>; Sun, 13 May 2018 06:56:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.501
X-Spam-Level:
X-Spam-Status: No, score=-0.501 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, RCVD_IN_DNSWL_NONE=-0.0001, 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 9XKShI_kmDzp for <babel@ietfa.amsl.com>; Sun, 13 May 2018 06:56:23 -0700 (PDT)
Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 08202124BAC for <babel@ietf.org>; Sun, 13 May 2018 06:56:22 -0700 (PDT)
Received: from potemkin.univ-paris7.fr (potemkin.univ-paris7.fr [IPv6:2001:660:3301:8000::1:1]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/75695) with ESMTP id w4DDuLTV024299 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sun, 13 May 2018 15:56:21 +0200
Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by potemkin.univ-paris7.fr (8.14.4/8.14.4/relay2/75695) with ESMTP id w4DDuMDw000429; Sun, 13 May 2018 15:56:22 +0200
Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id C8D38EB22E; Sun, 13 May 2018 15:56:20 +0200 (CEST)
X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr
Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id Y61djSb25W0r; Sun, 13 May 2018 15:56:19 +0200 (CEST)
Received: from trurl.irif.fr (unknown [78.194.40.74]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id A2411EB22D; Sun, 13 May 2018 15:56:19 +0200 (CEST)
Date: Sun, 13 May 2018 15:56:19 +0200
Message-ID: <87lgcnr75o.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: Denis Ovsienko <denis@ovsienko.info>
Cc: Babel at IETF <babel@ietf.org>
In-Reply-To: <1634e1eb3b4.e3d43e1a73477.1851831231495285395@ovsienko.info>
References: <87fu4huzgj.wl-jch@irif.fr> <1628e298460.cd82970b35329.4945272877112645380@ovsienko.info> <87muyi3eqi.wl-jch@irif.fr> <16296069fec.e13616a29759.8282754479379679955@ovsienko.info> <878ta1y8k0.wl-jch@irif.fr> <87sh7aaqpw.wl-jch@irif.fr> <16322fb2d40.b754c16418709.3274574589997739202@ovsienko.info> <87po2dzntf.wl-jch@irif.fr> <163258f779c.1272194bf35512.5113105590240148496@ovsienko.info> <8736z89zfq.wl-jch@irif.fr> <1632b79a2a7.d0dabacb43120.7322644504922173573@ovsienko.info> <87sh737dci.wl-jch@irif.fr> <1633cc005b2.fb8883bc31563.5518090263169039684@ovsienko.info> <87sh70wg5l.wl-jch@irif.fr> <1634e1eb3b4.e3d43e1a73477.1851831231495285395@ovsienko.info>
User-Agent: Wanderlust/2.15.9
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset="US-ASCII"
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]); Sun, 13 May 2018 15:56:21 +0200 (CEST)
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (potemkin.univ-paris7.fr [194.254.61.141]); Sun, 13 May 2018 15:56:22 +0200 (CEST)
X-Miltered: at korolev with ID 5AF84405.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-Miltered: at potemkin with ID 5AF84406.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 5AF84405.000 from potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/<jch@irif.fr>
X-j-chkmail-Enveloppe: 5AF84406.000 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/<jch@irif.fr>
X-j-chkmail-Score: MSGID : 5AF84405.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Score: MSGID : 5AF84406.000 on potemkin.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Status: Ham
X-j-chkmail-Status: Ham
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/zZosLM_Skt8Oen3ebCK3_RUf10A>
Subject: Re: [babel] Comments about rfc7298bis
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.22
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: Sun, 13 May 2018 13:56:25 -0000

> As far as I see after thinking about this new input for a day, the
> principal way to fix this would be to mandate that TS/PC number must be
> increasing across the lifetime of a speaker (7298-bis Section 5.1 item
> (a) goes away, item (c) becomes the recommended default, item
> (b) refines the requirements for the timestamp source).

A: Hello, Update(X), TS/PC=42

The packet is captured by C.  At this point, A and B simultaneously reboot
and loose their ANM state.

C spoofing A: Hello, Update(X), TS/PC=42

Since B has lost its ANM state, it accepts this packet as authentic, and
learns a spoofed route to X through A.  At which point, an (authentic)
Hello/IHU exchange happens:

B: Hello, TS/PC=57
A: Hello, IHU(B, TS/PC=57), TS/PC=43

B's cost to A becomes finite, and the replayed route is installed.

Note that I'm not sure that this is a serious attack -- C has managed to
get B to route through A, it has not managed to redirect traffic through
itself.

> A secondary measure would be to have a large ANMTimeout by default
> (since item (a) no longer applies) and to save ANM table across reboots,

If we assume that the ANM table is persistent, then a lot of things become
much easier.  Another solution would be to assume that all nodes have
real-time clocks, and require that TS/PC carries a timestamp that's no
more than 20 seconds in the past.

However, I think a more general fix is possible -- the attack above is due
to B accepting a (spoofed) packet from A although it has no recent ANM
state for A.

-- Juliusz