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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc tocindent="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>

<rfc ipr="pre5378Trust200902" docName="draft-ietf-suit-mud-03" category="std">

  <front>
    <title abbrev="SUIT MUD Linkage">Strong Assertions of IoT Network Access Requirements</title>

    <author initials="B." surname="Moran" fullname="Brendan Moran">
      <organization>Arm Limited</organization>
      <address>
        <email>brendan.moran.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Arm Limited</organization>
      <address>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>

    <date year="2023" month="March" day="13"/>

    <area>Security</area>
    <workgroup>SUIT</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>The Manufacturer Usage Description (MUD) specification describes the access and network functionality required a device to properly function. The MUD description has to reflect the software running on the device and its configuration. Because of this, the most appropriate entity for describing device network access requirements is the same as the entity developing the software and its configuration.</t>

<t>A network presented with a MUD file by a device allows detection of misbehavior by the device software and configuration of access control.</t>

<t>This document defines a way to link a SUIT manifest to a MUD file offering a stronger binding between the two.</t>



    </abstract>


  </front>

  <middle>


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

<t>Under <xref target="RFC8520"/>, devices report a URL to a MUD manager in the network. RFC 8520 envisions different approaches for conveying the information from the device to the network such as:</t>

<t><list style="symbols">
  <t>DHCP,</t>
  <t>IEEE802.1AB Link Layer Discovery Protocol (LLDP), and</t>
  <t>IEEE 802.1X whereby the URL to the MUD file would be contained in the certificate used in an EAP method.</t>
</list></t>

<t>The MUD manager then uses the the URL to fetch the MUD file, which contains access and network functionality required a device to properly function.</t>

<t>The MUD manager must trust the service from which the URL is fetched and to return an authentic copy of the MUD file. This concern may be mitigated using the optional signature reference in the MUD file. The MUD manager must also trust the device to report a correct URL. In case of DHCP and LLDP the URL is unprotected. When the URL to the MUD file is included in a certificate then it is authenticated and integrity protected. A certificate created for use with network access authentication is typically not signed by the entity that wrote the software and configured the device, which leads to conflation of local network access rights with rights to assert all network access requirements.</t>

<t>There is a need to bind the entity that creates the software and configuration to the MUD file because only that entity can attest the network access requirements of the device. This specification defines an extension to the SUIT manifest to include a MUD file (per reference or by value). When combining a manufacturer usage description with a manifest used for software/firmware updates (potentially augmented with attestation) then a network operator can get more confidence in the description of the access and network functionality required a device to properly function.</t>

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

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
   capitals, as shown here.</t>

</section>
<section anchor="workflow"><name>Workflow</name>

<t>The intended workflow is as follows:</t>

<t><list style="symbols">
  <t>At the time of onboarding, devices report their manifest in use to the MUD manager.</t>
  <t>If the SUIT_MUD_container has been severed, the suit-reference-uri can be used to retrieve the complete manifest.</t>
  <t>The manifest authenticity is verified by the MUD manager, which enforces that the MUD file presented is also authentic and as intended by the device software vendor.</t>
  <t>Each time a device is updated, rebooted, or otherwise substantially changed, it will execute an attestation.
  <list style="symbols">
      <t>Among other claims in the Entity Attestation Token (EAT) <xref target="I-D.ietf-rats-eat"/>, the device will report its software digest(s), configuration digest(s), primary manifest URI, and primary manifest digest to the MUD manager.</t>
      <t>The MUD manager can then validate these attestation reports in order to check that the device is operating with the expected version of software and configuration.</t>
      <t>Since the manifest digest is reported, the MUD manager can look up the corresponding manifest.</t>
    </list></t>
  <t>If the MUD manager does not already have a full copy of the manifest, it can be acquired using the reference URI.</t>
  <t>Once a full copy of the manifest is provided, the MUD manager can verify the device attestation report</t>
  <t>The MUD manager acquires the MUD file from the MUD url.</t>
  <t>The MUD manager verifies the MUD file signature using the provided Subject Key Identifier.</t>
  <t>Then, the MUD manager can apply any appropriate policy as described by the MUD file.</t>
</list></t>

</section>
<section anchor="advantages-over-previous-mud-url-reporting-mechanisms"><name>Advantages over previous MUD url reporting mechanisms</name>

<t>Binding within the firmware manifest has several advantages over other MUD url reporting mechanisms:</t>

<t><list style="symbols">
  <t>The MUD url is tightly coupled to device firmware version.</t>
  <t>The device does not report the url, so the device cannot tamper with the url.</t>
  <t>The onus is placed on the software author to provide a MUD file that describes their device.</t>
  <t>The Manifest Author (software signer) explicitly authorizes a key to sign MUD files, providing a tight coupling between the party that knows device behavior best (the manifest author) and the party that declares device behavior (MUD file signer).</t>
  <t>Network operators do not need to know, a priori, which MUD url to use for each device; this can be harvested from the device's manifest and only replaced if necessary.</t>
  <t>A network operator can still replace a MUD url:  <list style="symbols">
      <t>By providing a manifest that overrides the MUD url.</t>
      <t>By replacing the MUD url in network infrastructure.</t>
    </list></t>
  <t>Devices can be quarantined if they do not attest a known software version.</t>
  <t>Devices cannot lie about which MUD url to use.</t>
</list></t>

</section>
<section anchor="extensions-to-suit"><name>Extensions to SUIT</name>

<t>To enable strong assertions about the network access requirements that a device should have for a particular software/configuration pair a MUD url is added to SUIT along with a subject-key identifier, according to <xref target="RFC7093"/>, mechanism 4 (the keyIdentifier is composed of the hash of the DER encoding of the SubjectPublicKeyInfo value). The Subject Key Identifier MUST be constructed with mechanism 4.</t>

<t>The following CDDL describes the extension to the SUIT_Manifest structure:</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$severable-manifest-members-choice-extensions //= (
  suit-manifest-mud => SUIT_Digest / SUIT_MUD_container
)
]]></sourcecode></figure>

<t>The SUIT_Envelope is also amended:</t>

<figure><sourcecode type="CDDL"><![CDATA[
$$SUIT_severable-members-extensions //= (
  suit-manifest-mud => bstr .cbor SUIT_MUD_container
)

SUIT_MUD_container = {
    suit-mud-url => #6.32(tstr),
    suit-mud-ski => SUIT_Digest,
}
]]></sourcecode></figure>

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

<t>This specification links MUD files to other IETF technologies, particularly to SUIT manifests, for improving security protection and ease of use. By including MUD files (per reference or by value) in SUIT manifests an extra layer of protection has been created and synchronization risks can be minimized. If the MUD file and the software/firmware loaded onto the device gets out-of-sync a device may be firewalled and, with firewalling by networks in place, the device may stop functioning.</t>

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

<t>suit-manifest-mud must be added as an extension point to the SUIT manifest registry.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference anchor='RFC7093' target='https://www.rfc-editor.org/info/rfc7093'>
<front>
<title>Additional Methods for Generating Key Identifiers Values</title>
<author fullname='S. Turner' initials='S.' surname='Turner'><organization/></author>
<author fullname='S. Kent' initials='S.' surname='Kent'><organization/></author>
<author fullname='J. Manger' initials='J.' surname='Manger'><organization/></author>
<date month='December' year='2013'/>
<abstract><t>This document specifies additional example methods for generating Key Identifier values for use in the AKI (Authority Key Identifier) and SKI (Subject Key Identifier) certificate extensions.</t></abstract>
</front>
<seriesInfo name='RFC' value='7093'/>
<seriesInfo name='DOI' value='10.17487/RFC7093'/>
</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='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<date month='March' year='1997'/>
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<date month='May' year='2017'/>
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>


<reference anchor='I-D.ietf-rats-eat' target='https://datatracker.ietf.org/doc/html/draft-ietf-rats-eat-19'>
   <front>
      <title>The Entity Attestation Token (EAT)</title>
      <author fullname='Laurence Lundblade' initials='L.' surname='Lundblade'>
         <organization>Security Theory LLC</organization>
      </author>
      <author fullname='Giridhar Mandyam' initials='G.' surname='Mandyam'>
         <organization>Qualcomm Technologies Inc.</organization>
      </author>
      <author fullname='Jeremy O&#39;Donoghue' initials='J.' surname='O&#39;Donoghue'>
         <organization>Qualcomm Technologies Inc.</organization>
      </author>
      <author fullname='Carl Wallace' initials='C.' surname='Wallace'>
         <organization>Red Hound Software, Inc.</organization>
      </author>
      <date day='19' month='December' year='2022'/>
      <abstract>
	 <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine how much
   it wishes to trust the entity.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-rats-eat-19'/>
   
</reference>


<reference anchor='I-D.ietf-suit-manifest' target='https://datatracker.ietf.org/doc/html/draft-ietf-suit-manifest-22'>
   <front>
      <title>A Concise Binary Object Representation (CBOR)-based Serialization Format for the Software Updates for Internet of Things (SUIT) Manifest</title>
      <author fullname='Brendan Moran' initials='B.' surname='Moran'>
         <organization>Arm Limited</organization>
      </author>
      <author fullname='Hannes Tschofenig' initials='H.' surname='Tschofenig'>
         <organization>Arm Limited</organization>
      </author>
      <author fullname='Henk Birkholz' initials='H.' surname='Birkholz'>
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname='Koen Zandberg' initials='K.' surname='Zandberg'>
         <organization>Inria</organization>
      </author>
      <author fullname='Øyvind Rønningstad' initials='O.' surname='Rønningstad'>
         <organization>Nordic Semiconductor</organization>
      </author>
      <date day='27' month='February' year='2023'/>
      <abstract>
	 <t>   This specification describes the format of a manifest.  A manifest is
   a bundle of metadata about code/data obtained by a recipient (chiefly
   the firmware for an IoT device), where to find the that code/data,
   the devices to which it applies, and cryptographic information
   protecting the manifest.  Software updates and Trusted Invocation
   both tend to use sequences of common operations, so the manifest
   encodes those sequences of operations, rather than declaring the
   metadata.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-suit-manifest-22'/>
   
</reference>




    </references>




  </back>

<!-- ##markdown-source:
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

-->

</rfc>

