draft-ietf-cose-webauthn-algorithms-02.txt | draft-ietf-cose-webauthn-algorithms-03.txt | |||
---|---|---|---|---|
COSE Working Group M. Jones | COSE Working Group M. Jones | |||
Internet-Draft Microsoft | Internet-Draft Microsoft | |||
Intended status: Standards Track October 24, 2019 | Intended status: Standards Track November 1, 2019 | |||
Expires: April 26, 2020 | Expires: May 4, 2020 | |||
COSE and JOSE Registrations for WebAuthn Algorithms | COSE and JOSE Registrations for WebAuthn Algorithms | |||
draft-ietf-cose-webauthn-algorithms-02 | draft-ietf-cose-webauthn-algorithms-03 | |||
Abstract | Abstract | |||
The W3C Web Authentication (WebAuthn) specification and the FIDO | The W3C Web Authentication (WebAuthn) specification and the FIDO | |||
Alliance FIDO2 Client to Authenticator Protocol (CTAP) specification | Alliance Client to Authenticator Protocol (CTAP) specification use | |||
use CBOR Object Signing and Encryption (COSE) algorithm identifiers. | CBOR Object Signing and Encryption (COSE) algorithm identifiers. | |||
This specification registers the following algorithms in the IANA | This specification registers the following algorithms in the IANA | |||
"COSE Algorithms" registry, which are used by WebAuthn and CTAP | "COSE Algorithms" registry, which are used by WebAuthn and CTAP | |||
implementations: RSASSA-PKCS1-v1_5 using SHA-256, SHA-384, SHA-512, | implementations: RSASSA-PKCS1-v1_5 using SHA-256, SHA-384, SHA-512, | |||
and SHA-1, and ECDSA using the secp256k1 curve and SHA-256. It | and SHA-1, and ECDSA using the secp256k1 curve and SHA-256. It | |||
registers the secp256k1 elliptic curve in the IANA "COSE Elliptic | registers the secp256k1 elliptic curve in the IANA "COSE Elliptic | |||
Curves" registry. Also, for use with JSON Object Signing and | Curves" registry. Also, for use with JSON Object Signing and | |||
Encryption (JOSE), it registers the algorithm ECDSA using the | Encryption (JOSE), it registers the algorithm ECDSA using the | |||
secp256k1 curve and SHA-256 in the IANA "JSON Web Signature and | secp256k1 curve and SHA-256 in the IANA "JSON Web Signature and | |||
Encryption Algorithms" registry and the secp256k1 elliptic curve in | Encryption Algorithms" registry and the secp256k1 elliptic curve in | |||
the IANA "JSON Web Key Elliptic Curve" registry. | the IANA "JSON Web Key Elliptic Curve" registry. | |||
skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on April 26, 2020. | This Internet-Draft will expire on May 4, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Requirements Notation and Conventions . . . . . . . . . . 3 | 1.1. Requirements Notation and Conventions . . . . . . . . . . 3 | |||
2. RSASSA-PKCS1-v1_5 Signature Algorithm . . . . . . . . . . . . 3 | 2. RSASSA-PKCS1-v1_5 Signature Algorithm . . . . . . . . . . . . 3 | |||
3. Using secp256k1 with JOSE and COSE . . . . . . . . . . . . . 4 | 3. Using secp256k1 with JOSE and COSE . . . . . . . . . . . . . 4 | |||
3.1. JOSE and COSE secp256k1 Curve Key Representations . . . . 4 | 3.1. JOSE and COSE secp256k1 Curve Key Representations . . . . 5 | |||
3.2. ECDSA Signature with secp256k1 Curve . . . . . . . . . . 5 | 3.2. ECDSA Signature with secp256k1 Curve . . . . . . . . . . 5 | |||
3.3. Other Uses of the secp256k1 Elliptic Curve . . . . . . . 7 | 3.3. Other Uses of the secp256k1 Elliptic Curve . . . . . . . 7 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
4.1. COSE Algorithms Registrations . . . . . . . . . . . . . . 7 | 4.1. COSE Algorithms Registrations . . . . . . . . . . . . . . 7 | |||
4.2. COSE Elliptic Curves Registrations . . . . . . . . . . . 8 | 4.2. COSE Elliptic Curves Registrations . . . . . . . . . . . 8 | |||
4.3. JOSE Algorithms Registrations . . . . . . . . . . . . . . 8 | 4.3. JOSE Algorithms Registrations . . . . . . . . . . . . . . 8 | |||
4.4. JSON Web Key Elliptic Curves Registrations . . . . . . . 8 | 4.4. JSON Web Key Elliptic Curves Registrations . . . . . . . 8 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
5.1. RSA Key Size Security Considerations . . . . . . . . . . 9 | 5.1. RSA Key Size Security Considerations . . . . . . . . . . 9 | |||
5.2. RSASSA-PKCS1-v1_5 with SHA-2 Security Considerations . . 9 | 5.2. RSASSA-PKCS1-v1_5 with SHA-2 Security Considerations . . 9 | |||
5.3. RSASSA-PKCS1-v1_5 with SHA-1 Security Considerations . . 9 | 5.3. RSASSA-PKCS1-v1_5 with SHA-1 Security Considerations . . 9 | |||
5.4. secp256k1 Security Considerations . . . . . . . . . . . . 9 | 5.4. secp256k1 Security Considerations . . . . . . . . . . . . 9 | |||
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
6.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 6.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
6.2. Informative References . . . . . . . . . . . . . . . . . 11 | 6.2. Informative References . . . . . . . . . . . . . . . . . 11 | |||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 12 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
Document History . . . . . . . . . . . . . . . . . . . . . . . . 12 | Document History . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 13 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
1. Introduction | 1. Introduction | |||
This specification defines how to use several algorithms with CBOR | This specification defines how to use several algorithms with CBOR | |||
Object Signing and Encryption (COSE) [RFC8152] that are used by | Object Signing and Encryption (COSE) [RFC8152] that are used by | |||
implementations of the W3C Web Authentication (WebAuthn) [WebAuthn] | implementations of the W3C Web Authentication (WebAuthn) [WebAuthn] | |||
and FIDO Alliance FIDO2 Client to Authenticator Protocol (CTAP) | and FIDO Alliance FIDO2 Client to Authenticator Protocol (CTAP) | |||
[CTAP] specifications. These specification registers these | [CTAP] specifications. These specification registers these | |||
algorithms in the IANA "COSE Algorithms" registry | algorithms in the IANA "COSE Algorithms" registry | |||
[IANA.COSE.Algorithms] and registers a related elliptic curve in the | [IANA.COSE.Algorithms] and registers an elliptic curve in the IANA | |||
IANA "COSE Elliptic Curves" registry [IANA.COSE.Curves]. This | "COSE Elliptic Curves" registry [IANA.COSE.Curves]. This | |||
specification also registers a corresponding algorithm for use with | specification also registers a corresponding algorithm for use with | |||
JSON Object Signing and Encryption (JOSE) [RFC7515] in the IANA "JSON | JSON Object Signing and Encryption (JOSE) [RFC7515] in the IANA "JSON | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
Web Signature and Encryption Algorithms" registry | Web Signature and Encryption Algorithms" registry | |||
[IANA.JOSE.Algorithms] and registers a related elliptic curve in the | [IANA.JOSE.Algorithms] and registers an elliptic curve in the IANA | |||
IANA "JSON Web Key Elliptic Curve" registry [IANA.JOSE.Curves]. | "JSON Web Key Elliptic Curve" registry [IANA.JOSE.Curves]. | |||
1.1. Requirements Notation and Conventions | 1.1. Requirements Notation and Conventions | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2. RSASSA-PKCS1-v1_5 Signature Algorithm | 2. RSASSA-PKCS1-v1_5 Signature Algorithm | |||
skipping to change at page 4, line 5 ¶ | skipping to change at page 4, line 5 ¶ | |||
The RSASSA-PKCS1-v1_5 signature algorithm is parameterized with a | The RSASSA-PKCS1-v1_5 signature algorithm is parameterized with a | |||
hash function (h). | hash function (h). | |||
A key of size 2048 bits or larger MUST be used with these algorithms. | A key of size 2048 bits or larger MUST be used with these algorithms. | |||
Implementations need to check that the key type is 'RSA' when | Implementations need to check that the key type is 'RSA' when | |||
creating or verifying a signature. | creating or verifying a signature. | |||
The RSASSA-PKCS1-v1_5 algorithms specified in this document are in | The RSASSA-PKCS1-v1_5 algorithms specified in this document are in | |||
the following table. | the following table. | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
+-------+---------------+---------+-------------------+-------------+ | +-------+---------------+---------+-------------------+-------------+ | |||
| Name | Value | Hash | Description | Recommended | | | Name | Value | Hash | Description | Recommended | | |||
+-------+---------------+---------+-------------------+-------------+ | +-------+---------------+---------+-------------------+-------------+ | |||
| RS256 | TBD | SHA-256 | RSASSA-PKCS1-v1_5 | No | | | RS256 | TBD | SHA-256 | RSASSA-PKCS1-v1_5 | No | | |||
| | (temporary | | using SHA-256 | | | | | (temporary | | using SHA-256 | | | |||
| | assignment | | | | | | | assignment | | | | | |||
| | -257 already | | | | | | | -257 already | | | | | |||
| | in place) | | | | | | | in place) | | | | | |||
| RS384 | TBD | SHA-384 | RSASSA-PKCS1-v1_5 | No | | | RS384 | TBD | SHA-384 | RSASSA-PKCS1-v1_5 | No | | |||
| | (temporary | | using SHA-384 | | | | | (temporary | | using SHA-384 | | | |||
skipping to change at page 4, line 35 ¶ | skipping to change at page 4, line 33 ¶ | |||
| RS1 | TBD | SHA-1 | RSASSA-PKCS1-v1_5 | Deprecated | | | RS1 | TBD | SHA-1 | RSASSA-PKCS1-v1_5 | Deprecated | | |||
| | (temporary | | using SHA-1 | | | | | (temporary | | using SHA-1 | | | |||
| | assignment | | | | | | | assignment | | | | | |||
| | -65535 | | | | | | | -65535 | | | | | |||
| | already in | | | | | | | already in | | | | | |||
| | place) | | | | | | | place) | | | | | |||
+-------+---------------+---------+-------------------+-------------+ | +-------+---------------+---------+-------------------+-------------+ | |||
Table 1: RSASSA-PKCS1-v1_5 Algorithm Values | Table 1: RSASSA-PKCS1-v1_5 Algorithm Values | |||
Security considerations for use of the first three algorithms are in | ||||
Section 5.2. Security considerations for use of the last algorithm | ||||
are in Section 5.3. | ||||
Note that these algorithms are already present in the IANA "JSON Web | Note that these algorithms are already present in the IANA "JSON Web | |||
Signature and Encryption Algorithms" registry [IANA.JOSE.Algorithms], | Signature and Encryption Algorithms" registry [IANA.JOSE.Algorithms], | |||
and so these registrations are only for the IANA "COSE Algorithms" | and so these registrations are only for the IANA "COSE Algorithms" | |||
registry [IANA.COSE.Algorithms]. | registry [IANA.COSE.Algorithms]. | |||
3. Using secp256k1 with JOSE and COSE | 3. Using secp256k1 with JOSE and COSE | |||
This section defines algorithm encodings and representations enabling | This section defines algorithm encodings and representations enabling | |||
the Standards for Efficient Cryptography Group (SECG) elliptic curve | the Standards for Efficient Cryptography Group (SECG) elliptic curve | |||
secp256k1 [SEC2] to be used for JOSE [RFC7515] and COSE [RFC8152] | secp256k1 [SEC2] to be used for JOSE [RFC7515] and COSE [RFC8152] | |||
skipping to change at page 5, line 5 ¶ | skipping to change at page 5, line 14 ¶ | |||
3.1. JOSE and COSE secp256k1 Curve Key Representations | 3.1. JOSE and COSE secp256k1 Curve Key Representations | |||
The Standards for Efficient Cryptography Group (SECG) elliptic curve | The Standards for Efficient Cryptography Group (SECG) elliptic curve | |||
secp256k1 [SEC2] is represented in a JSON Web Key (JWK) [RFC7517] | secp256k1 [SEC2] is represented in a JSON Web Key (JWK) [RFC7517] | |||
using these values: | using these values: | |||
o "kty": "EC" | o "kty": "EC" | |||
o "crv": "secp256k1" | o "crv": "secp256k1" | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
plus the values needed to represent the curve point, as defined in | plus the values needed to represent the curve point, as defined in | |||
Section 6.2.1 of [RFC7518]. As a compressed point encoding | Section 6.2.1 of [RFC7518]. As a compressed point encoding | |||
representation is not defined for JWK elliptic curve points, the | representation is not defined for JWK elliptic curve points, the | |||
uncompressed point encoding defined there MUST be used. The "x" and | uncompressed point encoding defined there MUST be used. The "x" and | |||
"y" values represented MUST both be exactly 256 bits, with any | "y" values represented MUST both be exactly 256 bits, with any | |||
leading zeros preserved. Other optional values such as "alg" MAY | leading zeros preserved. Other optional values such as "alg" MAY | |||
also be present. | also be present. | |||
It is represented in a COSE_Key [RFC8152] using these values: | It is represented in a COSE_Key [RFC8152] using these values: | |||
skipping to change at page 6, line 5 ¶ | skipping to change at page 6, line 12 ¶ | |||
1. Generate a digital signature of the JWS Signing Input or the COSE | 1. Generate a digital signature of the JWS Signing Input or the COSE | |||
Sig_structure using ECDSA secp256k1 SHA-256 with the desired | Sig_structure using ECDSA secp256k1 SHA-256 with the desired | |||
private key. The output will be the pair (R, S), where R and S | private key. The output will be the pair (R, S), where R and S | |||
are 256-bit unsigned integers. | are 256-bit unsigned integers. | |||
2. Turn R and S into octet sequences in big-endian order, with each | 2. Turn R and S into octet sequences in big-endian order, with each | |||
array being be 32 octets long. The octet sequence | array being be 32 octets long. The octet sequence | |||
representations MUST NOT be shortened to omit any leading zero | representations MUST NOT be shortened to omit any leading zero | |||
octets contained in the values. | octets contained in the values. | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
3. Concatenate the two octet sequences in the order R and then S. | 3. Concatenate the two octet sequences in the order R and then S. | |||
(Note that many ECDSA implementations will directly produce this | (Note that many ECDSA implementations will directly produce this | |||
concatenation as their output.) | concatenation as their output.) | |||
4. The resulting 64-octet sequence is the JWS Signature or COSE | 4. The resulting 64-octet sequence is the JWS Signature or COSE | |||
signature value. | signature value. | |||
Implementations SHOULD use a deterministic algorithm to generate the | Implementations SHOULD use a deterministic algorithm to generate the | |||
ECDSA nonce, k, such as [RFC6979]. However, in situations where | ECDSA nonce, k, such as [RFC6979]. However, in situations where | |||
devices are vulnerable to physical attacks, deterministic ECDSA has | devices are vulnerable to physical attacks, deterministic ECDSA has | |||
skipping to change at page 6, line 38 ¶ | skipping to change at page 6, line 43 ¶ | |||
| JOSE Alg | COSE Alg Value | Description | Recommended | | | JOSE Alg | COSE Alg Value | Description | Recommended | | |||
| Name | | | | | | Name | | | | | |||
+----------+-------------------+----------------------+-------------+ | +----------+-------------------+----------------------+-------------+ | |||
| ES256K | TBD (requested | ECDSA using | Yes | | | ES256K | TBD (requested | ECDSA using | Yes | | |||
| | assignment -46) | secp256k1 curve and | | | | | assignment -46) | secp256k1 curve and | | | |||
| | | SHA-256 | | | | | | SHA-256 | | | |||
+----------+-------------------+----------------------+-------------+ | +----------+-------------------+----------------------+-------------+ | |||
Table 2: ECDSA Algorithm Values | Table 2: ECDSA Algorithm Values | |||
Implementation of this algorithm is RECOMMENDED because of its | Implementation of this algorithm is recommended because of its | |||
widespread use in decentralized systems and those that chose it over | widespread use in decentralized systems and those that chose it over | |||
the NIST curves. | the NIST curves. | |||
When using a JWK or COSE_Key for this algorithm, the following checks | When using a JWK or COSE_Key for this algorithm, the following checks | |||
are made: | are made: | |||
o The "kty" field MUST be present and it MUST be "EC" for JOSE or | o The "kty" field MUST be present and it MUST be "EC" for JOSE or | |||
"EC2" for COSE. | "EC2" for COSE. | |||
o The "crv" field MUST be present and it MUST represent the | o The "crv" field MUST be present and it MUST represent the | |||
"secp256k1" elliptic curve. | "secp256k1" elliptic curve. | |||
o If the "alg" field is present, it MUST represent the "ES256K" | o If the "alg" field is present, it MUST represent the "ES256K" | |||
algorithm. | algorithm. | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
o If the "key_ops" field is present, it MUST include "sign" when | o If the "key_ops" field is present, it MUST include "sign" when | |||
creating an ECDSA signature. | creating an ECDSA signature. | |||
o If the "key_ops" field is present, it MUST include "verify" when | o If the "key_ops" field is present, it MUST include "verify" when | |||
verifying an ECDSA signature. | verifying an ECDSA signature. | |||
o If the JWK _use_ field is present, its value MUST be "sig". | o If the JWK _use_ field is present, its value MUST be "sig". | |||
3.3. Other Uses of the secp256k1 Elliptic Curve | 3.3. Other Uses of the secp256k1 Elliptic Curve | |||
skipping to change at page 8, line 4 ¶ | skipping to change at page 8, line 10 ¶ | |||
o Recommended: No | o Recommended: No | |||
o Name: RS512 | o Name: RS512 | |||
o Value: TBD (temporary assignment -259 already in place) | o Value: TBD (temporary assignment -259 already in place) | |||
o Description: RSASSA-PKCS1-v1_5 using SHA-512 | o Description: RSASSA-PKCS1-v1_5 using SHA-512 | |||
o Reference: Section 2 of this document | o Reference: Section 2 of this document | |||
o Recommended: No | o Recommended: No | |||
o Name: RS1 | o Name: RS1 | |||
o Value: TBD (temporary assignment -65535 already in place) | o Value: TBD (temporary assignment -65535 already in place) | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
o Description: RSASSA-PKCS1-v1_5 using SHA-1 | o Description: RSASSA-PKCS1-v1_5 using SHA-1 | |||
o Reference: Section 2 of this document | o Reference: Section 2 of this document | |||
o Recommended: Deprecated | o Recommended: Deprecated | |||
o Name: ES256K | o Name: ES256K | |||
o Value: TBD (requested assignment -46) | o Value: TBD (requested assignment -46) | |||
o Description: ECDSA using secp256k1 curve and SHA-256 | o Description: ECDSA using secp256k1 curve and SHA-256 | |||
o Reference: Section 3.2 of this document | o Reference: Section 3.2 of this document | |||
o Recommended: Yes | o Recommended: Yes | |||
skipping to change at page 9, line 5 ¶ | skipping to change at page 9, line 9 ¶ | |||
This section registers the following value in the IANA "JSON Web Key | This section registers the following value in the IANA "JSON Web Key | |||
Elliptic Curve" registry [IANA.JOSE.Curves]. | Elliptic Curve" registry [IANA.JOSE.Curves]. | |||
o Curve Name: secp256k1 | o Curve Name: secp256k1 | |||
o Curve Description: SECG secp256k1 curve | o Curve Description: SECG secp256k1 curve | |||
o JOSE Implementation Requirements: Optional | o JOSE Implementation Requirements: Optional | |||
o Change Controller: IESG | o Change Controller: IESG | |||
o Specification Document(s): Section 3.1 of [[ this specification ]] | o Specification Document(s): Section 3.1 of [[ this specification ]] | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
5. Security Considerations | 5. Security Considerations | |||
5.1. RSA Key Size Security Considerations | 5.1. RSA Key Size Security Considerations | |||
The security considerations on key sizes for RSA algorithms from | The security considerations on key sizes for RSA algorithms from | |||
Section 6.1 of [RFC8230] also apply to the RSA algorithms in this | Section 6.1 of [RFC8230] also apply to the RSA algorithms in this | |||
specification. | specification. | |||
5.2. RSASSA-PKCS1-v1_5 with SHA-2 Security Considerations | 5.2. RSASSA-PKCS1-v1_5 with SHA-2 Security Considerations | |||
skipping to change at page 10, line 5 ¶ | skipping to change at page 10, line 14 ¶ | |||
6. References | 6. References | |||
6.1. Normative References | 6.1. Normative References | |||
[DSS] National Institute of Standards and Technology (NIST), | [DSS] National Institute of Standards and Technology (NIST), | |||
"Digital Signature Standard (DSS)", FIPS PUB 186-4, July | "Digital Signature Standard (DSS)", FIPS PUB 186-4, July | |||
2013, <http://nvlpubs.nist.gov/nistpubs/FIPS/ | 2013, <http://nvlpubs.nist.gov/nistpubs/FIPS/ | |||
NIST.FIPS.186-4.pdf>. | NIST.FIPS.186-4.pdf>. | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC6194] Polk, T., Chen, L., Turner, S., and P. Hoffman, "Security | [RFC6194] Polk, T., Chen, L., Turner, S., and P. Hoffman, "Security | |||
Considerations for the SHA-0 and SHA-1 Message-Digest | Considerations for the SHA-0 and SHA-1 Message-Digest | |||
Algorithms", RFC 6194, DOI 10.17487/RFC6194, March 2011, | Algorithms", RFC 6194, DOI 10.17487/RFC6194, March 2011, | |||
<https://www.rfc-editor.org/info/rfc6194>. | <https://www.rfc-editor.org/info/rfc6194>. | |||
skipping to change at page 11, line 5 ¶ | skipping to change at page 11, line 14 ¶ | |||
[RFC8230] Jones, M., "Using RSA Algorithms with CBOR Object Signing | [RFC8230] Jones, M., "Using RSA Algorithms with CBOR Object Signing | |||
and Encryption (COSE) Messages", RFC 8230, | and Encryption (COSE) Messages", RFC 8230, | |||
DOI 10.17487/RFC8230, September 2017, | DOI 10.17487/RFC8230, September 2017, | |||
<https://www.rfc-editor.org/info/rfc8230>. | <https://www.rfc-editor.org/info/rfc8230>. | |||
[SEC1] Standards for Efficient Cryptography Group, "SEC 1: | [SEC1] Standards for Efficient Cryptography Group, "SEC 1: | |||
Elliptic Curve Cryptography", Version 2.0, May 2009, | Elliptic Curve Cryptography", Version 2.0, May 2009, | |||
<http://www.secg.org/sec1-v2.pdf>. | <http://www.secg.org/sec1-v2.pdf>. | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
[SEC2] Standards for Efficient Cryptography Group, "SEC 2: | [SEC2] Standards for Efficient Cryptography Group, "SEC 2: | |||
Recommended Elliptic Curve Domain Parameters", | Recommended Elliptic Curve Domain Parameters", | |||
Version 2.0, January 2010, | Version 2.0, January 2010, | |||
<http://www.secg.org/sec2-v2.pdf>. | <http://www.secg.org/sec2-v2.pdf>. | |||
6.2. Informative References | 6.2. Informative References | |||
[CTAP] Brand, C., Czeskis, A., Ehrensvaerd, J., Jones, M., Kumar, | [CTAP] Brand, C., Czeskis, A., Ehrensvaerd, J., Jones, M., Kumar, | |||
A., Lindemann, R., Powers, A., and J. Verrept, "Client to | A., Lindemann, R., Powers, A., and J. Verrept, "Client to | |||
Authenticator Protocol (CTAP)", FIDO Alliance Proposed | Authenticator Protocol (CTAP)", FIDO Alliance Proposed | |||
skipping to change at page 12, line 5 ¶ | skipping to change at page 12, line 16 ¶ | |||
IANA, "JSON Web Key Elliptic Curve", | IANA, "JSON Web Key Elliptic Curve", | |||
<https://www.iana.org/assignments/jose/jose.xhtml#web-key- | <https://www.iana.org/assignments/jose/jose.xhtml#web-key- | |||
elliptic-curve>. | elliptic-curve>. | |||
[Kudelski17] | [Kudelski17] | |||
Romailler, Y., "How to defeat Ed25519 and EdDSA using | Romailler, Y., "How to defeat Ed25519 and EdDSA using | |||
faults", October 2017, | faults", October 2017, | |||
<https://research.kudelskisecurity.com/2017/10/04/ | <https://research.kudelskisecurity.com/2017/10/04/ | |||
defeating-eddsa-with-faults/>. | defeating-eddsa-with-faults/>. | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
[RFC6979] Pornin, T., "Deterministic Usage of the Digital Signature | [RFC6979] Pornin, T., "Deterministic Usage of the Digital Signature | |||
Algorithm (DSA) and Elliptic Curve Digital Signature | Algorithm (DSA) and Elliptic Curve Digital Signature | |||
Algorithm (ECDSA)", RFC 6979, DOI 10.17487/RFC6979, August | Algorithm (ECDSA)", RFC 6979, DOI 10.17487/RFC6979, August | |||
2013, <https://www.rfc-editor.org/info/rfc6979>. | 2013, <https://www.rfc-editor.org/info/rfc6979>. | |||
[WebAuthn] | [WebAuthn] | |||
Balfanz, D., Czeskis, A., Hodges, J., Jones, J., Jones, | Balfanz, D., Czeskis, A., Hodges, J., Jones, J., Jones, | |||
M., Kumar, A., Liao, A., Lindemann, R., and E. Lundberg, | M., Kumar, A., Liao, A., Lindemann, R., and E. Lundberg, | |||
"Web Authentication: An API for accessing Public Key | "Web Authentication: An API for accessing Public Key | |||
Credentials - Level 1", World Wide Web Consortium | Credentials - Level 1", World Wide Web Consortium | |||
skipping to change at page 12, line 32 ¶ | skipping to change at page 12, line 41 ¶ | |||
Thanks to Stephen Farrell, John Fontana, Jeff Hodges, Kevin Jacobs, | Thanks to Stephen Farrell, John Fontana, Jeff Hodges, Kevin Jacobs, | |||
J.C. Jones, Benjamin Kaduk, Neil Madden, John Mattsson, Tony | J.C. Jones, Benjamin Kaduk, Neil Madden, John Mattsson, Tony | |||
Nadalin, Matt Palmer, Jim Schaad, Goeran Selander, Wendy Seltzer, | Nadalin, Matt Palmer, Jim Schaad, Goeran Selander, Wendy Seltzer, | |||
Sean Turner, and Samuel Weiler for their roles in registering these | Sean Turner, and Samuel Weiler for their roles in registering these | |||
algorithm identifiers. | algorithm identifiers. | |||
Document History | Document History | |||
[[ to be removed by the RFC Editor before publication as an RFC ]] | [[ to be removed by the RFC Editor before publication as an RFC ]] | |||
-03 | ||||
o Addressed review of -02 by Jim Schaad. | ||||
-02 | -02 | |||
o Addressed working group last call comments. Thanks to J.C. | o Addressed working group last call comments. Thanks to J.C. | |||
Jones, Kevin Jacobs, Jim Schaad, Neil Madden, and Benjamin Kaduk | Jones, Kevin Jacobs, Jim Schaad, Neil Madden, and Benjamin Kaduk | |||
for their useful feedback. | for their useful feedback. | |||
-01 | -01 | |||
o Changed the JOSE curve identifier from "P-256K" to "secp256k1". | o Changed the JOSE curve identifier from "P-256K" to "secp256k1". | |||
o Specified that secp256k1 signing is done using the SHA-256 hash | o Specified that secp256k1 signing is done using the SHA-256 hash | |||
function. | function. | |||
-00 | -00 | |||
o Created the initial working group draft from draft-jones-cose- | o Created the initial working group draft from draft-jones-cose- | |||
additional-algorithms-00, changing only the title, date, and | additional-algorithms-00, changing only the title, date, and | |||
history entry. | history entry. | |||
skipping to change at page 13, line 5 ¶ | skipping to change at page 13, line 15 ¶ | |||
o Specified that secp256k1 signing is done using the SHA-256 hash | o Specified that secp256k1 signing is done using the SHA-256 hash | |||
function. | function. | |||
-00 | -00 | |||
o Created the initial working group draft from draft-jones-cose- | o Created the initial working group draft from draft-jones-cose- | |||
additional-algorithms-00, changing only the title, date, and | additional-algorithms-00, changing only the title, date, and | |||
history entry. | history entry. | |||
Internet-DrafCOSE and JOSE Registrations for WebAuthn Algor October 2019 | ||||
Author's Address | Author's Address | |||
Michael B. Jones | Michael B. Jones | |||
Microsoft | Microsoft | |||
Email: mbj@microsoft.com | Email: mbj@microsoft.com | |||
URI: http://self-issued.info/ | URI: http://self-issued.info/ | |||
End of changes. 24 change blocks. | ||||
41 lines changed or deleted | 22 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |