Subject: Genart telechat review of draft-ietf-opsawg-mud-20

From: Robert Sparks <[email-masked]>
Date: Mon, 09 Apr 2018 10:57:55 -0700

Reviewer: Robert Sparks
Review result: Ready with Issues

I am the assigned Gen-ART reviewer for this draft. The General Area
Review Team (Gen-ART) reviews all IETF documents being processed
by the IESG for the IETF Chair. Please wait for direction from your
document shepherd or AD before posting a new version of the draft.

For more information, please see the FAQ at

<https://trac.ietf.org/trac/gen/wiki/GenArtfaq>.

Document: draft-ietf-opsawg-mud-20
Reviewer: Robert Sparks
Review Date: 2018-04-09
IETF LC End Date: 2017-11-07
IESG Telechat date: 2018-04-19

Summary: Almost ready but with minor issues to address before publication as a
standards track RFC 

Minor issues:

Section 3.15 is confused, and I don't think you'll get the implementation you
intend with the MUST in the current language. direction-indicated is not a
flag. The text about dropping should talk about matching the direction that was
indicated.

The quoted issues below are from my early review of -08. I don't think they've
been addressed or responded to. Apologies if I missed a response.

> The document proposes "reputation services". It needs more words about
> whether those exist, and what scopes the architecture imagines (an
> enterprise might have a different idea of a reputation service than a
> residence). There is a notion of "decent web reputations" in the security
> considerations section. Who determines that? The security considerations
> section should talk about attacks against the reputation services.

> I think there needs to be more discussion of the PKI used for signing MUD
> files.
 
> Consider discussing whether the stacks used by typical things will let
> them add DHCP options (or include bits in the other protocols being 
> enabled). If it's well known (I can't say) that these stacks typically
> _won't_ provide that functionality, then you should punch up the
> discussion of the controllers mapping other identifiers to MUD URLs on
> behalf of the thing.
 
> You suggest the DHCP Client (which is a thing) SHOULD log or report 
> improper acknowledgments from servers. That's asking a bit much from
> a thing. I suspect the requirement is unrealistic and should be removed
> or rewritten to acknowledge that things typically won't do that.
 
> The security and deployment considerations sections talk about what the
> need for coordination if control over the domain name used in the URL
> changes. It should talk more about what happens if the new administration
> of the domain is not interested in facilitating a transition (consider
> the case of a young company with a few thousand start-up-ish things out
> there that loses a suit over its name). Please discuss whether or not
> suddenly losing the MUD assisted network configuration is expected to
> leave the devices effectively cut-off. 
 
> Right now, you leave the DHCP server (when it's used) responsible for
> clearing state in the MUD controller. Please discuss what happens when
> those are distinct elements (as you have in the end of section 9.2) and
> the DHCP server reboots. Perhaps it would make sense for the DHCP server
> to hand the length of the lease it has granted to the MUD controller and
> let the MUD controller clean up on its own?
 
Nits:

There is tension between the paragraph in the introduction that characterizes
the manufacturer as the entity that provides the mud file and the third bullet
in the intent list about speeding vulnerability resolution for devices that
are no longer supported by the manufacturer (you intend here that someone other
than the original manufacturer or integrator is providing a new mud file).

Instead of "A light bulb is intended to light a room.", I suggest 
"A light bulb is intended to light a given space." (There are lightbulbs
meant for outdoor use, and others for only inside cabinets or appliances.)

Instead of "We make use of YANG because of the time and effort spent to develop
accurate..." I suggest "We make use of YANG because it provides accurate..."

At the end of section 1.7, instead of "For these reasons only a limited subset
YANG-based configuration is permitted in a MUD file.", I suggest "For these
reasons, the YANG-based configuration in a MUD file is limited to the YANG
modules defined in this document." or something similar.

In section 3.6, the parenthesized clause does not belong in the sentence in 
which it currently appears. I suggest it belongs somewhere in the previous
sentence.

In section 3.13 you talk about classes that are standardized. Where does 
someone find out about standardized classes?

Micro-nits:

"Our work begins with" in section 1.5 is awkward and I suspect will cause
problems if this document is translated into other languages.

At "======= The MUD URL identifies" in section 5, I suggest deleting the =
signs.

Please provide a reference or better description for "so-called east-west
infection""

The string "enorcement" appears a couple of times in the models. It is intended
to be "enforcement".

---

From: Eliot Lear <[email-masked]>
Date: Tue, 10 Apr 2018 12:43:35 +0200

Hi Robert and thanks again for the review.  Please see below for
responses.  These are my personal views.  The WG chairs / shepherds may
have different opinions.

> flag. The text about dropping should talk about matching the direction that was

Having reread this section (and perhaps I am a bit too close to the
text), perhaps it is a bit confused.  How about something along the
following lines:

3.15.  direction-initiated

   When applied this matches the direction in which a TCP connection is
   initiated.  When direction initiated is "from-device", packets that are
   transmitted in the direction of a thing MUST be dropped unless the thing
   has first initiated a TCP connection.  This node may be implemented in
   its simplest form by looking at naked SYN bits, but may also be
implemented
   through more stateful mechanisms.
 
  [RFC6092] specifies IPv6 guidance best
   practices.  While that document is scoped specifically to IPv6, its
   contents are applicable for IPv4 as well. 

Better?

>> I think there needs to be more discussion of the PKI used for signing MUD

While this section is admittedly a bit vague, we need some operational
experience to develop the appropriate use of PKI as an anchor for
reputations.  This having been said, if you have a specific proposal for
text, I'd be interested in what you have to say.

>> discussion of the controllers mapping other identifiers to MUD URLs on

We did indeed add some text about this, almost verbatim to what you have
above (I think at your suggestion).  This can be found in the
introduction toward the bottom of page 9.

>> or rewritten to acknowledge that things typically won't do that.

I propose to delete that paragraph to match that we do not wish DHCP
servers to modify their state.  This would address your concern (also
see below).

>> leave the devices effectively cut-off. 

The example you are talking about is a subset of what happens if the
file simply doesn't exist.  At worst, one is left in a situation no
worse than we are today: that is, someone will have to manually decide
policy, or apply a default policy.  This particular text is the subject
of separate piece of work that Thorsten Dahm and Steve Rich are
considering, and it is also the subject of some ongoing research.  That
is to say: we might be able to do better in the future when we have some
operational experience.

>> let the MUD controller clean up on its own?

Ok, two issues:

 1. There was some text that should have been removed, referring to the
    DHCP server returning the MUD-URL as part of state.  With everyone's
    permission, I propose to remove that text.  No additional DHCP
    server state should be required to implement this option.
 2. I agree that we could be a bit more descriptive about what would
    happen if a reboot of the DHCP server.  I also like your idea about
    mentioning the lease time to the MUD controller.  With that in mind,
    how about the following text:

With that in mind, I propose the following edit:

DHCP servers may implement MUD functionality themselves or they may
pass along appropriate information to a network management system or
MUD controller.  A DHCP server that does process the MUD URL MUST adhere
to the process specified in {{RFC2818}} and {{RFC5280}} to validate
the TLS certificate of the web server hosting the MUD file.  Those
servers will retrieve the file, process it, create and install the
necessary configuration on the relevant network element.  Servers
SHOULD monitor the gateway for state changes on a given interface.  A
DHCP server that does not provide MUD functionality and has forwarded
a MUD URL to a MUD controller MUST notify the MUD controller
of any corresponding change to the DHCP state of the client
(such as expiration or explicit release of a network address lease).

Should the DHCP server fail, in the case when it implements the MUD
controller functionality, any backup mechanisms SHOULD include the MUD
state, and the server SHOULD resolve the status of clients upon its
restart, similar to what it would do, absent MUD controller
functionality.  In the case where the DHCP server forwards information
to the MUD controller, the MUD controller will either make use of
redundant DHCP servers for information, or otherwise clear state based
on other network information, such as monitoring port status on a
switch via SNMP, Radius accounting, or similar mechanisms.

> than the original manufacturer or integrator is providing a new mud file).

Perhaps this is best fixed by dropping the phrase "by the manufacturer"?

> meant for outdoor use, and others for only inside cabinets or appliances.)

Ok.

> accurate..." I suggest "We make use of YANG because it provides accurate..."

Ok.
> modules defined in this document." or something similar.
s/defined/specified/ but otherwise ok.

> which it currently appears. I suggest it belongs somewhere in the previous

I've removed it and rewritten as follows:

The intent is for administrators to be able to see a
brief displayable description of the Thing.

> someone find out about standardized classes?

They're described in the document
> problems if this document is translated into other languages.

If you *know* this to be a problem, I will make a change.

> At "======= The MUD URL identifies" in section 5, I suggest deleting the =

I believe this is corrected.
> Please provide a reference or better description for "so-called east-west

I'll change this to "lateral infection (infection of devices that reside
near one another)".
> The string "enorcement" appears a couple of times in the models. It is intended
Thanks for catching these.

---

From: Robert Sparks <[email-masked]>
Date: Tue, 10 Apr 2018 09:22:53 -0500

On 4/10/18 5:43 AM, Eliot Lear wrote:
> responses.  These are my personal views.  The WG chairs / shepherds 
> may have different opinions.
>
Thank you for the very quick response!
>    contents are applicable for IPv4 as well.
wfm
> reputations.  This having been said, if you have a specific proposal 
> for text, I'd be interested in what you have to say.
Do you envision enterprises or manufacturers creating a new set of 
anchors of trust, or are you hoping to reuse the web PKI or something 
else? If you don't know and all of these are on the table, mentioning it 
would help implementers avoid assumptions that could hinder deployment.
> We did indeed add some text about this, almost verbatim to what you 
> have above (I think at your suggestion).  This can be found in the 
I'm not seeing it in -20. Maybe its in your working copy but not issued 
yet, or 9 above isn't where you meant to point? I did a quick search for 
DHCP through the document and didn't spot the discussion. Apologies if 
I'm just missing it.

> servers to modify their state.  This would address your concern (also 
ack
> policy, or apply a default policy.  This particular text is the 
> subject of separate piece of work that Thorsten Dahm and Steve Rich 
> are considering, and it is also the subject of some ongoing research.  
> That is to say: we might be able to do better in the future when we 
> have some operational experience.
OK. I suppose the detail I was hoping to see was some insight into 
recovery (how my hypothetical company above could start providing new 
MUD files that the existing devices would be convinced to use). I'll 
accept that is "future work".
>  1. There was some text that should have been removed, referring to
>     the DHCP server returning the MUD-URL as part of state. With
>     everyone's permission, I propose to remove that text.  No
>     additional DHCP server state should be required to implement this
>     option.
>     happen if a reboot of the DHCP server.  I also like your idea
>     about mentioning the lease time to the MUD controller. With that
>     in mind, how about the following text:
>
>
wfm - thanks
> Perhaps this is best fixed by dropping the phrase "by the manufacturer"?
ok
> brief displayable description of the Thing.
ok
> They're described in the document
Ah. maybe in 3.13 you could say "classes standardized by this document 
or future RFCs"?

> If you *know* this to be a problem, I will make a change.
I can't demonstrate a problem.

> I'll change this to "lateral infection (infection of devices that 
> reside near one another)".
ok
> Thanks for catching these.
And thank you again for the quick response.

---

From: Joe Clarke <[email-masked]>
Date: Tue, 10 Apr 2018 16:31:42 -0400

> switch via SNMP, Radius accounting, or similar mechanisms.

Robert says this text works for him, and it does address the comments,
but I wonder if it's getting too far afield where at this point you're
re-describing a MUD controller as a software feature of DHCP?  That is,
do we really need to call out that a DHCP server can _also_ be a MUD
controller?  They may be co-resident on the same server, they may be in
the same process space.  Does it matter?

It seems to me, the most valuable part of this text is the in the second
paragraph where the DHCP state's impact on the MUD controller (where
ever that is) is described.

Joe

---

From: Eliot Lear <[email-masked]>
Date: Wed, 11 Apr 2018 08:35:18 +0200

Hi Robert,

A few additional comments below:

On 10.04.18 16:22, Robert Sparks wrote:
>> While this section is admittedly a bit vague, we need some
>> operational experience to develop the appropriate use of PKI as an
>> anchor for reputations.  This having been said, if you have a
>> specific proposal for text, I'd be interested in what you have to say.
> else? If you don't know and all of these are on the table, mentioning
> it would help implementers avoid assumptions that could hinder deployment.

Thanks for the guidance.   In fact I think we need to more clearly
specify the signature in terms of the purpose.  The tools (openssl)
support S/MIME signing easily enough for CMS.  I think this is what we
want, and it implies that we are *not* using the webpki, but instead
just getting an S/MIME certificate.  This implies that the signers will
have to be "admitted" on first sight.  Would that work for you?

Also see below.

> I'm not seeing it in -20. Maybe its in your working copy but not
> issued yet, or 9 above isn't where you meant to point? I did a quick
> search for DHCP through the document and didn't spot the discussion.
> Apologies if I'm just missing it.

Actually it's in two places.  See where we say in Section 1.5:

   It is possible that there may be other means for a MUD URL to be
   learned by a network.  For instance, some devices may already be
   fielded or have very limited ability to communicate a MUD URL, and
   yet can be identified through some means, such as a serial number or
   a public key.  In these cases, manufacturers may be able to map those
   identifiers to particular MUD URLs (or even the files themselves).
   Similarly, there may be alternative resolution mechanisms available
   for situations where Internet connectivity is limited or does not
   exist.  Such mechanisms are not described in this memo, but are
   possible.  Implementors should allow for this sort of flexibility of
   how MUD URLs may be learned.

Elsewhere we say:

   If a MUD controller is not able to fetch a MUD URL, other means MAY
   be used to import MUD files and associated signature files.  So long
   as the signature of the file can be validated, the file can be used.
   In such environments, controllers SHOULD warn administrators when
   cache-validity expiry is approaching so that they may check for new
   files.

So I'm hoping between the two we have you covered ;-).

More below.

>> worse than we are today: that is, someone will have to manually
>> decide policy, or apply a default policy.  This particular text is
>> the subject of separate piece of work that Thorsten Dahm and Steve
>> Rich are considering, and it is also the subject of some ongoing
>> research.  That is to say: we might be able to do better in the
>> future when we have some operational experience.

Ok,
>> s/defined/specified/ but otherwise ok.

Just one clarification- this text needed to be wordsmithed a little bit
more.  Keep in mind that the ACL model is supported as discussed in the
draft.

> Ah. maybe in 3.13 you could say "classes standardized by this document

Ahh!  ok.  I see the confusion.  I think an example may be appropriate
here (we are literally getting a lot of operational experience with this
day by day now).

Suppose you have a manufacturer X who has products P, D, and Q.  They
each want to talk to the same controller or group of controllers.  Use
of "my-controller" may invoke a process on a MUD controller that
requires that the administrator populate the class for each device P, D,
and Q.  Whereas with use of a controller class, the administrator only
has to populate the class once.

Similarly, the use of the word standardized naked like that is probably
unhelpful.  One could imagine, for instance, Fairhair or some other
consortium deciding to create standard classes.

What I propose is two changes to facilitate better understanding:

 1. To include the simple example described above.
 2. To add an optional "documentation"  element in the "mud" container
    that consists of a URL that points to documents for each class, when
    so used.

Thoughts?

Eliot

---

From: Robert Sparks <[email-masked]>
Date: Wed, 11 Apr 2018 11:15:16 -0500

On 4/11/18 1:35 AM, Eliot Lear wrote:
> just getting an S/MIME certificate.  This implies that the signers 
> will have to be "admitted" on first sight.  Would that work for you?
Sure
> So I'm hoping between the two we have you covered ;-).
Yes, I'll let this point go. You have well covered discussing 
controllers being able to map things to MUD URLs. You still don't 
explicitly discuss whether existing libraries would let things provide 
the URL in DHCP - that's what I was scanning for. But again, I'll let it go.
>>> servers to modify their state.  This would address your concern 
>>> (also see below).
>> ack
>>>
>>>>   
>>>     additional DHCP server state should be required to implement
>>>     this option.
>>>     about mentioning the lease time to the MUD controller.  With
>>>     that in mind, how about the following text:
>>>
>>>
> Just one clarification- this text needed to be wordsmithed a little 
> bit more.  Keep in mind that the ACL model is supported as discussed 
> in the draft.
ack
>> Ah. maybe in 3.13 you could say "classes standardized by this 
>> document or future RFCs"?
>
> here (we are literally getting a lot of operational experience with 
> this day by day now).
>
> requires that the administrator populate the class for each device P, 
> D, and Q.  Whereas with use of a controller class, the administrator 
> only has to populate the class once.
>
> Similarly, the use of the word standardized naked like that is 
> probably unhelpful.
Can I infer you plan to edit it out or dress it more?
> One could imagine, for instance, Fairhair or some other consortium 
> deciding to create standard classes.
>
>     that consists of a URL that points to documents for each class,
>     when so used.
>
Sure.
> Thoughts?
With this, I'm puzzled about the use of the word standardized at all. I 
think I'm hearing that you expect MUD controllers to know about some 
well-known classes by convention and that groups like fairhair or 
someone else might make a list of classes that MUD controllers might 
collectively decide to build in knowledge of. Am I getting closer to the 
right picture? (This is opposed to a set of classes that are created by 
a standards action and listed in a registry somewhere).

---

From: Eliot Lear <[email-masked]>
Date: Wed, 11 Apr 2018 18:58:05 +0200

All the way down...

> Can I infer you plan to edit it out or dress it more?

Yes.

>>  2. To add an optional "documentation"  element in the "mud"
>>     container that consists of a URL that points to documents for
>>     each class, when so used.
>>
> Sure.
>>
>> Thoughts?
>>
> With this, I'm puzzled about the use of the word standardized at all.
> I think I'm hearing that you expect MUD controllers to know about some
> collectively decide to build in knowledge of. Am I getting closer to
> the right picture? (This is opposed to a set of classes that are
> created by a standards action and listed in a registry somewhere).

The class is just a name that expands out to a bunch of IP addresses. 
It happens to take the form of a URI, but it's really just a name. 
There could be well known NAMES, and indeed we create a URN registry
just for that purpose.  Maybe I need to be a bit more clearer on that point?

Eliot

---

From: Robert Sparks <[email-masked]>
Date: Wed, 11 Apr 2018 13:21:44 -0500

On 4/11/18 11:58 AM, Eliot Lear wrote:
>> I think I'm hearing that you expect MUD controllers to know about 
>> some well-known classes by convention and that groups like fairhair 
>> or someone else might make a list of classes that MUD controllers 
>> might collectively decide to build in knowledge of. Am I getting 
>> closer to the right picture? (This is opposed to a set of classes 
>> that are created by a standards action and listed in a registry 
>> somewhere).
>
Probably good to do? I hope I'm not just being too thick-headed here.

---

From: Eliot Lear <[email-masked]>
Date: Thu, 12 Apr 2018 14:17:16 +0200

Hi Robert and everyone else,

Circling for a landing here...

> created by a standards action and listed in a registry somewhere).

I've attempted to clarify this language as we discussed.  On the point
of standardization, I've made a clean separation:

  * URNs: standardized (and therefore hopefully well documented)
    behaviors, such as DNS and NTP.
  * URIs that take the form of URLs.  These are just class names that
    the administrator has to fill out, or are otherwise somehow
    pre-populated.

I hope that this resolves any lingering confusion.

Thanks again for working to improve this document.  I really appreciate it!

Eliot