<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF"
     category="std" consensus="true" ipr="trust200902"
     docName="draft-ietf-cose-webauthn-algorithms-08" number="8812"
     obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="4"
     symRefs="true" sortRefs="true" version="3">

  <front>
    <title abbrev="COSE &amp; JOSE Registrations for WebAuthn Algs">CBOR
    Object Signing and Encryption (COSE) and JSON Object Signing and
    Encryption (JOSE) Registrations for Web Authentication (WebAuthn) Algorithms</title>

    <seriesInfo name="RFC" value="8812"/>
    <author fullname="Michael B. Jones" surname="Jones" initials="M">

      <organization>Microsoft</organization>
      <address>
        <email>mbj@microsoft.com</email>
        <uri>https://self-issued.info/</uri>
      </address>
    </author>
    <date month="August" year="2020"/>
    <area>Security</area>
    <workgroup>COSE Working Group</workgroup>
    <keyword>Cryptography</keyword>
    <keyword>Digital Signature</keyword>
    <keyword>Encryption</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>
	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 algorithms (which are used by
	WebAuthn and CTAP implementations) in the IANA "COSE Algorithms"
	registry: RSASSA-PKCS1-v1_5 using SHA-256, SHA-384, SHA-512, and
	SHA-1; and Elliptic 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>
  </front>
  <middle>
    <section anchor="Introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
	This specification defines how to use several algorithms with
	CBOR Object Signing and Encryption (COSE) <xref target="RFC8152" format="default"/>
	that are used by implementations of the
	W3C Web Authentication (WebAuthn) <xref target="WebAuthn" format="default"/>
	and FIDO Alliance FIDO2 Client to Authenticator Protocol (CTAP) <xref target="CTAP" format="default"/> specifications.
	This specification registers these algorithms in
	the IANA "COSE Algorithms" registry <xref target="IANA.COSE.Algorithms" format="default"/>
	and registers an elliptic curve in the
	IANA "COSE Elliptic Curves" registry <xref target="IANA.COSE.Curves" format="default"/>.
	This specification also registers a corresponding algorithm
	for use with JSON Object Signing and Encryption (JOSE) <xref target="RFC7515" format="default"/> in
	the IANA "JSON Web Signature and Encryption Algorithms" registry <xref target="IANA.JOSE.Algorithms" format="default"/>
	and registers an elliptic curve in the
	IANA "JSON Web Key Elliptic Curve" registry <xref target="IANA.JOSE.Curves" format="default"/>.
      </t>
      <section anchor="rnc" numbered="true" toc="default">
        <name>Requirements Notation and Conventions</name>

        <t>
    The key words "<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 "<bcp14>OPTIONAL</bcp14>" in this document are to be
    interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/> <xref
    target="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
        </t>

      </section>
    </section>
    <section anchor="RSASSA-PKCS1-v1_5" numbered="true" toc="default">
      <name>RSASSA-PKCS1-v1_5 Signature Algorithm</name>
      <t>
	The RSASSA-PKCS1-v1_5 signature algorithm is defined in <xref target="RFC8017" format="default"/>.
	The RSASSA-PKCS1-v1_5 signature algorithm is parameterized with a hash function (h).
      </t>
      <t>
	A key of size 2048 bits or larger <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>
	The RSASSA-PKCS1-v1_5 algorithms specified in this document are in the following table.
      </t>



      <table anchor="rsa-algs" align="center">
        <name>RSASSA-PKCS1-v1_5 Algorithm Values</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Value</th>
            <th align="left">Hash</th>
            <th align="left">Description</th>
            <th align="left">Recommended</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">RS256</td>
            <td align="left">-257</td>
            <td align="left">SHA-256</td>
            <td align="left">RSASSA-PKCS1-v1_5 using SHA-256</td>
            <td align="left">No</td>
          </tr>
          <tr>
            <td align="left">RS384</td>
            <td align="left">-258</td>
            <td align="left">SHA-384</td>
            <td align="left">RSASSA-PKCS1-v1_5 using SHA-384</td>
            <td align="left">No</td>
          </tr>
          <tr>
            <td align="left">RS512</td>
            <td align="left">-259</td>
            <td align="left">SHA-512</td>
            <td align="left">RSASSA-PKCS1-v1_5 using SHA-512</td>
            <td align="left">No</td>
          </tr>
          <tr>
            <td align="left">RS1</td>
            <td align="left">-65535</td>
            <td align="left">SHA-1</td>
            <td align="left">RSASSA-PKCS1-v1_5 using SHA-1</td>
            <td align="left">Deprecated</td>
          </tr>
        </tbody>
      </table>
      <t>
	Security considerations for use of the first three algorithms
	are in <xref target="RSASSA-PKCS1-v1_5_SHA-2_considerations" format="default"/>.
	Security considerations for use of the last algorithm
	are in <xref target="RSASSA-PKCS1-v1_5_SHA-1_considerations" format="default"/>.
      </t>
      <t>
	Note that these algorithms are already present in the
	IANA "JSON Web Signature and Encryption Algorithms" registry <xref target="IANA.JOSE.Algorithms" format="default"/>,
	and so these registrations are only for the
	IANA "COSE Algorithms" registry <xref target="IANA.COSE.Algorithms" format="default"/>.
      </t>
    </section>
    <section anchor="secp256k1" numbered="true" toc="default">
      <name>Using secp256k1 with JOSE and COSE</name>
      <t>
	This section defines algorithm encodings and representations enabling the
	Standards for Efficient Cryptography Group (SECG) elliptic curve
	secp256k1 <xref target="SEC2" format="default"/> to be used for
	JOSE <xref target="RFC7515" format="default"/> and
	COSE <xref target="RFC8152" format="default"/> messages.
      </t>
      <section anchor="secp256k1_curve" numbered="true" toc="default">
        <name>JOSE and COSE secp256k1 Curve Key Representations</name>
        <t>
	  The SECG elliptic curve
	  secp256k1 <xref target="SEC2" format="default"/> is represented in
	  a JSON Web Key (JWK) <xref target="RFC7517" format="default"/> using these values:
        </t>


        <ul spacing="compact">
          <li>
            <tt>kty</tt>: <tt>EC</tt></li>
          <li>
            <tt>crv</tt>: <tt>secp256k1</tt></li>
        </ul>

        <t>
	  plus the values needed to represent the curve point, as defined in
	  <xref target="RFC7518" section="6.2.1" sectionFormat="of"/>.  As a
	  compressed point encoding representation is not defined for JWK
	  elliptic curve points, the uncompressed point encoding defined there
	  <bcp14>MUST</bcp14> be used.  The <tt>x</tt> and <tt>y</tt> values
	  represented <bcp14>MUST</bcp14> both be exactly 256 bits, with any
	  leading zeros preserved.  Other optional values such as <tt>alg</tt>
	  <bcp14>MAY</bcp14> also be present.
        </t>
        <t>
	  It is represented in a COSE_Key <xref target="RFC8152"
	  format="default"/> using these values:
        </t>
        <ul spacing="compact">
          <li>
            <tt>kty</tt> (1): <tt>EC2</tt> (2)</li>
          <li>
            <tt>crv</tt> (-1): <tt>secp256k1</tt> (8)</li>
        </ul>
        <t>
	  plus the values needed to represent the curve point, as defined in
	  <xref target="RFC8152" section="13.1.1" sectionFormat="of"/>.
	  Either the uncompressed or compressed point encoding representations
	  defined there can be used.  The <tt>x</tt> value represented
	  <bcp14>MUST</bcp14> be exactly 256 bits, with any leading zeros
	  preserved.  If the uncompressed representation is used, the
	  <tt>y</tt> value represented <bcp14>MUST</bcp14> likewise be exactly
	  256 bits, with any leading zeros preserved; if the compressed
	  representation is used, the <tt>y</tt> value is a boolean value, as
	  specified in <xref target="RFC8152" section="13.1.1"
	  sectionFormat="of"/>.  Other optional values such as <tt>alg</tt>
	  (3) <bcp14>MAY</bcp14> also be present.
        </t>
      </section>
      <section anchor="secp256k1_ECDSA" numbered="true" toc="default">
        <name>ECDSA Signature with secp256k1 Curve</name>

        <t>
	  The ECDSA signature algorithm is defined in <xref target="DSS"
	  format="default"/>.  This specification defines the <tt>ES256K</tt>
	  algorithm identifier, which is used to specify the use of ECDSA with
	  the secp256k1 curve and the SHA-256 <xref target="DSS"
	  format="default"/> cryptographic hash function.  Implementations
	  need to check that the key type is <tt>EC</tt> for JOSE or
	  <tt>EC2</tt> (2) for COSE and that the curve of the key is secp256k1
	  when creating or verifying a signature.
        </t>
        <t>
	  The ECDSA secp256k1 SHA-256 digital signature is generated as follows:

        </t>
        <ol spacing="normal" type="1">
          <li>
	      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.
	    </li>
          <li>
	      Turn R and S into octet sequences in big-endian order,
	      with each array being 32 octets long.
	      The octet sequence representations <bcp14>MUST NOT</bcp14> be shortened
	      to omit any leading zero octets contained in the values.
	    </li>
          <li>
	      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.)
	    </li>
          <li>
	      The resulting 64-octet sequence is the JWS Signature or COSE signature value.
	    </li>
        </ol>

        <t>
	  Implementations <bcp14>SHOULD</bcp14> use a deterministic algorithm
	  to generate the ECDSA nonce, k, such as the algorithm defined in
	  <xref target="RFC6979" format="default"/>.  However, in situations
	  where devices are vulnerable to physical attacks, deterministic
	  ECDSA has been shown to be susceptible to fault injection attacks
	  <xref target="KUDELSKI17" format="default"/> <xref
	  target="EURO-SP18" format="default"/>.  Where this is a possibility,
	  implementations <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>
	  The ECDSA secp256k1 SHA-256 algorithm specified in this document uses these identifiers:
        </t>



        <table anchor="ec-algs" align="center">
          <name>ECDSA Algorithm Values</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Recommended</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ES256K</td>
              <td align="left">-47</td>
              <td align="left">ECDSA using secp256k1 curve and SHA-256</td>
              <td align="left">No</td>
            </tr>
          </tbody>
        </table>
        <t>
	  When using a JWK or COSE_Key for this algorithm, the following checks are made:
        </t>
        <ul spacing="normal">
          <li>
	      The <tt>kty</tt> field <bcp14>MUST</bcp14> be present, and
	      it <bcp14>MUST</bcp14> be <tt>EC</tt> for JOSE
	      or <tt>EC2</tt> for COSE.
	    </li>
          <li>
	      The <tt>crv</tt> field <bcp14>MUST</bcp14> be present, and
	      it <bcp14>MUST</bcp14> represent the <tt>secp256k1</tt> elliptic curve.
	    </li>
          <li>
	      If the <tt>alg</tt> field is present,
	      it <bcp14>MUST</bcp14> represent the <tt>ES256K</tt> algorithm.
	    </li>
          <li>
	      If the <tt>key_ops</tt> field is present,
	      it <bcp14>MUST</bcp14> include <tt>sign</tt> when creating an ECDSA signature.
	    </li>
          <li>
	      If the <tt>key_ops</tt> field is present,
	      it <bcp14>MUST</bcp14> include <tt>verify</tt> when verifying an ECDSA signature.
	    </li>

          <li>
	      If the JWK <tt>use</tt> field is present,
	      its value <bcp14>MUST</bcp14> be <tt>sig</tt>.
	    </li>
        </ul>
      </section>
      <section anchor="other-uses-of-secp256k1" numbered="true" toc="default">
        <name>Other Uses of the secp256k1 Elliptic Curve</name>

        <t>
	  This specification defines how to use the secp256k1 curve for ECDSA
	  signatures for both JOSE and COSE implementations.  While in 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>
	  When used for ECDSA, the secp256k1 curve <bcp14>MUST</bcp14> be used
	  only with the <tt>ES256K</tt> algorithm identifier and not any
	  others, including not with the COSE <tt>ES256</tt> identifier.  Note
	  that the <tt>ES256K</tt> algorithm identifier needed to be
	  introduced for JOSE to sign with the secp256k1 curve because the
	  JOSE <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 curve
	  <bcp14>MUST</bcp14> be used with the <tt>ES256K</tt> algorithm
	  identifier.
        </t>

      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="default">

      <name>IANA Considerations</name>
      <section anchor="cose-algorithms-registrations" numbered="true" toc="default">
        <name>COSE Algorithms Registrations</name>
        <t>
	  IANA has registered the following values in the
	  "COSE Algorithms" registry <xref target="IANA.COSE.Algorithms" format="default"/>.
        </t>
        <dl spacing="compact">
          
	     <dt>Name:</dt><dd>RS256
	    </dd>
     
	     <dt>Value:</dt><dd>-257
	    </dd>
          
	      <dt>Description:</dt><dd>RSASSA-PKCS1-v1_5 using SHA-256
	    </dd>

	    <dt>Change Controller:
	    </dt>
 	    <dd>IESG
	    </dd>
          
	     <dt>Reference:</dt><dd> <xref target="RSASSA-PKCS1-v1_5"
	     format="default"/> of RFC 8812
	    </dd>
       
	     <dt>Recommended:</dt><dd> No
	    </dd>
        </dl>
	
          <dl spacing="compact">
          <dt>
	      Name:</dt><dd>RS384
	    </dd>
          <dt>
	      Value:</dt><dd>-258
	    </dd>
          <dt>
	      Description:</dt><dd>RSASSA-PKCS1-v1_5 using SHA-384
	    </dd>

	    <dt>Change Controller:
	    </dt>
 	    <dd>IESG
	    </dd>


          <dt>
	      Reference:</dt><dd> <xref target="RSASSA-PKCS1-v1_5"
	      format="default"/> of RFC 8812
	    </dd>
          <dt>
	      Recommended:</dt><dd>No
	    </dd>
          </dl>
	  
        <dl spacing="compact">
          <dt>
	      Name:</dt><dd>RS512
	    </dd>
          <dt>
	      Value:</dt><dd>-259
	    </dd>
          <dt>
	      Description:</dt><dd>RSASSA-PKCS1-v1_5 using SHA-512
	    </dd>

	    <dt>Change Controller:
	    </dt>
 	    <dd>IESG
	    </dd>


          <dt>
	      Reference:</dt><dd> <xref target="RSASSA-PKCS1-v1_5"
	      format="default"/> of RFC 8812
	    </dd>
          <dt>
	      Recommended:</dt><dd> No
	    </dd>
          </dl>
	  
        <dl spacing="compact">
          <dt>
	      Name:</dt><dd>RS1
	    </dd>
          <dt>
	      Value:</dt><dd>-65535
	    </dd>
          <dt>
	      Description:</dt><dd>RSASSA-PKCS1-v1_5 using SHA-1
	    </dd>


	    <dt>Change Controller:
	    </dt>
 	    <dd>IESG
	    </dd>


          <dt>
	      Reference:</dt><dd> <xref target="RSASSA-PKCS1-v1_5"
	      format="default"/> of RFC 8812
	    </dd>
          <dt>
	      Recommended:</dt><dd>Deprecated
	    </dd>
        </dl>
	
        <dl spacing="compact">
          <dt>
	      Name:</dt><dd>ES256K
	    </dd>
          <dt>
	      Value:</dt><dd>-47
	    </dd>
          <dt>
	      Description:</dt><dd>ECDSA using secp256k1 curve and SHA-256
	    </dd>


	    <dt>Change Controller:
	    </dt>
 	    <dd>IESG
	    </dd>



          <dt>
	      Reference:</dt><dd><xref target="secp256k1_ECDSA"
	      format="default"/> of RFC 8812
	    </dd>
          <dt>
	      Recommended:</dt><dd>No
	    </dd>
        </dl>
	
      </section>
      <section anchor="cose-curve-registration" numbered="true" toc="default">
        <name>COSE Elliptic Curves Registrations</name>
        <t>
	  IANA has registered the following value in the
	  "COSE Elliptic Curves" registry <xref target="IANA.COSE.Curves" format="default"/>.
        </t>
        <dl spacing="compact">
          <dt>
	      Name:</dt><dd>secp256k1
	    </dd>
          <dt>
	      Value:</dt><dd>8
	    </dd>
          <dt>
	      Key Type:</dt><dd>EC2
	    </dd>
          <dt>
	      Description:</dt><dd>SECG secp256k1 curve
	    </dd>
          <dt>
	      Change Controller:</dt><dd>IESG
	    </dd>
          <dt>
	      Reference:</dt><dd><xref target="secp256k1_curve"
	      format="default"/> of RFC 8812
	    </dd>
          <dt>
	      Recommended:</dt><dd>No
	    </dd>
        </dl>
      </section>
      <section anchor="jose-algorithm-registration" numbered="true" toc="default">
        <name>JOSE Algorithms Registrations</name>
        <t>
	  IANA has registered the following value in the
	  "JSON Web Signature and Encryption Algorithms" registry <xref target="IANA.JOSE.Algorithms" format="default"/>.
        </t>
        <dl spacing="compact">
          <dt>
	      Algorithm Name:</dt><dd> ES256K
	    </dd>
          <dt>
	      Algorithm Description:</dt><dd> ECDSA using secp256k1 curve and SHA-256
	    </dd>
          <dt>
	      Algorithm Usage Location(s):</dt><dd> alg
	    </dd>
          <dt>
	      JOSE Implementation Requirements:</dt><dd> Optional
	    </dd>
          <dt>
	      Change Controller:</dt><dd> IESG
	    </dd>
          <dt>
	      Reference:</dt><dd> <xref target="secp256k1_ECDSA"
	      format="default"/> of RFC 8812
	    </dd>
          <dt>
	      Algorithm Analysis Document(s):</dt><dd> <xref target="SEC2" format="default"/>
          </dd>
        </dl>
      </section>
      <section anchor="jose-curve-registration" numbered="true" toc="default">
        <name>JSON Web Key Elliptic Curves Registrations</name>
        <t>
	  IANA has registered the following value in the
	  "JSON Web Key Elliptic Curve" registry <xref target="IANA.JOSE.Curves" format="default"/>.
        </t>
	
        <dl spacing="compact">
          <dt>
	      Curve Name:</dt><dd> secp256k1
	      </dd>
          <dt>
	      Curve Description:</dt><dd> SECG secp256k1 curve
	    </dd>
          <dt>
	      JOSE Implementation Requirements:</dt><dd> Optional
	    </dd>
          <dt>
	      Change Controller:</dt><dd> IESG
	    </dd>
          <dt>
	      Specification Document(s):</dt><dd> <xref
	      target="secp256k1_curve" format="default"/> of RFC 8812
	    </dd>
        </dl>
	
      </section>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <section anchor="KeySize-considerations" numbered="true" toc="default">
        <name>RSA Key Size Security Considerations</name>
        <t>
	  The security considerations on key sizes for RSA algorithms
	  from <xref target="RFC8230" section="6.1" sectionFormat="of"/> also apply to the RSA algorithms
	  in this specification.
        </t>
      </section>
      <section anchor="RSASSA-PKCS1-v1_5_SHA-2_considerations" numbered="true" toc="default">
        <name>RSASSA-PKCS1-v1_5 with SHA-2 Security Considerations</name>
        <t>
	  The security considerations on the use of RSASSA-PKCS1-v1_5 with SHA-2 hash functions
	  (SHA-256, SHA-384, and SHA-512)
	  from <xref target="RFC7518" section="8.3" sectionFormat="of"/> also apply to their use
	  in this specification.
	  For that reason, these algorithms are registered as being "Not Recommended".
	  Likewise, the exponent restrictions described in
	   <xref target="RFC7518" section="8.3" sectionFormat="of"/> also apply.
        </t>
      </section>
      <section anchor="RSASSA-PKCS1-v1_5_SHA-1_considerations" numbered="true" toc="default">
        <name>RSASSA-PKCS1-v1_5 with SHA-1 Security Considerations</name>
        <t>
	  The security considerations on the use of the SHA-1 hash function
	  from <xref target="RFC6194" format="default"/> apply in this specification.
	  For that reason, the "RS1" algorithm is registered as "Deprecated".
	  Likewise, the exponent restrictions described in
	   <xref target="RFC7518" section="8.3" sectionFormat="of"/> also apply.
        </t>

        <t>
	  A COSE algorithm identifier for this algorithm is nonetheless being
	  registered because deployed Trusted Platform Modules (TPMs) continue
	  to use it; therefore, WebAuthn implementations need a COSE algorithm
	  identifier for "RS1" when TPM attestations using this algorithm are
	  being represented.  New COSE applications and protocols <bcp14>MUST
	  NOT</bcp14> use this algorithm.
        </t>
      </section>
      <section anchor="secp256k1_considerations" numbered="true" toc="default">
        <name>secp256k1 Security Considerations</name>
        <t>
	  Care should be taken that a secp256k1 key is not mistaken for a P-256 <xref target="RFC7518" format="default"/> key,
	  given that their representations are the same
	  except for the <tt>crv</tt> value.
	  As described in  <xref target="RFC8152" section="8.1.1" sectionFormat="of"/>,
	  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>
	  The procedures and security considerations described in the
	  <xref target="SEC1" format="default"/>, <xref target="SEC2" format="default"/>, and <xref target="DSS" format="default"/>
	  specifications apply to implementations of this specification.
        </t>
        <t>
	  Timing side-channel attacks are possible if the implementation of scalar multiplication
	  over the curve does not execute in constant time.
        </t>
        <t>
	  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>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6194.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7517.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7518.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8017.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8152.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8230.xml"/>


        <reference anchor="DSS">
          <front>
            <title>Digital Signature Standard (DSS)</title>
            <author>
              <organization>National Institute of Standards and
            Technology (NIST)</organization>
            </author>
            <date month="July" year="2013"/>
          </front>
            <seriesInfo name="FIPS PUB" value="186-4"/>
            <seriesInfo name="DOI" value="10.6028/NIST.FIPS.186-4"/>
        </reference>



        <reference anchor="SEC1" target="https://www.secg.org/sec1-v2.pdf">
          <front>
            <title>SEC 1: Elliptic Curve Cryptography</title>
            <author>
              <organization>Standards for Efficient Cryptography Group</organization>
            </author>
            <date  month="May" year="2009"/>
          </front>
            <seriesInfo name="Version" value="2.0"/>
        </reference>



        <reference anchor="SEC2" target="https://www.secg.org/sec2-v2.pdf">
          <front>
            <title>SEC 2: Recommended Elliptic Curve Domain Parameters</title>
            <author>
              <organization>Standards for Efficient Cryptography Group</organization>
            </author>
            <date  month="January" year="2010"/>
          </front>
            <seriesInfo name="Version" value="2.0"/>
        </reference>
      </references>
      <references>

        <name>Informative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6979.xml"/>



        <reference anchor="WebAuthn" target="https://www.w3.org/TR/2019/REC-webauthn-1-20190304/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials - Level 1</title>
            <author initials="D." surname="Balfanz" fullname="Dirk Balfanz">
              <organization>Google</organization>
              <address>
                <email>balfanz@google.com</email>
              </address>
            </author>
            <author initials="A." surname="Czeskis" fullname="Alexei Czeskis">
              <organization>Google</organization>
              <address>
                <email>aczeskis@google.com</email>
              </address>
            </author>
            <author initials="J." surname="Hodges" fullname="Jeff Hodges">
              <organization>Google</organization>
              <address>
                <email>Jeff.Hodges@paypal.com</email>
              </address>
            </author>
            <author initials="J.C." surname="Jones" fullname="J.C. Jones">
              <organization>Mozilla</organization>
              <address>
                <email>jc@mozilla.com</email>
              </address>
            </author>
            <author initials="M." surname="Jones" fullname="Michael B. Jones">
              <organization>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>
              <address>
                <email>akshayku@microsoft.com</email>
              </address>
            </author>
            <author initials="A." surname="Liao" fullname="Angelo Liao">
              <organization>Microsoft</organization>
              <address>
                <email>huliao@microsoft.com</email>
              </address>
            </author>
            <author initials="R." surname="Lindemann" fullname="Rolf Lindemann">
              <organization>Nok Nok Labs</organization>
              <address>
                <email>rolf@noknok.com</email>
              </address>
            </author>
            <author initials="E." surname="Lundberg" fullname="Emil Lundberg">
              <organization>Yubico</organization>
              <address>
                <email>emil@yubico.com</email>
              </address>
            </author>
            <date month="March" year="2019"/>
          </front>
<refcontent>W3C Recommendation</refcontent>
   </reference>



        <reference anchor="CTAP" target="https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html">
          <front>
            <title>Client to Authenticator Protocol (CTAP)</title>

            <author initials="C." surname="Brand" fullname="Christiaan Brand">
              <organization>Google</organization>
              <address>
                <email>cbrand@google.com</email>
              </address>
            </author>
            <author initials="A." surname="Czeskis" fullname="Alexei Czeskis">
              <organization>Google</organization>
              <address>
                <email>aczeskis@google.com</email>
              </address>
            </author>
            <author initials="J." surname="Ehrensvärd" fullname="Jakob Ehrensvärd">
              <organization>Yubico</organization>
              <address>
                <email>jakob@yubico.com</email>
              </address>
            </author>
            <author initials="M." surname="Jones" fullname="Michael B. Jones">
              <organization>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>
              <address>
                <email>akshayku@microsoft.com</email>
              </address>
            </author>
            <author initials="R." surname="Lindemann" fullname="Rolf Lindemann">
              <organization>Nok Nok Labs</organization>
              <address>
                <email>rolf@noknok.com</email>
              </address>
            </author>
            <author initials="A." surname="Powers" fullname="Adam Powers">
              <organization>FIDO Alliance</organization>
              <address>
                <email>adam@fidoalliance.org</email>
              </address>
            </author>
            <author initials="J." surname="Verrept" fullname="Johan Verrept">
              <organization>OneSpan</organization>
              <address>
                <email>johan.verrept@onespan.com</email>
              </address>
            </author>
            <date month="January" year="2019"/>
          </front>
<refcontent>FIDO Alliance Proposed Standard</refcontent>
        </reference>



        <reference anchor="IANA.COSE.Algorithms" target="https://www.iana.org/assignments/cose">
          <front>
            <title>COSE Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>



        <reference anchor="IANA.COSE.Curves" target="https://www.iana.org/assignments/cose">
          <front>
            <title>COSE Elliptic Curves</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>



        <reference anchor="IANA.JOSE.Algorithms" target="https://www.iana.org/assignments/jose">
          <front>
            <title>JSON Web Signature and Encryption Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>



        <reference anchor="IANA.JOSE.Curves" target="https://www.iana.org/assignments/jose">
          <front>
            <title>JSON Web Key Elliptic Curve</title>
            <author>
              <organization>IANA</organization>
            </author>
          </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>
            <author fullname="Yolan Romailler" surname="Romailler" initials="Y.">
            </author>
            <date month="October" year="2017"/>
          </front>
<refcontent>Kudelski Security Research</refcontent>
        </reference>



        <reference anchor="EURO-SP18" target="https://ieeexplore.ieee.org/document/8406609">
          <front>
            <title>Attacking Deterministic Signature Schemes using Fault Attacks</title>
<seriesInfo name="DOI" value="10.1109/EuroSP.2018.00031"/>
            <author fullname="Damian Poddebniak" surname="Poddebniak" initials="D.">
              <organization>Münster University of Applied Sciences</organization>
            </author>
            <author fullname="Juraj Somorovsky" surname="Somorovsky" initials="J.">
              <organization>Ruhr University Bochum</organization>
            </author>
            <author fullname="Sebastian Schinzel" surname="Schinzel" initials="S.">
              <organization>Münster University of Applied Sciences</organization>
            </author>
            <author fullname="Manfred Lochter" surname="Lochter" initials="M.">
              <organization>Federal Office for Information Security</organization>
            </author>
            <author fullname="Paul Rösler" surname="Rösler" initials="P.">
              <organization>Ruhr University Bochum</organization>
            </author>
            <date month="April" year="2018"/>
          </front>
<refcontent>2018 IEEE European Symposium on Security and Privacy (EuroS&amp;P)
</refcontent>
        </reference>
      </references>
    </references>


    <section anchor="Acknowledgements" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>
	Thanks to
	<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>

  </back>
</rfc>
