<?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.35 (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-isobe-cose-key-thumbprint-02" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.3 -->
  <front>
    <title>COSE Key Thumbprint</title>
    <seriesInfo name="Internet-Draft" value="draft-isobe-cose-key-thumbprint-02"/>
    <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="June" day="15"/>
    <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>
