Re: [babel] [Babel-users] key rotation take #2

Toke Høiland-Jørgensen <> Wed, 28 November 2018 20:23 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 72926130E23 for <>; Wed, 28 Nov 2018 12:23:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id m6NXEQl57Dyf for <>; Wed, 28 Nov 2018 12:23:49 -0800 (PST)
Received: from ( [IPv6:2001:470:dc45:1000::1]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 3F821130FDB for <>; Wed, 28 Nov 2018 12:23:49 -0800 (PST)
From: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= <>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=20161023; t=1543436627; bh=cOi2axPton/Bs0pi238bKeYMljULjk6+Ux5i6hhKiiE=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=sNODZxf9D4+XZ2I3okNseWoa33//0Y8wjjpBhFJ03rkIZedt/fmiMj/HlD0EYFnyI kdl4OCqnhj5gALdtvh7uDMUr8hpDVy2cofk1LXxg4NtvFq/jCf8+mFSiQxT0b1jPmI OW3ObdsY4rPTSE6jhaR1s+IUbFCu+7vSywRGsLrFFeAj4P06klcPzqk4QdmrR36p+D kHHYphxbI8i3vnBsZjJRQohEKYA1XaWOivdAFMisacuGA4PrRvX9Lki0r6gJiFtaV4 wp6dO9eyQrKFxXgtyNqefL6jZ9BKNncYMVanjQU2rrNf5WcesJVtNxq8vH8LYJbfrj xkLjZmokJGCyQ==
To: Dave Taht <>
In-Reply-To: <>
References: <> <> <>
Date: Wed, 28 Nov 2018 21:23:46 +0100
X-Clacks-Overhead: GNU Terry Pratchett
Message-ID: <>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <>
Subject: Re: [babel] [Babel-users] key rotation take #2
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "A list for discussion of the Babel Routing Protocol." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 28 Nov 2018 20:23:51 -0000

Dave Taht <> writes:

> Toke Høiland-Jørgensen <> writes:
>> Dave Taht <> writes:
>>> so we invent a new keyword "serial".
>> So what you're trying to express here is the notion of a "receive-only"
>> key that is not used for signing outgoing packets, right?
> No... the old key is retired from active use in the protocol after
> concensus is achieved on the new key by the protocol, and not used
> again unless a router comes up with an unreadable hmac. In that case
> we go back to at least trying to verify (periodically?) that it's not
> using the old key (if we still have it around) and if it's using the
> old key, we go back to signing stuff with that key.
> Does that concept need to be in the protocol spec?

This reads to me like a specific operational procedure for deployment;
don't think that should go into the spec, no.

>> it would be better to express that explicitly as a property of the key
>> config that can be changed on a per-key basis. For one thing, 'serial'
>> is misleading as it sounds like something that affects the wire
>> format,
> OK. how about "new" and "old" as keywords? That implies two states and
> two states only. I liked 0 and X as numbers, so long as the ascending
> property is maintained. As for why not 0 and 1, see below.
> Totally open to bikeshedding the name. :) babeltowerno?

Don't care what they are called. My point is just that it's a property
of a particular key.

Bird already has this, BTW: each key can be set to "generate" signatures
and "accept" signatures, where the former puts them on the wire, and the
latter will accept packets signed with that key. You can set time ranges
for each or both. See (search for
"password option"). The Babel HMAC implementation inherits this.