<?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.40 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC7252 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
<!ENTITY RFC7049 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7049.xml">
<!ENTITY I-D.ietf-cose-msg SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-msg.xml">
<!ENTITY I-D.ietf-core-object-security SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-object-security.xml">
<!ENTITY RFC3172 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3172.xml">
<!ENTITY RFC7554 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7554.xml">
<!ENTITY RFC6775 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6775.xml">
<!ENTITY RFC6347 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
<!ENTITY RFC5869 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5869.xml">
<!ENTITY RFC4231 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4231.xml">
<!ENTITY RFC7721 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7721.xml">
<!ENTITY I-D.ietf-6tisch-minimal SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-6tisch-minimal.xml">
<!ENTITY I-D.ietf-6tisch-dtsecurity-secure-join SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-6tisch-dtsecurity-secure-join.xml">
<!ENTITY I-D.ietf-6tisch-6top-protocol SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-6tisch-6top-protocol.xml">
<!ENTITY I-D.ietf-6tisch-terminology SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-6tisch-terminology.xml">
<!ENTITY I-D.selander-ace-cose-ecdhe SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.selander-ace-cose-ecdhe.xml">
<!ENTITY I-D.ietf-anima-bootstrapping-keyinfra SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-anima-bootstrapping-keyinfra.xml">
<!ENTITY I-D.richardson-6tisch-join-enhanced-beacon SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.richardson-6tisch-join-enhanced-beacon.xml">
<!ENTITY I-D.richardson-6tisch-minimal-rekey SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.richardson-6tisch-minimal-rekey.xml">
]>

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

<rfc ipr="trust200902" docName="draft-ietf-6tisch-minimal-security-03" category="std">

  <front>
    <title>Minimal Security Framework for 6TiSCH</title>

    <author initials="M." surname="Vucinic" fullname="Malisa Vucinic" role="editor">
      <organization>Inria</organization>
      <address>
        <postal>
          <street>2 Rue Simone Iff</street>
          <city>Paris</city>
          <code>75012</code>
          <country>France</country>
        </postal>
        <email>malisa.vucinic@inria.fr</email>
      </address>
    </author>
    <author initials="J." surname="Simon" fullname="Jonathan Simon">
      <organization>Linear Technology</organization>
      <address>
        <postal>
          <street>32990 Alvarado-Niles Road, Suite 910</street>
          <city>Union City, CA</city>
          <code>94587</code>
          <country>USA</country>
        </postal>
        <email>jsimon@linear.com</email>
      </address>
    </author>
    <author initials="K." surname="Pister" fullname="Kris Pister">
      <organization>University of California Berkeley</organization>
      <address>
        <postal>
          <street>512 Cory Hall</street>
          <city>Berkeley, CA</city>
          <code>94720</code>
          <country>USA</country>
        </postal>
        <email>pister@eecs.berkeley.edu</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <postal>
          <street>470 Dawson Avenue</street>
          <city>Ottawa, ON</city>
          <code>K1Z5V7</code>
          <country>Canada</country>
        </postal>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>

    <date year="2017" month="June" day="15"/>

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

    <abstract>


<t>This document describes the minimal mechanisms required to support secure enrollment of a pledge, a device being added to an IPv6 over the TSCH mode of IEEE 802.15.4e (6TiSCH) network.
It assumes that the pledge has been provisioned with a credential that is relevant to the deployment - the "one-touch" scenario.
The goal of this configuration is to set link-layer keys, and to establish a secure end-to-end session between each pledge and the join registrar who may use that to further configure the pledge.
Additional security behaviors and mechanisms may be added on top of this minimal framework.</t>



    </abstract>


  </front>

  <middle>


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

<t>This document describes the minimal feature set for a new device, termed pledge, to securely join a 6TiSCH network.
As a successful outcome of this process, the pledge is able to securely communicate with its neighbors, participate in the routing structure of the network or establish a secure session with an Internet host.</t>

<t>When a pledge seeks admission to a 6TiSCH <xref target="RFC7554"/> network, it first needs to synchronize to the network.
The pledge then configures its link-local IPv6 address and authenticates itself, and also validates that it is joining the right network.
At this point it can expect to interact with the network to configure its link-layer keying material.
Only then may the node establish an end-to-end secure session with an Internet host using OSCOAP <xref target="I-D.ietf-core-object-security"/> or DTLS <xref target="RFC6347"/>.
Once the application requirements are known, the node interacts with its peers to request additional resources as needed, or to be reconfigured as the network changes <xref target="I-D.ietf-6tisch-6top-protocol"/>.</t>

<t>This document presumes a network as described by <xref target="RFC7554"/>, <xref target="I-D.ietf-6tisch-6top-protocol"/>, and <xref target="I-D.ietf-6tisch-terminology"/>.
It assumes the pledge pre-configured with either a:</t>

<t><list style="symbols">
  <t>pre-shared key (PSK),</t>
  <t>raw public key (RPK),</t>
  <t>or a locally-valid certificate and a trust anchor.</t>
</list></t>

<t>As the outcome of the join process, the pledge expects one or more link-layer key(s) and optionally a temporary link-layer identifier.</t>

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

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119"/>.
These words may also appear in this document in lowercase, absent their normative meanings.</t>

<t>The reader is expected to be familiar with the terms and concepts defined in <xref target="I-D.ietf-6tisch-terminology"/>, <xref target="RFC7252"/>, <xref target="I-D.ietf-core-object-security"/>, and <xref target="I-D.ietf-anima-bootstrapping-keyinfra"/>.
The following terms are imported: pledge, join proxy, join registrar/coordinator, drop ship, imprint, enrollment, ownership voucher.</t>

<t><list style="hanging">
  <t hangText='Pledge:'>
  the prospective device, which has the identity provided to at the factory.</t>
  <t hangText='Joined Node:'>
  the prospective device, after having completed the join process, often just called a Node.</t>
  <t hangText='Join Proxy (JP):'>
  a stateless relay that provides connectivity between the pledge and the Join Registrar/Coordinator.</t>
  <t hangText='Join Registrar/Coordinator (JRC):'>
  central entity responsible for authentication and authorization of joining nodes.</t>
</list></t>

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

<t>This document assumes the one-touch scenario, where devices are 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:</t>

<t><list style="symbols">
  <t>JTAG interface</t>
  <t>serial (craft) console interface</t>
  <t>pushes of physical buttons simultaneous to network attachment</t>
  <t>unsecured devices operated in a Faraday cage</t>
</list></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 Registrar/Coordinator, and the pledge, and that the two devices can exchange some trusted bytes of information.</t>

</section>
<section anchor="join-overview" title="Join Overview">

<t>This section describes the steps taken by a pledge in a 6TiSCH network.
When a previously unknown device seeks admission to a 6TiSCH <xref target="RFC7554"/> network, the following exchange occurs:</t>

<t><list style="numbers">
  <t>The pledge listens for an Enhanced Beacon (EB) frame <xref target="IEEE8021542015"/>.
This frame provides network synchronization information, and tells the device when it can send a frame to the node sending the beacons, which plays the role of Join Proxy (JP) for the pledge, and when it can expect to receive a frame.</t>
  <t>The pledge configures its link-local IPv6 address and advertizes it to Join Proxy (JP).</t>
  <t>The pledge sends packets to JP in order to securely identify itself to the network.
These packets are directed to the Join Registrar/Coordinator (JRC), which may be co-located on the JP or another device.</t>
  <t>The pledge receives one or more packets from JRC (via the JP) that sets up one or more link-layer keys used to authenticate subsequent transmissions to peers.</t>
</list></t>

<t>From the pledge's perspective, minimal joining is a local phenomenon &#8211; the pledge only interacts with the JP, and it need not know how far it is from the 6LBR, or how to route to the JRC.
Only after establishing one or more link-layer keys does it need to know about the particulars of a 6TiSCH network.</t>

<t>The handshake is shown as a transaction diagram in <xref target="fig_overview-diagram"/>:</t>

<figure title="Overview of the join process." anchor="fig_overview-diagram"><artwork align="center"><![CDATA[
+--------+                 +-------+                 +--------+
| pledge |                 |  JP   |                 |  JRC   |
|        |                 |       |                 |        |
+--------+                 +-------+                 +--------+
   |                          |                          |
   |<----ENH BEACON (1)-------|                          |
   |                          |                          |
   |<-Neighbor Discovery (2)->|                          |
   |                          |                          |
   |<---Sec. Handshake (3)----|---Sec. Handshake (3a)--->|
   |                          |                          |
 .......................................................................
 . |-----Join Request (4)-----|------Join Request (4a)-->|             .
 . |                          |                          | Simple Join .
 . |<---Join Response (5)-----|-----Join Response (5a)---|   Protocol  .
 . |                          |                          |             .
 .......................................................................
]]></artwork></figure>

<t>The details of each step are described in the following sections.</t>

<section anchor="step-1-enhanced-beacon" title="Step 1 - Enhanced Beacon">

<t>Due to the channel hopping nature of 6TiSCH, transmissions take place on physical channels in a circular fashion.
For that reason, Enhanced Beacons (EBs) are expected to be found by listening on a single channel.
However, because some channels may be blacklisted, a new pledge must listen for Enhanced Beacons for a certain period on each of the 16 possible channels.
This search process entails having the pledge keep the receiver portion of its radio active for the entire period of time.</t>

<t>Once the pledge hears an EB from a JP, it synchronizes itself to the joining schedule using the cells contained in the EB.
The selection of which beacon to start with is outside the scope of this document.
Implementers SHOULD make use of information such as: whether the L2 address of the EB has been tried before, any Network Identifier <xref target="I-D.richardson-6tisch-join-enhanced-beacon"/> seen, and the strength of the signal.
The pledge can be configured with the Network Identifier to seek when it is configured with the PSK.</t>

<t>Once a candidate network has been selected, the pledge can transition into a low-power duty cycle, waking up only when the provided schedule indicates shared slots which the pledge may use for the join process.</t>

<t>At this point the pledge may proceed to step 2, or continue to listen for additional EBs.</t>

<t>A pledge which receives only Enhanced Beacons containing Network ID extensions <xref target="I-D.richardson-6tisch-join-enhanced-beacon"/> with the initiate bit cleared, SHOULD NOT proceed with this protocol on that network.
The pledge SHOULD consider that it is in a network which manages join traffic, it SHOULD switch to <xref target="I-D.ietf-6tisch-dtsecurity-secure-join"/>.</t>

</section>
<section anchor="step-2-neighbor-discovery" title="Step 2 - Neighbor Discovery">

<t>At this point, the pledge forms its link-local IPv6 address based on EUI64 and may register it at JP, in order to bootstrap the IPv6 neighbor tables.
The Neighbor Discovery exchange shown in <xref target="fig_overview-diagram"/> refers to a single round trip Neighbor Solicitation / Neighbor Advertisement exchange between the pledge and the JP.
The pledge may further follow the Neighbor Discovery (ND) process described in Section 5 of <xref target="RFC6775"></xref>.</t>

</section>
<section anchor="step-3-security-handshake" title="Step 3 - Security Handshake">

<t>The security handshake between pledge and JRC uses Ephemeral Diffie-Hellman over COSE (EDHOC) <xref target="I-D.selander-ace-cose-ecdhe"/> to establish the shared session secret used to encrypt the Simple Join Protocol.</t>

<t>The security handshake step is OPTIONAL in case PSKs are used, while it is REQUIRED for RPKs and certificates.</t>

<t>When using certificates, the process continues as described in <xref target="I-D.selander-ace-cose-ecdhe"/>, but MAY result in no network key being returned.
In that case, the pledge enters a provisional situation where it provides access to an enrollment mechanism described in <xref target="I-D.ietf-6tisch-dtsecurity-secure-join"/>.</t>

<t>If using a locally relevant certificate, the pledge will be able to validate the certificate of the JRC via a local trust anchor.
In that case, the JRC will return networks keys as in the PSK case.
This would typically be the case for a device which has slept so long that it no longer has valid network keys and must go through a partial join process again.</t>

<t>In case the handshake step is omitted, the shared secret used for protection of the Simple Join Protocol in the next step is the PSK.</t>

<t>A consequence is that if the long-term PSK is compromised, keying material transferred as part of the join response is compromised as well.
Physical compromise of the pledge, however, would also imply the compromise of the same keying material, as it is likely to be found in node's memory.</t>

<section anchor="pre-shared-symmetric-key" title="Pre-Shared Symmetric Key">

<t>The Diffie-Hellman key exchange and the use of EDHOC is optional, when using a pre-shared symmetric key.
This cuts down on traffic between JRC and pledge, but requires pre-configuration of the shared key on both devices.</t>

<t>It is REQUIRED to use unique PSKs for each pledge.
If there are multiple JRCs in the network (such as for redundancy), they would have to share a database of PSKs.</t>

</section>
<section anchor="asymmetric-keys" title="Asymmetric Keys">

<t>The Security Handshake step is required, when using asymmetric keys.
Before conducting the Diffie-Hellman key exchange using EDHOC <xref target="I-D.selander-ace-cose-ecdhe"/> the pledge and JRC need to receive and validate each other's public key certificate.
As detailed above, this can only be done for locally relevant (LDevID) certificates.
IDevID certificates require entering a provisional state as described in <xref target="I-D.ietf-6tisch-dtsecurity-secure-join"/>.</t>

<t>When RPKs are pre-configured at pledge and JRC, they can directly proceed to the handshake.</t>

</section>
</section>
<section anchor="step-4-simple-join-protocol-join-request" title="Step 4 - Simple Join Protocol - Join Request">

<t>The Join Request that makes part of the Simple Join Protocol is sent from the pledge to the JP using the shared slot as described in the EB, and forwarded to the JRC.
Which slot the JP uses to transmit to the JRC is out of scope: some networks may wish to dedicate specific slots for this join traffic.</t>

<t>The join request is authenticated/encrypted end-to-end using an algorithm from  <xref target="I-D.ietf-cose-msg"/> and a key derived from the shared secret from step 3.
Algorithm negotiation is described in detail in <xref target="I-D.selander-ace-cose-ecdhe"/>, and mandatory to implement algorithms are specified in <xref target="mti_algos"/>.</t>

<t>The nonce is derived from the shared secret, the pledge's EUI64 and a monotonically increasing counter initialized to 0 when first starting.</t>

</section>
<section anchor="step-5-simple-join-protocol-join-response" title="Step 5 - Simple Join Protocol - Join Response">

<t>The Join Response that makes part of the Simple Join Protocol is sent from the JRC to the pledge through JP that serves as a stateless relay.
Packet containing the Join Response travels on the path from JRC to JP using pre-established routes in the network.
The JP delivers it to the pledge using the slot information from the EB.
JP operates as the application-layer proxy and does not keep any state to relay the message.
It uses information sent in the clear within the join response to decide where to forward to.</t>

<t>The join response is authenticated/encrypted end-to-end using an algorithm from <xref target="I-D.ietf-cose-msg"/> and a key derived from the shared secret from step 3.</t>

<t>The nonce is derived from the shared secret, pledge's EUI64 and a monotonically increasing counter matching that of the join request.</t>

<t>The join response contains one or more link-layer key(s) that the pledge will use for subsequent communication.
Each key that is provided by the JRC is associated with an 802.15.4 key identifier.
In other link-layer technologies, a different identifier may be substituted.
Join Response optionally also contains an IEEE 802.15.4 short address <xref target="IEEE8021542015"/> assigned to pledge by JRC, and the IPv6 address of the JRC.</t>

</section>
</section>
<section anchor="join_proxy" title="Architectural Overview and Communication through Join Proxy">

<t>The protocol in <xref target="fig_overview-diagram"/> is implemented over Constrained Application Protocol (CoAP) <xref target="RFC7252"/>.
The Pledge plays the role of a CoAP client, JRC the role of a CoAP server, while JP implements CoAP forward proxy functionality <xref target="RFC7252"/>.
Since JP is also likely a constrained device, it does not need to implement a cache but rather process forwarding-related CoAP options and make requests on behalf of pledge that is not yet part of the network.</t>

<t>The pledge communicates with a Join Proxy (JP) over link-local IPv6 addresses.
The pledge designates a JP as a proxy by including in the CoAP requests to the JP the Proxy-Scheme option with value "coap" (CoAP-to-CoAP proxy).
The pledge MUST include the Uri-Host option with its value set to the well-known JRC's alias - "6tisch.arpa".
The pledge learns the actual IPv6 address of JRC from the join response and it uses it once joined in order to operate as JP.
The initial bootstrap of the 6LBR  would require explicit provisioning of the JRC address.</t>

<section anchor="stateless-proxy" title="Stateless-Proxy CoAP Option">

<t>The CoAP proxy by default keeps per-client state information in order to forward the response towards the originator of the request (client).
This state information comprises CoAP token, but the implementations also need to keep track of the IPv6 address of the host, as well as the corresponding UDP source port number.
In the setting where the proxy is a constrained device and there are potentially many clients, as in the case of JP, this makes it prone to Denial of Service (DoS) attacks, due to the limited memory.</t>

<t>The Stateless-Proxy CoAP option (c.f. <xref target="fig_stateless-proxy"/>) allows the proxy to insert within the request the state information necessary for relaying the response back to the client.
Note that the proxy still needs to keep some state, such as for performing congestion control or request retransmission, but what is aimed with Stateless-Proxy option is to free the proxy from keeping per-client state.</t>

<t>Stateless-Proxy option is critical, Safe-to-Forward, not part of the cache key, not repeatable and opaque.
When processed by OSCOAP, Stateless-Proxy option is neither encrypted nor integrity protected.</t>

<figure title="Stateless-Proxy CoAP Option" anchor="fig_stateless-proxy"><artwork align="center"><![CDATA[
+-----+---+---+---+---+-----------------+--------+--------+
| No. | C | U | N | R | Name            | Format | Length |
+-----+---+---+---+---+-----------------+--------+--------|
| TBD | x |   | x |   | Stateless-Proxy | opaque | 1-255  |
+-----+---+---+---+---+-----------------+--------+--------+
     C=Critical, U=Unsafe, N=NoCacheKey, R=Repeatable
]]></artwork></figure>

<t>Upon reception of a Stateless-Proxy option, the CoAP server MUST echo it in the response.
The value of the Stateless-Proxy option is internal proxy state that is opaque to the server.
Example state information includes IPv6 address of the client, its UDP source port, and the CoAP token.
For security reasons, the state information MUST be authenticated, MUST include a freshness indicator (e.g. a sequence number or timestamp) and MAY be encrypted.
The proxy may use an appropriate COSE structure <xref target="I-D.ietf-cose-msg"/> to wrap the state information as the value of the Stateless-Proxy option.
The key used for encryption/authentication of the state information may be known only to the proxy.</t>

<t>Once the proxy has received the CoAP response with Stateless-Proxy option present, it decrypts/authenticates it, checks the freshness indicator and constructs the response for the client, based on the information present in the option value.</t>

<t>Note that a CoAP proxy using the Stateless-Proxy option is not able to return 5.04 Gateway Timeout error in case the request to the server times out.
Likewise, if the response to the proxy's request does not contain the Stateless-Proxy option, for example when the option is not supported by the server, the proxy is not able to return the response to the client.</t>

</section>
</section>
<section anchor="edhoc" title="Security Handshake">

<t>In order to derive a shared session key, pledge and JRC run the EDHOC protocol <xref target="I-D.selander-ace-cose-ecdhe"/>.
During this process, pledge and JRC mutually authenticate each other and verify authorization information before proceeding with the Simple Join Protocol.
In case certificates are used for authentication, this document assumes that a special certificate with role attribute set has been provisioned to the JRC.
This certificate is verified by pledge in order to authorize JRC to continue with the join process.
How such a certificate is issued to the JRC is out of scope of this document.</t>

<t><xref target="fig_exchange-asymmetric"/> details the exchanges between the pledge and JRC that take place during the execution of the security handshake.
Format of EDHOC messages is specified in <xref target="I-D.selander-ace-cose-ecdhe"/>.
The handshake is initiated by the pledge.
JRC may either respond with an empty CoAP acknowledgment, signaling to the pledge that it needs to wait, or directly with the second message of EDHOC handshake.
How JRC decides whether it will immediately proceed with the handshake is out of scope of this document.</t>

<figure title="Transaction diagram of the security handshake." anchor="fig_exchange-asymmetric"><artwork align="center"><![CDATA[
+--------+                       +--------+
| pledge |                       |  JRC   |
|        |                       |        |
+--------+                       +--------+
    |                                 |
    |        EDHOC message_1          |
    +-------------------------------->|
    |                                 |
    |          Optional ACK           |
    |< - - - - - - - - - - - - - - - -+
    ~                                 ~
    |                                 |
    |        EDHOC message_2          |
    |<--------------------------------+
    |                                 |
    |        EDHOC message_3          |
    +-------------------------------->|
    |                                 | 

]]></artwork></figure>

</section>
<section anchor="simple_join_protocol" title="Simple Join Protocol Specification">

<t>Simple Join Protocol is a single round trip protocol (c.f. <xref target="fig_exchange-symmetric"/>) that facilitates secure enrollment of a pledge, based on a shared symmetric secret.
In case the pledge was provisioned by an asymmetric key (certificate or RPK), Simple Join Protocol is preceded by a security handshake, described in <xref target="edhoc"/>.
When the pledge is provisioned with a PSK, Simple Join Protocol may be run directly.</t>

<t>Pledge and JRC MUST protect their exchange end-to-end (i.e. through the proxy) using Object Security of CoAP (OSCOAP) <xref target="I-D.ietf-core-object-security"/>.</t>

<figure title="Transaction diagram of the Simple Join Protocol." anchor="fig_exchange-symmetric"><artwork align="center"><![CDATA[
+--------+                       +--------+
| pledge |                       |  JRC   |
|        |                       |        |
+--------+                       +--------+
    |                                 |
    |           Join Request          |
    +-------------------------------->|
    |                                 |
    |          Join Response          |
    |<--------------------------------+
    |                                 |

]]></artwork></figure>

<section anchor="oscoap-security-context-instantiation" title="OSCOAP Security Context Instantiation">

<t>The OSCOAP security context MUST be derived at pledge and JRC as per Section 3.2 of <xref target="I-D.ietf-core-object-security"/> using HKDF SHA-256 <xref target="RFC5869"/> as the key derivation function.</t>

<t><list style="symbols">
  <t>Master Secret MUST be the secret generated by the run of EDHOC as per Appendix B of <xref target="I-D.selander-ace-cose-ecdhe"/>, or the PSK in case EDHOC step was omitted.</t>
  <t>Sender ID of the pledge MUST be set to the concatenation of its EUI-64 and byte string 0x00.</t>
  <t>Recipient ID (ID of JRC) MUST be set to the concatenation of pledge's EUI-64 and byte string 0x01.
  The construct uses pledge's EUI-64 to avoid nonce reuse in the response in the case same PSK is shared by a group of pledges.</t>
  <t>Algorithm MUST be set to the value from <xref target="I-D.ietf-cose-msg"/> agreed by the run of EDHOC, or out-of-band in case of PSKs.</t>
</list></t>

<t>The derivation in <xref target="I-D.ietf-core-object-security"/> results in traffic keys and static IVs for each side of the conversation.
Nonces are constructed by XOR'ing the static IV with current sequence number.
The context derivation process occurs exactly once.</t>

<t>Implementations MUST ensure that multiple CoAP requests to different JRCs result in the use of the same OSCOAP context so that sequence numbers are properly incremented for each request.
This may happen in a scenario where there are multiple 6TiSCH networks present and the pledge tries to join one network at a time.</t>

</section>
<section anchor="join_request" title="Specification of Join Request">

<t>Message Join Request SHALL be mapped to a CoAP request:</t>

<t><list style="symbols">
  <t>The request method is GET.</t>
  <t>The Proxy-Scheme option is set to "coap".</t>
  <t>The Uri-Host option is set to "6tisch.arpa".</t>
  <t>The Uri-Path option is set to "j".</t>
  <t>The object security option SHALL be set according to <xref target="I-D.ietf-core-object-security"/> and OSCOAP parameters set as described above.</t>
</list></t>

</section>
<section anchor="join_response" title="Specification of Join Response">

<t>If OSCOAP processing is a success and the pledge is authorized to join the network, message Join Response SHALL be mapped to a CoAP response:</t>

<t><list style="symbols">
  <t>The response Code is 2.05 (Content).</t>
  <t>Content-Format option is set to application/cbor.</t>
  <t>The payload is a CBOR <xref target="RFC7049"/> array containing, in order:
  <list style="symbols">
      <t>COSE Key Set, specified in <xref target="I-D.ietf-cose-msg"/>, containing one or more link-layer keys.
  The mapping of individual keys to 802.15.4-specific parameters is described in <xref target="ll_keys"/>.</t>
      <t>Optional.
  Link layer short address that is assigned to the pledge.
  The format of the short address follows <xref target="short_address"/>.</t>
      <t>Optional.
  IPv6 address of the JRC transported as a byte string.
  If the address of the JRC is not present in the response, JRC is co-located with 6LBR.</t>
    </list></t>
</list></t>

<figure><artwork><![CDATA[
payload = [
    COSE_KeySet,
    ? short_address,
    ? JRC_address : bstr,
]
]]></artwork></figure>

<section anchor="ll_keys" title="Link-layer Keys Transported in COSE Key Set">
<t>Each key in the COSE Key Set <xref target="I-D.ietf-cose-msg"/> SHALL be a symmetric key.
If "kid" parameter of the COSE Key structure is present, the corresponding keys SHALL belong to an IEEE 802.15.4 KeyIdMode 0x01 class.
In that case, parameter "kid" of COSE Key structure SHALL be used to carry IEEE 802.15.4 KeyIndex value.
If the "kid" parameter is not present in the transported key, the application SHALL consider the key to be an IEEE 802.15.4 KeyIdMode 0x00 (implicit) key.
This document does not support IEEE 802.15.4 KeyIdMode 0x02 and 0x03 class keys.</t>

</section>
<section anchor="short_address" title="Short Address">
<t>Optional "short_address" structure transported as part of the join response payload represents IEEE 802.15.4 short address assigned to the pledge.
It is encoded as CBOR array object, containing in order:</t>

<t><list style="symbols">
  <t>Byte string, containing the 16-bit address.</t>
  <t>Optional lease time parameter, "lease_asn".
The value of the "lease_asn" parameter is the 5-byte Absolute Slot Number (ASN) corresponding to its expiration, carried as a byte string in network byte order.</t>
</list></t>

<figure><artwork><![CDATA[
short_address = [
    address : bstr,
    ? lease_asn : bstr,
]
]]></artwork></figure>

<t>It is up to the joined node to request a new short address before the expiry of its previous address.
The mechanism by which the node requests renewal is the same as during join procedure, as described in <xref target="rekey"/>.
The assigned short address is used for configuring both Layer 2 short address and Layer 3 addresses.</t>

</section>
<section anchor="error-handling" title="Error Handling">
<t>In the case JRC determines that pledge is not supposed to join the network (e.g. by failing to find an appropriate security context), it should respond with a 4.01 Unauthorized error.
Upon reception of a 4.01 Unauthorized, the pledge SHALL attempt to join the next advertised 6TiSCH network.
If all join attempts have failed at pledge, the pledge SHOULD signal to the user by an out-of-band mechanism the presence of an error condition.</t>

<t>In the case that the JRC determines that the pledge is not (yet) authorized to join the network, but a further zero-touch process might permit it, the JRC responds with a 2.05 (Content) code, but the payload contains the single CBOR string "prov" (for "provisional").
No link-layer keys or short address is returned.</t>

<t>This response is typically only expected when in asymmetric certificate mode using 802.1AR IDevID certificates.
But for reasons of provisioning or device reuse, this could occur even when a one-touch PSK authentication process was expected.</t>

</section>
</section>
</section>
<section anchor="mti_algos" title="Mandatory to Implement Algorithms and Certificate Format">

<t>The mandatory to implement symmetric-key algorithm for use with OSCOAP is AES-CCM-16-64-128 from <xref target="I-D.ietf-cose-msg"/>.
This is the algorithm used in 802.15.4, and is present in hardware on many platforms.
With this choice, CoAP messages are therefore protected with an 8-byte CCM authentication tag and the algorithm uses 13-byte long nonces.</t>

<t>The mandatory to implement hash algorithm is SHA-256 <xref target="RFC4231"/>.</t>

<t>Certificates or pre-configured RPKs may be used to exchange public keys between the pledge and JRC.
The mandatory to implement Elliptic Curve is P-256, also known as secp256r1.
The mandatory to implement signature algorithm is ECDSA with SHA-256.</t>

<t>The certificate itself may be a compact representation of an X.509 certificate, or a full X.509 certificate.
Compact representation of X.509 certificates is out of scope of this specification.
The certificate is signed by a root CA whose certificate is installed on all nodes participating in a particular 6TiSCH network, allowing each node to validate the certificate of the JRC or pledge as appropriate.</t>

</section>
<section anchor="link-layer-requirements" title="Link-layer Requirements">

<t>In an operational 6TiSCH network, all frames MUST use link-layer frame security.
The frame security options MUST include frame authentication, and MAY include frame encryption.</t>

<t>Link-layer frames are protected with a 16-byte key, and a 13-byte nonce constructed from current Absolute Slot Number (ASN) and the source (the JP for EBs) address, as shown in <xref target="fig_ccm-nonce"/>:</t>

<figure title="Link-layer CCM* nonce construction" anchor="fig_ccm-nonce"><artwork align="center"><![CDATA[
+-------------------------------------------+
|  Address (8B or 00-padded 2B) | ASN (5B)  |
+-------------------------------------------+
]]></artwork></figure>

<t>The pledge does not initially do any authentication of the EB frames, as it does not know the K1 key.
When sending frames, the pledge sends unencrypted and unauthenticated frames.
JP accepts these frames (exempt mode in 802.15.4) for the duration of the join process.
How JP learns whether the join process is ongoing is out of scope of this specification.</t>

<t>As the EB itself cannot be authenticated by pledge, an attacker may craft a frame that appears to be a valid EB, since the pledge can neither know the ASN a priori nor verify the address of the JP.
This permits a Denial of Service (DoS) attack at the pledge.
Beacon authentication keys are discussed in <xref target="I-D.ietf-6tisch-minimal"/>.</t>

</section>
<section anchor="rekey" title="Rekeying and Rejoin">

<t>This protocol handles initial keying of the pledge.
For reasons such as rejoining after a long sleep, or expiry of the short address, the joined node MAY send a new Join Request over the previously established secure end-to-end session with JRC.
JRC responds with up-to-date keys and a short address.
The node may also use the Simple Join Protocol exchange for node-initiated rekeying.
How node learns that it should be rekeyed is out of scope.
Additional work, such as in <xref target="I-D.richardson-6tisch-minimal-rekey"/> can be used.</t>

</section>
<section anchor="key-derivations" title="Key Derivations">

<t>When EDHOC is used to derive keys, the cost of the asymmetric operation can be amortized over any additional connections that may be required between the node (during or after joining) and the JRC.</t>

<t>Each application SHOULD use a unique session key.
EDHOC was designed with this in mind.
In order to accomplish this, the EDHOC key derivation algorithm can be run with a different label.
Other users of this key MUST define the label.</t>

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

<t>In case PSKs are used, this document mandates that the pledge and JRC are pre-configured with unique keys.
The uniqueness of generated nonces is guaranteed under the assumption of unique EUI64 identifiers for each pledge.
Note that the address of the JRC does not take part in nonce construction.
Therefore, even should an error occur, and a PSK shared by a group of nodes, the nonces constructed as part of the different responses are unique.
The PSK is still important for authentication of the pledge and authentication of the JRC to the pledge.
Should an attacker come to know the PSK, then a man-in-the-middle attack is possible.
The well known problem with Bluetooth headsets with a "0000" pin applies here.
The design differentiates between nonces constructed for requests and nonces constructed for responses by different sender identifiers (0x00 for pledge and 0x01 for JRC).</t>

<t>Being a stateless relay, JP blindly forwards the join traffic into the network.
While the exchange between pledge and JP takes place over a shared cell, join traffic is forwarded using dedicated cells on the JP to JRC path.
In case of distributed scheduling, the join traffic may therefore cause intermediate nodes to request additional bandwidth. (EDNOTE: this is a problem that needs to be solved)
Because the relay operation of JP is implemented at the application layer, JP is the only hop on the JP-6LBR path that can distinguish join traffic from regular IP traffic in the network.
It is therefore recommended to implement stateless rate limiting at JP: a simple bandwidth (in bytes or packets/second) cap would be appropriate.</t>

<t>The shared nature of the "minimal" cell used for join traffic makes the network prone to DoS attacks by congesting the JP with bogus radio traffic.
As such an attacker is limited by emitted radio power, redundancy in the number of deployed JPs alleviates the issue and also gives the pledge a possibility to use the best available link for join.
How a network node decides to become a JP is out of scope of this specification.</t>

<t>At the time of the join, the pledge has no means of verifying the content in the EB and has to accept it at "face value".
In case the pledge tries to join an attacker's network, the join response message in such cases will either fail the security check or time out.
The pledge may implement a blacklist in order to filter out undesired beacons and try to join the next seemingly valid network.
The blacklist alleviates the issue but is effectively limited by the node's available memory.
Such bogus beacons will prolong the join time of the pledge and so the time spent in "minimal" <xref target="I-D.ietf-6tisch-minimal"/> duty cycle mode.</t>

</section>
<section anchor="privacy-considerations" title="Privacy Considerations">

<t>This specification relies on the uniqueness of EUI64 that is transferred in clear as part of the security context identifier. (EDNOTE: should we say IID here?)
Privacy implications of using such long-term identifier are discussed in <xref target="RFC7721"/> and comprise correlation of activities over time, location tracking, address scanning and device-specific vulnerability exploitation.
Since the join protocol is executed rarely compared to the network lifetime, long-term threats that arise from using EUI64 are minimal.
In addition, the join response message contains an optional short address which can be assigned by JRC to the pledge.
The short address is independent of the long-term identifier EUI64 and is encrypted in the response.
For that reason, it is not possible to correlate the short address with the EUI64 used during the join.
Use of short addresses once the join protocol completes mitigates the aforementioned privacy risks.
In addition, EDHOC may be used for identity protection during the join protocol by generating a random context identifier in place of the EUI64 <xref target="I-D.selander-ace-cose-ecdhe"/>.</t>

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

<t>Note to RFC Editor: Please replace all occurrences of "[[this document]]" with the RFC number of this specification.</t>

<t>This document allocates a well-known name under the .arpa name space according to the rules given in: <xref target="RFC3172"/>.
The name "6tisch.arpa" is requested.
No subdomains are expected.
No A, AAAA or PTR record is requested.</t>

<section anchor="coap-option-numbers-registry" title="CoAP Option Numbers Registry">

<t>The Stateless-Proxy option is added to the CoAP Option Numbers registry:</t>

<figure><artwork align="center"><![CDATA[
+--------+-----------------+-------------------+
| Number | Name            | Reference         |
+--------+-----------------+-------------------+
|  TBD   | Stateless-Proxy | [[this document]] |
+--------+-----------------+-------------------+
]]></artwork></figure>

</section>
</section>
<section anchor="acknowledgments" title="Acknowledgments">

<t>The work on this document has been partially supported by the European Union's H2020 Programme for research, technological development and demonstration under grant agreement No 644852, project ARMOUR.</t>

<t>The authors are grateful to Thomas Watteyne and Goeran Selander for reviewing the draft and to Klaus Hartke for providing input on the Stateless-Proxy CoAP option.
The authors would also like to thank Francesca Palombini and Ludwig Seitz for participating in the discussions that have helped shape the document.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC7252;
&RFC7049;
&I-D.ietf-cose-msg;
&I-D.ietf-core-object-security;
&RFC3172;


    </references>

    <references title='Informative References'>

&RFC7554;
&RFC6775;
&RFC6347;
&RFC5869;
&RFC4231;
&RFC7721;
&I-D.ietf-6tisch-minimal;
&I-D.ietf-6tisch-dtsecurity-secure-join;
&I-D.ietf-6tisch-6top-protocol;
&I-D.ietf-6tisch-terminology;
&I-D.selander-ace-cose-ecdhe;
&I-D.ietf-anima-bootstrapping-keyinfra;
&I-D.richardson-6tisch-join-enhanced-beacon;
&I-D.richardson-6tisch-minimal-rekey;
<reference anchor="IEEE8021542015" >
  <front>
    <title>IEEE Std 802.15.4-2015 Standard for Low-Rate Wireless Personal Area Networks (WPANs)</title>
    <author initials="." surname="IEEE standard for Information Technology">
      <organization></organization>
    </author>
    <date year="2015"/>
  </front>
</reference>


    </references>


<section anchor="example" title="Example">

<t><xref target="fig_example-psk"/> illustrates a join protocol exchange in case PSKs are used.
Pledge instantiates the OSCOAP context and derives the traffic keys and nonces from the PSK.
It uses the instantiated context to protect the CoAP request addressed with Proxy-Scheme option and well-known host name of JRC in the Uri-Host option.
Triggered by the presence of Proxy-Scheme option, JP forwards the request to the JRC and adds the Stateless-Proxy option with value set to the internally needed state, authentication tag, and a freshness indicator.
JP learned the IPv6 address of JRC when it acted as a pledge and joined the network.
Once JRC receives the request, it looks up the correct context based on the Sender ID (sid) parameter.
It reconstructs OSCOAP's external Additional Authenticated Data (AAD) needed for verification based on:</t>

<t><list style="symbols">
  <t>Version field of the received CoAP header.</t>
  <t>Code field of the received CoAP header.</t>
  <t>Algorithm being the AES-CCM-16-64-128 from <xref target="I-D.ietf-cose-msg"/>.</t>
  <t>Request ID being set to pledge's EUI-64 concatenated with 0x00.</t>
  <t>Request Sequence number set to the value of "Partial IV" of the received COSE object.</t>
</list></t>

<t>Replay protection is ensured by OSCOAP and the tracking of sequence numbers at each side.
In the example below, the response contains sequence number 7 meaning that there have already been some attempts to join under a given context, not coming from the pledge.
Once JP receives the response, it authenticates the Stateless-Proxy option before deciding where to forward.
JP sets its internal state to that found in the Stateless-Proxy option.
Note that JP does not posses the key to decrypt the COSE object present in the payload so the join_response object is opaque to it.
The response is matched to the request and verified for replay protection at pledge using OSCOAP processing rules.
The response does not contain JRC's address as in this particular example, we assume that JRC is co-located with 6LBR.</t>

<figure title="Example of a join protocol exchange with a PSK. {} denotes encryption and authentication, [] denotes authentication." anchor="fig_example-psk"><artwork align="center"><![CDATA[
<--E2E OSCOAP-->
Client  Proxy Server
Pledge   JP    JRC
  |      |      |
  +----->|      |            Code: [0.01] (GET)
  | GET  |      |           Token: 0x8c
  |      |      |    Proxy-Scheme: [coap]
  |      |      |        Uri-Host: [6tisch.arpa]
  |      |      | Object-Security: [sid:EUI-64 | 0, seq:1,
  |      |      |                   {Uri-Path:"j"},
  |      |      |                   <Tag>]
  |      |      |         Payload: -
  |      |      |
  |      +----->|            Code: [0.01] (GET)
  |      | GET  |           Token: 0x7b
  |      |      |        Uri-Host: [6tisch.arpa]
  |      |      | Object-Security: [sid:EUI-64 | 0, seq:1,
  |      |      |                   {Uri-Path:"j"},
  |      |      |                   <Tag>]
  |      |      | Stateless-Proxy: opaque state
  |      |      |         Payload: -
  |      |      |
  |      |<-----+            Code: [2.05] (Content)
  |      | 2.05 |           Token: 0x7b
  |      |      | Object-Security: -
  |      |      | Stateless-Proxy: opaque state
  |      |      |         Payload: [ seq:7,
  |      |      |                   {join_response}, <Tag>]
  |      |      |
  |<-----+      |            Code: [2.05] (Content)
  | 2.05 |      |           Token: 0x8c
  |      |      | Object-Security: -
  |      |      |         Payload: [ seq:7,
  |      |      |                   {join_response}, <Tag>]
  |      |      |
]]></artwork></figure>

<t>Where join_response is as follows.</t>

<figure><artwork><![CDATA[
join_response:
[
    [   / COSE Key Set array with a single key /
        {
             1 : 4, / key type symmetric /
             2 : h'01', / key id /
            -1 : h'e6bf4287c2d7618d6a9687445ffd33e6' / key value /
        }
    ],
    [
        h'af93' / assigned short address /
    ]
]
]]></artwork></figure>

<t>Encodes to h'8281a301040241012050e6bf4287c2d7618d6a9687445ffd33e68142af93' with a size of 30 bytes.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAHtJQlkAA+V92Xbb1pbgO7/itPxgKSEZSZZsRytJXVlSYsW2rBblpKpz
vbIg4FBEBAIsHFAyY/uu/of+w/6S3tOZAGjIUP3QrVq3QmM4wz57njAajQZN
3hR6T73Jy3yeFGqi02WdNyv1fZ3M9U1VX6lpVaun5/nk4OXgkUouLmp9vaee
NrlJZ6M5vzYy8togq9ISXtxTWZ1Mm1Gum+nolmdHm08GMKJpkjL7NSmqEt5q
6qUeDPJFTT9Ns725+fXm9iCpdbKnjstG16VuBjeXe7Ii9TOsMC8v1Q91tVwM
rm78U6NDXMEgTZo9mCMbDNIqgyf31NKMEpPm+WCR7w2Uaqp0T620gZ+mqpta
T43792oe/hOezPSime2p7cEgWTazqsYB8G8k/1UqL+H5N2P10zKF/abuOkPl
TVLkJuncrOpLXHidJ+5SXeGx6Cxvqtpd1PMkL/bUnEYZX/Mo/8jxxfHUP2Zg
Fxq2va3OllpN8jnAVh1Pp+6BFMC/p06TOjf+WpXBhM92N7e2g2vLsqnhUcCG
MtX9m/1xzFO0tvpjVSbNLClbN2mrr/NSJ7U61+msrIrqctXe4W8GX/pHQc+N
02re2duT7a+/3lT7xXVSJ1k1OskLbdRZlWRDNVnmjVZfb2229vuuzKtSHcDv
oTrYb238653d58+6G3832e/f9auxOs0NoFpr268Apu07tGeY/VrXBmmrmqoD
OEIgrDJP1AtdX+lCd2CwoEH+oXVqxhfyzFhnyw4odre21UFVr9TLpChae7aD
9+742fbmH9gxIPVZns6SOjOdw36DN3TR9wBtfgI0ros5YkM1bW6AnolyTQez
0/pL5Bn/MPaFcZp0NrzzbFMdJjcwi9q/1uVStzb9tmmSm2So3p60tvxq63/s
/tRzygdJmWTJYFBW9Txp4Jz2BvDQ2fcH21tbX+/xz2fbu9v25+YOXT0eHY6J
w6WV0aO5uWxdrPWouvhNp43jeTBuXk79LDzc7u6O/Hz67Nmu/flk55n83H3+
1K5iZ/vJln3t2fZWNGHMZ/tuZY1jvvRDj36r8rLvyadNtRgt6gp4XtU7FKAm
TETEa28bXeCp1aMk1QwSnWYzHb2d4NpGF1XVwGEmiwVw5NGVXgFQ6sQ+WDsk
spPhKke6nCETykYXOkmr8vanraCpNYxMjx0dHT3f3N7a3dne3Nplni1ybw3v
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
AAA=

-->

</rfc>

