<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.26 (Ruby 2.3.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-housley-cose-aes-ctr-and-cbc-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.14.0 -->
  <front>
    <title abbrev="AES-CTR and AES-CBC with COSE">CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC</title>
    <seriesInfo name="Internet-Draft" value="draft-housley-cose-aes-ctr-and-cbc-00"/>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Arm Limited</organization>
      <address>
        <email>hannes.tschofenig@arm.com</email>
      </address>
    </author>
    <date year="2022" month="August" day="22"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <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 8152 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>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>This document specifies the conventions for using AES-CTR and AES-CBC 
as Content Encryption algorithms with the CBOR Object Signing and Encryption
(COSE) <xref target="RFC8152"/> syntax. Encryption with COSE today uses
Authenticated Encryption with Associated Data (AEAD) <xref target="RFC5116"/> algorithms,
which provide both confidentiality and integrity protection.  However, there
are situations where another mechanism, such as a digital signature, is used
to provide integrity.  In these cases, an AEAD algorithm is not needed.  The
software manifest being defined by the IETF SUIT WG <xref target="I-D.ietf-suit-manifest"/>
is one example where a digital signature is always present.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="aes-alg">
      <name>AES Modes of Operation</name>
      <t>NIST has defined five modes of operation for Advanced Encryption
Standard (AES) <xref target="AES"/>. AES supports three key sizes: 128 bits,
192 bits, and 256 bits. The AES has a block size of 128 bits (16 octets).</t>
      <t>NIST has defined several modes of operation for use with AES <xref target="MODES"/>. Each
of these modes has different characteristics. The five modes are:
ECB (Electronic Code Book), CBC (Cipher Block Chaining),
CFB (Cipher FeedBack), OFB (Output FeedBack), and CTR (Counter).</t>
      <t>Only AES Counter mode (AES-CTR) and AES Cipher Block Chaining (AES-CBC) are
discussed in this document.</t>
    </section>
    <section anchor="aes-ctr">
      <name>AES Counter Mode</name>
      <t>When AES-CTR is used as a COSE Content Encryption algorithm, the encryptor
generates a unique value that is communicated to the decryptor. This value
is called an initialization vector (IV) in this document. The same IV and
key combination MUST NOT be used more than once. The encryptor can generate
the IV in any manner that ensures uniqueness.</t>
      <t>When using AES-CTR, each AES encrypt operation generates 128 bits of key
stream. AES-CTR encryption is the XOR of the key stream with the
plaintext. AES-CTR decryption is the XOR of the key stream with the
ciphertext. If the generated key stream is longer than the plaintext or
ciphertext, the extra key stream bits are simply discarded. For this reason,
AES-CTR does not require the plaintext to be padded to a multiple of the
block size.</t>
      <t>AES-CTR has many properties that make it an attractive COSE Content Encryption
algorithm. AES-CTR uses the AES block cipher to create a stream cipher. Data
is encrypted and decrypted by XORing with the key stream produced by AES
encrypting sequential counter block values. AES-CTR is easy to implement, and
AES-CTR can be pipelined and parallelized. AES-CTR also supports key stream
precomputation. While the IV must be communicated, the plaintext and
ciphertext are the same size.</t>
      <t>When used correctly, AES-CTR provides a high level of confidentiality.
Unfortunately, AES-CTR is easy to use incorrectly. Being a stream cipher,
reuse of the IV with the same key is catastrophic. An IV collision
immediately leaks information about the plaintext in both uses of AES-CTR.
For this reason, it is inappropriate to use this mode of operation with
static keys. Extraordinary measures would be needed to prevent reuse of an
IV value with the static key across power cycles. To be safe, implementations
MUST use fresh keys with AES-CTR.</t>
      <t>With AES-CTR, it is trivial to use a valid ciphertext to forge other
(valid to the decryptor) ciphertexts.  Thus, it is equally catastrophic to
use AES-CTR without a companion authentication and integrity mechanism. Implementations
MUST use AES-CTR in conjunction with an authentication and integrity mechanism, such as a
digital signature.</t>
      <t>AES-CTR keys may be obtained either from a key structure or from a recipient
structure.  Implementations encrypting and decrypting MUST validate
that the key type, key length, and algorithm are correct and
appropriate for the entities involved.</t>
      <section anchor="aes-ctr-alg">
        <name>AES-CTR COSE Algoritm Identifiers</name>
        <t>When using a COSE key for the AES-CTR algorithm, the following checks are made:</t>
        <ul spacing="normal">
          <li>The 'kty' field MUST be present, and it MUST be 'Symmetric'.</li>
          <li>If the 'alg' field is present, it MUST match the AES-CTR algorithm being used.</li>
          <li>If the 'key_ops' field is present, it MUST include 'encrypt' when encrypting.</li>
          <li>If the 'key_ops' field is present, it MUST include 'decrypt' when decrypting.</li>
        </ul>
        <t>The following table defines the COSE AES-CTR algorithm values. Note that
these algorithms are being registered as "Deprecated" to avoid accidental
use without a companion integrity protection mechanism.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="center">Value</th>
              <th align="center">Key Size</th>
              <th align="center">Description</th>
              <th align="right">Recommended</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">A128CTR</td>
              <td align="center">TBD1</td>
              <td align="center">128</td>
              <td align="center">AES-CTR w/ 128-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A192CTR</td>
              <td align="center">TBD2</td>
              <td align="center">192</td>
              <td align="center">AES-CTR w/ 192-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A256CTR</td>
              <td align="center">TBD3</td>
              <td align="center">256</td>
              <td align="center">AES-CTR w/ 256-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="aes-cbc">
      <name>AES Cipher Block Chaining Mode</name>
      <t>AES-CBC mode requires an 16 octet Initialization Vector (IV).  Use of a
randomly generated IV ensures that the encryption of the same plaintext
will yield different ciphertext.</t>
      <t>AES-CBC performs an XOR of the IV with the first plaintext block before it
is encrypted. For successive blocks, AES-CBC performs an XOR of previous
ciphertext block with the current plaintext before it is encrypted.</t>
      <t>AES-CBC will require padding; the padding algorithm specified
in Section 6.3 of <xref target="RFC5652"/> MUST be used prior to encrypting the
plaintext.  This padding algorithm allows the decryptor to unambiguously
remove the padding.</t>
      <t>The simplicity of AES-CBC makes it an attractive COSE Content Encryption
algorithm. The need to carry an IV and the need for padding lead to an
increase in the overhead (when compared to AES-CTR). AES-CBC is much safer
for use with static keys than AES-CTR. That said, as described in <xref target="RFC4107"/>,
the use of automated key management to generate fresh keys is greatly
preferred.</t>
      <t>AES-CBC does not provide integrity protection.  Thus, an attacker
can introduce undetectable errors if AES-CBC is used without a companion
authentication and integrity mechanism. Implementations MUST use AES-CBC in conjunction
with an authentication and integrity mechanism, such as a digital signature.</t>
      <section anchor="aes-cbc-alg">
        <name>AES-CBC COSE Algoritm Identifiers</name>
        <t>When using a COSE key for the AES-CBC algorithm, the following checks are made:</t>
        <ul spacing="normal">
          <li>The 'kty' field MUST be present, and it MUST be 'Symmetric'.</li>
          <li>If the 'alg' field is present, it MUST match the AES-CBC algorithm being used.</li>
          <li>If the 'key_ops' field is present, it MUST include 'encrypt' when encrypting.</li>
          <li>If the 'key_ops' field is present, it MUST include 'decrypt' when decrypting.</li>
        </ul>
        <t>The following table defines the COSE AES-CBC algorithm values. Note that
these algorithms are being registered as "Deprecated" to avoid accidental
use without a companion integrity protection mechanism.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="center">Value</th>
              <th align="center">Key Size</th>
              <th align="center">Description</th>
              <th align="right">Recommended</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">A128CBC</td>
              <td align="center">TBD4</td>
              <td align="center">128</td>
              <td align="center">AES-CBC w/ 128-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A192CBC</td>
              <td align="center">TBD5</td>
              <td align="center">192</td>
              <td align="center">AES-CBC w/ 192-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
            <tr>
              <td align="left">A256CBC</td>
              <td align="center">TBD6</td>
              <td align="center">256</td>
              <td align="center">AES-CBC w/ 256-bit key</td>
              <td align="right">Deprecated</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="iana-cons">
      <name>IANA Considerations</name>
      <t>IANA is requested to register six COSE algorithm identifiers for AES-CTR and
AES-CBC in the COSE Algorithms Registry <xref target="IANA"/>.</t>
      <t>The information for the six COSE algorithm identifiers is provided in
<xref target="aes-ctr-alg"/> and  <xref target="aes-cbc-alg"/>. Also, for all six entries, the
"Capabilities" column should contain "[kty]", the "Change Controller"
column should contain "IESG", and the "Reference" column should contain
a reference to this document.</t>
      <t>Ideally, the six values will be assigned in the -65534 to -261 range.</t>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <t>Since AES has a 128-bit block size, regardless of the mode
employed, the ciphertext generated by AES encryption becomes
distinguishable from random values after 2^64 blocks are encrypted
with a single key. Implementations should change the key before
before reaching this limit.</t>
      <t>There are fairly generic precomputation attacks against all block cipher
modes that allow a meet-in-the-middle attack against the key. These attacks
require the creation and searching of huge tables of ciphertext associated
with known plaintext and known keys. Assuming that the memory and processor
resources are available for a precomputation attack, then the theoretical
strength of AES-CTR and AES-CBC are limited to 2^(n/2) bits, where n is the
number of bits in the key. The use of long keys is the best countermeasure
to precomputation attacks.</t>
      <t>When used properly, AES-CTR mode provides strong confidentiality. Unfortunately,
it is very easy to misuse this counter mode. If counter block values are ever
used for more that one plaintext with the same key, then the same key stream
will be used to encrypt both plaintexts, and the confidentiality guarantees are
voided.</t>
      <t>What happens if the encryptor XORs the same key stream with two different
plaintexts? Suppose two plaintext octet sequences P1, P2, P3 and Q1, Q2, Q3
are both encrypted with key stream K1, K2, K3. The two corresponding
ciphertexts are:</t>
      <artwork><![CDATA[
   (P1 XOR K1), (P2 XOR K2), (P3 XOR K3)

   (Q1 XOR K1), (Q2 XOR K2), (Q3 XOR K3)
]]></artwork>
      <t>If both of these two ciphertext streams are exposed to an attacker, then a
catastrophic failure of confidentiality results, since:</t>
      <artwork><![CDATA[
   (P1 XOR K1) XOR (Q1 XOR K1) = P1 XOR Q1
   (P2 XOR K2) XOR (Q2 XOR K2) = P2 XOR Q2
   (P3 XOR K3) XOR (Q3 XOR K3) = P3 XOR Q3
]]></artwork>
      <t>Once the attacker obtains the two plaintexts XORed together, it is relatively
straightforward to separate them. Thus, using any stream cipher, including
AES-CTR, to encrypt two plaintexts under the same key stream leaks the
plaintext.</t>
      <t>Therefore, it is inappropriate to use AES-CTR with static keys. Extraordinary
measures would be needed to prevent reuse of a counter block value with the
static key across power cycles.  To be safe, implementations MUST use fresh
keys with AES-CTR.</t>
      <t>Data forgery is trivial with AES-CTR mode. The demonstration of this attack
is similar to the key stream reuse discussion above. If a known plaintext
octet sequence P1, P2, P3 is encrypted with key stream K1, K2, K3, then the
attacker can replace the plaintext with one of his own choosing. The
ciphertext is:</t>
      <artwork><![CDATA[
   (P1 XOR K1), (P2 XOR K2), (P3 XOR K3)
]]></artwork>
      <t>The attacker simply XORs a selected sequence Q1, Q2, Q3 with the
ciphertext to obtain:</t>
      <artwork><![CDATA[
   (Q1 XOR (P1 XOR K1)), (Q2 XOR (P2 XOR K2)), (Q3 XOR (P3 XOR K3))
]]></artwork>
      <t>Which is the same as:</t>
      <artwork><![CDATA[
   ((Q1 XOR P1) XOR K1), ((Q2 XOR P2) XOR K2), ((Q3 XOR P3) XOR K3)
]]></artwork>
      <t>Decryption of the attacker-generated ciphertext will yield exactly what
the attacker intended:</t>
      <artwork><![CDATA[
   (Q1 XOR P1), (Q2 XOR P2), (Q3 XOR P3)
]]></artwork>
      <t>Accordingly, implementations MUST use of AES-CTR in conjunction with an
authentication and integrity mechanism, such as a digital signature.</t>
      <t>AES-CBC does not provide integrity protection.  Thus, an attacker
can introduce undetectable errors if AES-CBC is used without a companion
authentication mechanism. Accordingly, implementations MUST use of AES-CBC
in conjunction with an authentication and integrity mechanism, such as a digital signature.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Many thanks to David Brown for raising the need for non-AEAD algorithms
to support the SUIT manifest.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC4107" target="https://www.rfc-editor.org/info/rfc4107">
          <front>
            <title>Guidelines for Cryptographic Key Management</title>
            <author fullname="S. Bellovin" initials="S." surname="Bellovin">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <date month="June" year="2005"/>
            <abstract>
              <t>The question often arises of whether a given security system requires some form of automated key management, or whether manual keying is sufficient.  This memo provides guidelines for making such decisions. When symmetric cryptographic mechanisms are used in a protocol, the presumption is that automated key management is generally but not always needed.  If manual keying is proposed, the burden of proving that automated key management is not required falls to the proposer.  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="107"/>
          <seriesInfo name="RFC" value="4107"/>
          <seriesInfo name="DOI" value="10.17487/RFC4107"/>
        </reference>
        <reference anchor="RFC5652" target="https://www.rfc-editor.org/info/rfc5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS).  This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC8152" target="https://www.rfc-editor.org/info/rfc8152">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="July" year="2017"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined 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>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8152"/>
          <seriesInfo name="DOI" value="10.17487/RFC8152"/>
        </reference>
        <reference anchor="AES">
          <front>
            <title>Advanced Encryption Standard (AES)</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2001" month="November"/>
          </front>
          <seriesInfo name="FIPS Publication" value="197"/>
        </reference>
        <reference anchor="MODES">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Methods and Techniques</title>
            <author initials="M." surname="Dworkin" fullname="Morris Dworkin">
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2001" month="December"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="800-38A"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC5116" target="https://www.rfc-editor.org/info/rfc5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms.  The interface and registry can be used as an application-independent set of cryptoalgorithm suites.  This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="I-D.ietf-suit-manifest" target="https://www.ietf.org/archive/id/draft-ietf-suit-manifest-19.txt">
          <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">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Hannes Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Henk Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Koen Zandberg">
              <organization>Inria</organization>
            </author>
            <date day="9" month="August" year="2022"/>
            <abstract>
              <t>   This specification describes the format of a manifest.  A manifest is
   a bundle of metadata about code/data obtained by a recipient (chiefly
   the firmware for an IoT device), where to find the that code/data,
   the devices to which it applies, and cryptographic information
   protecting the manifest.  Software updates and Trusted Invocation
   both tend to use sequences of common operations, so the manifest
   encodes those sequences of operations, rather than declaring the
   metadata.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-suit-manifest-19"/>
        </reference>
        <reference anchor="IANA" target="https://www.iana.org/assignments/cose/cose.xhtml">
          <front>
            <title>IANA Registry for CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
+aB9I9gyGvb3Xngw3/AN13mx/38BModcMDE1AAA=

-->

</rfc>
