| rfc9679.original | rfc9679.txt | |||
|---|---|---|---|---|
| COSE K. Isobe | Internet Engineering Task Force (IETF) K. Isobe | |||
| Internet-Draft SECOM CO., LTD. | Request for Comments: 9679 SECOM CO., LTD. | |||
| Intended status: Standards Track H. Tschofenig | Category: Standards Track H. Tschofenig | |||
| Expires: 10 March 2025 H-BRS | ISSN: 2070-1721 H-BRS | |||
| O. Steele | O. Steele | |||
| Transmute | Transmute | |||
| 6 September 2024 | December 2024 | |||
| CBOR Object Signing and Encryption (COSE) Key Thumbprint | CBOR Object Signing and Encryption (COSE) Key Thumbprint | |||
| draft-ietf-cose-key-thumbprint-06 | ||||
| Abstract | Abstract | |||
| This specification defines a method for computing a hash value over a | This specification defines a method for computing a hash value over a | |||
| CBOR Object Signing and Encryption (COSE) Key. It specifies which | CBOR Object Signing and Encryption (COSE) Key. It specifies which | |||
| fields within the COSE Key structure are included in the | fields within the COSE Key structure are included in the | |||
| cryptographic hash computation, the process for creating a canonical | cryptographic hash computation, the process for creating a canonical | |||
| representation of these fields, and how to hash the resulting byte | representation of these fields, and how to hash the resulting byte | |||
| sequence. The resulting hash value, referred to as a "thumbprint," | sequence. The resulting hash value, referred to as a "thumbprint", | |||
| can be used to identify or select the corresponding key. | can be used to identify or select the corresponding key. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 10 March 2025. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9679. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 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 | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
| 3. COSE Key Thumbprint . . . . . . . . . . . . . . . . . . . . . 3 | 3. COSE Key Thumbprint | |||
| 4. Required COSE Key Parameters . . . . . . . . . . . . . . . . 3 | 4. Required COSE Key Parameters | |||
| 4.1. Octet Key Pair (OKP) . . . . . . . . . . . . . . . . . . 4 | 4.1. Octet Key Pair (OKP) | |||
| 4.2. Elliptic Curve Keys with X- and Y-Coordinate Pair . . . . 4 | 4.2. Elliptic Curve Keys with X- and Y-Coordinates | |||
| 4.3. RSA Public Keys . . . . . . . . . . . . . . . . . . . . . 4 | 4.3. RSA Public Keys | |||
| 4.4. Symmetric Keys . . . . . . . . . . . . . . . . . . . . . 5 | 4.4. Symmetric Keys | |||
| 4.5. HSS-LMS . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.5. HSS-LMS Keys | |||
| 4.6. Others . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.6. Others | |||
| 5. Miscellaneous Considerations . . . . . . . . . . . . . . . . 5 | 5. Miscellaneous Considerations | |||
| 5.1. Why Not Include Optional COSE Key Parameters? . . . . . . 5 | 5.1. Why Not Include Optional COSE Key Parameters? | |||
| 5.2. Selection of Hash Function . . . . . . . . . . . . . . . 6 | 5.2. Selection of Hash Function | |||
| 5.3. Thumbprints of Keys Not in COSE Key Format . . . . . . . 6 | 5.3. Thumbprints of Keys Not in COSE Key Format | |||
| 5.4. Relationship to Digests of X.509 Values . . . . . . . . . 6 | 5.4. Relationship to Digests of X.509 Values | |||
| 5.5. Confirmation Method . . . . . . . . . . . . . . . . . . . 7 | 5.5. Relationship to JSON Web Key Thumbprints | |||
| 5.6. COSE Key Thumbprint URIs . . . . . . . . . . . . . . . . 7 | 5.6. Confirmation Method | |||
| 6. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 5.7. COSE Key Thumbprint URIs | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 6. Example | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 7. Security Considerations | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 | 8. IANA Considerations | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 9. References | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 9.1. Normative References | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 12 | 9.2. Informative References | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Acknowledgements | |||
| Authors' Addresses | ||||
| 1. Introduction | 1. Introduction | |||
| This specification defines a method for applying a cryptographic hash | This specification defines a method for applying a cryptographic hash | |||
| function to a CBOR Object Signing and Encryption (COSE) Key structure | function to a CBOR Object Signing and Encryption (COSE) Key structure | |||
| [RFC9052], resulting in a hash value known as a "thumbprint." To | [RFC9052], resulting in a hash value known as a "thumbprint". To | |||
| achieve this, the document specifies which fields in the COSE Key | achieve this, the document specifies which fields in the COSE Key | |||
| structure are included in the hash computation, the process for | structure are included in the hash computation, the process for | |||
| creating a canonical form of these fields, and how to hash the | creating a canonical form of these fields, and how to hash the | |||
| resulting byte sequence. One of the primary use cases for this | resulting byte sequence. One of the primary use cases for this | |||
| thumbprint is as a naming scheme for identifying or selecting the | thumbprint is as a naming scheme for identifying or selecting the | |||
| key, such as by using the COSE Key Thumbprint value as a "kid" (key | key, such as by using the COSE Key Thumbprint value as a "kid" (key | |||
| ID). Another key use case involves key derivation functions that use | ID). Another key use case involves key derivation functions that use | |||
| the thumbprints of public keys from the endpoints, along with other | the thumbprints of public keys from the endpoints, along with other | |||
| context, to derive a symmetric key. | application context, to derive a symmetric key. | |||
| This specification outlines how thumbprints of COSE Keys are | This specification outlines how thumbprints of COSE Keys are | |||
| generated for both asymmetric and symmetric keys (see Section 3 and | generated for both asymmetric and symmetric keys (see Sections 3 and | |||
| Section 4). Additionally, it introduces a new CBOR Web Token (CWT) | 4). Additionally, it introduces a new CBOR Web Token (CWT) | |||
| confirmation method, which is added to the IANA "CWT Confirmation | confirmation method, which has been added to the IANA "CWT | |||
| Methods" registry established by [RFC8747]. For further details on | Confirmation Methods" registry established by [RFC8747]. For further | |||
| the use of a confirmation claim in a CWT with a proof-of-possession | details on the use of a confirmation claim in a CWT with a proof-of- | |||
| key, refer to Section 3.1 of [RFC8747]. | possession key, refer to Section 3.1 of [RFC8747]. | |||
| 2. Terminology | 2. Terminology | |||
| 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 | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. COSE Key Thumbprint | 3. COSE Key Thumbprint | |||
| The thumbprint of a COSE Key MUST be computed as follows: | The thumbprint of a COSE Key MUST be computed as follows: | |||
| 1. Construct a COSE_Key structure (see Section 7 of [RFC9052]) | 1. Construct a COSE_Key structure (see Section 7 of [RFC9052]) | |||
| containing only the required parameters representing the key as | containing only the required parameters representing the key as | |||
| described in Section 4 of this document. | described in Section 4 of this document. | |||
| 2. Apply the deterministic encoding described in Section 4.2.1 of | 2. Apply the deterministic encoding described in Section 4.2.1 of | |||
| [RFC8949] to the representation constructed in step (1). | [RFC8949] to the representation constructed in step 1. | |||
| 3. Hash the bytes produced in step (2) with a cryptographic hash | 3. Hash the bytes produced in step 2 with a cryptographic hash | |||
| function H. For example, SHA-256 [RFC6234] may be used as a hash | function H. For example, SHA-256 [RFC6234] may be used as a hash | |||
| function. | function. | |||
| The details of this computation are further described in subsequent | The details of this computation are further described in subsequent | |||
| sections. | sections. | |||
| The SHA-256 hash algorithm MUST be supported, other algorithms MAY be | The SHA-256 hash algorithm MUST be supported; other algorithms MAY be | |||
| supported. | supported. | |||
| 4. Required COSE Key Parameters | 4. Required COSE Key Parameters | |||
| Only the required parameters of a key's representation are used when | Only the required parameters of a key's representation are used when | |||
| computing its COSE Key Thumbprint value. This section summarizes the | computing its COSE Key Thumbprint value. This section summarizes the | |||
| required parameters. | required parameters. | |||
| The "kty" (label: 1) element MUST be present for all key types, and | The "kty" (label: 1) element MUST be present for all key types, and | |||
| the integer value specified in the IANA COSE Key Types registry MUST | the integer value specified in the IANA "COSE Key Types" registry | |||
| be used. The tstr data type is not used with the kty element. | MUST be used. The tstr data type is not used with the "kty" element. | |||
| Many COSE Key parameters are specific to the chosen key type. The | Many COSE Key parameters are specific to the chosen key type. The | |||
| following subsections list the required parameters for commonly used | following subsections list the required parameters for commonly used | |||
| key types. | key types. | |||
| 4.1. Octet Key Pair (OKP) | 4.1. Octet Key Pair (OKP) | |||
| The required parameters for elliptic curve public keys that use the | The required parameters for elliptic curve public keys that use the | |||
| OKP key type, such as X25519, are: | Octet Key Pair (OKP) key type, such as X25519, are: | |||
| * "kty" (label: 1, data type: int, value: 1) | * "kty" (label: 1, data type: int, value: 1) | |||
| * "crv" (label: -1, value: int) | * "crv" (label: -1, value: int) | |||
| * "x" (label: -2, value: bstr) | * "x" (label: -2, value: bstr) | |||
| Details can be found in Section 7.1 of [RFC9053]. | Further details are described in Section 7.1 of [RFC9053]. | |||
| 4.2. Elliptic Curve Keys with X- and Y-Coordinate Pair | 4.2. Elliptic Curve Keys with X- and Y-Coordinates | |||
| The required parameters for elliptic curve public keys that use the | The required parameters for elliptic curve public keys that use the | |||
| EC2 key type, such as NIST P-256, are: | EC2 key type, such as NIST P-256, are: | |||
| * "kty" (label: 1, data type: int, value: 2) | * "kty" (label: 1, data type: int, value: 2) | |||
| * "crv" (label: -1, data type: int) | * "crv" (label: -1, data type: int) | |||
| * "x" (label: -2, data type: bstr) | * "x" (label: -2, data type: bstr) | |||
| * "y" (label: -3, data type: bstr) | * "y" (label: -3, data type: bstr) | |||
| Details can be found in Section 7.1 of [RFC9053]. | Further details are described in Section 7.1 of [RFC9053]. | |||
| Note: [RFC9052] supports both compressed and uncompressed point | Note: [RFC9052] supports both compressed and uncompressed point | |||
| representations. For interoperability, implementations adhering to | representations. For interoperability, implementations adhering to | |||
| this specification MUST use the uncompressed point representation. | this specification MUST use the uncompressed point representation. | |||
| Therefore, the y-coordinate is expressed as a bstr. If an | Therefore, the y-coordinate is expressed as a bstr. If an | |||
| implementation uses the compressed point representation, it MUST | implementation uses the compressed point representation, it MUST | |||
| first convert it to the uncompressed form for the purpose of | first convert it to the uncompressed form for the purpose of | |||
| thumbprint calculation. | thumbprint calculation. | |||
| 4.3. RSA Public Keys | 4.3. RSA Public Keys | |||
| skipping to change at page 5, line 4 ¶ | skipping to change at line 189 ¶ | |||
| first convert it to the uncompressed form for the purpose of | first convert it to the uncompressed form for the purpose of | |||
| thumbprint calculation. | thumbprint calculation. | |||
| 4.3. RSA Public Keys | 4.3. RSA Public Keys | |||
| The required parameters for an RSA public key are: | The required parameters for an RSA public key are: | |||
| * "kty" (label: 1, data type: int, value: 3) | * "kty" (label: 1, data type: int, value: 3) | |||
| * "n" (label: -1, data type: bstr) | * "n" (label: -1, data type: bstr) | |||
| * "e" (label: -2, data type: bstr) | * "e" (label: -2, data type: bstr) | |||
| 4.4. Symmetric Keys | 4.4. Symmetric Keys | |||
| The required parameters for a symmetric key are: | The required parameters for a symmetric key are: | |||
| * "kty" (label: 1, data type: int, value: 4) | * "kty" (label: 1, data type: int, value: 4) | |||
| * "k" (label: -1, data type: bstr) | * "k" (label: -1, data type: bstr) | |||
| 4.5. HSS-LMS | 4.5. HSS-LMS Keys | |||
| The required parameters for HSS-LMS keys are: | The required parameters for HSS-LMS keys are: | |||
| * "kty" (label: 1, data type: int, value: 5) | * "kty" (label: 1, data type: int, value: 5) | |||
| * "pub" (label: -1, data type: bstr) | * "pub" (label: -1, data type: bstr) | |||
| 4.6. Others | 4.6. Others | |||
| As other key type values are defined, the specifications defining | As other key type values are defined, their defining specifications | |||
| them should be similarly consulted to determine which parameters, in | should be similarly consulted to determine which parameters, in | |||
| addition to the "kty" element, are required. | addition to the "kty" element, are required. | |||
| 5. Miscellaneous Considerations | 5. Miscellaneous Considerations | |||
| 5.1. Why Not Include Optional COSE Key Parameters? | 5.1. Why Not Include Optional COSE Key Parameters? | |||
| Optional parameters of COSE Keys are intentionally not included in | Optional parameters of COSE Keys are intentionally not included in | |||
| the COSE Key Thumbprint computation so that their absence or presence | the COSE Key Thumbprint computation so that their absence or presence | |||
| in the COSE Key does not alter the resulting value. The COSE Key | in the COSE Key does not alter the resulting value. The COSE Key | |||
| Thumbprint is a digest of the essential parameters required to | Thumbprint is a digest of the ordered essential parameters needed to | |||
| represent the key as a COSE Key, rather than any additional data that | represent a COSE Key, with all other parameters excluded. | |||
| might accompany the key. | ||||
| By excluding optional parameters, the COSE Key Thumbprint | By excluding optional parameters, the COSE Key Thumbprint | |||
| consistently refers to the key itself, not to a key with additional | consistently refers to the key itself, not to a key with additional | |||
| attributes. Different application contexts may include various | attributes. Different application contexts may include various | |||
| optional attributes in the COSE Key structure. If these optional | optional attributes in the COSE Key structure. If these optional | |||
| parameters were included in the thumbprint calculation, the resulting | parameters were included in the thumbprint calculation, the resulting | |||
| values could differ for the same key depending on the attributes | values could differ for the same key depending on the attributes | |||
| present. Including only the required parameters ensures that the | present. Including only the required parameters ensures that the | |||
| COSE Key Thumbprint remains consistent for a given key, regardless of | COSE Key Thumbprint remains consistent for a given key, regardless of | |||
| any additional attributes. | any additional attributes. | |||
| skipping to change at page 6, line 30 ¶ | skipping to change at line 259 ¶ | |||
| use the thumbprint value as a "kid" (key ID). In such scenarios, the | use the thumbprint value as a "kid" (key ID). In such scenarios, the | |||
| consumer of the "kid" treats it as an opaque value solely for key | consumer of the "kid" treats it as an opaque value solely for key | |||
| selection. | selection. | |||
| However, when multiple parties are involved in reproducing and | However, when multiple parties are involved in reproducing and | |||
| comparing the COSE Key Thumbprint, it is crucial that they know and | comparing the COSE Key Thumbprint, it is crucial that they know and | |||
| use the same hash function to ensure consistent results. | use the same hash function to ensure consistent results. | |||
| 5.3. Thumbprints of Keys Not in COSE Key Format | 5.3. Thumbprints of Keys Not in COSE Key Format | |||
| Keys that are in other formats can be represented as COSE Keys. Any | Keys that are in other formats can be represented as COSE Keys. The | |||
| party in possession of a key that is represented as a COSE Key can | only prerequisites are that the COSE_Key representation of the key be | |||
| use the COSE Key Thumbprint. | defined and the party creating the COSE Key Thumbprint be in | |||
| possession of the necessary key material. | ||||
| 5.4. Relationship to Digests of X.509 Values | 5.4. Relationship to Digests of X.509 Values | |||
| COSE Key Thumbprint values are computed on the COSE Key object | COSE Key Thumbprint values are computed on the COSE Key object | |||
| required to represent a key, rather than all parameters of a COSE Key | containing only essential parameters in a specific order. Thus, they | |||
| that the key is represented in. Thus, they are more analogous to | are more analogous to applications that use digests of X.509 Subject | |||
| applications that use digests of X.509 Subject Public Key Info (SPKI) | Public Key Info (SPKI) values, which are defined in Section 4.1.2.7 | |||
| values, which are defined in Section 4.1.2.7 of [RFC5280], than to | of [RFC5280], than to applications that use digests of complete | |||
| applications that use digests of complete certificate values, as the | certificate values, as the "x5t" (X.509 certificate SHA-1 thumbprint) | |||
| "x5t" (X.509 certificate SHA-1 thumbprint) [RFC9360] value defined | [RFC9360] value defined for X.509 certificate objects does. While | |||
| for X.509 certificate objects does. While logically equivalent to a | logically equivalent to a digest of the SPKI representation of the | |||
| digest of the SPKI representation of the key, a COSE Key Thumbprint | key, a COSE Key Thumbprint is computed over the CBOR representation | |||
| is computed over the CBOR representation of that key, rather than | of that key rather than over an ASN.1 representation of it. | |||
| over an ASN.1 representation of it. | ||||
| 5.5. Confirmation Method | 5.5. Relationship to JSON Web Key Thumbprints | |||
| [RFC8747] introduced confirmation methods for use with CBOR Web | The ckt of a COSE Key, as described in Section 7 of [RFC9052], and | |||
| Tokens (CWTs) with the addition of the "cnf" claim. CWTs have been | the jkt of a JSON Web Key, as described in Section 4 of [RFC7517], | |||
| defined in [RFC8392]. This specification adds a new confirmation | are different even when the underlying cryptographic key material is | |||
| method based on COSE Key Thumbprints. | the same. | |||
| The proof-of-possession key is identified using the "ckt" claim, the | This document does not register a JWT confirmation method [RFC7800] | |||
| COSE Key Thumbprint claim. This claim contains the value of the COSE | for using "ckt" as a confirmation method for a JWT or a CWT | |||
| Key Thumbprint encoded as a binary string. Instead of communicating | confirmation method [RFC8747] for using "jkt" as a confirmation | |||
| the actual COSE Key only the thumbprint is conveyed. This approach | method for a CWT. | |||
| assumes that the recipient is able to obtain the identified COSE Key | ||||
| using the thumbprint contained in the "ckt" claim. In this approach, | ||||
| the issuer of a CWT declares that the presenter possesses a | ||||
| particular key and that the recipient can cryptographically confirm | ||||
| the presenter's proof of possession of the key by including a "ckt" | ||||
| claim in the CWT. | ||||
| The following example demonstrates the use of the "ckt" claim in a | 5.6. Confirmation Method | |||
| CWT as part of the confirmation method (with line-breaks inserted for | ||||
| [RFC8747] introduces confirmation methods for use with CWTs with the | ||||
| addition of the "cnf" claim. CWTs are defined in [RFC8392]. This | ||||
| specification adds a new confirmation method based on COSE Key | ||||
| Thumbprints. | ||||
| The proof-of-possession key is identified using the "ckt" member of | ||||
| the CWT confirmation claim "cnf". This member contains the value of | ||||
| the COSE Key Thumbprint encoded as a binary string. Instead of | ||||
| communicating the actual COSE Key, only the thumbprint is conveyed. | ||||
| This approach assumes that the recipient is able to obtain the | ||||
| identified COSE Key using the thumbprint contained in the "ckt" | ||||
| member. In this approach, the issuer of a CWT declares that the | ||||
| presenter possesses a particular key and that the recipient can | ||||
| cryptographically confirm the presenter's proof of possession of the | ||||
| key by including a "ckt" CWT confirmation method member in the CWT. | ||||
| The following example demonstrates the use of the "ckt" member in a | ||||
| CWT as part of the confirmation method (with line breaks inserted for | ||||
| editorial reasons): | editorial reasons): | |||
| { | { | |||
| /iss/ 1 : "coaps://as.example.com", | /iss/ 1 : "coaps://as.example.com", | |||
| /aud/ 3 : "coaps://resource.example.org", | /aud/ 3 : "coaps://resource.example.org", | |||
| /exp/ 4 : 1361398824, | /exp/ 4 : 1361398824, | |||
| /cnf/ 8 : { | /cnf/ 8 : { | |||
| /ckt/ [[TBD1]] : h'496bd8afadf307e5b08c64b0421bf9dc | /ckt/ 5 : h'496bd8afadf307e5b08c64b0421bf9dc | |||
| 01528a344a43bda88fadd1669da253ec' | 01528a344a43bda88fadd1669da253ec' | |||
| } | } | |||
| } | } | |||
| Section 8 registers the "ckt" claim and the confirmation method. The | Section 8 registers the "ckt" CWT confirmation method member. The | |||
| "ckt" claim is expected to be used in the "cnf" claim. | "ckt" member is used in the "cnf" claim. | |||
| 5.6. COSE Key Thumbprint URIs | 5.7. COSE Key Thumbprint URIs | |||
| This specification defines Uniform Resource Identifiers (URIs) to | This specification defines Uniform Resource Identifiers (URIs) to | |||
| represent a COSE Key Thumbprint value. The design follows the work | represent a COSE Key Thumbprint value. The design follows the work | |||
| of the JSON Web Key (JWK) Thumbprint URIs, specified in [RFC9278]. | of JSON Web Key (JWK) Thumbprint URIs, as specified in [RFC9278]. | |||
| This enables COSE Key Thumbprints to be used, for example, as key | This enables COSE Key Thumbprints to be used, for example, as key | |||
| identifiers in contexts requiring URIs. This specification defines a | identifiers in contexts requiring URIs. This specification defines a | |||
| URI prefix indicating that the portion of the URI following the | URI prefix indicating that the portion of the URI following the | |||
| prefix is a COSE Key Thumbprint. | prefix is a COSE Key Thumbprint. | |||
| The following URI prefix is defined to indicate that the portion of | The following URI prefix is defined to indicate that the portion of | |||
| the URI following the prefix is a COSE Key Thumbprint: | the URI following the prefix is a COSE Key Thumbprint: | |||
| urn:ietf:params:oauth:ckt | urn:ietf:params:oauth:ckt | |||
| To make the hash algorithm being used explicit in a URI, the prefix | To make the hash algorithm being used explicit in a URI, the prefix | |||
| is followed by a hash algorithm identifier and a COSE Key Thumbprint | is followed by a hash algorithm identifier and a COSE Key Thumbprint | |||
| value, each separated by a colon character to form a URI representing | value, each separated by a colon character to form a URI representing | |||
| a COSE Key Thumbprint. | a COSE Key Thumbprint. | |||
| Hash algorithm identifiers used in COSE Key Thumbprint URIs MUST be | Hash algorithm identifiers used in COSE Key Thumbprint URIs MUST be | |||
| values from the "Hash Name String" column in the IANA "Named | values from the "Hash Name String" column in the IANA "Named | |||
| Information Hash Algorithm Registry" [IANA.Hash.Algorithms]. COSE | Information Hash Algorithm Registry" [IANA.Hash.Algorithms]. COSE | |||
| Key Thumbprint URIs with hash algorithm identifiers not found in this | Key Thumbprint URIs with hash algorithm identifiers not found in this | |||
| registry are not considered valid and applications MUST detect and | registry are not considered valid, and applications MUST detect and | |||
| handle this error, should it occur. | handle this error, should it occur. | |||
| Since the URN is encoded as a string, the output of the COSE Key | Since the URN is encoded as a string, the output of the COSE Key | |||
| Thumbprint computation described in Section 3 MUST be base64url | Thumbprint computation described in Section 3 MUST be base64url | |||
| encoded without padding. | encoded without padding. | |||
| [RFC7515] specifies Base64url encoding as follows: | [RFC7515] specifies base64url encoding as follows: | |||
| "Base64 encoding using the URL- and filename-safe character set | | Base64 encoding using the URL- and filename-safe character set | |||
| defined in Section 5 of RFC 4648 [RFC4648], with all trailing '=' | | defined in Section 5 of RFC 4648 [RFC4648], with all trailing '=' | |||
| characters omitted and without the inclusion of any line breaks, | | characters omitted (as permitted by Section 3.2 of [RFC7515]) and | |||
| whitespace, or other additional characters. Note that the base64url | | without the inclusion of any line breaks, whitespace, or other | |||
| encoding of the empty octet sequence is the empty string. (See | | additional characters. Note that the base64url encoding of the | |||
| Appendix C of [RFC7515] for notes on implementing base64url encoding | | empty octet sequence is the empty string. (See Appendix C of | |||
| without padding.)" | | [RFC7515] for notes on implementing base64url encoding without | |||
| | padding.) | ||||
| The base64url encoding of the thumbprint shown in Section 6 is shown | The base64url encoding of the thumbprint shown in Section 6 is shown | |||
| below (with a line-break added for readability purposes). | below (with a line break added for readability purposes). | |||
| SWvYr63zB-WwjGSwQhv53AFSijRKQ72oj63RZp2iU-w | SWvYr63zB-WwjGSwQhv53AFSijRKQ72oj63RZp2iU-w | |||
| The full example of a COSE Key Thumbprint URI is shown below, again | The full example of a COSE Key Thumbprint URI is shown below (with a | |||
| with a line-break added. | line break added for readability). | |||
| urn:ietf:params:oauth:ckt:sha-256: | urn:ietf:params:oauth:ckt:sha-256: | |||
| SWvYr63zB-WwjGSwQhv53AFSijRKQ72oj63RZp2iU-w | ||||
| SWvYr63zB-WwjGSwQhv53AFSijRKQ72oj63RZp2iU-w | ||||
| Note that the use of oauth in the namespace is to align with JWK | ||||
| Thumbprint URIs as described in [RFC9278]; however, these URIs are | ||||
| intended for use with applications and specifications not necessarily | ||||
| related to OAuth. | ||||
| 6. Example | 6. Example | |||
| This section demonstrates the COSE Key Thumbprint computation for the | This section demonstrates the COSE Key Thumbprint computation for the | |||
| following example COSE Key containing an ECC public key. | following example COSE Key containing an Elliptic Curve Cryptography | |||
| (ECC) public key. | ||||
| For better readability, the example is first presented in CBOR | For better readability, the example is first presented in CBOR | |||
| diagnostic format (with the long line broken for display purposes | diagnostic format (with the long line broken for display purposes | |||
| only). | only). | |||
| { | { | |||
| / kty set to EC2 = Elliptic Curve Keys / | / kty set to EC2 = Elliptic Curve Keys / | |||
| 1:2, | 1:2, | |||
| / crv set to P-256 / | / crv set to P-256 / | |||
| -1:1, | -1:1, | |||
| / public key: x-coordinate / | / public key: x-coordinate / | |||
| -2:h'65eda5a12577c2bae829437fe338701a10aaa375e1bb5b5de108de439c0 | -2:h'65eda5a12577c2bae829437fe338701a10aaa375e1bb5b5de108de439c0 | |||
| 8551d', | 8551d', | |||
| / public key: y-coordinate / | / public key: y-coordinate / | |||
| -3:h'1e52ed75701163f7f9e40ddf9f341b3dc9ba860af7e0ca7ca7e9eecd008 | -3:h'1e52ed75701163f7f9e40ddf9f341b3dc9ba860af7e0ca7ca7e9eecd008 | |||
| 4d19c', | 4d19c', | |||
| / kid is bstr, not used in COSE Key Thumbprint / | / kid is bstr, not used in COSE Key Thumbprint / | |||
| 2:h'1decade2facade3' | 2:h'496bd8afadf307e5b08c64b0421bf9dc01528a344a43bda88fadd1669da2 | |||
| 53ec' | ||||
| } | } | |||
| The example above corresponds to the following CBOR encoding (with | The example above corresponds to the following CBOR encoding (with | |||
| link breaks added for display purposes only): | link breaks added for display purposes only): | |||
| A50102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE108D | A50102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE108D | |||
| E439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0CA7CA7E9 | E439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0CA7CA7E9 | |||
| EECD0084D19C0258246D65726961646F632E6272616E64796275636B406275636B6C6 | EECD0084D19C025820496BD8AFADF307E5B08C64B0421BF9DC01528A344A43BDA88FA | |||
| 16E642E6578616D706C65 | DD1669DA253EC | |||
| Not all of the parameters from the example above are used in the COSE | Not all of the parameters from the example above are used in the COSE | |||
| Key Thumbprint computation since the required parameters of an | Key Thumbprint computation because the required parameters of an | |||
| elliptic curve public key are (as listed in Section 4.2) "kty", | elliptic curve public key are (as listed in Section 4.2) "kty", | |||
| "crv", "x", and "y". | "crv", "x", and "y". | |||
| The resulting COSE Key structure, in CBOR diagnostic format with | The resulting COSE Key structure, in CBOR diagnostic format with line | |||
| line-breaks added for better readability, with the minimum parameters | breaks added for better readability, with the minimum parameters in | |||
| in the correct order are. | the correct order are: | |||
| { | { | |||
| 1:2, | 1:2, | |||
| -1:1, | -1:1, | |||
| -2:h'65eda5a12577c2bae829437fe338701a | -2:h'65eda5a12577c2bae829437fe338701a | |||
| 10aaa375e1bb5b5de108de439c08551d', | 10aaa375e1bb5b5de108de439c08551d', | |||
| -3:h'1e52ed75701163f7f9e40ddf9f341b3d | -3:h'1e52ed75701163f7f9e40ddf9f341b3d | |||
| c9ba860af7e0ca7ca7e9eecd0084d19c' | c9ba860af7e0ca7ca7e9eecd0084d19c' | |||
| } | } | |||
| In CBOR encoding the result is (with line-breaks added for display | In CBOR encoding, the result is (with line breaks added for display | |||
| purposes only): | purposes only): | |||
| A40102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE | A40102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE | |||
| 108DE439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0 | 108DE439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0 | |||
| CA7CA7E9EECD0084D19C | CA7CA7E9EECD0084D19C | |||
| Using SHA-256, the resulting thumbprint is: | Using SHA-256, the resulting thumbprint is: | |||
| 496bd8afadf307e5b08c64b0421bf9dc01528a344a43bda88fadd1669da253ec | 496bd8afadf307e5b08c64b0421bf9dc01528a344a43bda88fadd1669da253ec | |||
| 7. Security Considerations | 7. Security Considerations | |||
| A COSE Key Thumbprint will only uniquely identify a particular key if | A COSE Key Thumbprint will only uniquely identify a particular key if | |||
| a single unambiguous COSE Key representation for that key is defined | a single unambiguous COSE Key representation for that key is defined | |||
| and used when computing the COSE Key Thumbprint. | ||||
| A COSE Key Thumbprint will only uniquely identify a particular key if | ||||
| a single unambiguous COSE Key representation for that key is defined | ||||
| and used when computing the COSE Key Thumbprint. Key identifiers are | and used when computing the COSE Key Thumbprint. Key identifiers are | |||
| not included in the thumbprint calculation (similarly to other | not included in the thumbprint calculation (similarly to other | |||
| optional parameters in the COSE_Key structure). If the inclusion of | optional parameters in the COSE_Key structure). If the inclusion of | |||
| specific optional parameters in the thumbprint calculation is | specific optional parameters in the thumbprint calculation is | |||
| important for a particular application, this specification would not | important for a particular application, this specification would not | |||
| be suitable. | be suitable. | |||
| While thumbprint values are useful for identifying legitimate keys, | While thumbprint values are useful for identifying legitimate keys, | |||
| comparing thumbprint values is not a reliable means of excluding the | comparing thumbprint values is not a reliable means of excluding the | |||
| use of particular keys (or transformations thereof). The reason is | use of particular keys (or transformations thereof). The reason is | |||
| that an attacker may supply a key that is a transformation of a key | because an attacker may supply a key that is a transformation of a | |||
| in order to have it appear to be a different key. For instance, if a | key in order for it to appear as a different key. For instance, if a | |||
| legitimate RSA key uses a modulus value N and an attacker supplies a | legitimate RSA key uses a modulus value N and an attacker supplies a | |||
| key with modulus 3*N, the modified key would still work about 1/3 of | key with modulus 3*N, the modified key would still work about 1/3 of | |||
| the time, but would appear to be a different key. | the time, but it would appear to be a different key. | |||
| Producing thumbprints of symmetric keys needs to be done with care. | Producing thumbprints of symmetric keys needs to be done with care. | |||
| Developers MUST ensure that the symmetric key has sufficient entropy | Developers MUST ensure that the symmetric key has sufficient entropy | |||
| to prevent attackers to precompute tables of symmetric keys with | to prevent attackers from precomputing tables of symmetric keys with | |||
| their corresponding hash values. This can be prevented if the | their corresponding hash values. This can be prevented if the | |||
| symmetric key is a randomly selected key of at least 128 bit length. | symmetric key is a randomly selected key of at least a 128-bit | |||
| Thumbprints MUST NOT be used with passwords or other low-entropy | length. Thumbprints MUST NOT be used with passwords or other low- | |||
| secrets. If a developer is unable to determine whether all symmetric | entropy secrets. If a developer is unable to determine whether all | |||
| keys used in an application have sufficient entropy, then thumbprints | symmetric keys used in an application have sufficient entropy, then | |||
| of symmetric keys MUST NOT be used. In general, using thumbprints of | thumbprints of symmetric keys MUST NOT be used. In general, using | |||
| symmetric keys should only be used in special applications. In most | thumbprints of symmetric keys should only be used in special | |||
| other deployment scenarios it is more appropriate to utilize a | applications. In most other deployment scenarios, it is more | |||
| different naming scheme for key identifiers. | appropriate to utilize a different naming scheme for key identifiers. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| IANA is requested to add the following entry to the IANA "CWT | IANA has added the following entry to the "CWT Confirmation Methods" | |||
| Confirmation Methods" registry established by [RFC8747]: | registry [IANA-CWT] established by [RFC8747]: | |||
| * Confirmation Method Name: ckt | ||||
| * Confirmation Method Description: COSE Key SHA-256 Thumbprint | ||||
| * JWT Confirmation Method Name: jkt | ||||
| * Confirmation Key: [[TBD1]] | ||||
| * Confirmation Value Type(s): binary string | ||||
| * Change Controller: IETF | ||||
| * Specification Document(s): [[This document]] | ||||
| Furthermore, IANA is requested to add a value to the IANA "OAuth URI" | ||||
| registry established with [RFC6755]: | ||||
| * URN: urn:ietf:params:oauth:ckt | ||||
| * Common Name: COSE Key Thumbprint URI | ||||
| * Change controller: IETF | ||||
| * Specification Document: [[This document]] | ||||
| 9. Acknowledgements | Confirmation Method Name: ckt | |||
| Confirmation Method Description: COSE Key SHA-256 Thumbprint | ||||
| JWT Confirmation Method Name: (none) | ||||
| Confirmation Key: 5 | ||||
| Confirmation Value Type(s): binary string | ||||
| Change Controller: IETF | ||||
| Specification Document(s): RFC 9679 | ||||
| We would like to thank the authors of [RFC7638] for their work on the | Furthermore, IANA has added a value to the "OAuth URI" registry | |||
| JSON Web Key (JWK) Thumbprint specification. This document applies | [IANA-OAuth] established by [RFC6755]: | |||
| JWK Thumbprints to COSE Key structures. | ||||
| Additionally, we would like to thank Carsten Bormann, Ilari | URN: urn:ietf:params:oauth:ckt | |||
| Liusvaara, Laurence Lundblade, Daisuke Ajitomi, Michael Richardson, | Common Name: COSE Key Thumbprint URI | |||
| Michael B. Jones, Mallory Knodel, Joel Jaeggli, Derrell Piper, | Change Controller: IETF | |||
| Patrik Fältström, Warren Kumari, Deb Cooley and Brendan Moran for | Specification Document(s): RFC 9679 | |||
| their feedback. | ||||
| 10. References | 9. References | |||
| 10.1. Normative References | 9.1. 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/rfc/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | |||
| Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, | Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, | |||
| <https://www.rfc-editor.org/rfc/rfc4648>. | <https://www.rfc-editor.org/info/rfc4648>. | |||
| [RFC6755] Campbell, B. and H. Tschofenig, "An IETF URN Sub-Namespace | [RFC6755] Campbell, B. and H. Tschofenig, "An IETF URN Sub-Namespace | |||
| for OAuth", RFC 6755, DOI 10.17487/RFC6755, October 2012, | for OAuth", RFC 6755, DOI 10.17487/RFC6755, October 2012, | |||
| <https://www.rfc-editor.org/rfc/rfc6755>. | <https://www.rfc-editor.org/info/rfc6755>. | |||
| [RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web | [RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web | |||
| Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May | Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May | |||
| 2015, <https://www.rfc-editor.org/rfc/rfc7515>. | 2015, <https://www.rfc-editor.org/info/rfc7515>. | |||
| [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/rfc/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | [RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | |||
| "CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392, | "CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392, | |||
| May 2018, <https://www.rfc-editor.org/rfc/rfc8392>. | May 2018, <https://www.rfc-editor.org/info/rfc8392>. | |||
| [RFC8747] Jones, M., Seitz, L., Selander, G., Erdtman, S., and H. | [RFC8747] Jones, M., Seitz, L., Selander, G., Erdtman, S., and H. | |||
| Tschofenig, "Proof-of-Possession Key Semantics for CBOR | Tschofenig, "Proof-of-Possession Key Semantics for CBOR | |||
| Web Tokens (CWTs)", RFC 8747, DOI 10.17487/RFC8747, March | Web Tokens (CWTs)", RFC 8747, DOI 10.17487/RFC8747, March | |||
| 2020, <https://www.rfc-editor.org/rfc/rfc8747>. | 2020, <https://www.rfc-editor.org/info/rfc8747>. | |||
| [RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object | [RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object | |||
| Representation (CBOR)", STD 94, RFC 8949, | Representation (CBOR)", STD 94, RFC 8949, | |||
| DOI 10.17487/RFC8949, December 2020, | DOI 10.17487/RFC8949, December 2020, | |||
| <https://www.rfc-editor.org/rfc/rfc8949>. | <https://www.rfc-editor.org/info/rfc8949>. | |||
| [RFC9052] Schaad, J., "CBOR Object Signing and Encryption (COSE): | [RFC9052] Schaad, J., "CBOR Object Signing and Encryption (COSE): | |||
| Structures and Process", STD 96, RFC 9052, | Structures and Process", STD 96, RFC 9052, | |||
| DOI 10.17487/RFC9052, August 2022, | DOI 10.17487/RFC9052, August 2022, | |||
| <https://www.rfc-editor.org/rfc/rfc9052>. | <https://www.rfc-editor.org/info/rfc9052>. | |||
| [RFC9053] Schaad, J., "CBOR Object Signing and Encryption (COSE): | [RFC9053] Schaad, J., "CBOR Object Signing and Encryption (COSE): | |||
| Initial Algorithms", RFC 9053, DOI 10.17487/RFC9053, | Initial Algorithms", RFC 9053, DOI 10.17487/RFC9053, | |||
| August 2022, <https://www.rfc-editor.org/rfc/rfc9053>. | August 2022, <https://www.rfc-editor.org/info/rfc9053>. | |||
| 10.2. Informative References | 9.2. Informative References | |||
| [IANA-CWT] IANA, "CWT Confirmation Methods", | ||||
| <https://www.iana.org/assignments/cwt>. | ||||
| [IANA-OAuth] | ||||
| IANA, "OAuth URI", | ||||
| <https://www.iana.org/assignments/oauth-parameters>. | ||||
| [IANA.Hash.Algorithms] | [IANA.Hash.Algorithms] | |||
| "Named Information Hash Algorithm Registry", | IANA, "Named Information Hash Algorithm Registry", | |||
| <https://www.iana.org/assignments/named-information>. | <https://www.iana.org/assignments/named-information>. | |||
| [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
| Housley, R., and W. Polk, "Internet X.509 Public Key | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
| Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
| (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | |||
| <https://www.rfc-editor.org/rfc/rfc5280>. | <https://www.rfc-editor.org/info/rfc5280>. | |||
| [RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms | [RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms | |||
| (SHA and SHA-based HMAC and HKDF)", RFC 6234, | (SHA and SHA-based HMAC and HKDF)", RFC 6234, | |||
| DOI 10.17487/RFC6234, May 2011, | DOI 10.17487/RFC6234, May 2011, | |||
| <https://www.rfc-editor.org/rfc/rfc6234>. | <https://www.rfc-editor.org/info/rfc6234>. | |||
| [RFC7517] Jones, M., "JSON Web Key (JWK)", RFC 7517, | ||||
| DOI 10.17487/RFC7517, May 2015, | ||||
| <https://www.rfc-editor.org/info/rfc7517>. | ||||
| [RFC7638] Jones, M. and N. Sakimura, "JSON Web Key (JWK) | [RFC7638] Jones, M. and N. Sakimura, "JSON Web Key (JWK) | |||
| Thumbprint", RFC 7638, DOI 10.17487/RFC7638, September | Thumbprint", RFC 7638, DOI 10.17487/RFC7638, September | |||
| 2015, <https://www.rfc-editor.org/rfc/rfc7638>. | 2015, <https://www.rfc-editor.org/info/rfc7638>. | |||
| [RFC7800] Jones, M., Bradley, J., and H. Tschofenig, "Proof-of- | ||||
| Possession Key Semantics for JSON Web Tokens (JWTs)", | ||||
| RFC 7800, DOI 10.17487/RFC7800, April 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7800>. | ||||
| [RFC9278] Jones, M. and K. Yasuda, "JWK Thumbprint URI", RFC 9278, | [RFC9278] Jones, M. and K. Yasuda, "JWK Thumbprint URI", RFC 9278, | |||
| DOI 10.17487/RFC9278, August 2022, | DOI 10.17487/RFC9278, August 2022, | |||
| <https://www.rfc-editor.org/rfc/rfc9278>. | <https://www.rfc-editor.org/info/rfc9278>. | |||
| [RFC9360] Schaad, J., "CBOR Object Signing and Encryption (COSE): | [RFC9360] Schaad, J., "CBOR Object Signing and Encryption (COSE): | |||
| Header Parameters for Carrying and Referencing X.509 | Header Parameters for Carrying and Referencing X.509 | |||
| Certificates", RFC 9360, DOI 10.17487/RFC9360, February | Certificates", RFC 9360, DOI 10.17487/RFC9360, February | |||
| 2023, <https://www.rfc-editor.org/rfc/rfc9360>. | 2023, <https://www.rfc-editor.org/info/rfc9360>. | |||
| Acknowledgements | ||||
| We would like to thank the authors of [RFC7638] for their work on the | ||||
| JWK Thumbprint specification. This document applies JWK Thumbprints | ||||
| to COSE Key structures. | ||||
| Additionally, we would like to thank Carsten Bormann, Ilari | ||||
| Liusvaara, Laurence Lundblade, Daisuke Ajitomi, Michael Richardson, | ||||
| Michael B. Jones, Mallory Knodel, Joel Jaeggli, Derrell Piper, Patrik | ||||
| Fältström, Warren Kumari, Deb Cooley, and Brendan Moran for their | ||||
| feedback. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Kohei Isobe | Kohei Isobe | |||
| SECOM CO., LTD. | SECOM CO., LTD. | |||
| Japan | ||||
| Email: isobekohei@gmail.com | Email: isobekohei@gmail.com | |||
| Hannes Tschofenig | Hannes Tschofenig | |||
| University of Applied Sciences Bonn-Rhein-Sieg | University of Applied Sciences Bonn-Rhein-Sieg | |||
| Germany | Germany | |||
| Email: hannes.tschofenig@gmx.net | Email: hannes.tschofenig@gmx.net | |||
| Orie Steele | Orie Steele | |||
| Transmute | Transmute | |||
| United States | United States of America | |||
| Email: orie@transmute.industries | Email: orie@transmute.industries | |||
| End of changes. 80 change blocks. | ||||
| 207 lines changed or deleted | 232 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||