<?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-19" 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="July" day="03"/>

    <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" Authenticated Encryption with Associated Data (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 Federal Information Processing Standards (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>This specification uses the following abbreviations:</t>

<t><list style="symbols">
  <t>Advanced Encryption Standard (AES)</t>
  <t>AES Counter (AES-CTR) Mode</t>
  <t>AES Key Wrap (AES-KW)</t>
  <t>Authenticated Encryption with Associated Data (AEAD)</t>
  <t>Concise Binary Object Representation (CBOR)</t>
  <t>CBOR Object Signing and Encryption (COSE)</t>
  <t>Concise Data Definition Language (CDDL)</t>
  <t>Elliptic Curve Diffie-Hellman Ephemeral-Static (ECDH-ES)</t>
  <t>Federal Information Processing Standards (FIPS)</t>
  <t>Hash-based Message Authentication Code (HMAC)</t>
  <t>Hierarchical Signature System - Leighton-Micali Signature (HSS-LMS)</t>
  <t>Software Updates for Internet of Things (SUIT)</t>
</list></t>

<t>SUIT 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 the Hierarchical Signature System - Leighton-Micali Signature (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>

<section anchor="profile-suit-sha256-hmac-a128kw-a128ctr"><name>Profile: <spanx style="verb">suit-sha256-hmac-a128kw-a128ctr</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-hmac-a128kw-a128ctr</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: 5</t>
  <t>Key Exchange: -3</t>
  <t>Encryption: -65534</t>
  <t>Descriptor Array: <spanx style="verb">[-16, 5, -3, -65534]</spanx></t>
  <t>Reference: Section 3.1</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-esp256-ecdh-a128ctr"><name>Profile: <spanx style="verb">suit-sha256-esp256-ecdh-a128ctr</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-esp256-ecdh-a128ctr</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -9</t>
  <t>Key Exchange: -29</t>
  <t>Encryption: -65534</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -9, -29, -65534]</spanx></t>
  <t>Reference: Section 3.2</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-ed25519-ecdh-a128ctr"><name>Profile: <spanx style="verb">suit-sha256-ed25519-ecdh-a128ctr</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-ed25519-ecdh-a128ctr</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -19</t>
  <t>Key Exchange: -29</t>
  <t>Encryption: -65534</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -19, -29, -65534]</spanx></t>
  <t>Reference: Section 3.3</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-esp256-ecdh-a128gcm"><name>Profile: <spanx style="verb">suit-sha256-esp256-ecdh-a128gcm</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-esp256-ecdh-a128gcm</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -9</t>
  <t>Key Exchange: -29</t>
  <t>Encryption: 1</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -9, -29, 1]</spanx></t>
  <t>Reference: Section 3.4</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-ed25519-ecdh-chacha-poly"><name>Profile: <spanx style="verb">suit-sha256-ed25519-ecdh-chacha-poly</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-ed25519-ecdh-chacha-poly</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -19</t>
  <t>Key Exchange: -29</t>
  <t>Encryption: 24</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -19, -29, 24]</spanx></t>
  <t>Reference: Section 3.5</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-hsslms-a256kw-a256ctr"><name>Profile: <spanx style="verb">suit-sha256-hsslms-a256kw-a256ctr</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-hsslms-a256kw-a256ctr</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -46</t>
  <t>Key Exchange: -5</t>
  <t>Encryption: -65532</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -46, -5, -65532]</spanx></t>
  <t>Reference: Section 3.6</t>
</list></t>

<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>
</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='19' month='June' 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.  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-12'/>
   
</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[
=============== NOTE: '\' line wrapping per RFC 8792 ================

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, Jouni Korhonen, Lorenzo Corneo and Hannes Tschofenig for their review comments.</t>

</section>


  </back>

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

-->

</rfc>

