<?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.34 (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-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.3 -->
  <front>
    <title>COSE Key Thumbprint and Thumbprint URI</title>
    <seriesInfo name="Internet-Draft" value="draft-isobe-cose-key-thumbprint-01"/>
    <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="08"/>
    <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>
      <t>A future version of this document will describe the concept of a COSE Key
   Thumbprint URI.</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>Even more insidious is that an attacker may supply a key that is a
   transformation of a legal 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.  Thus, while thumbprint values are valuable for
   identifying legitimate keys, comparing thumbprint values is not a
   reliable means of excluding (blacklisting) the use of particular keys
   (or transformations thereof).</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">
              <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="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <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">
              <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="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="T. Hansen" initials="T." surname="Hansen">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="S. Santesson" initials="S." surname="Santesson">
              <organization/>
            </author>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="W. Polk" initials="W." surname="Polk">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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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
AAA=

-->

</rfc>
