<?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-20" category="std" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Cryptographic Algorithms for Internet of Things (IoT) 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="04"/>

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

    <abstract>


<t>This document defines cryptographic algorithm profiles for use with the Software Updates for Internet
of Things (SUIT) manifest. These profiles specify sets of algorithms to promote interoperability across
implementations.</t>

<t>The SUIT manifest, as defined in "A Manifest Information Model for Firmware Updates in Internet of Things (IoT) Devices" (RFC 9124), provides a flexible and extensible format for describing how
firmware and software updates are to be fetched, verified, decrypted, and installed on resource-constrained
devices. To ensure the security of these update processes, the manifest relies on cryptographic algorithms
for functions such as digital signature verification, integrity checking, and confidentiality.</t>

<t>Given the diversity of IoT deployments and the evolving cryptographic landscape, algorithm agility is
essential. This document groups algorithms into named profiles to accommodate varying levels of device
capabilities and security requirements. These profiles support the use cases laid out in the SUIT architecture,
published in "A Firmware Update Architecture for Internet of Things" (RFC 9019).</t>



    </abstract>



  </front>

  <middle>


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

<t>This document defines algorithm profiles intended for authors of Software Updates of Internet of Things (SUIT) manifests and their recipients,
with the goal of promoting interoperability in software update scenarios for constrained nodes. These
profiles specify sets of algorithms that are tailored to the evolving security landscape, recognizing
that cryptographic requirements may change over time.</t>

<t>The following profiles are defined:</t>

<t><list style="symbols">
  <t>One profile designed for constrained devices that support only symmetric key cryptography</t>
  <t>Two profiles for constrained devices capable of using asymmetric key cryptography</t>
  <t>Two profiles that employ Authenticated Encryption with Associated Data (AEAD) ciphers</t>
  <t>One constrained asymmetric profile that uses a hash-based signature scheme</t>
</list></t>

<t>Due to the asymmetric nature of SUIT deployments - where manifest authors typically operate in
resource-rich environments while recipients are resource-constrained - the cryptographic
requirements differ between these two roles.</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, refer to
<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>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>

<t>The terms "Author", "Recipient", and "Manifest" are defined in <xref target="I-D.ietf-suit-manifest"/>.</t>

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

<t>Each profile consists 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 profile they wish to implement. It is <bcp14>RECOMMENDED</bcp14> that they implement the <spanx style="verb">suit-sha256-hsslms-a256kw-a256ctr</spanx> profile (<xref target="suit-sha256-hsslms-a256kw-a256ctr"/>). 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 profiles with a status set to 'MANDATORY' in <xref target="iana"/>. Authors <bcp14>MAY</bcp14> implement any number of additional profiles.</t>
</list></t>

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

<t>This profile only offers support for symmetric cryptographic algorithms.</t>

<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>Profile <spanx style="verb">suit-sha256-esp256-ecdh-a128ctr</spanx></name>

<t>This profile supports asymmetric algorithms for use with constrained devices.</t>

<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>Profile <spanx style="verb">suit-sha256-ed25519-ecdh-a128ctr</spanx></name>

<t>This profile supports an alternative choice of asymmetric algorithms for use with constrained devices.</t>

<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>Profile <spanx style="verb">suit-sha256-esp256-ecdh-a128gcm</spanx></name>

<t>This profile supports asymmetric algorithms in combination with AEAD algorithms.</t>

<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>Profile <spanx style="verb">suit-sha256-ed25519-ecdh-chacha-poly</spanx></name>

<t>This profile also supports asymmetric algorithms with AEAD algorithms but offers an alternative to <spanx style="verb">suit-sha256-esp256-ecdh-a128gcm</spanx>.</t>

<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>Profile <spanx style="verb">suit-sha256-hsslms-a256kw-a256ctr</spanx></name>

<t>This profile utilizes a stateful hash-based signature algorithm, namely the Hierarchical Signature System / Leighton-Micali Signature (HSS/LMS), as a unique alternative to the  profiles listed above.</t>

<t>A note regarding the use of the 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 <xref section="2.2" sectionFormat="of" target="RFC8778"/>).</t>

<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>

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

<t>Payload encryption is used to protect sensitive content such as machine learning models, proprietary algorithms, and personal data <xref target="RFC6973"/>.
In the context of SUIT, the primary purpose of payload encryption is to defend against unauthorized observation during distribution. By encrypting
the payload, confidential information can be safeguarded from eavesdropping.</t>

<t>However, encrypting firmware or software update payloads on commodity devices do not constitute an effective cybersecurity defense against
targeted attacks. Once an attacker gains access to a device, they may still be able to extract the plaintext payload.</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="operational-considerations"><name>Operational Considerations</name>

<t>While this document focuses on the cryptographic aspects of manifest processing, several operational and manageability considerations are relevant when deploying these profiles in practice.</t>

<section anchor="profile-support-discovery"><name>Profile Support Discovery</name>

<t>To enable interoperability of the described profiles, it is important for a manifest author to determine which profiles are supported by a device. Furthermore, it is also important for the author and the distribution system (see <xref section="3" sectionFormat="of" target="I-D.ietf-suit-firmware-encryption"/>) to know whether firmware for a particular device or family of devices needs to be encrypted, and which key distribution mechanism shall be used. This information can be obtained through:</t>

<t><list style="symbols">
  <t>Manual configuration.</t>
  <t>Device management systems, as described in <xref target="RFC9019"/>, which typically maintain metadata about device capabilities and their lifecycle status. These systems may use proprietary or standardized management protocols to expose supported features. LwM2M <xref target="LwM2M"/> is one such standardized protocol. The Trusted Execution Environment Provisioning (TEEP) protocol <xref target="I-D.ietf-teep-protocol"/> is another option.</t>
  <t>Capability reporting mechanisms, such as those described in <xref target="I-D.ietf-suit-report"/>, which define structures that allow a device to communicate supported SUIT features and cryptographic capabilities to a management or attestation entity.</t>
</list></t>

</section>
<section anchor="profile-selection-and-control"><name>Profile Selection and Control</name>

<t>When a device supports multiple algorithm profiles, it is expected that the SUIT manifest author indicates the appropriate profile based on the intended recipient(s) and other policies. The manifest itself indicates which algorithms are used; devices are expected to validate manifests using supported algorithms.</t>

<t>Devices do not autonomously choose which profile to apply; rather, they either accept or reject a manifest based on the algorithm profile it uses. There is no protocol-level negotiation of profiles at SUIT manifest processing time. Any dynamic profile selection or configuration is expected to occur as part of other protocols, for example, through device management.</t>

</section>
<section anchor="profile-provisioning-and-constraints"><name>Profile Provisioning and Constraints</name>

<t>Provisioning for a given profile may include:</t>

<t><list style="symbols">
  <t>Installation of trust anchors for acceptable signers.</t>
  <t>Distribution of keys used by the content key distribution mechanism (see <xref section="4" sectionFormat="of" target="I-D.ietf-suit-firmware-encryption"/>).</t>
  <t>Availability of specific cryptographic libraries or hardware support (e.g., for post-quantum algorithms or AEAD ciphers).</t>
  <t>Evaluation of the required storage and processing resources for the selected profile.</t>
  <t>Support for manifest processing capabilities.</t>
</list></t>

<t>There may be conditions under which switching to a different algorithm profile is not feasible, such as:</t>

<t><list style="symbols">
  <t>Lack of hardware support (e.g., no crypto acceleration).</t>
  <t>Resource limitations on memory-constrained devices (e.g., insufficient flash or RAM).</t>
  <t>Deployment policy constraints or regulatory compliance requirements.</t>
</list></t>

<t>In such cases, a device management or update orchestration system should take these constraints into account when constructing and distributing manifests.</t>

</section>
<section anchor="logging-and-reporting"><name>Logging and Reporting</name>

<t>Implementations <bcp14>MAY</bcp14> log failures to process a manifest due to unsupported algorithm profiles or unavailable cryptographic functionality. When supported, such events <bcp14>SHOULD</bcp14> be reported using secure mechanisms, such as those described in <xref target="I-D.ietf-suit-report"/>, to assist operators in diagnosing update failures or misconfigurations.</t>

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

<t>IANA is requested to create a page for "COSE SUIT Algorithm Profiles" within
the "Software Update for the Internet of Things (SUIT)" registry group. IANA
is also requested to create a registry for "COSE SUIT Algorithm Profiles"
within that registry group.</t>

<t>The initial content of the "COSE SUIT Algorithm Profiles" 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 of THIS_DOCUMENT</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 of THIS_DOCUMENT</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 of THIS_DOCUMENT</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 of THIS_DOCUMENT</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 of THIS_DOCUMENT</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 of THIS_DOCUMENT</t>
</list></t>

<t>While most profile attributes are self-explanatory, the status field warrants a brief explanation.
This field can take one of three values: MANDATORY, <bcp14>NOT RECOMMENDED</bcp14>, or <bcp14>OPTIONAL</bcp14>.</t>

<t><list style="symbols">
  <t>MANDATORY indicates that the profile is mandatory to implement for manifest authors.</t>
  <t><bcp14>NOT RECOMMENDED</bcp14> means that the profile should generally be avoided in new implementations.</t>
  <t><bcp14>OPTIONAL</bcp14> suggests that support for the profile is permitted but not required.</t>
</list></t>

<t>IANA is requested to add a note that mirrors these status values to the registry.</t>

<t>Adding new profiles or updating the status of existing profiles requires Standards Action (<xref section="4.9" sectionFormat="of" target="RFC8126"/>).</t>

<t>As time progresses, algorithm profiles may loose their MANDATORY status. Then, their status will become
either <bcp14>OPTIONAL</bcp14> or <bcp14>NOT RECOMMENDED</bcp14> for new implementations. Likewise, a profile may be transitioned from <bcp14>OPTIONAL</bcp14> to <bcp14>NOT RECOMMENDED</bcp14>. Since it may be impossible to update
certain parts of the IoT device firmware in the field, such as first stage bootloaders, support for
all relevant algorithms will almost always be required by authoring tools.</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>

<reference anchor='RFC8126'>
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname='M. Cotton' initials='M.' surname='Cotton'/>
    <author fullname='B. Leiba' initials='B.' surname='Leiba'/>
    <author fullname='T. Narten' initials='T.' surname='Narten'/>
    <date month='June' year='2017'/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='26'/>
  <seriesInfo name='RFC' value='8126'/>
  <seriesInfo name='DOI' value='10.17487/RFC8126'/>
</reference>

<reference anchor='RFC8610'>
  <front>
    <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
    <author fullname='H. Birkholz' initials='H.' surname='Birkholz'/>
    <author fullname='C. Vigano' initials='C.' surname='Vigano'/>
    <author fullname='C. Bormann' initials='C.' surname='Bormann'/>
    <date month='June' year='2019'/>
    <abstract>
      <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8610'/>
  <seriesInfo name='DOI' value='10.17487/RFC8610'/>
</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='RFC6973'>
  <front>
    <title>Privacy Considerations for Internet Protocols</title>
    <author fullname='A. Cooper' initials='A.' surname='Cooper'/>
    <author fullname='H. Tschofenig' initials='H.' surname='Tschofenig'/>
    <author fullname='B. Aboba' initials='B.' surname='Aboba'/>
    <author fullname='J. Peterson' initials='J.' surname='Peterson'/>
    <author fullname='J. Morris' initials='J.' surname='Morris'/>
    <author fullname='M. Hansen' initials='M.' surname='Hansen'/>
    <author fullname='R. Smith' initials='R.' surname='Smith'/>
    <date month='July' year='2013'/>
    <abstract>
      <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6973'/>
  <seriesInfo name='DOI' value='10.17487/RFC6973'/>
</reference>


<reference anchor='I-D.ietf-teep-protocol'>
   <front>
      <title>Trusted Execution Environment Provisioning (TEEP) Protocol</title>
      <author fullname='Hannes Tschofenig' initials='H.' surname='Tschofenig'>
         </author>
      <author fullname='Mingliang Pei' initials='M.' surname='Pei'>
         <organization>Broadcom</organization>
      </author>
      <author fullname='Dave Wheeler' initials='D. M.' surname='Wheeler'>
         <organization>Amazon</organization>
      </author>
      <author fullname='Dave Thaler' initials='D.' surname='Thaler'>
         <organization>Microsoft</organization>
      </author>
      <author fullname='Akira Tsukamoto' initials='A.' surname='Tsukamoto'>
         <organization>Openchip &amp; Software Technologies, S.L.</organization>
      </author>
      <date day='3' month='March' year='2025'/>
      <abstract>
	 <t>   This document specifies a protocol that installs, updates, and
   deletes Trusted Components in a device with a Trusted Execution
   Environment (TEE).  This specification defines an interoperable
   protocol for managing the lifecycle of Trusted Components.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teep-protocol-21'/>
   
</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>
<reference anchor="LwM2M" target="https://www.openmobilealliance.org/specifications/lwm2m">
  <front>
    <title>OMA Lightweight M2M</title>
    <author >
      <organization>Open Mobile Alliance</organization>
    </author>
    <date year="2025" month="April" day="20"/>
  </front>
</reference>


    </references>


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

<t>The following CDDL snippet <xref target="RFC8610"/> 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 Henk Birkholz, Mohamed Boucadair, Deb Cooley, Lorenzo Corneo,
Linda Dunbar, Russ Housley, Michael B. Jones, Jouni Korhonen, Magnus Nyström, Michael Richardson,
and Hannes Tschofenig for their review comments.</t>

</section>


  </back>

<!-- ##markdown-source:
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
0/Ig+F/dIphFt1oAAA==

-->

</rfc>

