draft-ietf-cose-hash-algs-03.txt | draft-ietf-cose-hash-algs-04.txt | |||
---|---|---|---|---|
Network Working Group J. Schaad | Network Working Group J. Schaad | |||
Internet-Draft August Cellars | Internet-Draft August Cellars | |||
Intended status: Informational 9 March 2020 | Intended status: Informational 29 May 2020 | |||
Expires: 10 September 2020 | Expires: 30 November 2020 | |||
CBOR Object Signing and Encryption (COSE): Hash Algorithms | CBOR Object Signing and Encryption (COSE): Hash Algorithms | |||
draft-ietf-cose-hash-algs-03 | draft-ietf-cose-hash-algs-04 | |||
Abstract | Abstract | |||
The CBOR Object Signing and Encryption (COSE) syntax | The CBOR Object Signing and Encryption (COSE) syntax | |||
[I-D.ietf-cose-rfc8152bis-struct] does not define any direct methods | [I-D.ietf-cose-rfc8152bis-struct] does not define any direct methods | |||
for using hash algorithms. There are however circumstances where | for using hash algorithms. There are however circumstances where | |||
hash algorithms are used: Indirect signatures where the hash of one | hash algorithms are used, such as indirect signatures where the hash | |||
or more contents are signed. X.509 certificate or other object | of one or more contents are signed, and X.509 certificate or other | |||
identification by the use of a fingerprint. This document defines a | object identification by the use of a fingerprint. This document | |||
set of hash algorithms that are identified by COSE Algorithm | defines a set of hash algorithms that are identified by COSE | |||
Identifiers. | Algorithm Identifiers. | |||
Contributing to this document | Contributing to this document | |||
This note is to be removed before publishing as an RFC. | This note is to be removed before publishing as an RFC. | |||
The source for this draft is being maintained in GitHub. Suggested | The source for this draft is being maintained in GitHub. Suggested | |||
changes should be submitted as pull requests at https://github.com/ | changes should be submitted as pull requests at https://github.com/ | |||
cose-wg/X509 Editorial changes can be managed in GitHub, but any | cose-wg/X509 Editorial changes can be managed in GitHub, but any | |||
substantial issues need to be discussed on the COSE mailing list. | substantial issues need to be discussed on the COSE mailing list. | |||
skipping to change at page 1, line 46 ¶ | skipping to change at page 1, line 46 ¶ | |||
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 10 September 2020. | This Internet-Draft will expire on 30 November 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 28 ¶ | skipping to change at page 2, line 28 ¶ | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Requirements Terminology . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Terminology . . . . . . . . . . . . . . . . 3 | |||
2. Hash Algorithm Usage . . . . . . . . . . . . . . . . . . . . 3 | 2. Hash Algorithm Usage . . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. Example CBOR hash structure . . . . . . . . . . . . . . . 4 | 2.1. Example CBOR hash structure . . . . . . . . . . . . . . . 4 | |||
3. Hash Algorithm Identifiers . . . . . . . . . . . . . . . . . 5 | 3. Hash Algorithm Identifiers . . . . . . . . . . . . . . . . . 5 | |||
3.1. SHA-1 Hash Algorithm . . . . . . . . . . . . . . . . . . 5 | 3.1. SHA-1 Hash Algorithm . . . . . . . . . . . . . . . . . . 5 | |||
3.2. SHA-2 Hash Algorithms . . . . . . . . . . . . . . . . . . 6 | 3.2. SHA-2 Hash Algorithms . . . . . . . . . . . . . . . . . . 6 | |||
3.3. SHAKE Algorithms . . . . . . . . . . . . . . . . . . . . 7 | 3.3. SHAKE Algorithms . . . . . . . . . . . . . . . . . . . . 8 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. COSE Algorithm Registry . . . . . . . . . . . . . . . . . 8 | 4.1. COSE Algorithm Registry . . . . . . . . . . . . . . . . . 8 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
6. Normative References . . . . . . . . . . . . . . . . . . . . 9 | 6. Normative References . . . . . . . . . . . . . . . . . . . . 9 | |||
7. Informative References . . . . . . . . . . . . . . . . . . . 10 | 7. Informative References . . . . . . . . . . . . . . . . . . . 10 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
1. Introduction | 1. Introduction | |||
The CBOR Object Signing and Encryption (COSE) syntax does not define | The CBOR Object Signing and Encryption (COSE) syntax does not define | |||
any direct methods for the use of hash algorithms. It also does not | any direct methods for the use of hash algorithms. It also does not | |||
define a structure syntax that is used to encode a digested object | define a structure syntax that is used to encode a digested object | |||
structure along the lines of the DigestedData ASN.1 structure in | structure along the lines of the DigestedData ASN.1 structure in | |||
[CMS]. This omission was intentional as a structure consisting of | [CMS]. This omission was intentional as a structure consisting of | |||
just a digest identifier, the content, and a digest value does not by | just a digest identifier, the content, and a digest value does not by | |||
itself provide any strong security service. Additionally, an | itself provide any strong security service. Additionally, an | |||
skipping to change at page 3, line 36 ¶ | skipping to change at page 3, line 36 ¶ | |||
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. Hash Algorithm Usage | 2. Hash Algorithm Usage | |||
As noted in the previous section, hash functions can be used for a | As noted in the previous section, hash functions can be used for a | |||
variety of purposes. Some of these purposes require that a hash | variety of purposes. Some of these purposes require that a hash | |||
function be cryptographically strong, these include direct and | function be cryptographically strong. These include direct and | |||
indirect signatures. That is, using the hash as part of the | indirect signatures. That is, using the hash as part of the | |||
signature or using the hash as part of the body to be signed. Other | signature or using the hash as part of the body to be signed. Other | |||
uses of hash functions do not require the same level of strength. | uses of hash functions do not require the same level of strength. | |||
This document contains some hash functions that are not designed to | This document contains some hash functions that are not designed to | |||
be used for cryptographic operations. An application that is using a | be used for cryptographic operations. An application that is using a | |||
hash function needs to carefully evaluate exactly what hash | hash function needs to carefully evaluate exactly what hash | |||
properties are needed and which hash functions are going to provide | properties are needed and which hash functions are going to provide | |||
them. Applications should also make sure that the ability to change | them. Applications should also make sure that the ability to change | |||
hash functions is part of the base design as cryptographic advances | hash functions is part of the base design as cryptographic advances | |||
are sure to reduce the strength of a hash function. | are sure to reduce the strength of a hash function. | |||
A hash function is a map from one, normally large, bit string to a | A hash function is a map from one, normally large, bit string to a | |||
second, usually smaller, bit string. There are going to be | second, usually smaller, bit string. There are going to be | |||
collisions by a hash function, the trick is to make sure that it is | collisions by a hash function. The trick is to make sure that it is | |||
difficult to find two values that are going to map to the same output | difficult to find two values that are going to map to the same output | |||
value. The standard "Collision Attack" is one where an attacker can | value. The standard "Collision Attack" is one where an attacker can | |||
find two different messages that have the same hash value. If a | find two different messages that have the same hash value. If a | |||
collision attack exists, then the function SHOULD NOT be used for a | collision attack exists, then the function SHOULD NOT be used for a | |||
cryptographic purpose. The only reason why such a hash function is | cryptographic purpose. The only reason why such a hash function is | |||
used is when there is absolutely no other choice (e.g. a Hardware | used is when there is absolutely no other choice (e.g. a Hardware | |||
Security Module (HSM) that cannot be replaced), and only after | Security Module (HSM) that cannot be replaced), and only after | |||
looking at the possible security issues. Cryptographic purposes | looking at the possible security issues. Cryptographic purposes | |||
would include the creation of signatures or the use of hashes for | would include the creation of signatures or the use of hashes for | |||
indirect signatures. These functions may still be usable for non- | indirect signatures. These functions may still be usable for non- | |||
skipping to change at page 4, line 46 ¶ | skipping to change at page 4, line 46 ¶ | |||
[COSE] did not provide a default structure for holding a hash value | [COSE] did not provide a default structure for holding a hash value | |||
not only because no separate hash algorithms were defined, but | not only because no separate hash algorithms were defined, but | |||
because how the structure is setup is frequently application | because how the structure is setup is frequently application | |||
specific. There are four fields that are often included as part of a | specific. There are four fields that are often included as part of a | |||
hash structure: | hash structure: | |||
* The hash algorithm identifier. | * The hash algorithm identifier. | |||
* The hash value. | * The hash value. | |||
* A pointer to the value that was hashed, this could be a pointer to | * A pointer to the value that was hashed. this could be a pointer | |||
a file, an object that can be obtained from the network, or a | to a file, an object that can be obtained from the network, or a | |||
pointer to someplace in the message, or something very application | pointer to someplace in the message, or something very application | |||
specific. | specific. | |||
* Additional data, this can be something as simple as a random value | * Additional data, this can be something as simple as a random value | |||
to make finding hash collisions slightly harder (as the value | to make finding hash collisions slightly harder (as the value | |||
handed to the application cannot have been selected to have a | handed to the application cannot have been selected to have a | |||
collision), or as complicated as a set of processing instructions | collision), or as complicated as a set of processing instructions | |||
that are used with the object that is pointed to. The additional | that are used with the object that is pointed to. The additional | |||
data can be dealt with in a number of ways, prepending or | data can be dealt with in a number of ways, prepending or | |||
appending to the content, but it is strongly suggested to it | appending to the content, but it is strongly suggested to it | |||
skipping to change at page 5, line 26 ¶ | skipping to change at page 5, line 26 ¶ | |||
An example of a structure which permits all of the above fields to | An example of a structure which permits all of the above fields to | |||
exist would look like the following. | exist would look like the following. | |||
COSE_Hash_V = ( | COSE_Hash_V = ( | |||
1 : int / tstr, # Algorithm identifier | 1 : int / tstr, # Algorithm identifier | |||
2 : bstr, # Hash value | 2 : bstr, # Hash value | |||
3 : tstr ?, # Location of object hashed | 3 : tstr ?, # Location of object hashed | |||
4 : any ? # object containing other details and things | 4 : any ? # object containing other details and things | |||
) | ) | |||
An alternate structure that could be used for situations where one is | An alternative structure that could be used for situations where one | |||
searching a group of objects for a match. In this case, the location | is searching a group of objects for a match. In this case, the | |||
would not be needed and adding extra data to the hash would be | location would not be needed and adding extra data to the hash would | |||
counterproductive. This results in a structure that looks like this: | be counterproductive. This results in a structure that looks like | |||
this: | ||||
COSE_Hash_Find = [ | COSE_Hash_Find = [ | |||
hashAlg : int / tstr, | hashAlg : int / tstr, | |||
hashValue : bstr | hashValue : bstr | |||
] | ] | |||
3. Hash Algorithm Identifiers | 3. Hash Algorithm Identifiers | |||
3.1. SHA-1 Hash Algorithm | 3.1. SHA-1 Hash Algorithm | |||
skipping to change at page 6, line 42 ¶ | skipping to change at page 6, line 49 ¶ | |||
and some of the trade-offs involved. | and some of the trade-offs involved. | |||
* *SHA-256/64* provides a truncated hash. The length of the | * *SHA-256/64* provides a truncated hash. The length of the | |||
truncation is designed to allow for smaller transmission size. | truncation is designed to allow for smaller transmission size. | |||
The trade-off is that the odds that a collision will occur | The trade-off is that the odds that a collision will occur | |||
increase proportionally. Locations that use this hash function | increase proportionally. Locations that use this hash function | |||
need either to analysis the potential problems with having a | need either to analysis the potential problems with having a | |||
collision occur, or where the only function of the hash is to | collision occur, or where the only function of the hash is to | |||
narrow the possible choices. | narrow the possible choices. | |||
The latter is the case for [I-D.ietf-cose-x509], the hash value is | The latter is the case for [I-D.ietf-cose-x509]. The hash value | |||
used to select possible certificates and, if there are multiple | is used to select possible certificates and, if there are multiple | |||
choices then, each choice can be tested by using the public key. | choices then, each choice can be tested by using the public key. | |||
* *SHA-256* is probably the most common hash function used | * *SHA-256* is probably the most common hash function used | |||
currently. SHA-256 is an efficient hash algorithm for 32-bit | currently. SHA-256 is an efficient hash algorithm for 32-bit | |||
hardware. | hardware. | |||
* *SHA-384* and *SHA-512* hash functions are efficient for 64-bit | * *SHA-384* and *SHA-512* hash functions are efficient for 64-bit | |||
hardware. | hardware. | |||
* *SHA-512/256* provides a hash function that runs more efficiently | * *SHA-512/256* provides a hash function that runs more efficiently | |||
on 64-bit hardware, but offers the same security levels as SHA- | on 64-bit hardware, but offers the same security levels as SHA- | |||
256. | 256. | |||
The COSE capabilities for these algorithms is an empty array. | The COSE capabilities array for these algorithms is empty. | |||
+-----------+-----+-----------+--------------+---------+------------+ | +-----------+-----+-----------+--------------+---------+------------+ | |||
| Name |Value|Description| Capabilities |Reference|Recommended | | | Name |Value|Description| Capabilities |Reference|Recommended | | |||
+===========+=====+===========+==============+=========+============+ | +===========+=====+===========+==============+=========+============+ | |||
|SHA-256/64 |TBD1 | SHA-2 | [] | [This |Filter Only | | |SHA-256/64 |TBD1 | SHA-2 | [] | [This |Filter Only | | |||
| | | 256-bit | |Document]| | | | | | 256-bit | |Document]| | | |||
| | | Hash | | | | | | | | Hash | | | | | |||
| | | truncated | | | | | | | | truncated | | | | | |||
| | |to 64-bits | | | | | | | |to 64-bits | | | | | |||
+-----------+-----+-----------+--------------+---------+------------+ | +-----------+-----+-----------+--------------+---------+------------+ | |||
skipping to change at page 7, line 43 ¶ | skipping to change at page 8, line 7 ¶ | |||
| | | 512-bit | |Document]| | | | | | 512-bit | |Document]| | | |||
| | | Hash | | | | | | | | Hash | | | | | |||
| | | truncated | | | | | | | | truncated | | | | | |||
| | |to 256-bits| | | | | | | |to 256-bits| | | | | |||
+-----------+-----+-----------+--------------+---------+------------+ | +-----------+-----+-----------+--------------+---------+------------+ | |||
Table 2: SHA-2 Hash Algorithms | Table 2: SHA-2 Hash Algorithms | |||
3.3. SHAKE Algorithms | 3.3. SHAKE Algorithms | |||
The family SHA-3 hash algorithms [FIPS-202] was the result of a | The family of SHA-3 hash algorithms [FIPS-202] was the result of a | |||
competition run by NIST. The pair of algorithms known as SHAKE-128 | competition run by NIST. The pair of algorithms known as SHAKE-128 | |||
and SHAKE-256 are the instances of SHA-3 that are currently being | and SHAKE-256 are the instances of SHA-3 that are currently being | |||
standardized in the IETF. | standardized in the IETF. | |||
The SHA-3 hash algorithms have a significantly different structure | The SHA-3 hash algorithms have a significantly different structure | |||
than the SHA-2 hash algorithms. One of the benefits of this | than the SHA-2 hash algorithms. One of the benefits of this | |||
differences is that when computing a shorter SHAKE hash value, the | differences is that when computing a shorter SHAKE hash value, the | |||
value is not a prefix of the result of computing the longer hash. | value is not a prefix of the result of computing the longer hash. | |||
Unlike the SHA-2 hash functions, no algorithm identifier is created | Unlike the SHA-2 hash functions, no algorithm identifier is created | |||
for shorter lengths. Applications can specify a minimum length for | for shorter lengths. Applications can specify a minimum length for | |||
any hash function. A validator can infer the actual length from the | any hash function. A validator can infer the actual length from the | |||
hash value in these cases. | hash value in these cases. | |||
The COSE capabilities for these algorithms is an empty array. | The COSE capabilities array for these algorithms is empty. | |||
+--------+-----+-------------+--------------+---------+-------------+ | +--------+-----+-------------+--------------+---------+-------------+ | |||
| Name |Value| Description | Capabilities |Reference| Recommended | | | Name |Value| Description | Capabilities |Reference| Recommended | | |||
+========+=====+=============+==============+=========+=============+ | +========+=====+=============+==============+=========+=============+ | |||
|SHAKE128|TBD10|128-bit SHAKE| [] | [This | Yes | | |SHAKE128|TBD10|128-bit SHAKE| [] | [This | Yes | | |||
| | | | |Document]| | | | | | | |Document]| | | |||
+--------+-----+-------------+--------------+---------+-------------+ | +--------+-----+-------------+--------------+---------+-------------+ | |||
|SHAKE256|TBD11|256-bit SHAKE| [] | [This | Yes | | |SHAKE256|TBD11|256-bit SHAKE| [] | [This | Yes | | |||
| | | | |Document]| | | | | | | |Document]| | | |||
+--------+-----+-------------+--------------+---------+-------------+ | +--------+-----+-------------+--------------+---------+-------------+ | |||
Table 3: SHAKE Hash Functions | Table 3: SHAKE Hash Functions | |||
4. IANA Considerations | 4. IANA Considerations | |||
The IANA actions in [I-D.ietf-cose-rfc8152bis-struct] and | ||||
[I-D.ietf-cose-rfc8152bis-algs] need to be executed before the | ||||
actions in this document. Where early allocation of data points has | ||||
been made, these should be preseved. | ||||
4.1. COSE Algorithm Registry | 4.1. COSE Algorithm Registry | |||
IANA is requested to register the following algorithms in the "COSE | IANA is requested to register the following algorithms in the "COSE | |||
Algorithms" registry. | Algorithms" registry. | |||
* The SHA-1 hash function found in Table 1. | * The SHA-1 hash function found in Table 1. | |||
* The set of SHA-2 hash functions found in Table 2. | * The set of SHA-2 hash functions found in Table 2. | |||
* The set of SHAKE hash functions found in Table 3. | * The set of SHAKE hash functions found in Table 3. | |||
Many of the hash values produced are relatively long and as such the | Many of the hash values produced are relatively long and as such the | |||
use of a two byte algorithm identifier seems reasonable. SHA-1 is | use of a two byte algorithm identifier seems reasonable. SHA-1 is | |||
tagged as deprecated and thus a longer algorithm identifier is | tagged as deprecated and thus a longer algorithm identifier is | |||
appropriate even though it is a shorter hash value. | appropriate even though it is a shorter hash value. | |||
In addition, IANA is to add the value of 'Filter Only' to the set of | In addition, IANA is to add the value of 'Filter Only' to the set of | |||
legal values for the 'Recommended' column. This value is only to be | legal values for the 'Recommended' column. This value is only to be | |||
used for hash functions and indicates that it is not to be used for | used for hash functions and indicates that it is not to be used for | |||
purposes which require collision resistance. | purposes which require collision resistance. IANA is requested to | |||
add this document to the reference section for this table due to this | ||||
addition. | ||||
5. Security Considerations | 5. Security Considerations | |||
The security considerations have already been called out as part of | Protocols need to perform a careful analysis of the properties of a | |||
the previous text. The following issues need to be dealt with: | hash function that are needed and how they map onto the possible | |||
attacks. In particular, one needs to distinguish between those uses | ||||
* Protocols need to perform a careful analysis of the properties of | that need the cryptographic properties, i.e. collision resistance, | |||
a hash function that are needed and how they map onto the possible | and properties that correspond to possible object identification. | |||
attacks. In particular, one needs to distinguish between those | The different attacks correspond to who or what is being protected: | |||
uses that need the cryptographic properties, i.e. collision | is it the originator that is the attacker or a third party? This is | |||
resistance, and properties that correspond to possible object | the difference between collision resistance and second pre-image | |||
identification. The different attacks correspond to who or what | resistance. As a general rule, longer hash values are "better" than | |||
is being protected, is it the originator that is the attacker or a | short ones, but trade-offs of transmission size, timeliness, and | |||
third party? This is the difference between collision resistance | security all need to be included as part of this analysis. In many | |||
and second pre-image resistance. As a general rule, longer hash | cases the value being hashed is a public value, as such pre-image | |||
values are "better" than short ones, but trade-offs of | resistance is not part of this analysis. | |||
transmission size, timeliness, and security all need to be | ||||
included as part of this analysis. In many cases the value being | ||||
hashed is a public value, as such pre-image resistance is not part | ||||
of this analysis. | ||||
* Algorithm agility needs to be considered a requirement for any use | Algorithm agility needs to be considered a requirement for any use of | |||
of hash functions. As with any cryptographic function, hash | hash functions. As with any cryptographic function, hash functions | |||
functions are under constant attack and the strength of hash | are under constant attack and the strength of hash algorithms will be | |||
algorithms will be reduced over time. | reduced over time. | |||
6. Normative References | 6. Normative References | |||
[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>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[I-D.ietf-cose-rfc8152bis-struct] | [I-D.ietf-cose-rfc8152bis-struct] | |||
Schaad, J., "CBOR Object Signing and Encryption (COSE): | Schaad, J., "CBOR Object Signing and Encryption (COSE): | |||
Structures and Process", Work in Progress, Internet-Draft, | Structures and Process", Work in Progress, Internet-Draft, | |||
draft-ietf-cose-rfc8152bis-struct-07, 17 November 2019, | draft-ietf-cose-rfc8152bis-struct-09, 14 May 2020, | |||
<https://tools.ietf.org/html/draft-ietf-cose-rfc8152bis- | <https://tools.ietf.org/html/draft-ietf-cose-rfc8152bis- | |||
struct-07>. | struct-09>. | |||
[FIPS-180-4] | [FIPS-180-4] | |||
National Institute of Standards and Technology, "Secure | National Institute of Standards and Technology, "Secure | |||
Hash Standard", FIPS PUB 180-4, August 2015. | Hash Standard", FIPS PUB 180-4, August 2015. | |||
[FIPS-202] National Institute of Standards and Technology, "SHA-3 | [FIPS-202] National Institute of Standards and Technology, "SHA-3 | |||
Standard: Permutation-Based Hash and Extendable-Output | Standard: Permutation-Based Hash and Extendable-Output | |||
Functions", FIPS PUB 202, August 2015. | Functions", FIPS PUB 202, August 2015. | |||
[COSE] Schaad, J., "CBOR Object Signing and Encryption (COSE)", | [COSE] Schaad, J., "CBOR Object Signing and Encryption (COSE)", | |||
skipping to change at page 10, line 19 ¶ | skipping to change at page 10, line 36 ¶ | |||
[CMS] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, | [CMS] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, | |||
RFC 5652, DOI 10.17487/RFC5652, September 2009, | RFC 5652, DOI 10.17487/RFC5652, September 2009, | |||
<https://www.rfc-editor.org/info/rfc5652>. | <https://www.rfc-editor.org/info/rfc5652>. | |||
[ESS] Hoffman, P., Ed., "Enhanced Security Services for S/MIME", | [ESS] Hoffman, P., Ed., "Enhanced Security Services for S/MIME", | |||
RFC 2634, DOI 10.17487/RFC2634, June 1999, | RFC 2634, DOI 10.17487/RFC2634, June 1999, | |||
<https://www.rfc-editor.org/info/rfc2634>. | <https://www.rfc-editor.org/info/rfc2634>. | |||
[I-D.ietf-cose-x509] | [I-D.ietf-cose-x509] | |||
Schaad, J., "CBOR Object Signing and Encryption (COSE): | Schaad, J., "CBOR Object Signing and Encryption (COSE): | |||
Headers for carrying and referencing X.509 certificates", | Header parameters for carrying and referencing X.509 | |||
Work in Progress, Internet-Draft, draft-ietf-cose-x509-05, | certificates", Work in Progress, Internet-Draft, draft- | |||
4 November 2019, | ietf-cose-x509-06, 9 March 2020, | |||
<https://tools.ietf.org/html/draft-ietf-cose-x509-05>. | <https://tools.ietf.org/html/draft-ietf-cose-x509-06>. | |||
[RFC3174] Eastlake 3rd, D. and P. Jones, "US Secure Hash Algorithm 1 | [RFC3174] Eastlake 3rd, D. and P. Jones, "US Secure Hash Algorithm 1 | |||
(SHA1)", RFC 3174, DOI 10.17487/RFC3174, September 2001, | (SHA1)", RFC 3174, DOI 10.17487/RFC3174, September 2001, | |||
<https://www.rfc-editor.org/info/rfc3174>. | <https://www.rfc-editor.org/info/rfc3174>. | |||
[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>. | |||
[I-D.ietf-cose-rfc8152bis-algs] | ||||
Schaad, J., "CBOR Object Signing and Encryption (COSE): | ||||
Initial Algorithms", Work in Progress, Internet-Draft, | ||||
draft-ietf-cose-rfc8152bis-algs-08, 14 May 2020, | ||||
<https://tools.ietf.org/html/draft-ietf-cose-rfc8152bis- | ||||
algs-08>. | ||||
[SHA-1-collision] | [SHA-1-collision] | |||
Stevens, M., Bursztein, E., Karpman, P., Albertini, A., | Stevens, M., Bursztein, E., Karpman, P., Albertini, A., | |||
and Y. Markov, "The first collision for full SHA-1", | and Y. Markov, "The first collision for full SHA-1", | |||
February 2017, | February 2017, | |||
<https://shattered.io/static/shattered.pdf>. | <https://shattered.io/static/shattered.pdf>. | |||
Author's Address | Author's Address | |||
Jim Schaad | Jim Schaad | |||
August Cellars | August Cellars | |||
End of changes. 23 change blocks. | ||||
53 lines changed or deleted | 64 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/ |