<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.0.31 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC7228 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
<!ENTITY I-D.ietf-anima-bootstrapping-keyinfra SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-anima-bootstrapping-keyinfra.xml">
<!ENTITY I-D.ietf-6tisch-minimal SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-6tisch-minimal.xml">
<!ENTITY I-D.ietf-netconf-zerotouch SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-netconf-zerotouch.xml">
<!ENTITY RFC4655 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml">
<!ENTITY RFC7554 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7554.xml">
<!ENTITY I-D.ietf-ace-actors SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-actors.xml">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-richardson-6tisch-dtsecurity-secure-join-00" category="info">

  <front>
    <title>6tisch Secure Join protocol</title>

    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>

    <date year="2016" month="September" day="13"/>

    <area>Internet</area>
    <workgroup>6tisch Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>Charter: The WG will continue working on securing the join process and making
that fit
within the constraints of high latency, low throughput and small frame sizes
that characterize IEEE802.15.4 TSCH.</t>



    </abstract>


  </front>

  <middle>


<section anchor="problems" title="Introduction">

<t>Enrollment of new nodes into LLNs present unique challenges.
The constrained nodes has no user interfaces, and even if they did,
configuring thousands of such nodes manually is undesireable from a human
resources issue, as well as the difficulty in getting consistent results.</t>

<t>This document is about a standard way to introduce new nodes into a 6tisch
network that does not involve any direct manipulation of the nodes themselves.
This act has been called "zero-touch" provisioning, and it does not occur by
chance, but requires coordination between the manufacturer of the node, the
service operator running the LLN, and the installers actually taking the
devices out of the shipping boxes.</t>

<t>In other installations (such as some factory/industrial settings, and for
some utilities), it is possible to pass devices through a "provisioning" room
of some kind where the device in factory default state may be touched once
(via a cable, or a push button, or by being placed in a faraday cage, etc.)
such that the devices can be initialized in a way specific to that
installation.  The devices are then returned to inventory, and may be
deployed at some future time.  The node is not provisioned with the
current keying material, as the network will need to be regularly rekeyed
(even the algorithms may change!), so in the one-touch provisioning case, the
goal is simply to introduce some elements into the new node (the "pledge") such
that the enrollment process will take less energy and fewer network resources.</t>

<section anchor="Terminology" title="Terminology">

<t>In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119
<xref target="RFC2119"/> and indicate requirement levels for compliant STuPiD
implementations.</t>

<t>The following terminology is repeated from
<xref target="I-D.ietf-anima-bootstrapping-keyinfra"/>
so as to have a common way to speak:</t>

<t><list style="hanging">
  <t hangText='drop ship'>
  The physical distribution of equipment containing the   "factory default"
configuration to a final destination.  In zero-touch scenarios there is no
staging or pre-configuration during drop-ship.</t>
  <t hangText='imprint'>
  the process where a device obtains the cryptographic key material to
identity and trust future interactions with a network. This term is taken
from Konrad Lorenz's work in biology with new ducklings: during a critical
period, the duckling would assume that anything that looks like a mother duck
is in fact their mother.  An equivalent for a device is to obtain the
fingerprint of the network's root certification authority certificate.  A
device that imprints on an attacker suffers a similar fate to a duckling that
imprints on a hungry wolf.  Securely imprinting is a primary focus of this
document. <xref target="duckling"/> anticipates this use.</t>
  <t hangText='enrollment'>
  the process where a device presents key material to a
network and acquires a network specific identity.  For example
when a certificate signing request is presented to a certification
authority and a certificate is obtained in response.</t>
  <t hangText='pledge'>
  the prospective device, which has the identity provided to
at the factory.  Neither the device nor the network knows if the
device yet knows if this device belongs with this network.  This
is definition 6, according to <xref target="pledge"/>.</t>
  <t hangText='Audit Token'>
  A signed token from the manufacturer authorized signing
authority indicating that the bootstrapping event has been
successfully logged.  This has been referred to as an
"authorization token" indicating that it authorizes bootstrapping
to proceed.</t>
  <t hangText='Ownership Voucher'>
  A signed voucher from the vendor vouching that a specific domain "owns"
   the new entity as defined in <xref target="I-D.ietf-netconf-zerotouch"/>.</t>
</list></t>

</section>
<section anchor="credentials" title="Credentials">

<t>In the zero-touch scenario, every device expected to be drop shipped would
have an <xref target="ieee802-1AR"/> manufacturer installed certificate (MIC). The
private key part of the certificate would either be generated in the device,
or installed securely (and privately) as part of the manufacturer process.
<xref target="cullenCiscoPhoneDeploy"/> provides an example of process which has been active
for a good part of a decade.</t>

<t>The MIC would be signed by the manufacturer's CA, the public key component of
that would be included in the firmware.</t>

<section anchor="one-touch-assumptions" title="One-Touch Assumptions">

<t>In a one-touch scenario, devices would be provided with some mechanism by which
a secure association may be made in a controlled environment.  There are many
ways in which this might be done, and detailing any of them is out of scope
for this document.  But, some notion of how this might be done is important
so that the underlying assumptions can be reasoned about.</t>

<t>Some examples of how to do this could include:
* JTAG interface
* serial (craft) console interface
* pushes of physical buttons simulatenous to network attachment
* insecured devices operated in a Faraday cage</t>

<t>There are likely many other ways as well.  What is assumed is that there can
be a secure, private conversation between the Join Coordination Entity, and
the Pledge, and that the two devices can exchange some trusted bytes of
information.</t>

</section>
<section anchor="factory-provided-credentials-if-any" title="Factory provided credentials (if any)">

<t>When a manufacturer installed certificate is provided as the IDevID, it
SHOULD contain a number of fields.  <xref target="I-D.ietf-anima-bootstrapping-keyinfra"/>
provides a detailed set of requirements.</t>

<t>A manufacturer unique serial number MUST be provided in the serialNumber
SubjectAltName extension, and MAY be repeated in the Common Name. There are
no sequential or numeric requirements on the serialNumber, it may be any
unique value that the manufacturer wants to use.  The serialNumber SHOULD be
printed on the packaging and/or on the device in a discrete way.</t>

</section>
<section anchor="credentials-to-be-introduced" title="Credentials to be introduced">

<t>The goal of the bootstrap process is to introduce one or more new locally
relevant credentials:</t>

<t><list style="numbers">
  <t>a certificate signed by a local certificate authority/registrar. This is
the LDevID of <xref target="ieee802-1AR"/>.</t>
  <t>alternatively, a network-wide key to be used to secure L2 traffic.</t>
  <t>alternatively, a network-wide key to be used to authenticate per-peer
keying of L2 traffic using a mechanism such as provided by <xref target="ieee802159"/>.</t>
</list></t>

</section>
</section>
<section anchor="network-assumptions" title="Network Assumptions">

<t>This document is about enrollment of constrained devices <xref target="RFC7228"/> to a
constrained network.  Constrained networks is such as <xref target="ieee802154"/>, and in
particular the time-slotted, channel hopping (tsch) mode, feature low
bandwidths, and limited opportunities to transmit.  A key feature of these
networks is that receivers are only listening at certain times.</t>

<section anchor="security-above-and-below-ip" title="Security above and below IP">

<t>802.15.4 networks have three kinds of layer-2 security:</t>

<t><list style="symbols">
  <t>a network key that is shared with all nodes and is used for unicast and multicast.</t>
  <t>a series of network keys that are shared (agreed to) between pairs of nodes (the per-peer key)</t>
  <t>a network key that is shared with all nodes (through a group key management system), and is used for multicast traffic only</t>
</list></t>

<t>Setting up the credentials to bootstrap one of these kinds of security,
(or directly configuring the key itself for the first case) is required.
This is the security below the IP layer.</t>

<t>Security is required above the IP layer: there are three aspects which the
credentials in the previous section are to be used.</t>

<t><list style="symbols">
  <t>to provide for secure connection with a Path Computation Element <xref target="RFC4655"/>, or other LLC (see ({RFC7554}} section 3).</t>
  <t>to initiate a connection between a Resource Server (RS) and an application layer Authorization Server (AS and CAS from <xref target="I-D.ietf-ace-actors"/>).</t>
</list></t>

<section anchor="perfect-forward-secrecy" title="Perfect Forward Secrecy">

<t>Perfert Forward Secrecy (PFS) is the property of a protocol such that complete
knowledge of the crypto state (for instance, via a memory dump) at
time X does not imply that data from a disjoint time Y can also be recovered.
(<xref target="PFS"/>).</t>

<t>PFS is important for two reasons: one is that it offers protection against
the compromise of a node.  It does this by changing the keys in a
non-deterministic way. This second property also makes it much easier to
remove a node from the network, as any node which has not participated in
the key changing process will find itself no longer connected.</t>

</section>
</section>
<section anchor="join-network-assumptions" title="Join network assumptions">

<t>The network which the new pledge will connect to will have to have the following properties:</t>

<t><list style="symbols">
  <t>a known PANID.  The PANID 0xXXXX where XXXX is the assigned RFC# for this document is suggested.</t>
  <t>a minimal schedule with some Aloha time.  This is usually in the same slotframe as the Extended Beacon, but a pledge MUST listen for an unencrypted Extended Beacon to so that it can synchronize.</t>
  <t>a known K1 key, as described in <xref target="I-D.ietf-6tisch-minimal"/> section 10, and used for reasons similar to <xref target="iec62591"/>.</t>
</list></t>

</section>
<section anchor="number-and-cost-of-round-trips" title="Number and cost of round trips">

</section>
<section anchor="size-of-packets-number-of-fragments" title="Size of packets, number of fragments">

</section>
</section>
<section anchor="target-end-state-for-join-process" title="Target end-state for join process">

</section>
<section anchor="diagram-of-join-process" title="Diagram of Join Process">

</section>
<section anchor="description-of-states-in-join-process" title="Description of States in Join Process">

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

</section>
<section anchor="iana-considerations" title="IANA Considerations">

</section>
<section anchor="protocol-definition" title="Protocol Definition">

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC7228;
&I-D.ietf-anima-bootstrapping-keyinfra;
&I-D.ietf-6tisch-minimal;
<reference anchor="iec62591" target="https://webstore.iec.ch/publication/24433">
  <front>
    <title>62591:2016 Industrial networks - Wireless communication network and communication profiles - WirelessHART</title>
    <author initials="." surname="IEC">
      <organization></organization>
    </author>
    <date year="2016"/>
  </front>
</reference>
<reference anchor="ieee802-1AR" target="http://standards.ieee.org/findstds/standard/802.1AR-2009.html">
  <front>
    <title>IEEE 802.1AR Secure Device Identifier</title>
    <author initials="." surname="IEEE Standard">
      <organization></organization>
    </author>
    <date year="2009"/>
  </front>
</reference>
<reference anchor="ieee802159" target="http://standards.ieee.org/findstds/standard/802.15.9-2016.html">
  <front>
    <title>802.15.9-2016 - IEEE Approved Draft Recommended Practice for Transport of Key Management Protocol (KMP) Datagrams</title>
    <author initials="." surname="IEEE Standard">
      <organization></organization>
    </author>
    <date year="2016"/>
  </front>
</reference>
<reference anchor="ieee802154" target="http://standards.ieee.org/findstds/standard/802.15.4-2015.html">
  <front>
    <title>802.15.4-2015 - IEEE Standard for Low-Rate Wireless Personal Area Networks (WPANs)</title>
    <author initials="." surname="IEEE Standard">
      <organization></organization>
    </author>
    <date year="2015"/>
  </front>
</reference>
<reference anchor="cullenCiscoPhoneDeploy" target="http://www.lix.polytechnique.fr/hipercom/SmartObjectSecurity/papers/CullenJennings.pdf">
  <front>
    <title>Transitive Trust Enrollment for Constrained Devices</title>
    <author initials="C." surname="Jennings">
      <organization>Cisco</organization>
    </author>
    <date year="2012"/>
  </front>
</reference>
&I-D.ietf-netconf-zerotouch;


    </references>

    <references title='Informative References'>

&RFC4655;
&RFC7554;
&I-D.ietf-ace-actors;
<reference anchor="PFS" target="https://en.wikipedia.org/w/index.php?title=Forward_secrecy&amp;oldid=731318899">
  <front>
    <title>Forward Secrecy</title>
    <author initials="." surname="Wikipedia" fullname="Wikipedia">
      <organization></organization>
    </author>
    <date year="2016" month="August" day="01"/>
  </front>
</reference>
<reference anchor="pledge" target="http://dictionary.reference.com/browse/pledge">
  <front>
    <title>Dictionary.com Unabridged</title>
    <author initials="." surname="Dictionary.com" fullname="Dictionary.com">
      <organization></organization>
    </author>
    <date year="2015"/>
  </front>
</reference>
<reference anchor="duckling" target="https://www.cl.cam.ac.uk/~fms27/papers/1999-StajanoAnd-duckling.pdf">
  <front>
    <title>The resurrecting duckling: security issues for ad-hoc wireless networks</title>
    <author initials="F." surname="Stajano" fullname="Frank Stajano">
      <organization></organization>
    </author>
    <author initials="R." surname="Anderson" fullname="Ross Anderson">
      <organization></organization>
    </author>
    <date year="1999"/>
  </front>
</reference>


    </references>


<section anchor="appendix" title="appendix">

<t>insert appendix here</t>

</section>


  </back>
</rfc>

