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


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

]>

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

<rfc ipr="trust200902" docName="draft-ietf-suit-mti-18" category="std" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SUIT Algorithm Recommendations">Cryptographic Algorithm Recommendations for Software Updates of Internet of Things Devices</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="Ø." surname="Rønningstad" fullname="Øyvind Rønningstad" asciiInitials="O. Ronningstad" asciiSurname="Ronningstad" asciiFullname="Oyvind Ronningstad">
      <organization>Nordic Semiconductor</organization>
      <address>
        <email>oyvind.ronningstad@gmail.com</email>
      </address>
    </author>
    <author initials="A." surname="Tsukamoto" fullname="Akira Tsukamoto">
      <organization>Openchip &amp; Software Technologies, S.L.</organization>
      <address>
        <email>akira.tsukamoto@gmail.com</email>
      </address>
    </author>

    <date year="2025" month="June" day="14"/>

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

    <abstract>


<t>This document specifies cryptographic algorithm profiles to be used with the Software Updates for Internet of Things (suit) manifest.
These profiles define mandatory-to-implement algorithms to ensure interoperability.</t>



    </abstract>



  </front>

  <middle>


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

<t>This document defines algorithm profiles for SUIT manifest parsers and authors to promote interoperability in constrained node software update scenarios. These profiles specify sets of mandatory-to-implement (MTI) algorithms tailored to the evolving security landscape, acknowledging that cryptographic requirements may change over time. To accommodate this, algorithms are grouped into profiles, which may be updated or deprecated as needed.</t>

<t>This document defines the following MTI profiles for constrained environments:</t>

<t><list style="symbols">
  <t>One symmetric MTI profile</t>
  <t>Two "current" constrained asymmetric MTI profiles</t>
  <t>Two "current" AEAD asymmetric MTI profiles</t>
  <t>One "future" constrained asymmetric MTI profile</t>
</list></t>

<t>The terms "current" and "future" distinguish between traditional cryptographic algorithms and those believed to be secure against both classical and quantum computer-based attacks, respectively.</t>

<t>At least one algorithm in each category must be FIPS-validated.</t>

<t>Due to the asymmetric nature of SUIT deployments—where manifest authors are typically resource-rich and recipients are resource-constrained—the cryptographic requirements differ for each role.</t>

<t>This specification uses AES-CTR in combination with a digest algorithm, as defined in <xref target="RFC9459"/>, to support use cases that require out-of-order block reception and decryption-capabilities not offered by AEAD algorithms. For further discussion of these constrained use cases, see <xref target="aes-ctr-payloads"/>. Other SUIT use cases (see <xref target="I-D.ietf-suit-manifest"/>) may define different profiles.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>

<t>The abbreviation SUIT stands for Software Updates for the Internet of Things and specifically addresses the requirements of constrained devices and networks, as described in <xref target="RFC9019"/>.</t>

</section>
<section anchor="profiles"><name>Profiles</name>

<t>Each profile consist of algorithms from the following categories:</t>

<t><list style="symbols">
  <t>Digest Algorithms</t>
  <t>Authentication Algorithms</t>
  <t>Key Exchange Algorithms (optional)</t>
  <t>Encryption Algorithms (optional)</t>
</list></t>

<t>Each profile references specific algorithm identifiers, as defined in <xref target="IANA-COSE"/>.
Since these algorithm identifiers are used in the context of the IETF SUIT manifest <xref target="I-D.ietf-suit-manifest"/>, they are represented using CBOR Object Signing and Encryption (COSE) structures as defined in <xref target="RFC9052"/> and <xref target="RFC9053"/>.</t>

<t>The use of the profiles by authors and recipients is based on the following assumptions:</t>

<t><list style="symbols">
  <t>Recipients <bcp14>MAY</bcp14> choose which MTI profile they wish to implement. It is <bcp14>RECOMMENDED</bcp14> that they implement the "Future" Asymmetric MTI profile. Recipients <bcp14>MAY</bcp14> implement any number of other profiles not defined in this document. Recipients <bcp14>MAY</bcp14> choose not to implement encryption and the corresponding key exchange algorithms if they do not intend to support encrypted payloads.</t>
  <t>Authors <bcp14>MUST</bcp14> implement all MTI profiles. Authors <bcp14>MAY</bcp14> implement any number of additional profiles.</t>
</list></t>

<section anchor="suit-sha256-hmac-a128kw-a128ctr"><name> Symmetric MTI profile: suit-sha256-hmac-a128kw-a128ctr</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>HMAC-256</c>
      <c>5</c>
      <c>Key Exchange</c>
      <c>A128KW Key Wrap</c>
      <c>-3</c>
      <c>Encryption</c>
      <c>A128CTR</c>
      <c>-65534</c>
</texttable>

</section>
<section anchor="suit-sha256-esp256-ecdh-a128ctr"><name>Current Constrained Asymmetric MTI Profile 1: suit-sha256-esp256-ecdh-a128ctr</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>ESP256</c>
      <c>-9</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + A128KW</c>
      <c>-29</c>
      <c>Encryption</c>
      <c>A128CTR</c>
      <c>-65534</c>
</texttable>

</section>
<section anchor="suit-sha256-ed25519-ecdh-a128ctr"><name>Current Constrained Asymmetric MTI Profile 2: suit-sha256-ed25519-ecdh-a128ctr</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>Ed25519</c>
      <c>-19</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + A128KW</c>
      <c>-29</c>
      <c>Encryption</c>
      <c>A128CTR</c>
      <c>-65534</c>
</texttable>

</section>
<section anchor="suit-sha256-esp256-ecdh-a128gcm"><name>Current AEAD Asymmetric MTI Profile 1: suit-sha256-esp256-ecdh-a128gcm</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>ESP256</c>
      <c>-9</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + A128KW</c>
      <c>-29</c>
      <c>Encryption</c>
      <c>A128GCM</c>
      <c>1</c>
</texttable>

</section>
<section anchor="suit-sha256-ed25519-ecdh-chacha-poly"><name>Current AEAD Asymmetric MTI Profile 2: suit-sha256-ed25519-ecdh-chacha-poly</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>Ed25519</c>
      <c>-19</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + A128KW</c>
      <c>-29</c>
      <c>Encryption</c>
      <c>ChaCha20/Poly1305</c>
      <c>24</c>
</texttable>

</section>
<section anchor="suit-sha256-hsslms-a256kw-a256ctr"><name>Future Constrained Asymmetric MTI Profile: suit-sha256-hsslms-a256kw-a256ctr</name>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>HSS-LMS</c>
      <c>-46</c>
      <c>Key Exchange</c>
      <c>A256KW</c>
      <c>-5</c>
      <c>Encryption</c>
      <c>A256CTR</c>
      <c>-65532</c>
</texttable>

<t>A note regarding the use of HSS-LMS: The decision as to how deep the tree is, is a decision that affects authoring tools only (see <xref target="RFC8778"/>).
Verification is not affected by the choice of the "W" parameter, but the size of the signature is affected. To support the long lifetimes required by IoT devices, it is <bcp14>RECOMMENDED</bcp14> to use trees with greater height (see Section 2.2 of <xref target="RFC8778"/>).</t>

</section>
</section>
<section anchor="reporting-profiles"><name>Reporting Profiles</name>

<t>When using SUIT reports <xref target="I-D.ietf-suit-report"/> - particularly those data structures intended to convey update capabilities, status, progress, or success - the same algorithm profile as used in the corresponding SUIT manifest <bcp14>SHOULD</bcp14> be applied.
In cases where this is not feasible, such as when using the profile suit-sha256-hsslms-a256kw-a256ctr, an algorithm profile with similar security strength <bcp14>SHOULD</bcp14> be used instead, for example, suit-sha256-esp256-ecdh-a128ctr. There may be cases
where switching to a different algorithm profile is not possible and where SUIT report functionality has to be disabled.</t>

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

<t>Payload encryption is often used to protect Intellectual Property (IP) and Personally Identifying Information (PII) in transit. The primary function of payload in SUIT is to act as a defense against passive IP and PII snooping. By encrypting payloads, confidential IP and PII can be protected during distribution. However, payload encryption of firmware or software updates of a commodity device is not a cybersecurity defense against targetted attacks on that device.</t>

<section anchor="payload-encryption-as-part-of-a-defense-in-depth-strategy"><name>Payload Encryption as Part of a Defense-in-Depth Strategy</name>

<t>To define the purpose of payload encryption as a defensive cybersecurity tool, it is important to define the capabilities of modern threat actors. A variety of capabilities are possible:</t>

<t><list style="symbols">
  <t>find bugs by binary code inspection</t>
  <t>send unexpected data to communication interfaces, looking for unexpected behavior</t>
  <t>use fault injection to bypass or manipulate code</t>
  <t>use communication attacks or fault injection along with gadgets found in the code</t>
</list></t>

<t>Given this range of capabilities, it is important to understand which capabilities are impacted by firmware encryption. Threat actors who find bugs by manual inspection or use gadgets found in the code will need to first extract the code from the target. In the IoT context, it is expected that most threat actors will start with sample devices and physical access to test attacks.</t>

<t>Due to these factors, payload encryption serves to limit the pool of attackers to those who have the technical capability to extract code from physical devices and those who perform code-free attacks.</t>

</section>
<section anchor="aes-ctr-payloads"><name>Use of AES-CTR in Payload Encryption</name>

<t>AES-CTR mode with a digest is specified, see <xref target="RFC9459"/>. All of the AES-CTR security considerations in <xref target="RFC9459"/> apply. See <xref target="I-D.ietf-suit-firmware-encryption"/> for additional background information.</t>

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

<t>IANA is requested to create a page for COSE Algorithm Profiles within
the category for Software Update for the Internet of Things (SUIT)</t>

<t>IANA is also requested to create a registry for COSE Algorithm Profiles
within this page. The initial content of the registry is:</t>

<texttable>
      <ttcol align='left'>Profile</ttcol>
      <ttcol align='left'>Status</ttcol>
      <ttcol align='left'>Digest</ttcol>
      <ttcol align='left'>Auth</ttcol>
      <ttcol align='left'>Key Exchange</ttcol>
      <ttcol align='left'>Encryption</ttcol>
      <ttcol align='left'>Descriptor Array</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>suit-sha256-hmac-a128kw-a128ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>5</c>
      <c>-3</c>
      <c>-65534</c>
      <c>[-16,   5,  -3, -65534]</c>
      <c><xref target="suit-sha256-hmac-a128kw-a128ctr"/></c>
      <c>suit-sha256-esp256-ecdh-a128ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-9</c>
      <c>-29</c>
      <c>-65534</c>
      <c>[-16,  -9, -29, -65534]</c>
      <c><xref target="suit-sha256-esp256-ecdh-a128ctr"/></c>
      <c>suit-sha256-ed25519-ecdh-a128ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-19</c>
      <c>-29</c>
      <c>-65534</c>
      <c>[-16,  -19, -29, -65534]</c>
      <c><xref target="suit-sha256-ed25519-ecdh-a128ctr"/></c>
      <c>suit-sha256-esp256-ecdh-a128gcm</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-9</c>
      <c>-29</c>
      <c>1</c>
      <c>[-16,  -9, -29,      1]</c>
      <c><xref target="suit-sha256-esp256-ecdh-a128gcm"/></c>
      <c>suit-sha256-ed25519-ecdh-chacha-poly</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-19</c>
      <c>-29</c>
      <c>24</c>
      <c>[-16,  -19, -29,     24]</c>
      <c><xref target="suit-sha256-ed25519-ecdh-chacha-poly"/></c>
      <c>suit-sha256-hsslms-a256kw-a256ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-46</c>
      <c>-5</c>
      <c>-65532</c>
      <c>[-16, -46,  -5, -65532]</c>
      <c><xref target="suit-sha256-hsslms-a256kw-a256ctr"/></c>
</texttable>

<t>New entries to this registry require Standards Action.</t>

<t>A recipient device that claims conformance to this document will have implemented at least one of the above algorithms.</t>

<t>As time progresses, if entries are removed from mandatory status, they will become <bcp14>SHOULD</bcp14>, <bcp14>MAY</bcp14> and then possibly <bcp14>NOT RECOMMENDED</bcp14> for new implementation.  However, as it may be impossible to update the SUIT manifest processor in the field, support for all relevant algorithms will almost always be required by authoring tools.</t>

<t>When new algorithms are added by subsequent documents, the device and authoring tools will then claim conformance to those new documents.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor='RFC8778'>
  <front>
    <title>Use of the HSS/LMS Hash-Based Signature Algorithm with CBOR Object Signing and Encryption (COSE)</title>
    <author fullname='R. Housley' initials='R.' surname='Housley'/>
    <date month='April' year='2020'/>
    <abstract>
      <t>This document specifies the conventions for using the Hierarchical Signature System (HSS) / Leighton-Micali Signature (LMS) hash-based signature algorithm with the CBOR Object Signing and Encryption (COSE) syntax. The HSS/LMS algorithm is one form of hash-based digital signature; it is described in RFC 8554.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8778'/>
  <seriesInfo name='DOI' value='10.17487/RFC8778'/>
</reference>

<reference anchor='RFC9052'>
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname='J. Schaad' initials='J.' surname='Schaad'/>
    <date month='August' year='2022'/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='96'/>
  <seriesInfo name='RFC' value='9052'/>
  <seriesInfo name='DOI' value='10.17487/RFC9052'/>
</reference>

<reference anchor='RFC9459'>
  <front>
    <title>CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC</title>
    <author fullname='R. Housley' initials='R.' surname='Housley'/>
    <author fullname='H. Tschofenig' initials='H.' surname='Tschofenig'/>
    <date month='September' year='2023'/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) data format is designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) is specified in RFC 9052 to provide basic security services using the CBOR data format. This document specifies the conventions for using AES-CTR and AES-CBC as content encryption algorithms with COSE.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9459'/>
  <seriesInfo name='DOI' value='10.17487/RFC9459'/>
</reference>


<reference anchor='I-D.ietf-suit-manifest'>
   <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>University of Applied Sciences Bonn-Rhein-Sieg</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='28' month='May' year='2025'/>
      <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 Internet of Things (IoT) device), where to find
   the 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-34'/>
   
</reference>

<reference anchor='RFC2119'>
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname='S. Bradner' initials='S.' surname='Bradner'/>
    <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'>
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname='B. Leiba' initials='B.' surname='Leiba'/>
    <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>




    </references>

    <references title='Informative References'>




<reference anchor='I-D.ietf-suit-firmware-encryption'>
   <front>
      <title>Encrypted Payloads in SUIT Manifests</title>
      <author fullname='Hannes Tschofenig' initials='H.' surname='Tschofenig'>
         <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
      </author>
      <author fullname='Russ Housley' initials='R.' surname='Housley'>
         <organization>Vigil Security, LLC</organization>
      </author>
      <author fullname='Brendan Moran' initials='B.' surname='Moran'>
         <organization>Arm Limited</organization>
      </author>
      <author fullname='David Brown' initials='D.' surname='Brown'>
         <organization>Linaro</organization>
      </author>
      <author fullname='Ken Takayama' initials='K.' surname='Takayama'>
         <organization>SECOM CO., LTD.</organization>
      </author>
      <date day='19' month='March' year='2025'/>
      <abstract>
	 <t>   This document specifies techniques for encrypting software, firmware,
   machine learning models, and personalization data by utilizing the
   IETF SUIT manifest.  Key agreement is provided by ephemeral-static
   (ES) Diffie-Hellman (DH) and AES Key Wrap (AES-KW).  ES-DH uses
   public key cryptography while AES-KW uses a pre-shared key.
   Encryption of the plaintext is accomplished with conventional
   symmetric key cryptography.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-suit-firmware-encryption-24'/>
   
</reference>


<reference anchor='I-D.ietf-suit-report'>
   <front>
      <title>Secure Reporting of Update Status</title>
      <author fullname='Brendan Moran' initials='B.' surname='Moran'>
         <organization>Arm Limited</organization>
      </author>
      <author fullname='Henk Birkholz' initials='H.' surname='Birkholz'>
         <organization>Fraunhofer SIT</organization>
      </author>
      <date day='3' month='March' year='2025'/>
      <abstract>
	 <t>   The Software Update for the Internet of Things (SUIT) manifest
   provides a way for many different update and boot workflows to be
   described by a common format.  However, this does not provide a
   feedback mechanism for developers in the event that an update or boot
   fails.

   This specification describes a lightweight feedback mechanism that
   allows a developer in possession of a manifest to reconstruct the
   decisions made and actions performed by a manifest processor.

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

<reference anchor='RFC9053'>
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
    <author fullname='J. Schaad' initials='J.' surname='Schaad'/>
    <date month='August' year='2022'/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
      <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9053'/>
  <seriesInfo name='DOI' value='10.17487/RFC9053'/>
</reference>

<reference anchor='RFC9019'>
  <front>
    <title>A Firmware Update Architecture for Internet of Things</title>
    <author fullname='B. Moran' initials='B.' surname='Moran'/>
    <author fullname='H. Tschofenig' initials='H.' surname='Tschofenig'/>
    <author fullname='D. Brown' initials='D.' surname='Brown'/>
    <author fullname='M. Meriac' initials='M.' surname='Meriac'/>
    <date month='April' year='2021'/>
    <abstract>
      <t>Vulnerabilities in Internet of Things (IoT) devices have raised the need for a reliable and secure firmware update mechanism suitable for devices with resource constraints. Incorporating such an update mechanism is a fundamental requirement for fixing vulnerabilities, but it also enables other important capabilities such as updating configuration settings and adding new functionality.</t>
      <t>In addition to the definition of terminology and an architecture, this document provides the motivation for the standardization of a manifest format as a transport-agnostic means for describing and protecting firmware updates.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9019'/>
  <seriesInfo name='DOI' value='10.17487/RFC9019'/>
</reference>


<reference anchor="IANA-COSE" target="https://www.iana.org/assignments/cose/cose.xhtml">
  <front>
    <title>CBOR Object Signing and Encryption (COSE)</title>
    <author >
      <organization></organization>
    </author>
    <date year="2022"/>
  </front>
</reference>


    </references>


<section anchor="full-cddl"><name>Full CDDL</name>

<t>The following CDDL creates a subset of COSE for use with SUIT. Both tagged and untagged messages are defined. SUIT only uses tagged COSE messages, but untagged messages are also defined for use in protocols that share a ciphersuite with SUIT.</t>

<t>To be valid, the following CDDL <bcp14>MUST</bcp14> have the COSE CDDL appended to it. The COSE CDDL can be obtained by following the directions in <xref section="1.4" sectionFormat="comma" target="RFC9052"/>.</t>

<figure><sourcecode type="CDDL"><![CDATA[
SUIT_COSE_tool_tweak /= suit-sha256-hmac-a128kw-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-esp256-ecdh-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-ed25519-ecdh-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-esp256-ecdh-a128gcm
SUIT_COSE_tool_tweak /= suit-sha256-ed25519-ecdh-chacha-poly
SUIT_COSE_tool_tweak /= suit-sha256-hsslms-a256kw-a256ctr
SUIT_COSE_tool_tweak /= SUIT_COSE_Profiles

SUIT_COSE_Profiles /= SUIT_COSE_Profile_HMAC_A128KW_A128CTR
SUIT_COSE_Profiles /= SUIT_COSE_Profile_ESP256_ECDH_A128CTR
SUIT_COSE_Profiles /= SUIT_COSE_Profile_ED25519_ECDH_A128CTR
SUIT_COSE_Profiles /= SUIT_COSE_Profile_ESP256_ECDH_A128GCM
SUIT_COSE_Profiles /= SUIT_COSE_Profile_ED25519_ECDH_CHACHA20_POLY1304
SUIT_COSE_Profiles /= SUIT_COSE_Profile_HSSLMS_A256KW_A256CTR

suit-sha256-hmac-a128kw-a128ctr    = [-16, 5, -3, -65534]
suit-sha256-esp256-ecdh-a128ctr     = [-16, -9, -29, -65534]
suit-sha256-ed25519-ecdh-a128ctr     = [-16, -19, -29, -65534]
suit-sha256-esp256-ecdh-a128gcm     = [-16, -9, -29, 1]
suit-sha256-ed25519-ecdh-chacha-poly = [-16, -19, -29, 24]
suit-sha256-hsslms-a256kw-a256ctr  = [-16, -46, -5, -65532]

SUIT_COSE_Profile_HMAC_A128KW_A128CTR =
    SUIT_COSE_Profile<5,-65534> .and COSE_Messages
SUIT_COSE_Profile_ESP256_ECDH_A128CTR =
    SUIT_COSE_Profile<-9,-65534> .and COSE_Messages
SUIT_COSE_Profile_ED25519_ECDH_A128CTR =
    SUIT_COSE_Profile<-19,-65534> .and COSE_Messages
SUIT_COSE_Profile_ESP256_ECDH_A128GCM =
    SUIT_COSE_Profile<-9,1> .and COSE_Messages
SUIT_COSE_Profile_ED25519_ECDH_CHACHA20_POLY1304 =
    SUIT_COSE_Profile<-19,24> .and COSE_Messages
SUIT_COSE_Profile_HSSLMS_A256KW_A256CTR =
    SUIT_COSE_Profile<-46,-65532> .and COSE_Messages

SUIT_COSE_Profile<authid, encid> = SUIT_COSE_Messages<authid,encid>

SUIT_COSE_Messages<authid, encid> =
    SUIT_COSE_Untagged_Message<authid, encid> /
    SUIT_COSE_Tagged_Message<authid, encid> 
      
SUIT_COSE_Untagged_Message<authid, encid> = SUIT_COSE_Sign<authid> /
    SUIT_COSE_Sign1<authid> / SUIT_COSE_Encrypt<encid> / 
    SUIT_COSE_Encrypt0<encid> / SUIT_COSE_Mac<authid> /
    SUIT_COSE_Mac0<authid> 

SUIT_COSE_Tagged_Message<authid, encid> =
    SUIT_COSE_Sign_Tagged<authid> / SUIT_COSE_Sign1_Tagged<authid> /
    SUIT_COSE_Encrypt_Tagged<encid> / SUIT_COSE_Encrypt0_Tagged<encid> /
    SUIT_COSE_Mac_Tagged<authid> / SUIT_COSE_Mac0_Tagged<authid>

; Note: This is not the same definition as is used in COSE.
; It restricts a COSE header definition further without
; repeating the COSE definition. It should be merged
; with COSE by using the CDDL .and operator.
SUIT_COSE_Profile_Headers<algid> = (
    protected : bstr .cbor SUIT_COSE_alg_map<algid>,
    unprotected : SUIT_COSE_header_map
)
SUIT_COSE_alg_map<algid> = {
    1 => algid,
    * int => any
}

SUIT_COSE_header_map = {
    * int => any
}

SUIT_COSE_Sign_Tagged<authid> = #6.98(SUIT_COSE_Sign<authid>)


SUIT_COSE_Sign<authid> = [
    SUIT_COSE_Profile_Headers<authid>,
    payload : bstr / nil,
    signatures : [+ SUIT_COSE_Signature<authid>]
]


SUIT_COSE_Signature<authid> =  [
    SUIT_COSE_Profile_Headers<authid>,      
    signature : bstr
]


SUIT_COSE_Sign1_Tagged<authid> = #6.18(SUIT_COSE_Sign1<authid>)


SUIT_COSE_Sign1<authid> = [
    SUIT_COSE_Profile_Headers<authid>,
    payload : bstr / nil,
    signature : bstr
]


SUIT_COSE_Encrypt_Tagged<encid> = #6.96(SUIT_COSE_Encrypt<encid>)


SUIT_COSE_Encrypt<encid> = [
    SUIT_COSE_Profile_Headers<encid>,
    ciphertext : bstr / nil,
    recipients : [+SUIT_COSE_recipient<encid>]
]


SUIT_COSE_recipient<encid> = [    
    SUIT_COSE_Profile_Headers<encid>,
    ciphertext : bstr / nil,
    ? recipients : [+SUIT_COSE_recipient<encid>]
]


SUIT_COSE_Encrypt0_Tagged<encid> = #6.16(SUIT_COSE_Encrypt0<encid>)


SUIT_COSE_Encrypt0<encid> = [
    SUIT_COSE_Profile_Headers<encid>,
    ciphertext : bstr / nil,
]


SUIT_COSE_Mac_Tagged<authid> = #6.97(SUIT_COSE_Mac<authid>)


SUIT_COSE_Mac<authid> = [
   SUIT_COSE_Profile_Headers<authid>,      
   payload : bstr / nil,
   tag : bstr,
   recipients :[+SUIT_COSE_recipient<authid>]
]


SUIT_COSE_Mac0_Tagged<authid> = #6.17(SUIT_COSE_Mac0<authid>)


SUIT_COSE_Mac0<authid> = [
   SUIT_COSE_Profile_Headers<authid>,      
   payload : bstr / nil,
   tag : bstr,
]
]]></sourcecode></figure>

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

<t>We would like to specifically thank Magnus Nyström, Deb Cooley, Michael Richardson, Russ Housley, Michael B. Jones, Henk Birkholz, Linda Dunbar and Hannes Tschofenig for their review comments.</t>

</section>


  </back>

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

-->

</rfc>

