<?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.31 (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="pre5378Trust200902" docName="draft-isobe-cose-key-thumbprint-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title>COSE Key Thumbprint and Thumbprint URI</title>
    <seriesInfo name="Internet-Draft" value="draft-isobe-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="May" day="27"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <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>
    <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>Sort the required elements based on the deterministic format described in 
Section 4.2.1 of <xref target="RFC8949"/>.</li>
        <li>Hash the bytes of the resulting COSE_Key structure from 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. Other
   elements depend on the chosen key type. The subsection below list
   the required elements for commonly used key types.</t>
      <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>"n" (label: -1, data type: bstr)</li>
          <li>"e" (label: -2, data type: bstr)</li>
        </ul>
      </section>
      <section anchor="elliptic-curve-public-keys">
        <name>Elliptic Curve Public Keys</name>
        <t>The required elements for an elliptic curve public key are:</t>
        <ul spacing="normal">
          <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>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="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>
    </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>
      </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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
DC0AAA==

-->

</rfc>
