Subject: [Anima-bootstrap] a repost of summary

From: Michael Richardson <[email-masked]>
Date: Wed, 24 Jun 2015 10:06:29 -0400

[this is a repost to put something in this list]

The bootstrap design team is still bootstrapping, but Max, Toerless and I
have had three 1hr phone conferences (May 29 meeting cancelled). They have
been Friday at 1700UTC, but are now Thursday at 1400UTC, and will occur
June 11 as well.  A doodle poll to confirm a regular time will go out next
week once the list of parties has been identified.
I think that the AD still has to approve things.

We started with a discussion of the charter for the DT, and how it relates to
the charter for the WG, and the result is at:
    https://tools.ietf.org/wg/anima/trac/wiki/Bootstrap

the places where it says "OWN" means, it's in scope for this DT, where it
says REQUIRE, means that we are assuming it as input, and where it says
PROVIDE, means that they are outputs.

We continued with a recap discussion and partial walkthrough of
    draft-pritikin-anima-bootstrapping-keyinfra-01

We have some ideas about terminology that we think might be useful
along the lines of ducking/imprinting (cf: Konrad Lorenz and
http://en.wikipedia.org/wiki/Imprinting_(psychology) ), but we also thought
of fraternities and pledges.  If you didn't grow up with
http://en.wikipedia.org/wiki/Animal_House, or
http://en.wikipedia.org/wiki/Revenge_of_the_Nerds, then let me provide some
explanation.  The idea that during the bootstrap process, there is a period
when the network (the ACP aka fraternity) and the new node (the peldge) check
each other out for fitness.  Wikipedia says this about fraternities:
   Requirements may be imposed on those wishing to pledge either by the
   school or the organization itself, often including a minimum grade point
   average, wearing a pledge pin, learning about the history and structure of
   the organization, and performing public service. When a school places an age
   or tenure requirement on joining, this is called "deferred recruitment", as
   joining is deferred for a semester or year. The pledgeship period also serves
   as a probationary period in which both the organization and the pledge decide
   if they are compatible and will have a fulfilling experience.

In today's telecon, we discussed some of the 6tisch specific requirements on
bootstrap, specifically:
  1) the "pledges" (or joining nodes) are constrained in CPU, code space, and
     energy (if battery powered, etc)
  2) more importantly, the network is very constrained, 250Kbit/s max, 127
     byte fraglets, and 6tisch likely would be configured to further
     restricts the bandwidth in the network available to joining nodes.
     Calculations suggest that just transmitting a DH pair and associated
     parts between adjacent nodes could take between 2 and 40s.
  3) most protocols will require an authorization protocol that will need to
     travel through the LLN mesh up to a non-constrained node. The
     convergence of many such setup processes may well overwhelm the parts of
     the network closer to the root of the tree.  Congestion is an issue,
     and retransmissions cost energy.

I explained some the ideas/conclusions from
  draft-richardson-6tisch-security-architecture-02
and draft-richardson-6tisch--security-6top-04, which were:
  a) using CBOR encoded YANG over CoAP/DTLS leverages 6tisch ("6top") plans
     for 6tisch node/PCE communication, maximizing code reuse.

  b) initiating the secure bootstrap process from the non-constrained side,
     and having the constrained nodes remain silent after an initial "hello"
     packet, allowed the network manager to protect, conserve and prioritize
     the join bandwidth.

  c) it turns out there is an additional benefit in making the constrained
     node the TLS "Server" -- side. Specifically, it means that the selection
     of crypto parameters is done by the more constrained device, and the
     Server sends it's certificate payload first.  The non-constrained node
     (or "JCE" == Join Coordination Entity) will receive that certificate,
     and can consult whatever network (or human) resources is needs to
     before responding with a Client Certificate that will satisfy the
     constrained node.  It can also know via Trusted CA extension what
     certificate chain (if any) it needs to provide.

It is observed that point (c) is not essential; that a similiar thing can be
accomplished with less grace using SNI (RFC6066) and some other extensions.

Note that while 6tisch is/plans-to specify that 6top is the protocol that
runs over the resulting CoAP/DTLS channel, and that secure join to 6tisch
consists of provisioning certain identities and parameters through that
channel,  the resulting channel could be used for anything.

We also noted that in the context of two routers plugged in together on
a lonesome grassy knoll would need to form a secure connection; that one
needs to be the initiator ("client") and the other the responder ("server")
is obvious, but whether both systems need to always support both roles is
open for discussion.  Perhaps in the constrained case, it is acceptable that
constrained devices can always be responders, and in the non-constrained
case, they assume both roles.

I also note, recalling I was told that one implementation of the ACP consists
of IKEv2 initiated channels over IPv6-link-local addresses, that the
essential properties the bootstrap design team intends to provide work just
fine for IKEv2 as they do for DTLS.

I don't know if the ANIMA signaling protocol should occur before such a
channel is established, or inside of this (provisional) channel, or whether
it should instead run inside IKEv2 (maybe inside EAP).

I note that 6tisch has a few potential, "I am here" messages, with RPL
DAOs and Efficient-ND (E)AROs being the two ones.  GDNP or HNCP or just
IKE-port-500 messages are in my opinion also possibilities.

--
Michael Richardson <[email-masked]>, Sandelman Software Works
 -= IPv6 IoT consulting =-

---

From: "Michael Behringer (mbehring)" <[email-masked]>
Date: Wed, 24 Jun 2015 16:18:39 +0000

Michael, team, 

I wasn't involved in the charter definition, so I have a few questions, referring mostly to the design team charter at https://tools.ietf.org/wg/anima/trac/wiki/Bootstrap%20Design%20Team%20Charter: 

- Probably a nit: I'm missing the words "trust infrastructure". To me, we're setting up a trust infrastructure, and we also need to discuss the setup of the registrar, CA, not only the bootstrapping elements. The word "trust" is completely missing - is there are reason for it? 

- Goal 1: Is this the certificate format and fields? 

- Goal 2: I think security needs to also be discussed in the reference model, we need to see how we can split that? Or do you see that the bootstrap doc would cover that all? 

- I think there is overlap with the netconf zero-touch work, and we should probably be explicit: Do we want to find common groud (would hope so), or is it too late? Since that has been discussed, we should be explicit about this point I think. Which other groups do you have in mind when talking about "adjacent IETF WGs"? Can we list them? 

- somewhere the charter should state more explicitly: Define protocols and data models for the bootstrap process. I guess that's goal 3, but it sounds cryptic. To me, we need 1) requirements, 2) a protocol, 3) a data model, including certificate format and fields. 

- in the reference model I'm referring to the bootstrap process in a new way, in the ASA thinking. There is an ASA for a new element, one for the proxy, and one for the registrar. (Previously those functions were included in the infrastructure, but logically they should be ASAs). Do you agree with this thinking, and if so, should we adopt this wording here as well? 

- Do we want to include downloading a config? (I read "optimized configuration distribution) - somehow that doesn't seem to be in scope, in my reading. Can we exclude that? To me, the process ends when the device has a domain cert. 

- The milestone is very cryptic. Are we planning a new spin of draft-pritikin before the IETF? Or is this a completely new draft? you say "draft(s)" - what does that mean? 

Michael

> -----Original Message-----
> From: Anima-bootstrap [mailto:[email-masked]] On
> Behalf Of Michael Richardson
> Sent: 24 June 2015 16:06
> To: [email-masked]
> Subject: [Anima-bootstrap] a repost of summary
> 
> 
> have had three 1hr phone conferences (May 29 meeting cancelled). They
> have been Friday at 1700UTC, but are now Thursday at 1400UTC, and will
> occur June 11 as well.  A doodle poll to confirm a regular time will go out
> next week once the list of parties has been identified.
> We have some ideas about terminology that we think might be useful along
> the lines of ducking/imprinting (cf: Konrad Lorenz and
> http://en.wikipedia.org/wiki/Imprinting_(psychology) ), but we also
> thought of fraternities and pledges.  If you didn't grow up with
> http://en.wikipedia.org/wiki/Revenge_of_the_Nerds, then let me provide
> some explanation.  The idea that during the bootstrap process, there is a
> period when the network (the ACP aka fraternity) and the new node (the
> peldge) check each other out for fitness.  Wikipedia says this about
> fraternities:
> In today's telecon, we discussed some of the 6tisch specific requirements
> on bootstrap, specifically:
> Note that while 6tisch is/plans-to specify that 6top is the protocol that runs
> over the resulting CoAP/DTLS channel, and that secure join to 6tisch consists
> of provisioning certain identities and parameters through that channel,  the
> resulting channel could be used for anything.
> 
> We also noted that in the context of two routers plugged in together on a
> lonesome grassy knoll would need to form a secure connection; that one
> needs to be the initiator ("client") and the other the responder ("server") is
> obvious, but whether both systems need to always support both roles is
> of IKEv2 initiated channels over IPv6-link-local addresses, that the essential
> properties the bootstrap design team intends to provide work just fine for
> IKEv2 as they do for DTLS.
> 
> channel is established, or inside of this (provisional) channel, or whether it
> should instead run inside IKEv2 (maybe inside EAP).
> 
> I note that 6tisch has a few potential, "I am here" messages, with RPL DAOs
> and Efficient-ND (E)AROs being the two ones.  GDNP or HNCP or just

---

From: Michael Richardson <[email-masked]>
Date: Thu, 25 Jun 2015 14:07:43 -0400

Michael Behringer (mbehring) <[email-masked]> wrote:
    mb> - Probably a nit: I'm missing the words "trust infrastructure". To me,
    mb> we're setting up a trust infrastructure, and we also need to discuss
    mb> the setup of the registrar, CA, not only the bootstrapping
    mb> elements. The word "trust" is completely missing - is there are reason
    mb> for it?

The document does discuss registrar, CA, etc, but we have not been discussing
those in our meeting.   I think that the interface to those things are
relatively well described by current specifications: but there will be
profile work require, I'm sure.

    mb> - Goal 1: Is this the certificate format and fields?

I wasn't sure what "Goal" text you are referring to here, then I realized
that you were referring to the DT Charter text that says:
     >  Goal one: Provide a normative definition for the concept of a
     >  Domain's Identity.

I'm not sure that we have really much work to do in certificate format
and fields.  The IDevID 802.1AR document is woefully underspecified on
what goes into the SubjectAltName, and I think we need to be more precise
here, and maybe that will require a new document.
(such as: https://tools.ietf.org/html/draft-richardson-6tisch-idevid-cert-01
which is entirely stolen from  RFC3779 )

    mb> - Goal 2: I think security needs to also be discussed in the reference
    mb> model, we need to see how we can split that? Or do you see that the
    mb> bootstrap doc would cover that all?

Here is the text from the charter:
     > Goal two: Define the target underlying security model of an autonomic
     > network, in which autonomic devices are enrolled with a local
     > certificate (e.g: IEEE 802.1AR LDevID) identifying the autonomic
     > domain that they belong to by hash of the public key of the trust
     > anchor.

I think that the important part for the reference model is that:
  "Devices have 802.1AR IDevIDs, with replaceable LDevIDs"

Should the reference model/framework include ideas of device resell,
and the problems of supply chain management? If so, then I would love to
have a place to put those considerations.

    mb> - I think there is overlap with the netconf zero-touch work, and we
    mb> should probably be explicit: Do we want to find common groud (would
    mb> hope so), or is it too late? Since that has been discussed, we should
    mb> be explicit about this point I think. Which other groups do you have in
    mb> mind when talking about "adjacent IETF WGs"? Can we list them?

I think that netconf zero-touch work is useful and interesting, but I also
see it as in some ways completely unrelated.  That might be just how I
regard the work, as a kind of uber-secure, NAT and end-user friendly
replacement for DHCPv4+TFTP to get configuration files/boot images.

As such, in the netconf situation, devices show up on (preconfigured)
networks, and call home (for various definitions of "home") to get a
configuration has been determined by mechanisms out of scope.

In ANIMA, devices only call home to establish ownership and to affect
delegation of of trust.  The network that they are "plugged" into may be
hostile, may be unconfigured or mis-configured... Further, the goal of
the bootstrap is not to establish the configuration of the device, but
rather to build a trust relationship with other devices so that each
device can derive it's own configuration.

Having said, this the bootstrap work could be used to provide security to the
zero-touch work, or the netconf zero-touch process could be used to install
the locally significant certificates that bootstrap is about.  Or EST
or 6top or..

    mb> - somewhere the charter should state more explicitly: Define protocols
    mb> and data models for the bootstrap process. I guess that's goal 3, but
    mb> it sounds cryptic. To me, we need 1) requirements, 2) a protocol, 3) a
    mb> data model, including certificate format and fields.

Goal 3 is about how to use the LDevID; this might mean explaining how
it fits into TLS, DTLS, IKEv2, DHCPv6, SEND or some other protocol that the
signaling system might base it's security on.

    mb> - in the reference model I'm referring to the bootstrap process in a
    mb> new way, in the ASA thinking. There is an ASA for a new element, one
    mb> for the proxy, and one for the registrar. (Previously those functions
    mb> were included in the infrastructure, but logically they should be
    mb> ASAs). Do you agree with this thinking, and if so, should we adopt
    mb> this wording here as well?

If you are saying that the proxy and the registrar are functions that the
network should realize that it needs to provide, and therefore should be
described as ASAs, then I agree.   This implies that we have to run the
signaling protocol recursively, and that we have to have more than one
instance of the signaling protocol: one insecure instance, and possibly
multiple secure instances. One shouldn't assume there is a single network
being assembled.. after all, a field can contain many picnics:
      https://www.pinterest.com/pin/216595063299304430/

    mb> - Do we want to include downloading a config? (I read "optimized
    mb> configuration distribution) - somehow that doesn't seem to be in scope,
    mb> in my reading. Can we exclude that? To me, the process ends when the
    mb> device has a domain cert.

Max, can you say more about Goal five?

    mb> - The milestone is very cryptic. Are we planning a new spin of
    mb> draft-pritikin before the IETF? Or is this a completely new draft?
    mb> you say "draft(s)" - what does that mean?

Yes, spin it.

    >> https://tools.ietf.org/wg/anima/trac/wiki/Bootstrap

Charter:
https://tools.ietf.org/wg/anima/trac/wiki/Bootstrap%20Design%20Team%20Charter