<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.2 (Ruby 2.7.4) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-rieckers-emu-eap-noob-observations-00" category="info" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="EAP-NOOB observations">Observations about EAP-NOOB (RFC 9140)</title>

    <author initials="J.-F." surname="Rieckers" fullname="Jan-Frederik Rieckers">
      <organization abbrev="DFN">Deutsches Forschungsnetz | German National Research and Education Network</organization>
      <address>
        <postal>
          <street>Alexanderplatz 1</street>
          <city>Berlin</city>
          <code>10178</code>
          <country>Germany</country>
        </postal>
        <email>rieckers@dfn.de</email>
        <uri>www.dfn.de</uri>
      </address>
    </author>

    <date year="2022" month="March" day="07"/>

    <area>SEC</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>EAP-NOOB</keyword> <keyword>EAP</keyword> <keyword>IoT</keyword>

    <abstract>


<t>This memo is a random list of things the author noticed about EAP-NOOB when looking at the draft and running the implementation while capturing the packets (https://github.com/Vogeltak/hostap).</t>

<t>Most of the statements were written down before the author started the implementation.
By the time of writing this draft, a mostly complete server implementation has been written.
The implementation-specific remarks are mostly thoughts the author had while planning their own implementation.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-rieckers-emu-eap-noob-observations/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        EAP Method Update (emu) Working Group mailing list (<eref target="mailto:emu@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/emu/"/>.
      </t>
    </note>


  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>(see abstract)</t>

</section>
<section anchor="areas-of-observations"><name>Areas of observations</name>

<section anchor="why-use-json"><name>Why use JSON?</name>

<t>The author's initial reaction when they first read the draft was: Why use JSON and not a binary protocol?
Almost no advantages of using JSON (dynamic keys, reordering, flexible and possible deep structure) are needed for or used in this protocol, while on the other hand the JSON serialization is problematic for the calculation of MAC/Hoob/...
Especially the need to extract the JSON value of the PeerInfo and ServerInfo field may cause problems in the Hash/HMAC calculation, if peer and server do not agree on a JSON serialization.</t>

<t>The protocol has many static parts (always the field "Type", mostly fixed parameters depending on the type, ...), so it seems as if the number of bytes and the parsing effort could be significantly reduced if static protocol messages (e.g. like in the TLS Handshake messages) were used.</t>

<t>If the message format should be more flexible, CBOR seems to be a good
idea as well. Here a simple map (best with numbers as keys) could be
used, combined with deterministic encoding (<xref section="4.2" sectionFormat="of" target="RFC8949"/>).</t>

</section>
<section anchor="iana-registries"><name>IANA-Registries</name>

<t>EAP-NOOB has a striking number of IANA-registered protocol parameters with a dedicated IANA registry page only for EAP-NOOB. At first glance this seems a bit odd, since the protocol does not seem to be this complex.</t>

<t>Especially the choice for a designated registry for cryptosuites seems odd.
With the current situation, every new curve has to be respecified instead of just using existing registries.
This requires implementers to update their EAP-NOOB implementation instead of just updating the cryptographic library behind it.
The current specification specifies only two cryptosuites, which may not be feasible for all use cases, especially if higher security levels are required.</t>

<t>As a possible alternative, the COSE algorithms registry provides short identifiers for many relevant parameters.</t>

<t>Another odd thing is the Server-/PeerInfo Registry, see <xref target="ServerPeerInfo"/>.</t>

</section>
<section anchor="unnecessarily-long-messages"><name>Unnecessarily long messages</name>

<t>It seems that the protocol uses an unnecessarily high number of bytes to transfer the information.
Though this should not lead to issues on the EAP/WPA2 level, it seems that the protocol is not well-suited for constrained devices.</t>

<t>This is especially prominent for the encoding of the ServerInfo and PeerInfo fields.
Since the IANA policy is "Specification required", shorter identifiers could have been used instead of human-readable names, leading to shorter messages.</t>

<t>The author was also a little confused about the reason why the PeerId is always retransmitted.
Other EAP-Methods do just fine without any explicit information to identify the exact EAP instance running, so it seems a bit odd that the server and the peer keep telling each other what the PeerId is.
From the author's understanding, the PeerId only has to be transmitted once, either in the first EAP-NOOB message from the peer to the server, if the PeerId was assigned in a previous EAP-NOOB conversation, or in the second EAP-NOOB message from the server to the peer, if a new PeerId has to be allocated.
The PeerId can then be saved to the current EAP state information.
This also seems useful to prevent bad implementations where the PeerId is not checked every time (since it is always the same anyway), but for the calculation of Hoob/..., only the one transmitted last is used, which an attacker could have modified.
However, this is a random thought of how broken implementations could be; the author has not yet analyzed the actual attack vector or its effects.</t>

<t>In the server implementation by the author, the PeerId sent by the client is ignored in all messages except the aforementioned.</t>

</section>
<section anchor="ServerPeerInfo"><name>Unclear status of ServerInfo and PeerInfo</name>

<t>The specification is somewhat ambiguous regarding the ServerInfo and PeerInfo fields.
Section 3.3.2 of <xref target="RFC9140"/> specifies them as "The format and semantics of these objects MUST be defined by the application that uses the EAP-NOOB method."
On the other hand, specific fields are defined in Section 5.4 and 5.5.
In Section 6.7 (Channel Binding) the RFC states: "The peer MAY include in PeerInfo any data items that it wants to bind to the EAP-NOOB association and to the exported keys."</t>

<t>This is especially interesting for the calculation of Hoob/MACs/MACp/... since the PeerInfo and ServerInfo fields are encoded as JSON, both the Server and the Peer have to somehow agree on a serialization of the JSON object inside. This could become extremely tricky once either side sends attributes the other one does not expect, e.g. a field with an additional object inside. Since it is JSON and not a JSON-encoded string, the client has to parse the whole JSON tree in order to compute the correct Hoob/MACs/MACp/... value.
Again, this could be easier with other data representation formats. With CBOR, the specification could simply use the bytes, which the CBOR parser could easily distinguish.
Additionally, <xref target="RFC8949"/> specifies a canonical encoding, so both peer and server can generate the Hash/HMAC deterministically, even if the implementation only saves the content of the fields, not the encoded message.</t>

<t>Since the IANA registration procedure for PeerInfo/ServerInfo is "Specification required", additional use cases for these fields cannot easily be added.
For a Masters project at the University of Bremen, students are looking into MUD (<xref target="RFC8520"/>), and it would be interesting to transmit the MUD URL in the PeerInfo, or the server could transmit some initial (public) configuration parameters for the device, e.g. the URI for a SmartHome controller.
Since RFC 9140 does not specify how to deal with unexpected or unknown fields, this could lead to unexpected behavior, if the peer does not understand the server's parameters.</t>

</section>
<section anchor="number-of-messages-exchanged"><name>Number of messages exchanged</name>

<t>The number of messages exchanged seems to be on the high side.</t>

<t>For the initial exchange this leads to 4 roundtrips, for the reconnect
exchange 5 roundtrips, which seems unnecessarily high.
(The counts given start with the EAP-Response/Identity packet.)</t>

<t>Let's describe one straightforward way to reduce the number of messages needed, primarily for the initial handshake:</t>

<t>The server could send its supported Versions, Cryptosuites and Directions in the first EAP-NOOB message.</t>

<t>If the peer is in the initial state, in the last message of the common handshake, the peer already knows that it wants to negotiate a new set of connection parameters, so it could already transmit its ECDHE parameters along with the PeerInfo. If the server had already sent its supported versions, cryptosuites and directions, it could already choose the suitable methods.</t>

<t>In the answer the server could then transmit its ServerInfo and its ECDHE parameters.
This saves at least one roundtrip. It also gives the server the ability to send different ServerInfo parameters depending on the type of the peer device.
This would also enable configuration provisioning; for instance, if a
light bulb is connected, the server could already send the address of
the light controller to which the bulb should connect to once the EAP-NOOB connection is established.
(See previous point on ServerInfo and PeerInfo.)</t>

<t>If the peer is already connected, sending the supported versions and cryptosuites in the first message would also give the peer enough information to decide whether a renegotiation with a newer version or updated cryptographic keys is necessary and could already transmit new ECDHE parameters.</t>

<t>Details of these thoughts have been put into the draft <xref target="I-D.draft-rieckers-emu-eap-ute"/>. In this draft, all standard exchanges consist of 3 roundtrips.</t>

</section>
<section anchor="reconnecting-state-in-state-machine"><name>Reconnecting State in state machine</name>

<t>The existence of the "Reconnecting" state in the state diagram is a bit confusing, since the differentiation between Reconnecting and Registered State does not serve a further purpose other than to determine if the peer is currently connected to a network.
For the server, the difference between Reconnecting and Registered state should not be relevant at all, since it is never the initiator of the EAP conversation.
Once the peer loses its connection, a reconnect attempt has to be started
anyway, so the peer should never start an EAP-NOOB handshake when in
state 4 (this behavior is also specified). Specifying this state may
help with implementation, but it might also confuse the implementer.</t>

</section>
<section anchor="missing-specification"><name>Missing Specification</name>

<t>RFC 9140 never explicitly specifies which value should be used for the Protocol Version field.
Only example values are given in Section 3.3.2 for Vers and Verp, from which the version number 1 could be guessed.</t>

</section>
</section>
<section anchor="IANA"><name>IANA Considerations</name>

<t>This memo includes no request to IANA.</t>

</section>
<section anchor="Security"><name>Security Considerations</name>

<t>This document discusses a specification that is intended to provide security when initiating Internet access.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference anchor='RFC9140' target='https://www.rfc-editor.org/info/rfc9140'>
<front>
<title>Nimble Out-of-Band Authentication for EAP (EAP-NOOB)</title>
<author fullname='T. Aura' initials='T.' surname='Aura'><organization/></author>
<author fullname='M. Sethi' initials='M.' surname='Sethi'><organization/></author>
<author fullname='A. Peltonen' initials='A.' surname='Peltonen'><organization/></author>
<date month='December' year='2021'/>
<abstract><t>The Extensible Authentication Protocol (EAP) provides support for multiple authentication methods. This document defines the EAP-NOOB authentication method for nimble out-of-band (OOB) authentication and key derivation. The EAP method is intended for bootstrapping all kinds of Internet-of-Things (IoT) devices that have no preconfigured authentication credentials. The method makes use of a user-assisted, one-directional, out-of-band (OOB) message between the peer device and authentication server to authenticate the in-band key exchange. The device must have a nonnetwork input or output interface, such as a display, microphone, speaker, or blinking light, that can send or receive dynamically generated messages of tens of bytes in length.</t></abstract>
</front>
<seriesInfo name='RFC' value='9140'/>
<seriesInfo name='DOI' value='10.17487/RFC9140'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='RFC8949' target='https://www.rfc-editor.org/info/rfc8949'>
<front>
<title>Concise Binary Object Representation (CBOR)</title>
<author fullname='C. Bormann' initials='C.' surname='Bormann'><organization/></author>
<author fullname='P. Hoffman' initials='P.' surname='Hoffman'><organization/></author>
<date month='December' year='2020'/>
<abstract><t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t><t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049.  It does not create a new version of the format.</t></abstract>
</front>
<seriesInfo name='STD' value='94'/>
<seriesInfo name='RFC' value='8949'/>
<seriesInfo name='DOI' value='10.17487/RFC8949'/>
</reference>



<reference anchor='RFC8520' target='https://www.rfc-editor.org/info/rfc8520'>
<front>
<title>Manufacturer Usage Description Specification</title>
<author fullname='E. Lear' initials='E.' surname='Lear'><organization/></author>
<author fullname='R. Droms' initials='R.' surname='Droms'><organization/></author>
<author fullname='D. Romascanu' initials='D.' surname='Romascanu'><organization/></author>
<date month='March' year='2019'/>
<abstract><t>This memo specifies a component-based architecture for Manufacturer Usage Descriptions (MUDs).  The goal of MUD is to provide a means for end devices to signal to the network what sort of access and network functionality they require to properly function.  The initial focus is on access control.  Later work can delve into other aspects.</t><t>This memo specifies two YANG modules, IPv4 and IPv6 DHCP options, a Link Layer Discovery Protocol (LLDP) TLV, a URL, an X.509 certificate extension, and a means to sign and verify the descriptions.</t></abstract>
</front>
<seriesInfo name='RFC' value='8520'/>
<seriesInfo name='DOI' value='10.17487/RFC8520'/>
</reference>


<reference anchor="I-D.draft-rieckers-emu-eap-ute" >
  <front>
    <title>User-assisted Trust Establishment (EAP-UTE)</title>
    <author initials="J.-F." surname="Rieckers" fullname="Jan-Frederik Rieckers">
      <organization>DFN, Germany</organization>
    </author>
    <date year="2022"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-rieckers-emu-eap-ute-00"/>
  <format type="TXT" target="https://www.ietf.org/archive/id/draft-rieckers-emu-eap-ute-00.txt"/>
</reference>


    </references>


<section numbered="false" anchor="Acknowledgements"><name>Acknowledgements</name>

<t>TBD</t>

<!--  LocalWords:  cryptosuites roundtrip ECDHE
 -->

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
H4sIAPziJWIAA41a23bbSHZ9x1dU7IeRVkjIluWZtiYr07Jkx5rVvixL7k7y
VgSKJEYgikEBotmO/iZ/kh/L3udUgSB96fTyapsEqupc99nnFKfTaXZ/bp5l
he3OTdXMvXlsLpeuuMtCP1tVIVS+6bZrd26uX92+zmzr7Lm5eXWZbRb4qulc
27jOvGoWVeNcWzULc2vDnXnt28JlWemLxq6wuGztvJu2FTZ2bZi6VT91dj1t
vJ9N/Sy49t52OClMnzzJsq7qaqx5P/re2Jnvcc7Fh+m79+9fmqOPry/Ni6dn
T44zO5u1DjoMz8b7ZbVtIKhrsrvNeWbMdHgtfZC/r/1t9tiUtsOxp09OT6dP
+MdMp/KdqYKZV3XtSljI2L7zK+xe2LremtnWfF7Vp+28MNXcNL4zi+oex+Gt
pW/1SDXB320zfd26Ela6Mx+jJfDcGN9CxCvXd6FYukDb4R99swgw7e/mv82/
uXZlG/NOVLK1+eiCs22xNLYpzauyL+SBeee6jW/vZMtklKvX7+Rz4UuI8PTJ
07/8pJ+rbntuXrq2rpr4Qt90Lb7Tw7bypVvZqj43yW0/l/MmL508Cl3rHELm
onafIYZr17WFsE/lYd9W52az2eRxQYEYaqsZDLdnkUvbhs415qXnkc3OFp8a
2LANVfe//9OZl61b4aXb/7zeO/iDD93cwgjPnj05O3sy1koWjNS+mp7+9Oz5
i+/ruV76Bu/989mL6dnp0+np05+mf3724vTp2AgFIvDn7vcqh4RZljWUuYOY
VAjByFg8N4znjFm0//CnF2cvsMPMt/Hz81O8vOpLfLyeXuXfyY6+kw2MiQnx
CXE9tUhJWK00t20fkBGhs7O6Ckuo3JkjRven21fHGgRDDPK/P4rCFIev3032
jLPLCrU/VrpAHdPGCQWmV1Tju7kObZjdXKH2Setv//323Cy7bh3OT04YNZXr
5jTzCYMcVjypypMfbpp3n7ssQ9r1YrBF6/u1AIJ562CC0nxaSx4fYRlNox7F
h5/TUVk2RbLbGaLLFtjrdomcX7mVZ+5b0yLE/crAzp3xc9MtAXQBf7loYyZ+
VcApBzC1WSJya+/vCIy2kxWiiaRu2zcNH/DbarWuGbad5vJmWdUOMbfu+ja9
srbQvQvmKNlqUXXLfpYXfnXyq1+4urN3J0ukhV0f51n21idhHZIG6nP3YDau
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
AA==

-->

</rfc>

