Re: [OPSAWG] [Mud] Declaring something to be a controller in MUD

Eliot Lear <> Wed, 26 June 2019 10:56 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 8B20212025D; Wed, 26 Jun 2019 03:56:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id J16sFv_DR7xr; Wed, 26 Jun 2019 03:56:15 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 17BBF1200C1; Wed, 26 Jun 2019 03:56:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=6159; q=dns/txt; s=iport; t=1561546575; x=1562756175; h=from:message-id:mime-version:subject:date:in-reply-to:cc: to:references; bh=Esjp0X2zAWZKwV0qVAAaQ+JfZdloaEfdo8dv42O3MCQ=; b=VHygwCC+1kNEfQu7hTtlqPs6JAfe6WVLFbAubE7NhV/gn5UCxbb/PHDQ ny7QK0dt+ZdT92yHUGACFnmsvFIMM3B4jxMjUzrRDF7PPwMe+kPdAzJOe LEQotO8kKR6vHJHAajAhStuCCTwfslSQ3SpvQo0OP+J3yyEIbFDu9T8p7 g=;
X-Files: signature.asc : 195
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0A+AABTThNd/xbLJq1kGQEBAQEBAQE?= =?us-ascii?q?BAQEBAQcBAQEBAQGBZ4MBUQEyIQeEFYh7i18lmmcCBwEBAQkDAQEfEAEBgUu?= =?us-ascii?q?CdQKDIDgTAQMBAQQBAQIBBW2KNwyFSgEBAQMBI0kIAgMFCwsYKgICVwYTgyI?= =?us-ascii?q?BgXsPCKUtgTGFR4RgEIE0gVGHRIJggX+BEScME4IeLj6CVoR4MoImBIwBGod?= =?us-ascii?q?VWodZjXcJghiCHoEKgyiEZIg7G4MWigqKNJQIWIF3glOIDYMJAgQGBQIVgWc?= =?us-ascii?q?hgVgzGggbFWUBgkEJNYIKBReDTYpVPQMwjysBAQ?=
X-IronPort-AV: E=Sophos;i="5.63,419,1557187200"; d="asc'?scan'208";a="13612955"
Received: from (HELO ([]) by with ESMTP/TLS/DHE-RSA-SEED-SHA; 26 Jun 2019 10:56:12 +0000
Received: from [] ([]) by (8.15.2/8.15.2) with ESMTPS id x5QAuCLM011870 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 26 Jun 2019 10:56:12 GMT
From: Eliot Lear <>
Message-Id: <>
Content-Type: multipart/signed; boundary="Apple-Mail=_59B572DF-B462-4ADC-9CBB-C9EC9E0BC6C7"; protocol="application/pgp-signature"; micalg=pgp-sha1
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Wed, 26 Jun 2019 12:56:10 +0200
In-Reply-To: <1547.1561492346@localhost>
To: Michael Richardson <>
References: <> <1547.1561492346@localhost>
X-Mailer: Apple Mail (2.3445.104.11)
X-Outbound-SMTP-Client:, []
Archived-At: <>
Subject: Re: [OPSAWG] [Mud] Declaring something to be a controller in MUD
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: OPSA Working Group Mail List <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 26 Jun 2019 10:56:19 -0000

> On 25 Jun 2019, at 21:52, Michael Richardson <> wrote:
> Signed PGP part
> Eliot Lear <> wrote:
>> A few of us are just trying to put out an initial draft that addresses
>> one gap in MUD (there are several).
>> In a MUD file one can say that one
>> wants to access a controller in two ways: either "my-controller”
>> meaning a controller that services devices of a particular MUD URL or a
>> “controller” class that services devices based on a particular class
>> name of controller.
> I think that we have two potential avenues for security attacks here:
>  1) a device that claims to be a controller in order to gain access to
>     devices.
>  2) devices that claim to be belong to a controller in order to attack
>     controllers.
> To my mind there are some different things we could do:
> 1) insist that to user the my-controller connections that the two devices
>   have to be signed by the "same" entity.  ["same" could mean literal the
>   same key, the same certificate Issuer/DN,  or something more complex]
> 2) we could have devices declare in an MUD extension the
>   DN/certificate/entity which must sign their controller device.
> 3) (2) above, but with some level of indirection through some URL.

I could see these as options.

>> In either case, right now the administrator has to manually know and
>> populate information, to say - some device is a controller,
>> either for MUD URL <> or
>> a class <>.
>> That can be laborious.  To assist, we are examining ways to have a
>> controller declare itself as a candidate controller.  That at least
>> provides a hint to the administrator that this particular device is
>> capable of serving in a particular role.
> I think that anything that requires administrator activity to be a fail for
> residential use.  It's too complex.

There will ALWAYS be a need for an administrator in the enterprise case.  But maybe with the options above we can ease the consumer burden over time.  In the consumer case, you might want an app for initial device admission control anyway, no?  Can we not rely on that interaction as an approval step in this instance?

>> To make that declaration, the device must- Form the declaration; Find
>> the MUD manager; and Send it.
>> Finding the MUD manager depends on one question: Was the device built
>> to be a controller or is it a general purpose device that has an app
>> that is intended to be a controller?
>> If the device was built to be a controller, we can simply cram the
>> declaration into that devices own MUD file as an extension.  If the
>> device is a general purpose computer, things get a bit more
>> interesting.
> Yes... but I think that we have to solve the multi-purpose computer MUD
> anyway.  The intelligent speakers (Echo,Home,Mycroft,etc.) need to gain new
> MUD definitions as they gain "skills", and I think that we can treat a
> smartphone in a similar way.
> This might be a place where IPv6 wins, if we can split off each skill into a
> new provisioning domain, giving it a new IPv6 IID.  I was thinking that maybe
> we can associate the private key that signed the MUD file to the IID via
> something like SEND/CGA, but I'm not sure how many private keys we have
> (one for the app developer, or one per app installed on each device).

>> In this case we have two choices:
>> Either create a MUD file that points somewhere internally - this
>> doesn’t seem very plug and play.  Make the declaration directly to the
>> MUD manager.
>> I’m going to focus on the latter for the moment.  It is easy enough to
>> create a RESTful interface for this purpose, but it requires a
>> mechanism to discovered the MUD manager, which up until now has been an
>> internal part of the network infrastructure.
>> Let me call this out plainly: letting the app itself directly call the
>> MUD manager requires that the MUD manager itself become exposed to the
>> user infrastructure, which is a change.
> Agreed.
> And that the MUD manager have some reason to trust the device is not p0wned,
> and sending a bogus MUD file up.   A certificate chain back to the
> manufacturer is not enough, it has to be signed by a key that an attacker
> can't get access to.  So that requires attested keys if they are "local", or
> for the signature to be done elsewhere.
>> One possibility to address this is to incorporate the new RESTful
>> endpoint into an ANIMA BRSKI join registrar, which may already be
>> exposed.  But that requires that ANIMA BRSKI be in play, which it may
>> not.
> It is, however, a really good idea for the case where it is in play.
>> My thinking is that we do this work in two stages.  First handle the
>> easy case, which is the MUD file extension, and then figure out how to
>> do the app version of this.
>> Thoughts?
> yes.

Was that “yes” to the two stage approach?


> --
> Michael Richardson <>ca>, Sandelman Software Works
> -= IPv6 IoT consulting =-