<?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-21" 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="06"/>

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

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

</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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
t1oAAA==

-->

</rfc>

