<?xml version='1.0'encoding='UTF-8'?> <?xml-stylesheet type='text/xsl' href='http://xml2rfc.tools.ietf.org/authoring/rfc2629.xslt' ?> <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> <?rfc toc="yes"?> <?rfc tocompact="yes"?> <?rfc tocdepth="4"?> <?rfc tocindent="yes"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes"?> <?rfc compact="yes"?> <?rfc subcompact="no"?>encoding='utf-8'?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-cose-webauthn-algorithms-08" indexInclude="true" ipr="trust200902"docName="draft-ietf-cose-webauthn-algorithms-08">number="8812" prepTime="2020-08-14T16:14:44" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="4" tocInclude="true" xml:lang="en"> <link href="https://datatracker.ietf.org/doc/draft-ietf-cose-webauthn-algorithms-08" rel="prev"/> <link href="https://dx.doi.org/10.17487/rfc8812" rel="alternate"/> <link href="urn:issn:2070-1721" rel="alternate"/> <front> <title abbrev="COSE & JOSE Registrations for WebAuthnAlgs">COSEAlgs">CBOR Object Signing andJOSEEncryption (COSE) and JSON Object Signing and Encryption (JOSE) Registrations forWebAuthnWeb Authentication (WebAuthn) Algorithms</title> <seriesInfo name="RFC" value="8812" stream="IETF"/> <author fullname="Michael B. Jones" surname="Jones"initials="M.B."> <organization>Microsoft</organization>initials="M"> <organization showOnFrontPage="true">Microsoft</organization> <address> <email>mbj@microsoft.com</email><uri>http://self-issued.info/</uri><uri>https://self-issued.info/</uri> </address> </author> <dateday="11" month="June" year="2020" />month="08" year="2020"/> <area>Security</area> <workgroup>COSE Working Group</workgroup> <keyword>Cryptography</keyword> <keyword>Digital Signature</keyword> <keyword>Encryption</keyword><keyword>Internet-Draft</keyword><keyword>W3C</keyword> <keyword>World Wide Web Consortium</keyword> <keyword>WebAuthn</keyword> <keyword>Web Authentication</keyword> <keyword>FIDO Alliance</keyword> <keyword>FIDO</keyword> <keyword>FIDO2</keyword> <keyword>CTAP</keyword> <keyword>CTAP2</keyword><abstract> <t><abstract pn="section-abstract"> <t pn="section-abstract-1"> The W3C Web Authentication (WebAuthn) specification and the FIDO Alliance FIDO2 Client to Authenticator Protocol (CTAP) specification use CBOR Object Signing and Encryption (COSE) algorithm identifiers. This specification registers the following algorithmsin the IANA "COSE Algorithms" registry, which(which are used by WebAuthn and CTAPimplementations:implementations) in the IANA "COSE Algorithms" registry: RSASSA-PKCS1-v1_5 using SHA-256, SHA-384, SHA-512, andSHA-1,SHA-1; andECDSAElliptic Curve Digital Signature Algorithm (ECDSA) using the secp256k1 curve and SHA-256. It registers the secp256k1 elliptic curve in the IANA "COSE Elliptic Curves" registry. Also, for use with JSON Object Signing and Encryption (JOSE), it registers the algorithm ECDSA using the secp256k1 curve and SHA-256 in the IANA "JSON Web Signature and Encryption Algorithms" registry and the secp256k1 elliptic curve in the IANA "JSON Web Key Elliptic Curve" registry. </t> </abstract> <boilerplate> <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1"> <name slugifiedName="name-status-of-this-memo">Status of This Memo</name> <t pn="section-boilerplate.1-1"> This is an Internet Standards Track document. </t> <t pn="section-boilerplate.1-2"> This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841. </t> <t pn="section-boilerplate.1-3"> Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at <eref target="https://www.rfc-editor.org/info/rfc8812" brackets="none"/>. </t> </section> <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2"> <name slugifiedName="name-copyright-notice">Copyright Notice</name> <t pn="section-boilerplate.2-1"> Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved. </t> <t pn="section-boilerplate.2-2"> This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. </t> </section> </boilerplate> <toc> <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1"> <name slugifiedName="name-table-of-contents">Table of Contents</name> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1"> <li pn="section-toc.1-1.1"> <t keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2"> <li pn="section-toc.1-1.1.2.1"> <t keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-notation-and-c">Requirements Notation and Conventions</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.2"> <t keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-rsassa-pkcs1-v1_5-signature">RSASSA-PKCS1-v1_5 Signature Algorithm</xref></t> </li> <li pn="section-toc.1-1.3"> <t pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-using-secp256k1-with-jose-a">Using secp256k1 with JOSE and COSE</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2"> <li pn="section-toc.1-1.3.2.1"> <t pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-jose-and-cose-secp256k1-cur">JOSE and COSE secp256k1 Curve Key Representations</xref></t> </li> <li pn="section-toc.1-1.3.2.2"> <t pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-ecdsa-signature-with-secp25">ECDSA Signature with secp256k1 Curve</xref></t> </li> <li pn="section-toc.1-1.3.2.3"> <t pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-other-uses-of-the-secp256k1">Other Uses of the secp256k1 Elliptic Curve</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.4"> <t pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2"> <li pn="section-toc.1-1.4.2.1"> <t pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-cose-algorithms-registratio">COSE Algorithms Registrations</xref></t> </li> <li pn="section-toc.1-1.4.2.2"> <t pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-cose-elliptic-curves-regist">COSE Elliptic Curves Registrations</xref></t> </li> <li pn="section-toc.1-1.4.2.3"> <t pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-jose-algorithms-registratio">JOSE Algorithms Registrations</xref></t> </li> <li pn="section-toc.1-1.4.2.4"> <t pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-json-web-key-elliptic-curve">JSON Web Key Elliptic Curves Registrations</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.5"> <t pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2"> <li pn="section-toc.1-1.5.2.1"> <t pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-rsa-key-size-security-consi">RSA Key Size Security Considerations</xref></t> </li> <li pn="section-toc.1-1.5.2.2"> <t pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-rsassa-pkcs1-v1_5-with-sha-">RSASSA-PKCS1-v1_5 with SHA-2 Security Considerations</xref></t> </li> <li pn="section-toc.1-1.5.2.3"> <t pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-rsassa-pkcs1-v1_5-with-sha-1">RSASSA-PKCS1-v1_5 with SHA-1 Security Considerations</xref></t> </li> <li pn="section-toc.1-1.5.2.4"> <t pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-secp256k1-security-consider">secp256k1 Security Considerations</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.6"> <t pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t> <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2"> <li pn="section-toc.1-1.6.2.1"> <t pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t> </li> <li pn="section-toc.1-1.6.2.2"> <t pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t> </li> </ul> </li> <li pn="section-toc.1-1.7"> <t pn="section-toc.1-1.7.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t> </li> <li pn="section-toc.1-1.8"> <t pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-address">Author's Address</xref></t> </li> </ul> </section> </toc> </front> <middle> <section anchor="Introduction"title="Introduction"> <t>numbered="true" toc="include" removeInRFC="false" pn="section-1"> <name slugifiedName="name-introduction">Introduction</name> <t pn="section-1-1"> This specification defines how to use several algorithms with CBOR Object Signing and Encryption (COSE) <xreftarget="RFC8152"/>target="RFC8152" format="default" sectionFormat="of" derivedContent="RFC8152"/> that are used by implementations of the W3C Web Authentication (WebAuthn) <xreftarget="WebAuthn"/>target="WebAuthn" format="default" sectionFormat="of" derivedContent="WebAuthn"/> and FIDO Alliance FIDO2 Client to Authenticator Protocol (CTAP) <xreftarget="CTAP"/>target="CTAP" format="default" sectionFormat="of" derivedContent="CTAP"/> specifications. This specification registers these algorithms in the IANA "COSE Algorithms" registry <xreftarget="IANA.COSE.Algorithms"/>target="IANA.COSE.Algorithms" format="default" sectionFormat="of" derivedContent="IANA.COSE.Algorithms"/> and registers an elliptic curve in the IANA "COSE Elliptic Curves" registry <xreftarget="IANA.COSE.Curves"/>.target="IANA.COSE.Curves" format="default" sectionFormat="of" derivedContent="IANA.COSE.Curves"/>. This specification also registers a corresponding algorithm for use with JSON Object Signing and Encryption (JOSE) <xreftarget="RFC7515"/>target="RFC7515" format="default" sectionFormat="of" derivedContent="RFC7515"/> in the IANA "JSON Web Signature and Encryption Algorithms" registry <xreftarget="IANA.JOSE.Algorithms"/>target="IANA.JOSE.Algorithms" format="default" sectionFormat="of" derivedContent="IANA.JOSE.Algorithms"/> and registers an elliptic curve in the IANA "JSON Web Key Elliptic Curve" registry <xreftarget="IANA.JOSE.Curves"/>.target="IANA.JOSE.Curves" format="default" sectionFormat="of" derivedContent="IANA.JOSE.Curves"/>. </t> <section anchor="rnc"title="Requirementsnumbered="true" toc="include" removeInRFC="false" pn="section-1.1"> <name slugifiedName="name-requirements-notation-and-c">Requirements Notation andConventions"> <t>Conventions</name> <t pn="section-1.1-1"> The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described inBCP 14BCP 14 <xreftarget="RFC2119"/> <xref target="RFC8174"/>target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as shown here. </t> </section> </section> <sectiontitle="RSASSA-PKCS1-v1_5anchor="RSASSA-PKCS1-v1_5" numbered="true" toc="include" removeInRFC="false" pn="section-2"> <name slugifiedName="name-rsassa-pkcs1-v1_5-signature">RSASSA-PKCS1-v1_5 SignatureAlgorithm" anchor="RSASSA-PKCS1-v1_5"> <t>Algorithm</name> <t pn="section-2-1"> The RSASSA-PKCS1-v1_5 signature algorithm is defined in <xreftarget="RFC8017"/>.target="RFC8017" format="default" sectionFormat="of" derivedContent="RFC8017"/>. The RSASSA-PKCS1-v1_5 signature algorithm is parameterized with a hash function (h). </t><t><t pn="section-2-2"> A key of size 2048 bits or largerMUST<bcp14>MUST</bcp14> be used with these algorithms. Implementations need to check that the key type is 'RSA' when creating or verifying a signature. </t><t><t pn="section-2-3"> The RSASSA-PKCS1-v1_5 algorithms specified in this document are in the following table. </t><texttable anchor="table-rsa-algs" title="RSASSA-PKCS1-v1_5 Algorithm Values" suppress-title="false"<table anchor="rsa-algs" align="center"style="full"> <ttcol align="left">Name</ttcol> <ttcol align="left">Value</ttcol> <ttcol align="left">Hash</ttcol> <ttcol align="left">Description</ttcol> <ttcol align="left">Recommended</ttcol> <c>RS256</c> <c>TBD (temporary assignment -257 already in place)</c> <c>SHA-256</c> <c>RSASSA-PKCS1-v1_5 using SHA-256</c> <c>No</c> <c>RS384</c> <c>TBD (temporary assignment -258 already in place)</c> <c>SHA-384</c> <c>RSASSA-PKCS1-v1_5 using SHA-384</c> <c>No</c> <c>RS512</c> <c>TBD (temporary assignment -259 already in place)</c> <c>SHA-512</c> <c>RSASSA-PKCS1-v1_5 using SHA-512</c> <c>No</c> <c>RS1</c> <c>TBD (temporary assignment -65535 already in place)</c> <c>SHA-1</c> <c>RSASSA-PKCS1-v1_5 using SHA-1</c> <c>Deprecated</c> </texttable> <t>pn="table-1"> <name slugifiedName="name-rsassa-pkcs1-v1_5-algorithm">RSASSA-PKCS1-v1_5 Algorithm Values</name> <thead> <tr> <th align="left" colspan="1" rowspan="1">Name</th> <th align="left" colspan="1" rowspan="1">Value</th> <th align="left" colspan="1" rowspan="1">Hash</th> <th align="left" colspan="1" rowspan="1">Description</th> <th align="left" colspan="1" rowspan="1">Recommended</th> </tr> </thead> <tbody> <tr> <td align="left" colspan="1" rowspan="1">RS256</td> <td align="left" colspan="1" rowspan="1">-257</td> <td align="left" colspan="1" rowspan="1">SHA-256</td> <td align="left" colspan="1" rowspan="1">RSASSA-PKCS1-v1_5 using SHA-256</td> <td align="left" colspan="1" rowspan="1">No</td> </tr> <tr> <td align="left" colspan="1" rowspan="1">RS384</td> <td align="left" colspan="1" rowspan="1">-258</td> <td align="left" colspan="1" rowspan="1">SHA-384</td> <td align="left" colspan="1" rowspan="1">RSASSA-PKCS1-v1_5 using SHA-384</td> <td align="left" colspan="1" rowspan="1">No</td> </tr> <tr> <td align="left" colspan="1" rowspan="1">RS512</td> <td align="left" colspan="1" rowspan="1">-259</td> <td align="left" colspan="1" rowspan="1">SHA-512</td> <td align="left" colspan="1" rowspan="1">RSASSA-PKCS1-v1_5 using SHA-512</td> <td align="left" colspan="1" rowspan="1">No</td> </tr> <tr> <td align="left" colspan="1" rowspan="1">RS1</td> <td align="left" colspan="1" rowspan="1">-65535</td> <td align="left" colspan="1" rowspan="1">SHA-1</td> <td align="left" colspan="1" rowspan="1">RSASSA-PKCS1-v1_5 using SHA-1</td> <td align="left" colspan="1" rowspan="1">Deprecated</td> </tr> </tbody> </table> <t pn="section-2-5"> Security considerations for use of the first three algorithms are in <xreftarget="RSASSA-PKCS1-v1_5_SHA-2_considerations"/>.target="RSASSA-PKCS1-v1_5_SHA-2_considerations" format="default" sectionFormat="of" derivedContent="Section 5.2"/>. Security considerations for use of the last algorithm are in <xreftarget="RSASSA-PKCS1-v1_5_SHA-1_considerations"/>.target="RSASSA-PKCS1-v1_5_SHA-1_considerations" format="default" sectionFormat="of" derivedContent="Section 5.3"/>. </t><t><t pn="section-2-6"> Note that these algorithms are already present in the IANA "JSON Web Signature and Encryption Algorithms" registry <xreftarget="IANA.JOSE.Algorithms"/>,target="IANA.JOSE.Algorithms" format="default" sectionFormat="of" derivedContent="IANA.JOSE.Algorithms"/>, and so these registrations are only for the IANA "COSE Algorithms" registry <xreftarget="IANA.COSE.Algorithms"/>.target="IANA.COSE.Algorithms" format="default" sectionFormat="of" derivedContent="IANA.COSE.Algorithms"/>. </t> </section> <sectiontitle="Usinganchor="secp256k1" numbered="true" toc="include" removeInRFC="false" pn="section-3"> <name slugifiedName="name-using-secp256k1-with-jose-a">Using secp256k1 with JOSE andCOSE" anchor="secp256k1"> <t>COSE</name> <t pn="section-3-1"> This section defines algorithm encodings and representations enabling the Standards for Efficient Cryptography Group (SECG) elliptic curve secp256k1 <xreftarget="SEC2"/>target="SEC2" format="default" sectionFormat="of" derivedContent="SEC2"/> to be used for JOSE <xreftarget="RFC7515"/>target="RFC7515" format="default" sectionFormat="of" derivedContent="RFC7515"/> and COSE <xreftarget="RFC8152"/>target="RFC8152" format="default" sectionFormat="of" derivedContent="RFC8152"/> messages. </t> <sectiontitle="JOSEanchor="secp256k1_curve" numbered="true" toc="include" removeInRFC="false" pn="section-3.1"> <name slugifiedName="name-jose-and-cose-secp256k1-cur">JOSE and COSE secp256k1 Curve KeyRepresentations" anchor="secp256k1_curve"> <t>Representations</name> <t pn="section-3.1-1"> TheStandards for Efficient Cryptography Group (SECG)SECG elliptic curve secp256k1 <xreftarget="SEC2"/>target="SEC2" format="default" sectionFormat="of" derivedContent="SEC2"/> is represented in a JSON Web Key (JWK) <xreftarget="RFC7517"/>target="RFC7517" format="default" sectionFormat="of" derivedContent="RFC7517"/> using these values: </t><t> <?rfc subcompact="yes"?> <list style="symbols"> <t><spanx style="verb">kty</spanx>: <spanx style="verb">EC</spanx></t> <t><spanx style="verb">crv</spanx>: <spanx style="verb">secp256k1</spanx></t> </list> <?rfc subcompact="no"?> </t> <t><ul spacing="compact" bare="false" empty="false" pn="section-3.1-2"> <li pn="section-3.1-2.1"> <tt>kty</tt>: <tt>EC</tt></li> <li pn="section-3.1-2.2"> <tt>crv</tt>: <tt>secp256k1</tt></li> </ul> <t pn="section-3.1-3"> plus the values needed to represent the curve point, as defined inSection 6.2.1 of<xreftarget="RFC7518"/>.target="RFC7518" section="6.2.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7518#section-6.2.1" derivedContent="RFC7518"/>. As a compressed point encoding representation is not defined for JWK elliptic curve points, the uncompressed point encoding defined thereMUST<bcp14>MUST</bcp14> be used. The<spanx style="verb">x</spanx><tt>x</tt> and<spanx style="verb">y</spanx><tt>y</tt> values representedMUST<bcp14>MUST</bcp14> both be exactly 256 bits, with any leading zeros preserved. Other optional values such as<spanx style="verb">alg</spanx> MAY<tt>alg</tt> <bcp14>MAY</bcp14> also be present. </t><t><t pn="section-3.1-4"> It is represented in a COSE_Key <xreftarget ="RFC8152"/>target="RFC8152" format="default" sectionFormat="of" derivedContent="RFC8152"/> using these values: </t><t> <?rfc subcompact="yes"?> <list style="symbols"> <t><spanx style="verb">kty</spanx><ul spacing="compact" bare="false" empty="false" pn="section-3.1-5"> <li pn="section-3.1-5.1"> <tt>kty</tt> (1):<spanx style="verb">EC2</spanx> (2)</t> <t><spanx style="verb">crv</spanx><tt>EC2</tt> (2)</li> <li pn="section-3.1-5.2"> <tt>crv</tt> (-1):<spanx style="verb">secp256k1</spanx> (TBD - requested assignment 8)</t> </list> <?rfc subcompact="no"?> </t> <t><tt>secp256k1</tt> (8)</li> </ul> <t pn="section-3.1-6"> plus the values needed to represent the curve point, as defined inSection 13.1.1 of<xreftarget="RFC8152"/>.target="RFC8152" section="13.1.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8152#section-13.1.1" derivedContent="RFC8152"/>. Either the uncompressed or compressed point encoding representations defined there can be used. The<spanx style="verb">x</spanx><tt>x</tt> value representedMUST<bcp14>MUST</bcp14> be exactly 256 bits, with any leading zeros preserved. If the uncompressed representation is used, the<spanx style="verb">y</spanx><tt>y</tt> value representedMUST<bcp14>MUST</bcp14> likewise be exactly 256 bits, with any leading zeros preserved; if the compressed representation is used, the<spanx style="verb">y</spanx><tt>y</tt> value is a boolean value, as specified inSection 13.1.1 of<xreftarget="RFC8152"/>.target="RFC8152" section="13.1.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8152#section-13.1.1" derivedContent="RFC8152"/>. Other optional values such as<spanx style="verb">alg</spanx><tt>alg</tt> (3)MAY<bcp14>MAY</bcp14> also be present. </t> </section> <sectiontitle="ECDSAanchor="secp256k1_ECDSA" numbered="true" toc="include" removeInRFC="false" pn="section-3.2"> <name slugifiedName="name-ecdsa-signature-with-secp25">ECDSA Signature with secp256k1Curve" anchor="secp256k1_ECDSA"> <t>Curve</name> <t pn="section-3.2-1"> The ECDSA signature algorithm is defined in <xreftarget="DSS"/>.target="DSS" format="default" sectionFormat="of" derivedContent="DSS"/>. This specification defines the<spanx style="verb">ES256K</spanx><tt>ES256K</tt> algorithm identifier, which is used to specify the use of ECDSA with the secp256k1 curve and the SHA-256 <xreftarget="DSS"/>target="DSS" format="default" sectionFormat="of" derivedContent="DSS"/> cryptographic hash function. Implementations need to check that the key type is<spanx style="verb">EC</spanx><tt>EC</tt> for JOSE or<spanx style="verb">EC2</spanx><tt>EC2</tt> (2) for COSE and that the curve of the key is secp256k1 when creating or verifying a signature. </t><t><t pn="section-3.2-2"> The ECDSA secp256k1 SHA-256 digital signature is generated as follows:<list style="numbers"> <t></t> <ol spacing="normal" type="1" start="1" pn="section-3.2-3"> <li pn="section-3.2-3.1" derivedCounter="1."> Generate a digital signature of the JWS Signing Input or the COSE Sig_structure using ECDSA secp256k1 SHA-256 with the desired private key. The output will be the pair (R, S), where R and S are 256-bit unsigned integers.</t> <t></li> <li pn="section-3.2-3.2" derivedCounter="2."> Turn R and S into octet sequences in big-endian order, with each array beingbe32 octets long. The octet sequence representationsMUST NOT<bcp14>MUST NOT</bcp14> be shortened to omit any leading zero octets contained in the values.</t> <t></li> <li pn="section-3.2-3.3" derivedCounter="3."> Concatenate the two octet sequences in the order R and then S. (Note that many ECDSA implementations will directly produce this concatenation as their output.)</t> <t></li> <li pn="section-3.2-3.4" derivedCounter="4."> The resulting 64-octet sequence is the JWS Signature or COSE signature value.</t> </list> </t> <t></li> </ol> <t pn="section-3.2-4"> ImplementationsSHOULD<bcp14>SHOULD</bcp14> use a deterministic algorithm to generate the ECDSA nonce, k, such as the algorithm defined in <xreftarget="RFC6979"/>.target="RFC6979" format="default" sectionFormat="of" derivedContent="RFC6979"/>. However, in situations where devices are vulnerable to physical attacks, deterministic ECDSA has been shown to be susceptible to fault injection attacks <xreftarget="Kudelski17"/> <xref target="EuroSP18"/>.target="KUDELSKI17" format="default" sectionFormat="of" derivedContent="KUDELSKI17"/> <xref target="EURO-SP18" format="default" sectionFormat="of" derivedContent="EURO-SP18"/>. Where this is a possibility, implementationsSHOULD<bcp14>SHOULD</bcp14> implement appropriate countermeasures. Where there are specific certification requirements (such as FIPS approval), implementors should check whether deterministic ECDSA is an approved nonce generation method. </t><t><t pn="section-3.2-5"> The ECDSA secp256k1 SHA-256 algorithm specified in this document uses these identifiers: </t><texttable anchor="table-ec-algs" title="ECDSA Algorithm Values" suppress-title="false"<table anchor="ec-algs" align="center"style="full"> <ttcol align="left">JOSE Alg Name</ttcol> <ttcol align="left">COSE Alg Value</ttcol> <ttcol align="left">Description</ttcol> <ttcol align="left">Recommended</ttcol> <c>ES256K</c> <c>TBD (requested assignment -47)</c> <c>ECDSApn="table-2"> <name slugifiedName="name-ecdsa-algorithm-values">ECDSA Algorithm Values</name> <thead> <tr> <th align="left" colspan="1" rowspan="1">Name</th> <th align="left" colspan="1" rowspan="1">Value</th> <th align="left" colspan="1" rowspan="1">Description</th> <th align="left" colspan="1" rowspan="1">Recommended</th> </tr> </thead> <tbody> <tr> <td align="left" colspan="1" rowspan="1">ES256K</td> <td align="left" colspan="1" rowspan="1">-47</td> <td align="left" colspan="1" rowspan="1">ECDSA using secp256k1 curve andSHA-256</c> <c>No</c> </texttable> <t>SHA-256</td> <td align="left" colspan="1" rowspan="1">No</td> </tr> </tbody> </table> <t pn="section-3.2-7"> When using a JWK or COSE_Key for this algorithm, the following checks are made: </t><t> <list style='symbols'> <t><ul spacing="normal" bare="false" empty="false" pn="section-3.2-8"> <li pn="section-3.2-8.1"> The<spanx style="verb">kty</spanx><tt>kty</tt> fieldMUST<bcp14>MUST</bcp14> bepresentpresent, and itMUST<bcp14>MUST</bcp14> be<spanx style="verb">EC</spanx><tt>EC</tt> for JOSE or<spanx style="verb">EC2</spanx><tt>EC2</tt> for COSE.</t> <t></li> <li pn="section-3.2-8.2"> The<spanx style="verb">crv</spanx><tt>crv</tt> fieldMUST<bcp14>MUST</bcp14> bepresentpresent, and itMUST<bcp14>MUST</bcp14> represent the<spanx style="verb">secp256k1</spanx><tt>secp256k1</tt> elliptic curve.</t> <t></li> <li pn="section-3.2-8.3"> If the<spanx style="verb">alg</spanx><tt>alg</tt> field is present, itMUST<bcp14>MUST</bcp14> represent the<spanx style="verb">ES256K</spanx><tt>ES256K</tt> algorithm.</t> <t></li> <li pn="section-3.2-8.4"> If the<spanx style="verb">key_ops</spanx><tt>key_ops</tt> field is present, itMUST<bcp14>MUST</bcp14> include<spanx style="verb">sign</spanx><tt>sign</tt> when creating an ECDSA signature.</t> <t></li> <li pn="section-3.2-8.5"> If the<spanx style="verb">key_ops</spanx><tt>key_ops</tt> field is present, itMUST<bcp14>MUST</bcp14> include<spanx style="verb">verify</spanx><tt>verify</tt> when verifying an ECDSA signature.</t> <t></li> <li pn="section-3.2-8.6"> If the JWK<spanx style="use">use</spanx><tt>use</tt> field is present, its valueMUST<bcp14>MUST</bcp14> be<spanx style="verb">sig</spanx>. </t> </list> </t><tt>sig</tt>. </li> </ul> </section> <section anchor="other-uses-of-secp256k1"title="Othernumbered="true" toc="include" removeInRFC="false" pn="section-3.3"> <name slugifiedName="name-other-uses-of-the-secp256k1">Other Uses of the secp256k1 EllipticCurve"> <t>Curve</name> <t pn="section-3.3-1"> This specification defines how to use the secp256k1 curve for ECDSA signatures for both JOSE and COSE implementations. While intheory,theory the curve could also be used for ECDH-ES key agreement, it is beyond the scope of this specification to state whether this is or is not advisable. Thus, whether or not to recommend its use with ECDH-ES is left for experts to decide in future specifications. </t><t><t pn="section-3.3-2"> When used for ECDSA, the secp256k1 curveMUST<bcp14>MUST</bcp14> be used only with the<spanx style="verb">ES256K</spanx><tt>ES256K</tt> algorithm identifier and not any others, including not with the COSE<spanx style="verb">ES256</spanx><tt>ES256</tt> identifier. Note that the<spanx style="verb">ES256K</spanx><tt>ES256K</tt> algorithm identifier needed to be introduced for JOSE to sign with the secp256k1 curve because the JOSE<spanx style="verb">ES256</spanx><tt>ES256</tt> algorithm is defined to be used only with the P-256 curve. The COSE treatment of how to sign with secp256k1 is intentionally parallel to that for JOSE, where the secp256k1 curveMUST<bcp14>MUST</bcp14> be used with the<spanx style="verb">ES256K</spanx><tt>ES256K</tt> algorithm identifier. </t> </section> </section> <section anchor="IANA"title="IANA Considerations">numbered="true" toc="include" removeInRFC="false" pn="section-4"> <name slugifiedName="name-iana-considerations">IANA Considerations</name> <section anchor="cose-algorithms-registrations"title="COSEnumbered="true" toc="include" removeInRFC="false" pn="section-4.1"> <name slugifiedName="name-cose-algorithms-registratio">COSE AlgorithmsRegistrations"> <t> This section registersRegistrations</name> <t pn="section-4.1-1"> IANA has registered the following values in theIANA"COSE Algorithms" registry <xreftarget="IANA.COSE.Algorithms"/>. </t> <t> <?rfc subcompact="yes"?> <list style='symbols'> <t> Name: RS256 </t> <t> Value: TBD (temporary assignment -257 already in place) </t> <t> Description: RSASSA-PKCS1-v1_5target="IANA.COSE.Algorithms" format="default" sectionFormat="of" derivedContent="IANA.COSE.Algorithms"/>. </t> <dl spacing="compact" newline="false" pn="section-4.1-2"> <dt pn="section-4.1-2.1">Name:</dt> <dd pn="section-4.1-2.2">RS256 </dd> <dt pn="section-4.1-2.3">Value:</dt> <dd pn="section-4.1-2.4">-257 </dd> <dt pn="section-4.1-2.5">Description:</dt> <dd pn="section-4.1-2.6">RSASSA-PKCS1-v1_5 using SHA-256</t> <t> Reference: <xref target="RSASSA-PKCS1-v1_5"/></dd> <dt pn="section-4.1-2.7">Change Controller: </dt> <dd pn="section-4.1-2.8">IESG </dd> <dt pn="section-4.1-2.9">Reference:</dt> <dd pn="section-4.1-2.10"> <xref target="RSASSA-PKCS1-v1_5" format="default" sectionFormat="of" derivedContent="Section 2"/> ofthis document </t> <t> Recommended:RFC 8812 </dd> <dt pn="section-4.1-2.11">Recommended:</dt> <dd pn="section-4.1-2.12"> No</t> </list> </t> <t> <list style='symbols'> <t> Name: RS384 </t> <t> Value: TBD (temporary assignment -258 already in place) </t> <t> Description: RSASSA-PKCS1-v1_5</dd> </dl> <dl spacing="compact" newline="false" pn="section-4.1-3"> <dt pn="section-4.1-3.1"> Name:</dt> <dd pn="section-4.1-3.2">RS384 </dd> <dt pn="section-4.1-3.3"> Value:</dt> <dd pn="section-4.1-3.4">-258 </dd> <dt pn="section-4.1-3.5"> Description:</dt> <dd pn="section-4.1-3.6">RSASSA-PKCS1-v1_5 using SHA-384</t> <t> Reference: <xref target="RSASSA-PKCS1-v1_5"/></dd> <dt pn="section-4.1-3.7">Change Controller: </dt> <dd pn="section-4.1-3.8">IESG </dd> <dt pn="section-4.1-3.9"> Reference:</dt> <dd pn="section-4.1-3.10"> <xref target="RSASSA-PKCS1-v1_5" format="default" sectionFormat="of" derivedContent="Section 2"/> ofthis document </t> <t> Recommended: No </t> </list> </t> <t> <list style='symbols'> <t> Name: RS512 </t> <t> Value: TBD (temporary assignment -259 already in place) </t> <t> Description: RSASSA-PKCS1-v1_5RFC 8812 </dd> <dt pn="section-4.1-3.11"> Recommended:</dt> <dd pn="section-4.1-3.12">No </dd> </dl> <dl spacing="compact" newline="false" pn="section-4.1-4"> <dt pn="section-4.1-4.1"> Name:</dt> <dd pn="section-4.1-4.2">RS512 </dd> <dt pn="section-4.1-4.3"> Value:</dt> <dd pn="section-4.1-4.4">-259 </dd> <dt pn="section-4.1-4.5"> Description:</dt> <dd pn="section-4.1-4.6">RSASSA-PKCS1-v1_5 using SHA-512</t> <t> Reference: <xref target="RSASSA-PKCS1-v1_5"/></dd> <dt pn="section-4.1-4.7">Change Controller: </dt> <dd pn="section-4.1-4.8">IESG </dd> <dt pn="section-4.1-4.9"> Reference:</dt> <dd pn="section-4.1-4.10"> <xref target="RSASSA-PKCS1-v1_5" format="default" sectionFormat="of" derivedContent="Section 2"/> ofthis document </t> <t> Recommended:RFC 8812 </dd> <dt pn="section-4.1-4.11"> Recommended:</dt> <dd pn="section-4.1-4.12"> No</t> </list> </t> <t> <list style='symbols'> <t> Name: RS1 </t> <t> Value: TBD (temporary assignment -65535 already in place) </t> <t> Description: RSASSA-PKCS1-v1_5</dd> </dl> <dl spacing="compact" newline="false" pn="section-4.1-5"> <dt pn="section-4.1-5.1"> Name:</dt> <dd pn="section-4.1-5.2">RS1 </dd> <dt pn="section-4.1-5.3"> Value:</dt> <dd pn="section-4.1-5.4">-65535 </dd> <dt pn="section-4.1-5.5"> Description:</dt> <dd pn="section-4.1-5.6">RSASSA-PKCS1-v1_5 using SHA-1</t> <t> Reference: <xref target="RSASSA-PKCS1-v1_5"/></dd> <dt pn="section-4.1-5.7">Change Controller: </dt> <dd pn="section-4.1-5.8">IESG </dd> <dt pn="section-4.1-5.9"> Reference:</dt> <dd pn="section-4.1-5.10"> <xref target="RSASSA-PKCS1-v1_5" format="default" sectionFormat="of" derivedContent="Section 2"/> ofthis document </t> <t> Recommended: Deprecated </t> </list> </t> <t> <list style='symbols'> <t> Name: ES256K </t> <t> Value: TBD (requested assignment -47) </t> <t> Description: ECDSARFC 8812 </dd> <dt pn="section-4.1-5.11"> Recommended:</dt> <dd pn="section-4.1-5.12">Deprecated </dd> </dl> <dl spacing="compact" newline="false" pn="section-4.1-6"> <dt pn="section-4.1-6.1"> Name:</dt> <dd pn="section-4.1-6.2">ES256K </dd> <dt pn="section-4.1-6.3"> Value:</dt> <dd pn="section-4.1-6.4">-47 </dd> <dt pn="section-4.1-6.5"> Description:</dt> <dd pn="section-4.1-6.6">ECDSA using secp256k1 curve and SHA-256</t> <t> Reference: <xref target="secp256k1_ECDSA"/></dd> <dt pn="section-4.1-6.7">Change Controller: </dt> <dd pn="section-4.1-6.8">IESG </dd> <dt pn="section-4.1-6.9"> Reference:</dt> <dd pn="section-4.1-6.10"> <xref target="secp256k1_ECDSA" format="default" sectionFormat="of" derivedContent="Section 3.2"/> ofthis document </t> <t> Recommended: No </t> </list> </t> <?rfc subcompact="no"?>RFC 8812 </dd> <dt pn="section-4.1-6.11"> Recommended:</dt> <dd pn="section-4.1-6.12">No </dd> </dl> </section> <section anchor="cose-curve-registration"title="COSEnumbered="true" toc="include" removeInRFC="false" pn="section-4.2"> <name slugifiedName="name-cose-elliptic-curves-regist">COSE Elliptic CurvesRegistrations"> <t> This section registersRegistrations</name> <t pn="section-4.2-1"> IANA has registered the following value in theIANA"COSE Elliptic Curves" registry <xreftarget="IANA.COSE.Curves"/>. </t> <t> <?rfc subcompact="yes"?> <list style='symbols'> <t> Name: secp256k1 </t> <t> Value: TBD (requested assignment 8) </t> <t>target="IANA.COSE.Curves" format="default" sectionFormat="of" derivedContent="IANA.COSE.Curves"/>. </t> <dl spacing="compact" newline="false" pn="section-4.2-2"> <dt pn="section-4.2-2.1"> Name:</dt> <dd pn="section-4.2-2.2">secp256k1 </dd> <dt pn="section-4.2-2.3"> Value:</dt> <dd pn="section-4.2-2.4">8 </dd> <dt pn="section-4.2-2.5"> KeyType: EC2 </t> <t> Description: SECGType:</dt> <dd pn="section-4.2-2.6">EC2 </dd> <dt pn="section-4.2-2.7"> Description:</dt> <dd pn="section-4.2-2.8">SECG secp256k1 curve</t> <t></dd> <dt pn="section-4.2-2.9"> ChangeController: IESG </t> <t> Reference: <xref target="secp256k1_curve"/>Controller:</dt> <dd pn="section-4.2-2.10">IESG </dd> <dt pn="section-4.2-2.11"> Reference:</dt> <dd pn="section-4.2-2.12"> <xref target="secp256k1_curve" format="default" sectionFormat="of" derivedContent="Section 3.1"/> of[[ this specification ]] </t> <t> Recommended: No </t> </list> </t> <?rfc subcompact="no"?>RFC 8812 </dd> <dt pn="section-4.2-2.13"> Recommended:</dt> <dd pn="section-4.2-2.14">No </dd> </dl> </section> <section anchor="jose-algorithm-registration"title="JOSEnumbered="true" toc="include" removeInRFC="false" pn="section-4.3"> <name slugifiedName="name-jose-algorithms-registratio">JOSE AlgorithmsRegistrations"> <t> This section registersRegistrations</name> <t pn="section-4.3-1"> IANA has registered the following value in theIANA"JSON Web Signature and Encryption Algorithms" registry <xreftarget="IANA.JOSE.Algorithms"/>. </t> <t> <?rfc subcompact="yes"?> <list style='symbols'> <t>target="IANA.JOSE.Algorithms" format="default" sectionFormat="of" derivedContent="IANA.JOSE.Algorithms"/>. </t> <dl spacing="compact" newline="false" pn="section-4.3-2"> <dt pn="section-4.3-2.1"> AlgorithmName:Name:</dt> <dd pn="section-4.3-2.2"> ES256K</t> <t></dd> <dt pn="section-4.3-2.3"> AlgorithmDescription:Description:</dt> <dd pn="section-4.3-2.4"> ECDSA using secp256k1 curve and SHA-256</t> <t></dd> <dt pn="section-4.3-2.5"> Algorithm UsageLocations:Location(s):</dt> <dd pn="section-4.3-2.6"> alg</t> <t></dd> <dt pn="section-4.3-2.7"> JOSE ImplementationRequirements:Requirements:</dt> <dd pn="section-4.3-2.8"> Optional</t> <t></dd> <dt pn="section-4.3-2.9"> ChangeController:Controller:</dt> <dd pn="section-4.3-2.10"> IESG</t> <t> Reference: <xref target="secp256k1_ECDSA"/></dd> <dt pn="section-4.3-2.11"> Reference:</dt> <dd pn="section-4.3-2.12"> <xref target="secp256k1_ECDSA" format="default" sectionFormat="of" derivedContent="Section 3.2"/> of[[ this specification ]] </t> <t>RFC 8812 </dd> <dt pn="section-4.3-2.13"> Algorithm AnalysisDocument(s): <xref target="SEC2"/> </t> </list> </t> <?rfc subcompact="no"?>Document(s):</dt> <dd pn="section-4.3-2.14"> <xref target="SEC2" format="default" sectionFormat="of" derivedContent="SEC2"/> </dd> </dl> </section> <section anchor="jose-curve-registration"title="JSONnumbered="true" toc="include" removeInRFC="false" pn="section-4.4"> <name slugifiedName="name-json-web-key-elliptic-curve">JSON Web Key Elliptic CurvesRegistrations"> <t> This section registersRegistrations</name> <t pn="section-4.4-1"> IANA has registered the following value in theIANA"JSON Web Key Elliptic Curve" registry <xreftarget="IANA.JOSE.Curves"/>. </t> <t> <?rfc subcompact="yes"?> <list style='symbols'> <t>target="IANA.JOSE.Curves" format="default" sectionFormat="of" derivedContent="IANA.JOSE.Curves"/>. </t> <dl spacing="compact" newline="false" pn="section-4.4-2"> <dt pn="section-4.4-2.1"> CurveName:Name:</dt> <dd pn="section-4.4-2.2"> secp256k1</t> <t></dd> <dt pn="section-4.4-2.3"> CurveDescription:Description:</dt> <dd pn="section-4.4-2.4"> SECG secp256k1 curve</t> <t></dd> <dt pn="section-4.4-2.5"> JOSE ImplementationRequirements:Requirements:</dt> <dd pn="section-4.4-2.6"> Optional</t> <t></dd> <dt pn="section-4.4-2.7"> ChangeController:Controller:</dt> <dd pn="section-4.4-2.8"> IESG</t> <t></dd> <dt pn="section-4.4-2.9"> SpecificationDocument(s): <xref target="secp256k1_curve"/>Document(s):</dt> <dd pn="section-4.4-2.10"> <xref target="secp256k1_curve" format="default" sectionFormat="of" derivedContent="Section 3.1"/> of[[ this specification ]] </t> </list> </t> <?rfc subcompact="no"?>RFC 8812 </dd> </dl> </section> </section> <section anchor="Security"title="Security Considerations">numbered="true" toc="include" removeInRFC="false" pn="section-5"> <name slugifiedName="name-security-considerations">Security Considerations</name> <sectiontitle="RSAanchor="KeySize-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-5.1"> <name slugifiedName="name-rsa-key-size-security-consi">RSA Key Size SecurityConsiderations" anchor="KeySize-considerations"> <t>Considerations</name> <t pn="section-5.1-1"> The security considerations on key sizes for RSA algorithms fromSection 6.1 of<xreftarget="RFC8230"/>target="RFC8230" section="6.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8230#section-6.1" derivedContent="RFC8230"/> also apply to the RSA algorithms in this specification. </t> </section> <sectiontitle="RSASSA-PKCS1-v1_5anchor="RSASSA-PKCS1-v1_5_SHA-2_considerations" numbered="true" toc="include" removeInRFC="false" pn="section-5.2"> <name slugifiedName="name-rsassa-pkcs1-v1_5-with-sha-">RSASSA-PKCS1-v1_5 with SHA-2 SecurityConsiderations" anchor="RSASSA-PKCS1-v1_5_SHA-2_considerations"> <t>Considerations</name> <t pn="section-5.2-1"> The security considerations on the use of RSASSA-PKCS1-v1_5 with SHA-2 hash functions (SHA-256, SHA-384, and SHA-512) fromSection 8.3 of<xreftarget="RFC7518"/>target="RFC7518" section="8.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7518#section-8.3" derivedContent="RFC7518"/> also apply to their use in this specification. For that reason, these algorithms are registered as being "Not Recommended". Likewise, the exponent restrictions described inSection 8.3 of<xreftarget="RFC7518"/>target="RFC7518" section="8.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7518#section-8.3" derivedContent="RFC7518"/> also apply. </t> </section> <sectiontitle="RSASSA-PKCS1-v1_5anchor="RSASSA-PKCS1-v1_5_SHA-1_considerations" numbered="true" toc="include" removeInRFC="false" pn="section-5.3"> <name slugifiedName="name-rsassa-pkcs1-v1_5-with-sha-1">RSASSA-PKCS1-v1_5 with SHA-1 SecurityConsiderations" anchor="RSASSA-PKCS1-v1_5_SHA-1_considerations"> <t>Considerations</name> <t pn="section-5.3-1"> The security considerations on the use of the SHA-1 hash function from <xreftarget="RFC6194"/>target="RFC6194" format="default" sectionFormat="of" derivedContent="RFC6194"/> apply in this specification. For that reason, the "RS1" algorithm is registered as "Deprecated". Likewise, the exponent restrictions described inSection 8.3 of<xreftarget="RFC7518"/>target="RFC7518" section="8.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7518#section-8.3" derivedContent="RFC7518"/> also apply. </t><t><t pn="section-5.3-2"> A COSE algorithm identifier for this algorithm is nonetheless being registered because deployedTPMsTrusted Platform Modules (TPMs) continue to useit, and thereforeit; therefore, WebAuthn implementations need a COSE algorithm identifier for "RS1" when TPM attestations using this algorithm are being represented. New COSE applications and protocolsMUST NOT<bcp14>MUST NOT</bcp14> use this algorithm. </t> </section> <sectiontitle="secp256k1anchor="secp256k1_considerations" numbered="true" toc="include" removeInRFC="false" pn="section-5.4"> <name slugifiedName="name-secp256k1-security-consider">secp256k1 SecurityConsiderations" anchor="secp256k1_considerations"> <t>Considerations</name> <t pn="section-5.4-1"> Care should be taken that a secp256k1 key is not mistaken for a P-256 <xreftarget="RFC7518"/>target="RFC7518" format="default" sectionFormat="of" derivedContent="RFC7518"/> key, given that their representations are the same except for the<spanx style="verb">crv</spanx><tt>crv</tt> value. As described inSection 8.1.1 of<xreftarget="RFC8152"/>,target="RFC8152" section="8.1.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8152#section-8.1.1" derivedContent="RFC8152"/>, we currently do not have any way to deal with this attack except to restrict the set of curves that can be used. </t><t><t pn="section-5.4-2"> The procedures and security considerations described in the <xreftarget="SEC1"/>, <xref target="SEC2"/>,target="SEC1" format="default" sectionFormat="of" derivedContent="SEC1"/>, <xref target="SEC2" format="default" sectionFormat="of" derivedContent="SEC2"/>, and <xreftarget="DSS"/>target="DSS" format="default" sectionFormat="of" derivedContent="DSS"/> specifications apply to implementations of this specification. </t><t><t pn="section-5.4-3"> Timing side-channel attacks are possible if the implementation of scalar multiplication over the curve does not execute in constant time. </t><t><t pn="section-5.4-4"> There are theoretical weaknesses with this curve that could result in future attacks. While these potential weaknesses are not unique to this curve, they are the reason that this curve is registered as "Recommended: No". </t> </section> </section> </middle> <back> <referencestitle="Normative References"> <?rfc include="reference.RFC.2119.xml"?> <?rfc include="reference.RFC.6194.xml"?> <?rfc include="reference.RFC.7515.xml"?> <?rfc include="reference.RFC.7517.xml"?> <?rfc include="reference.RFC.7518.xml"?> <?rfc include="reference.RFC.8017.xml"?> <?rfc include="reference.RFC.8152.xml"?> <?rfc include="reference.RFC.8174.xml"?> <?rfc include="reference.RFC.8230.xml"?>pn="section-6"> <name slugifiedName="name-references">References</name> <references pn="section-6.1"> <name slugifiedName="name-normative-references">Normative References</name> <reference anchor="DSS"target="http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf">quoteTitle="true" target="https://doi.org/10.6028/NIST.FIPS.186-4" derivedAnchor="DSS"> <front> <title>Digital Signature Standard (DSS)</title> <author><organization>National<organization showOnFrontPage="true">National Institute of Standards and Technology (NIST)</organization> </author> <date month="July"year="2013" />year="2013"/> </front> <seriesInfoname="FIPS" value="PUB 186-4" /> </reference> <reference anchor="SEC1" target="http://www.secg.org/sec1-v2.pdf"> <front> <title>SEC 1: Elliptic Curve Cryptography</title> <author> <organization>Standards for Efficient Cryptography Group</organization> </author> <date day="21" month="May" year="2009" /> </front>name="FIPS PUB" value="186-4"/> <seriesInfoname="Version" value="2.0" />name="DOI" value="10.6028/NIST.FIPS.186-4"/> </reference> <referenceanchor="SEC2" target="http://www.secg.org/sec2-v2.pdf">anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119"> <front><title>SEC 2: Recommended Elliptic Curve Domain Parameters</title> <author> <organization>Standards<title>Key words forEfficient Cryptography Group</organization>use in RFCs to Indicate Requirement Levels</title> <author initials="S." surname="Bradner" fullname="S. Bradner"> <organization showOnFrontPage="true"/> </author> <dateday="27" month="January" year="2010" />year="1997" month="March"/> <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> <seriesInfoname="Version" value="2.0" />name="BCP" value="14"/> <seriesInfo name="RFC" value="2119"/> <seriesInfo name="DOI" value="10.17487/RFC2119"/> </reference></references> <references title="Informative References"> <?rfc include="reference.RFC.6979.xml"?><referenceanchor="WebAuthn" target="https://www.w3.org/TR/2019/REC-webauthn-1-20190304/">anchor="RFC6194" target="https://www.rfc-editor.org/info/rfc6194" quoteTitle="true" derivedAnchor="RFC6194"> <front><title>Web Authentication: An API<title>Security Considerations foraccessing Public Key Credentials - Level 1</title>the SHA-0 and SHA-1 Message-Digest Algorithms</title> <authorinitials="D." surname="Balfanz" fullname="Dirk Balfanz"> <organization>Google</organization> <address> <email>balfanz@google.com</email> </address>initials="T." surname="Polk" fullname="T. Polk"> <organization showOnFrontPage="true"/> </author> <authorinitials="A." surname="Czeskis" fullname="Alexei Czeskis"> <organization>Google</organization> <address> <email>aczeskis@google.com</email> </address>initials="L." surname="Chen" fullname="L. Chen"> <organization showOnFrontPage="true"/> </author> <authorinitials="J." surname="Hodges" fullname="Jeff Hodges"> <organization>Google</organization> <address> <email>Jeff.Hodges@paypal.com</email> </address>initials="S." surname="Turner" fullname="S. Turner"> <organization showOnFrontPage="true"/> </author> <authorinitials="J.C." surname="Jones" fullname="J.C. Jones"> <organization>Mozilla</organization> <address> <email>jc@mozilla.com</email> </address>initials="P." surname="Hoffman" fullname="P. Hoffman"> <organization showOnFrontPage="true"/> </author> <date year="2011" month="March"/> <abstract> <t>This document includes security considerations for the SHA-0 and SHA-1 message digest algorithm. This document is not an Internet Standards Track specification; it is published for informational purposes.</t> </abstract> </front> <seriesInfo name="RFC" value="6194"/> <seriesInfo name="DOI" value="10.17487/RFC6194"/> </reference> <reference anchor="RFC7515" target="https://www.rfc-editor.org/info/rfc7515" quoteTitle="true" derivedAnchor="RFC7515"> <front> <title>JSON Web Signature (JWS)</title> <authorinitials="M.B."initials="M." surname="Jones"fullname="Michael B.fullname="M. Jones"><organization>Microsoft</organization> <address> <email>mbj@microsoft.com</email> <uri>http://self-issued.info/</uri> </address><organization showOnFrontPage="true"/> </author> <authorinitials="A." surname="Kumar" fullname="Akshay Kumar"> <organization>Microsoft</organization> <address> <email>akshayku@microsoft.com</email> </address>initials="J." surname="Bradley" fullname="J. Bradley"> <organization showOnFrontPage="true"/> </author> <author initials="N." surname="Sakimura" fullname="N. Sakimura"> <organization showOnFrontPage="true"/> </author> <date year="2015" month="May"/> <abstract> <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t> </abstract> </front> <seriesInfo name="RFC" value="7515"/> <seriesInfo name="DOI" value="10.17487/RFC7515"/> </reference> <reference anchor="RFC7517" target="https://www.rfc-editor.org/info/rfc7517" quoteTitle="true" derivedAnchor="RFC7517"> <front> <title>JSON Web Key (JWK)</title> <author initials="M." surname="Jones" fullname="M. Jones"> <organization showOnFrontPage="true"/> </author> <date year="2015" month="May"/> <abstract> <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t> </abstract> </front> <seriesInfo name="RFC" value="7517"/> <seriesInfo name="DOI" value="10.17487/RFC7517"/> </reference> <reference anchor="RFC7518" target="https://www.rfc-editor.org/info/rfc7518" quoteTitle="true" derivedAnchor="RFC7518"> <front> <title>JSON Web Algorithms (JWA)</title> <author initials="M." surname="Jones" fullname="M. Jones"> <organization showOnFrontPage="true"/> </author> <date year="2015" month="May"/> <abstract> <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t> </abstract> </front> <seriesInfo name="RFC" value="7518"/> <seriesInfo name="DOI" value="10.17487/RFC7518"/> </reference> <reference anchor="RFC8017" target="https://www.rfc-editor.org/info/rfc8017" quoteTitle="true" derivedAnchor="RFC8017"> <front> <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title> <author initials="K." surname="Moriarty" fullname="K. Moriarty" role="editor"> <organization showOnFrontPage="true"/> </author> <author initials="B." surname="Kaliski" fullname="B. Kaliski"> <organization showOnFrontPage="true"/> </author> <author initials="J." surname="Jonsson" fullname="J. Jonsson"> <organization showOnFrontPage="true"/> </author> <author initials="A."surname="Liao" fullname="Angelo Liao"> <organization>Microsoft</organization> <address> <email>huliao@microsoft.com</email> </address>surname="Rusch" fullname="A. Rusch"> <organization showOnFrontPage="true"/> </author> <date year="2016" month="November"/> <abstract> <t>This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t> <t>This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t> <t>This document also obsoletes RFC 3447.</t> </abstract> </front> <seriesInfo name="RFC" value="8017"/> <seriesInfo name="DOI" value="10.17487/RFC8017"/> </reference> <reference anchor="RFC8152" target="https://www.rfc-editor.org/info/rfc8152" quoteTitle="true" derivedAnchor="RFC8152"> <front> <title>CBOR Object Signing and Encryption (COSE)</title> <authorinitials="R." surname="Lindemann" fullname="Rolf Lindemann"> <organization>Nok Nok Labs</organization> <address> <email>rolf@noknok.com</email> </address>initials="J." surname="Schaad" fullname="J. Schaad"> <organization showOnFrontPage="true"/> </author> <date year="2017" month="July"/> <abstract> <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t> </abstract> </front> <seriesInfo name="RFC" value="8152"/> <seriesInfo name="DOI" value="10.17487/RFC8152"/> </reference> <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174"> <front> <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> <author initials="B." surname="Leiba" fullname="B. Leiba"> <organization showOnFrontPage="true"/> </author> <date year="2017" month="May"/> <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="RFC8230" target="https://www.rfc-editor.org/info/rfc8230" quoteTitle="true" derivedAnchor="RFC8230"> <front> <title>Using RSA Algorithms with CBOR Object Signing and Encryption (COSE) Messages</title> <author initials="M." surname="Jones" fullname="M. Jones"> <organization showOnFrontPage="true"/> </author> <date year="2017" month="September"/> <abstract> <t>The CBOR Object Signing and Encryption (COSE) specification defines cryptographic message encodings using Concise Binary Object Representation (CBOR). This specification defines algorithm encodings and representations enabling RSA algorithms to be used for COSE messages. Encodings are specified for the use of RSA Probabilistic Signature Scheme (RSASSA-PSS) signatures, RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) encryption, and RSA keys.</t> </abstract> </front> <seriesInfo name="RFC" value="8230"/> <seriesInfo name="DOI" value="10.17487/RFC8230"/> </reference> <reference anchor="SEC1" target="https://www.secg.org/sec1-v2.pdf" quoteTitle="true" derivedAnchor="SEC1"> <front> <title>SEC 1: Elliptic Curve Cryptography</title> <author> <organization showOnFrontPage="true">Standards for Efficient Cryptography Group</organization> </author><author initials="E." surname="Lundberg" fullname="Emil Lundberg"> <organization>Yubico</organization> <address> <email>emil@yubico.com</email> </address><date month="May" year="2009"/> </front> <seriesInfo name="Version" value="2.0"/> </reference> <reference anchor="SEC2" target="https://www.secg.org/sec2-v2.pdf" quoteTitle="true" derivedAnchor="SEC2"> <front> <title>SEC 2: Recommended Elliptic Curve Domain Parameters</title> <author> <organization showOnFrontPage="true">Standards for Efficient Cryptography Group</organization> </author> <datemonth="March" day="4" year="2019" />month="January" year="2010"/> </front> <seriesInfoname="World Wide Web Consortium (W3C)" value="Recommendation" />name="Version" value="2.0"/> </reference> </references> <references pn="section-6.2"> <name slugifiedName="name-informative-references">Informative References</name> <reference anchor="CTAP"target="https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html">target="https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html" quoteTitle="true" derivedAnchor="CTAP"> <front> <title>Client to Authenticator Protocol (CTAP)</title> <author initials="C." surname="Brand" fullname="Christiaan Brand"><organization>Google</organization><organization showOnFrontPage="true">Google</organization> <address> <email>cbrand@google.com</email> </address> </author> <author initials="A." surname="Czeskis" fullname="Alexei Czeskis"><organization>Google</organization><organization showOnFrontPage="true">Google</organization> <address> <email>aczeskis@google.com</email> </address> </author> <author initials="J." surname="Ehrensvärd" fullname="Jakob Ehrensvärd"><organization>Yubico</organization><organization showOnFrontPage="true">Yubico</organization> <address> <email>jakob@yubico.com</email> </address> </author> <authorinitials="M.B."initials="M." surname="Jones" fullname="Michael B. Jones"><organization>Microsoft</organization><organization showOnFrontPage="true">Microsoft</organization> <address> <email>mbj@microsoft.com</email> <uri>http://self-issued.info/</uri> </address> </author> <author initials="A." surname="Kumar" fullname="Akshay Kumar"><organization>Microsoft</organization><organization showOnFrontPage="true">Microsoft</organization> <address> <email>akshayku@microsoft.com</email> </address> </author> <author initials="R." surname="Lindemann" fullname="Rolf Lindemann"><organization>Nok<organization showOnFrontPage="true">Nok Nok Labs</organization> <address> <email>rolf@noknok.com</email> </address> </author> <author initials="A." surname="Powers" fullname="Adam Powers"><organization>FIDO<organization showOnFrontPage="true">FIDO Alliance</organization> <address> <email>adam@fidoalliance.org</email> </address> </author> <author initials="J." surname="Verrept" fullname="Johan Verrept"><organization>OneSpan</organization><organization showOnFrontPage="true">OneSpan</organization> <address> <email>johan.verrept@onespan.com</email> </address> </author> <date month="January"day="30" year="2019" />year="2019"/> </front> <refcontent>FIDO Alliance Proposed Standard</refcontent> </reference> <reference anchor="EURO-SP18" target="https://ieeexplore.ieee.org/document/8406609" quoteTitle="true" derivedAnchor="EURO-SP18"> <front> <title>Attacking Deterministic Signature Schemes using Fault Attacks</title> <seriesInfoname="FIDO Alliance" value="Proposed Standard" />name="DOI" value="10.1109/EuroSP.2018.00031"/> <author fullname="Damian Poddebniak" surname="Poddebniak" initials="D."> <organization showOnFrontPage="true">Münster University of Applied Sciences</organization> </author> <author fullname="Juraj Somorovsky" surname="Somorovsky" initials="J."> <organization showOnFrontPage="true">Ruhr University Bochum</organization> </author> <author fullname="Sebastian Schinzel" surname="Schinzel" initials="S."> <organization showOnFrontPage="true">Münster University of Applied Sciences</organization> </author> <author fullname="Manfred Lochter" surname="Lochter" initials="M."> <organization showOnFrontPage="true">Federal Office for Information Security</organization> </author> <author fullname="Paul Rösler" surname="Rösler" initials="P."> <organization showOnFrontPage="true">Ruhr University Bochum</organization> </author> <date month="April" year="2018"/> </front> <refcontent>2018 IEEE European Symposium on Security and Privacy (EuroS&P) </refcontent> </reference> <reference anchor="IANA.COSE.Algorithms"target="https://www.iana.org/assignments/cose/cose.xhtml#algorithms">target="https://www.iana.org/assignments/cose" quoteTitle="true" derivedAnchor="IANA.COSE.Algorithms"> <front> <title>COSE Algorithms</title> <author><organization>IANA</organization><organization showOnFrontPage="true">IANA</organization> </author><date/></front> </reference> <reference anchor="IANA.COSE.Curves"target="https://www.iana.org/assignments/cose/cose.xhtml#elliptic-curves">target="https://www.iana.org/assignments/cose" quoteTitle="true" derivedAnchor="IANA.COSE.Curves"> <front> <title>COSE Elliptic Curves</title> <author><organization>IANA</organization><organization showOnFrontPage="true">IANA</organization> </author><date/></front> </reference> <reference anchor="IANA.JOSE.Algorithms"target="https://www.iana.org/assignments/jose/jose.xhtml#web-signature-encryption-algorithms">target="https://www.iana.org/assignments/jose" quoteTitle="true" derivedAnchor="IANA.JOSE.Algorithms"> <front> <title>JSON Web Signature and Encryption Algorithms</title> <author><organization>IANA</organization><organization showOnFrontPage="true">IANA</organization> </author><date/></front> </reference> <reference anchor="IANA.JOSE.Curves"target="https://www.iana.org/assignments/jose/jose.xhtml#web-key-elliptic-curve">target="https://www.iana.org/assignments/jose" quoteTitle="true" derivedAnchor="IANA.JOSE.Curves"> <front> <title>JSON Web Key Elliptic Curve</title> <author><organization>IANA</organization><organization showOnFrontPage="true">IANA</organization> </author> </front> </reference> <reference anchor="KUDELSKI17" target="https://research.kudelskisecurity.com/2017/10/04/defeating-eddsa-with-faults/" quoteTitle="true" derivedAnchor="KUDELSKI17"> <front> <title>How to Defeat Ed25519 and EdDSA Using Faults</title> <author fullname="Yolan Romailler" surname="Romailler" initials="Y."> </author> <date month="October" year="2017"/> </front> <refcontent>Kudelski Security Research</refcontent> </reference> <reference anchor="RFC6979" target="https://www.rfc-editor.org/info/rfc6979" quoteTitle="true" derivedAnchor="RFC6979"> <front> <title>Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)</title> <author initials="T." surname="Pornin" fullname="T. Pornin"> <organization showOnFrontPage="true"/> </author> <date year="2013" month="August"/> <abstract> <t>This document defines a deterministic digital signature generation procedure. Such signatures are compatible with standard Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) digital signatures and can be processed with unmodified verifiers, which need not be aware of the procedure described therein. Deterministic signatures retain the cryptographic security features associated with digital signatures but can be more easily implemented in various environments, since they do not need access to a source of high-quality randomness.</t> </abstract> </front> <seriesInfo name="RFC" value="6979"/> <seriesInfo name="DOI" value="10.17487/RFC6979"/> </reference> <reference anchor="WebAuthn" target="https://www.w3.org/TR/2019/REC-webauthn-1-20190304/" quoteTitle="true" derivedAnchor="WebAuthn"> <front> <title>Web Authentication: An API for accessing Public Key Credentials - Level 1</title> <author initials="D." surname="Balfanz" fullname="Dirk Balfanz"> <organization showOnFrontPage="true">Google</organization> <address> <email>balfanz@google.com</email> </address> </author> <author initials="A." surname="Czeskis" fullname="Alexei Czeskis"> <organization showOnFrontPage="true">Google</organization> <address> <email>aczeskis@google.com</email> </address> </author><date/> </front> </reference> <reference anchor="Kudelski17" target="https://research.kudelskisecurity.com/2017/10/04/defeating-eddsa-with-faults/"> <front> <title>How to defeat Ed25519 and EdDSA using faults</title><authorfullname="Yolan Romailler" surname="Romailler" initials="Y."> <organization>Kudelski Security</organization>initials="J." surname="Hodges" fullname="Jeff Hodges"> <organization showOnFrontPage="true">Google</organization> <address> <email>Jeff.Hodges@paypal.com</email> </address> </author><date day="4" month="October" year="2017"/> </front> </reference> <reference anchor="EuroSP18" target="https://eprint.iacr.org/2017/1014.pdf"> <front> <title>Attacking Deterministic Signature Schemes using Fault Attacks</title><authorfullname="Damian Poddebniak" surname="Poddebniak" initials="D."> <organization>Münster University of Applied Sciences</organization>initials="J.C." surname="Jones" fullname="J.C. Jones"> <organization showOnFrontPage="true">Mozilla</organization> <address> <email>jc@mozilla.com</email> </address> </author> <authorfullname="Juraj Somorovsky" surname="Somorovsky" initials="J."> <organization>Ruhr University Bochum</organization>initials="M." surname="Jones" fullname="Michael B. Jones"> <organization showOnFrontPage="true">Microsoft</organization> <address> <email>mbj@microsoft.com</email> <uri>http://self-issued.info/</uri> </address> </author> <authorfullname="Sebastian Schinzel" surname="Schinzel" initials="S."> <organization>Münster University of Applied Sciences</organization>initials="A." surname="Kumar" fullname="Akshay Kumar"> <organization showOnFrontPage="true">Microsoft</organization> <address> <email>akshayku@microsoft.com</email> </address> </author> <authorfullname="Manfred Lochter" surname="Lochter" initials="M."> <organization>Federal Office for Information Security</organization>initials="A." surname="Liao" fullname="Angelo Liao"> <organization showOnFrontPage="true">Microsoft</organization> <address> <email>huliao@microsoft.com</email> </address> </author> <authorfullname="Paul Rösler" surname="Rösler" initials="P."> <organization>Ruhr University Bochum</organization>initials="R." surname="Lindemann" fullname="Rolf Lindemann"> <organization showOnFrontPage="true">Nok Nok Labs</organization> <address> <email>rolf@noknok.com</email> </address> </author> <author initials="E." surname="Lundberg" fullname="Emil Lundberg"> <organization showOnFrontPage="true">Yubico</organization> <address> <email>emil@yubico.com</email> </address> </author> <dateday="1" month="April" year="2018"/>month="March" year="2019"/> </front><seriesInfo name="IEEE European Symposium on Security and Privacy (EuroS&P)" value="2018"/><refcontent>W3C Recommendation</refcontent> </reference> </references> </references> <sectiontitle="Acknowledgements"anchor="Acknowledgements"numbered="no"> <t>numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a"> <name slugifiedName="name-acknowledgements">Acknowledgements</name> <t pn="section-appendix.a-1"> Thanks toRoman Danyliw, Linda Dunbar, Stephen Farrell, John Fontana, Jeff Hodges, Kevin Jacobs, J.C. Jones, Benjamin Kaduk, Murray Kucherawy, Neil Madden, John Mattsson, Matthew Miller, Tony Nadalin, Matt Palmer, Eric Rescorla, Rich Salz, Jim Schaad, Göran Selander, Wendy Seltzer, Sean Turner, and Samuel Weiler<contact fullname="Roman Danyliw"/>, <contact fullname="Linda Dunbar"/>, <contact fullname="Stephen Farrell"/>, <contact fullname="John Fontana"/>, <contact fullname="Jeff Hodges"/>, <contact fullname="Kevin Jacobs"/>, <contact fullname="J.C. Jones"/>, <contact fullname="Benjamin Kaduk"/>, <contact fullname="Murray Kucherawy"/>, <contact fullname="Neil Madden"/>, <contact fullname="John Mattsson"/>, <contact fullname="Matthew Miller"/>, <contact fullname="Tony Nadalin"/>, <contact fullname="Matt Palmer"/>, <contact fullname="Eric Rescorla"/>, <contact fullname="Rich Salz"/>, <contact fullname="Jim Schaad"/>, <contact fullname="Goeran Selander"/>, <contact fullname="Wendy Seltzer"/>, <contact fullname="Sean Turner"/>, and <contact fullname="Samuel Weiler"/> for their roles in registering these algorithm identifiers. </t> </section> <sectiontitle="Document History" anchor="History"> <t> [[ to be removed by the RFC Editor before publication as an RFC ]] </t> <t> -08 <list style='symbols'> <t> Addressed IESG review comments by Benjamin Kaduk and Roman Danyliw, primarily completing the edits to register secp256k1 and ES256K as "Recommended: No" for COSE. Some additional security considerations were also added. </t> </list> </t> <t> -07 <list style='symbols'> <t> Addressed editorial SecDir review comment by Linda Dunbar about SHA-2 algorithms. </t> <t> Addressed IETF last call comments by Jim Schaad, Rich Salz, and Eric Rescorla, now registering secp256k1 and ES256K as "Recommended: No" for COSE. </t> </list> </t> <t> -06 <list style='symbols'> <t> Addressed Area Director review comment by Murray Kucherawy (which requested an editorial correction). </t> <t> Changed requested assignment for ES256K from -46 to -47, due to an assignment conflict. </t> </list> </t> <t> -05 <list style='symbols'> <t> Removed unused reference to RFC 7049. </t> </list> </t> <t> -04 <list style='symbols'> <t> Added explanatory comments on design decisions made that were discussed on the mailing list that Jim Schaad requested be added to the draft. </t> </list> </t> <t> -03 <list style='symbols'> <t> Addressed review of -02 by Jim Schaad. </t> </list> </t> <t> -02 <list style='symbols'> <t> Addressed working group last call comments. Thanks to J.C. Jones, Kevin Jacobs, Jim Schaad, Neil Madden, and Benjamin Kaduk for their useful feedback. </t> </list> </t> <t> -01 <list style='symbols'> <t> Changed the JOSE curve identifier from <spanx style="verb">P-256K</spanx> to <spanx style="verb">secp256k1</spanx>. </t> <t> Specified that secp256k1 signing is done using the SHA-256 hash function. </t> </list> </t> <t> -00 <list style='symbols'> <t> Created the initial working group draft from draft-jones-cose-additional-algorithms-00, changing only the title, date, and history entry. </t> </list> </t>anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b"> <name slugifiedName="name-authors-address">Author's Address</name> <author fullname="Michael B. Jones" surname="Jones" initials="M"> <organization showOnFrontPage="true">Microsoft</organization> <address> <email>mbj@microsoft.com</email> <uri>https://self-issued.info/</uri> </address> </author> </section> </back> </rfc>