<?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-rfc version 1.6.39 (Ruby 3.0.2) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cose-key-thumbprint-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title>COSE Key Thumbprint</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cose-key-thumbprint-00"/>
    <author initials="K." surname="Isobe" fullname="Kohei Isobe">
      <organization>SECOM CO., LTD.</organization>
      <address>
        <email>isobekohei@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization/>
      <address>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <date year="2023" month="July" day="26"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 50?>

<t>This specification defines a method for computing a hash value over a
   COSE Key. It defines which fields in a COSE Key structure are used in the
   hash computation, the method of creating a canonical form of the fields,
   and how to hash the byte sequence. The resulting hash value can be used
   for identifying or selecting a key that is the subject of the thumbprint.</t>
    </abstract>
  </front>
  <middle>
    <?line 58?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This specification defines a method for computing a hash value (a.k.a. digest)
   over a COSE Key structure <xref target="RFC9052"/>.  It defines which fields in a COSE Key
   structure are used in the hash computation, the method of creating a canonical
   form for those fields, and how to hash the byte sequence.  The resulting hash
   value can be used for identifying or selecting the key that is the subject of
   the thumbprint, for instance, by using the COSE Key Thumbprint value as a "kid"
   (key ID) value.</t>
      <t>This specification only defines how thumbprints of public keys are created, not
   private keys or symmetric keys.</t>
    </section>
    <section anchor="terminology">
      <name>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="cose-key-thumbprint">
      <name>COSE Key Thumbprint</name>
      <t>The thumbprint of a COSE Key MUST be computed as follows:</t>
      <ol spacing="normal" type="1"><li>Construct a COSE_Key structure (see Section 7 of <xref target="RFC9052"/>) containing
 only the required elements representing the key. This specification
 describes what those required elements are and what, if necessary, 
 what the unique encoding is.</li>
        <li>Apply the deterministic encoding described in Section 4.2.1 of <xref target="RFC8949"/>
to the representation constructed in step (1).</li>
        <li>Hash the bytes produced in step (2) with a cryptographic hash function H.
For example, SHA-256 <xref target="RFC6234"/> may be used as a hash function.</li>
      </ol>
      <t>The resulting value is the COSE Key Thumbprint with H of the COSE Key.  The
   details of this computation are further described in subsequent
   sections.</t>
    </section>
    <section anchor="required">
      <name>Required COSE Key Elements</name>
      <t>Only the required elements of a key's representation are used when
   computing its COSE Key Thumbprint value. This section summarizes the
   required elements.</t>
      <t>The "kty" (label: 1) element MUST be present for all key types and the integer
   value found in the IANA COSE Key Types registry MUST be used. The tstr data
   type is not used with the kty element.</t>
      <t>Many COSE Key elements depend on the chosen key type. The subsection below list
   the required elements for commonly used key types.</t>
      <section anchor="octet-key-pair-okp">
        <name>Octet Key Pair (OKP)</name>
        <t>The required elements for elliptic curve public keys that use the OKP key type,
such as X25519, are:</t>
        <ul spacing="normal">
          <li>"kty" (label: 1, data type: int, value: 1)</li>
          <li>"crv" (label: -1, value: int)</li>
          <li>"x" (label: -2, value: bstr)</li>
        </ul>
        <t>Details can be found in Section 7.1 of <xref target="RFC9053"/>.</t>
      </section>
      <section anchor="elliptic-curve-keys-w-x-and-y-coordinate-pair">
        <name>Elliptic Curve Keys w/ x- and y-coordinate pair</name>
        <t>The required elements for elliptic curve public keys that use the EC2 key type, such
as NIST P-256, are:</t>
        <ul spacing="normal">
          <li>"kty" (label: 1, data type: int, value: 2)</li>
          <li>"crv" (label: -1, data type: int)</li>
          <li>"x" (label: -2, data type: bstr)</li>
          <li>"y" (label: -3, data type: bstr)</li>
        </ul>
        <t>Details can be found in Section 7.1 of <xref target="RFC9053"/>.</t>
        <t>Note: <xref target="RFC9052"/> offers both compressed as well as uncompressed point
representations. For interoperability, implementations following this 
specification MUST use the uncompressed point representation. Hence, 
the y-coordinate is expressed as a bstr. An implementation that uses 
the compressed point representation MUST compute the uncompressed 
representation for the purpose of the thumbprint calculation.</t>
      </section>
      <section anchor="rsa-public-keys">
        <name>RSA Public Keys</name>
        <t>The required elements for an RSA public key are:</t>
        <ul spacing="normal">
          <li>"kty" (label: 1, data type: int, value: 3)</li>
          <li>"n" (label: -1, data type: bstr)</li>
          <li>"e" (label: -2, data type: bstr)</li>
        </ul>
      </section>
      <section anchor="hss-lms">
        <name>HSS-LMS</name>
        <t>The required elements for HSS-LMS keys are:</t>
        <ul spacing="normal">
          <li>"kty" (label: 1, data type: int, value: 5)</li>
          <li>"pub" (label: -1, data type: bstr)</li>
        </ul>
      </section>
      <section anchor="others">
        <name>Others</name>
        <t>As other key type values are defined, the specifications
   defining them should be similarly consulted to determine which
   elements, in addition to the "kty" element, are required.</t>
      </section>
      <section anchor="why-not-include-optional-cose-key-elements">
        <name>Why Not Include Optional COSE Key Elements?</name>
        <t>Optional elements of COSE Keys are intentionally not included in the
   COSE Key Thumbprint computation so that their absence or presence
   in the COSE Key does not alter the resulting value.  The COSE Key
   Thumbprint value is a digest of the elements required to represent
   the key as a COSE Key -- not of additional data that may also 
   accompany the key.</t>
        <t>Optional elements are not included so that the COSE Key Thumbprint refers
   to a key -- not a key with an associated set of key attributes.
   Different application contexts might or might not include different
   subsets of optional attributes about the key in the COSE Key structure.
   If these were included in the calculation of the COSE Key Thumbprint,
   the values would be different for those COSE Keys, even though the keys
   are the same. The benefit of including only the required elements is that the
   COSE Key Thumbprint of any COSE Key representing the key remains the same,
   regardless of any other attributes that are present.</t>
        <t>Different kinds of thumbprints could be defined by other
   specifications that might include some or all additional COSE Key elements,
   if use cases arise where such different kinds of thumbprints would be
   useful.</t>
      </section>
      <section anchor="selection-of-hash-function">
        <name>Selection of Hash Function</name>
        <t>A specific hash function must be chosen by an application to compute
   the hash value of the hash input.  For example, SHA-256 <xref target="RFC6234"/> might
   be used as the hash function by the application.  While SHA-256 is a
   good default choice at the time of writing, the hash function of
   choice can be expected to change over time as the cryptographic
   landscape evolves.</t>
        <t>Note that in many cases, only the party that creates a key will need
   to know the hash function used.  A typical usage is for the producer
   of the key to use the thumbprint value as a "kid" (key ID) value. In
   this case, the consumer of the "kid" treats it as an opaque value that
   it uses to select the key.</t>
        <t>However, in some cases, multiple parties will be reproducing the COSE Key
   Thumbprint calculation and comparing the results.  In these cases,
   the parties will need to know which hash function was used and use
   the same one.</t>
      </section>
      <section anchor="relationship-to-digests-of-x509-values">
        <name>Relationship to Digests of X.509 Values</name>
        <t>COSE Key Thumbprint values are computed on the COSE Key element required to
   represent a key, rather than all members of a COSE Key that the key is
   represented in.  Thus, they are more analogous to applications that
   use digests of X.509 Subject Public Key Info (SPKI) values, which are
   defined in Section 4.1.2.7 of <xref target="RFC5280"/>, than to applications that
   use digests of complete certificate values, as the "x5t" (X.509
   certificate SHA-1 thumbprint) <xref target="RFC9360"/> value defined for X.509
   certificate objects does.  While logically equivalent to a digest of
   the SPKI representation of the key, a COSE Key Thumbprint is computed over
   the CBOR representation of that key, rather than over an ASN.1
   representation of it.</t>
      </section>
    </section>
    <section anchor="example">
      <name>Example</name>
      <t>This section demonstrates the COSE Key Thumbprint computation for the
   following example COSE Key containing an ECC public key.</t>
      <t>For better readability, the example is first presented in JSON (with 
   the long line broken for display purposes only).</t>
      <artwork><![CDATA[
  {
    / kty set to EC2 = Elliptic Curve Keys /
    1:2,
    / crv set to P-256 /
    -1:1,
    / public key: x-coordinate /
    -2:h'65eda5a12577c2bae829437fe338701a10aaa375e1bb5b5de108de439c0
8551d',
    / public key: y-coordinate /
    -3:h'1e52ed75701163f7f9e40ddf9f341b3dc9ba860af7e0ca7ca7e9eecd008
4d19c',
    / kid /
    2:'meriadoc.brandybuck@buckland.example'
  }
]]></artwork>
      <t>The example above corresponds to the following CBOR encoding
(with link breaks added for display purposes only):</t>
      <artwork><![CDATA[
A50102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE108D
E439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0CA7CA7E9
EECD0084D19C0258246D65726961646F632E6272616E64796275636B406275636B6C6
16E642E6578616D706C65
]]></artwork>
      <t>Not all of the elements from the example above are used in the COSE Key
Thumbprint since the required elements of an elliptic curve public key are:</t>
      <ul spacing="normal">
        <li>"kty"</li>
        <li>"crv"</li>
        <li>"x"</li>
        <li>"y"</li>
      </ul>
      <t>The required order based on Section 4.2.1 of <xref target="RFC8949"/> is:</t>
      <ul spacing="normal">
        <li>"y" (label: -3, data type: bstr)</li>
        <li>"x" (label: -2, data type: bstr)</li>
        <li>"crv" (label: -1, data type: int)</li>
        <li>"kty" (label: 1, data type: int)</li>
      </ul>
      <t>The resulting COSE Key structure, in CBOR diagnostic format with
line-breaks added for better readability, with the minimum elements 
in the correct order are.</t>
      <artwork><![CDATA[
{
   1:2,
  -1:1,
  -2:h'65eda5a12577c2bae829437fe338701a
       10aaa375e1bb5b5de108de439c08551d',
  -3:h'1e52ed75701163f7f9e40ddf9f341b3d
       c9ba860af7e0ca7ca7e9eecd0084d19c'
}
]]></artwork>
      <t>In CBOR encoding the result is (with line-breaks added for display
purposes only):</t>
      <artwork><![CDATA[
A40102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE
108DE439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0
CA7CA7E9EECD0084D19C
]]></artwork>
      <t>Using SHA-256, the resulting thumbprint is:</t>
      <artwork><![CDATA[
496bd8afadf307e5b08c64b0421bf9dc01528a344a43bda88fadd1669da253ec
]]></artwork>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>A COSE Key Thumbprint will only uniquely identify a particular key if a
   single unambiguous COSE Key representation for that key is defined and
   used when computing the COSE Key Thumbprint.</t>
      <t>If two asymmetric keys are used by different parties with different
   key identifiers then the COSE Key Thumbprints will still be equal since
   the key identifier itself is not included in the thumbprint calculation
   (similarly to other optional elements in the COSE_Key structure). 
   When the inclusion of certain optinal elements in the thumbprint calcuation
   is important for a given application, this specification is not the
   appropriate choice.</t>
      <t>To promote interoperability among implementations, the SHA-256 hash
   algorithm is mandatory to implement.</t>
      <t>While thumbprint values are valuable for
   identifying legitimate keys, comparing thumbprint values is not a
   reliable means of excluding the use of particular keys
   (or transformations thereof). The reason is that an attacker may
   supply a key that is a transformation of a key in order to have it 
   appear to be a different key.  For instance, if a legitimate RSA key
   uses a modulus value N and an attacker supplies a key with modulus 3*N,
   the modified key would still work about 1/3 of the time, but would appear
   to be a different key.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>There are no actions for IANA.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>We would like to thank the authors of <xref target="RFC7638"/> for their work on the
JSON Web Key (JWK) Thumbprint specification. This document applies JWK
Thumbprints to COSE Key structures.</t>
      <t>Additionally, we would like to thank Carsten Bormann, Orie Steele,
Ilari Liusvaara, Laurence Lundblade, Daisuke Ajitomi, and Michael Richardson
for their feedback.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </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="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="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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC7638">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
