| < draft-ietf-ace-cwt-proof-of-possession-00.txt | draft-ietf-ace-cwt-proof-of-possession-01.txt > | |||
|---|---|---|---|---|
| ACE Working Group M. Jones | ACE Working Group M. Jones | |||
| Internet-Draft Microsoft | Internet-Draft Microsoft | |||
| Intended status: Standards Track L. Seitz | Intended status: Standards Track L. Seitz | |||
| Expires: January 18, 2018 RISE SICS | Expires: May 3, 2018 RISE SICS | |||
| G. Selander | G. Selander | |||
| Ericsson AB | Ericsson AB | |||
| E. Wahlstroem | E. Wahlstroem | |||
| S. Erdtman | S. Erdtman | |||
| Spotify AB | Spotify AB | |||
| H. Tschofenig | H. Tschofenig | |||
| ARM Ltd. | ARM Ltd. | |||
| July 17, 2017 | October 30, 2017 | |||
| Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs) | Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs) | |||
| draft-ietf-ace-cwt-proof-of-possession-00 | draft-ietf-ace-cwt-proof-of-possession-01 | |||
| Abstract | Abstract | |||
| This specification describes how to declare in a CBOR Web Token (CWT) | This specification describes how to declare in a CBOR Web Token (CWT) | |||
| that the presenter of the CWT possesses a particular proof-of- | that the presenter of the CWT possesses a particular proof-of- | |||
| possession key. Being able to prove possession of a key is also | possession key. Being able to prove possession of a key is also | |||
| sometimes described as the presenter being a holder-of-key. This | sometimes described as being the holder-of-key. This specification | |||
| specification provides equivalent functionality to "Proof-of- | provides equivalent functionality to "Proof-of-Possession Key | |||
| Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800), but | Semantics for JSON Web Tokens (JWTs)" (RFC 7800), but using CBOR and | |||
| using CBOR and CWTs rather than JSON and JWTs. | CWTs rather than JSON and JWTs. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 http://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 January 18, 2018. | This Internet-Draft will expire on May 3, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | Provisions Relating to IETF Documents | |||
| (http://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 | |||
| skipping to change at page 2, line 38 ¶ | skipping to change at page 2, line 38 ¶ | |||
| 3.3. Representation of an Encrypted Symmetric Proof-of- | 3.3. Representation of an Encrypted Symmetric Proof-of- | |||
| Possession Key . . . . . . . . . . . . . . . . . . . . . 5 | Possession Key . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.4. Representation of a Key ID for a Proof-of-Possession Key 6 | 3.4. Representation of a Key ID for a Proof-of-Possession Key 6 | |||
| 3.5. Specifics Intentionally Not Specified . . . . . . . . . . 7 | 3.5. Specifics Intentionally Not Specified . . . . . . . . . . 7 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . 8 | 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6.1. CBOR Web Token Claims Registration . . . . . . . . . . . 9 | 6.1. CBOR Web Token Claims Registration . . . . . . . . . . . 9 | |||
| 6.1.1. Registry Contents . . . . . . . . . . . . . . . . . . 9 | 6.1.1. Registry Contents . . . . . . . . . . . . . . . . . . 9 | |||
| 6.2. CWT Confirmation Methods Registry . . . . . . . . . . . . 9 | 6.2. CWT Confirmation Methods Registry . . . . . . . . . . . . 9 | |||
| 6.2.1. Registration Template . . . . . . . . . . . . . . . . 9 | 6.2.1. Registration Template . . . . . . . . . . . . . . . . 10 | |||
| 6.2.2. Initial Registry Contents . . . . . . . . . . . . . . 10 | 6.2.2. Initial Registry Contents . . . . . . . . . . . . . . 10 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 11 | 7.2. Informative References . . . . . . . . . . . . . . . . . 12 | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 12 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| Document History . . . . . . . . . . . . . . . . . . . . . . . . 12 | Document History . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1. Introduction | 1. Introduction | |||
| This specification describes how a CBOR Web Token [CWT] can declare | This specification describes how a CBOR Web Token [CWT] can declare | |||
| that the presenter of the CWT possesses a particular proof-of- | that the presenter of the CWT possesses a particular proof-of- | |||
| possession (PoP) key. Proof of possession of a key is also sometimes | possession (PoP) key. Proof of possession of a key is also sometimes | |||
| described as the presenter being a holder-of-key. This specification | described as being the holder-of-key. This specification provides | |||
| provides equivalent functionality to "Proof-of-Possession Key | equivalent functionality to "Proof-of-Possession Key Semantics for | |||
| Semantics for JSON Web Tokens (JWTs)" [RFC7800], but using CBOR | JSON Web Tokens (JWTs)" [RFC7800], but using CBOR [RFC7049] and CWTs | |||
| [RFC7049] and CWTs [CWT] rather than JSON [RFC7159] and JWTs [JWT]. | [CWT] rather than JSON [RFC7159] and JWTs [JWT]. | |||
| 1.1. Notational Conventions | 1.1. Notational 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 | "OPTIONAL" in this document are to be interpreted as described in | |||
| [RFC2119]. | [RFC2119]. | |||
| Unless otherwise noted, all the protocol parameter names and values | Unless otherwise noted, all the protocol parameter names and values | |||
| are case sensitive. | are case sensitive. | |||
| 2. Terminology | 2. Terminology | |||
| This specification uses terms defined in the CBOR Web Token [CWT], | This specification uses terms defined in the CBOR Web Token [CWT], | |||
| CBOR Object Signing and Encryption (COSE) [RFC8152], and Concise | CBOR Object Signing and Encryption (COSE) [RFC8152], and Concise | |||
| Binary Object Representation (CBOR) [RFC7049] specifications. | Binary Object Representation (CBOR) [RFC7049] specifications. | |||
| These terms are defined by this specification: | These terms are defined by this specification: | |||
| Issuer | Issuer | |||
| Party that creates the CWT and binds the proof-of-possession key | Party that creates the CWT and binds its claims to the proof-of- | |||
| to it. | possession key. | |||
| Presenter | Presenter | |||
| Party that proves possession of a private key (for asymmetric key | Party that proves possession of a private key (for asymmetric key | |||
| cryptography) or secret key (for symmetric key cryptography) to a | cryptography) or secret key (for symmetric key cryptography) to a | |||
| recipient. | recipient. | |||
| Recipient | Recipient | |||
| Party that receives the CWT containing the proof-of-possession key | Party that receives the CWT containing the proof-of-possession key | |||
| information from the presenter. | information from the presenter. | |||
| skipping to change at page 4, line 39 ¶ | skipping to change at page 4, line 39 ¶ | |||
| MUST be ignored. | MUST be ignored. | |||
| This specification establishes the IANA "CWT Confirmation Methods" | This specification establishes the IANA "CWT Confirmation Methods" | |||
| registry for these members in Section 6.2 and registers the members | registry for these members in Section 6.2 and registers the members | |||
| defined by this specification. Other specifications can register | defined by this specification. Other specifications can register | |||
| other members used for confirmation, including other members for | other members used for confirmation, including other members for | |||
| conveying proof-of-possession keys using different key | conveying proof-of-possession keys using different key | |||
| representations. | representations. | |||
| The "cnf" claim value MUST represent only a single proof-of- | The "cnf" claim value MUST represent only a single proof-of- | |||
| possession key; thus, at most one of the "COSE_Key" and | possession key. At most one of the "COSE_Key" and | |||
| "Encrypted_COSE_Key" confirmation values defined below may be | "Encrypted_COSE_Key" confirmation values defined below may be | |||
| present. Note that if an application needs to represent multiple | present. Note that if an application needs to represent multiple | |||
| proof-of-possession keys in the same CWT, one way for it to achieve | proof-of-possession keys in the same CWT, one way for it to achieve | |||
| this is to use other claim names, in addition to "cnf", to hold the | this is to use other claim names, in addition to "cnf", to hold the | |||
| additional proof-of-possession key information. These claims could | additional proof-of-possession key information. These claims could | |||
| use the same syntax and semantics as the "cnf" claim. Those claims | use the same syntax and semantics as the "cnf" claim. Those claims | |||
| would be defined by applications or other specifications and could be | would be defined by applications or other specifications and could be | |||
| registered in the IANA "CBOR Web Token Claims" registry | registered in the IANA "CBOR Web Token Claims" registry | |||
| [IANA.CWT.Claims]. | [IANA.CWT.Claims]. | |||
| /--------------------+-----+-------------------------------\ | ||||
| | Name | Key | Value type | | ||||
| |--------------------+-----+-------------------------------| | ||||
| | COSE_Key | 1 | COSE_Key | | ||||
| | Encrypted_COSE_Key | 2 | COSE_Encrypt or COSE_Encrypt0 | | ||||
| | kid | 3 | binary string | | ||||
| \--------------------+-----+-------------------------------/ | ||||
| Figure 1: Summary of the cnf names, keys, and value types | ||||
| 3.2. Representation of an Asymmetric Proof-of-Possession Key | 3.2. Representation of an Asymmetric Proof-of-Possession Key | |||
| When the key held by the presenter is an asymmetric private key, the | When the key held by the presenter is an asymmetric private key, the | |||
| "COSE_Key" member is a COSE_Key [RFC8152] representing the | "COSE_Key" member is a COSE_Key [RFC8152] representing the | |||
| corresponding asymmetric public key. The following example (using | corresponding asymmetric public key. The following example (using | |||
| JSON notation) demonstrates such a declaration in the CWT Claims Set | CBOR diagonstic notation) demonstrates such a declaration in the CWT | |||
| of a CWT: | Claims Set of a CWT: | |||
| { | { | |||
| "iss": "https://server.example.com", | /iss/ 1 : "coaps://server.example.com", | |||
| "aud": "https://client.example.org", | /aud/ 3 : "coaps://client.example.org", | |||
| "exp": 1361398824, | /exp/ 4 : 1361398824, | |||
| "cnf":{ | /cnf/ 8 :{ | |||
| "COSE_Key":{ | /COSE_Key/ 1 :{ | |||
| "kty": "EC", | /kty/ 1 : /EC/ 2, | |||
| "crv": "P-256", | /crv/ -1 : /P-256/ 1, | |||
| "x": "18wHLeIgW9wVN6VD1Txgpqy2LszYkMf6J8njVAibvhM", | /x/ -2 : b64'18wHLeIgW9wVN6VD1Txgpqy2LszYkMf6J8njVAibvhM', | |||
| "y": "-V4dS4UaLMgP_4fY4j8ir7cl1TXlFdAgcx55o7TkcSA" | /y/ -3 : b64'-V4dS4UaLMgP_4fY4j8ir7cl1TXlFdAgcx55o7TkcSA' | |||
| } | } | |||
| } | } | |||
| } | } | |||
| The COSE_Key MUST contain the required key members for a COSE_Key of | The COSE_Key MUST contain the required key members for a COSE_Key of | |||
| that key type and MAY contain other COSE_Key members, including the | that key type and MAY contain other COSE_Key members, including the | |||
| "kid" (Key ID) member. | "kid" (Key ID) member. | |||
| The "COSE_Key" member MAY also be used for a COSE_Key representing a | The "COSE_Key" member MAY also be used for a COSE_Key representing a | |||
| symmetric key, provided that the CWT is encrypted so that the key is | symmetric key, provided that the CWT is encrypted so that the key is | |||
| skipping to change at page 5, line 44 ¶ | skipping to change at page 6, line 5 ¶ | |||
| explained in [CWT]. If the CWT is not encrypted, the symmetric key | explained in [CWT]. If the CWT is not encrypted, the symmetric key | |||
| MUST be encrypted as described below. | MUST be encrypted as described below. | |||
| 3.3. Representation of an Encrypted Symmetric Proof-of-Possession Key | 3.3. Representation of an Encrypted Symmetric Proof-of-Possession Key | |||
| When the key held by the presenter is a symmetric key, the | When the key held by the presenter is a symmetric key, the | |||
| "Encrypted_COSE_Key" member is an encrypted COSE_Key [RFC8152] | "Encrypted_COSE_Key" member is an encrypted COSE_Key [RFC8152] | |||
| representing the symmetric key encrypted to a key known to the | representing the symmetric key encrypted to a key known to the | |||
| recipient using COSE_Encrypt or COSE_Encrypt0. | recipient using COSE_Encrypt or COSE_Encrypt0. | |||
| The following example (using JSON notation) illustrates a symmetric | The following example (using CBOR diagnostic notation, with | |||
| key that could subsequently be encrypted for use in the | linebreaks for readability) illustrates a symmetric key that could | |||
| "Encrypted_COSE_Key" member: | subsequently be encrypted for use in the "Encrypted_COSE_Key" member: | |||
| { | { | |||
| "kty": "oct", | /kty/ 1 : /Symmetric/ 4, | |||
| "alg": "HS256", | /alg/ 3 : /HMAC256/ 5, | |||
| "k": "ZoRSOrFzN_FzUA5XKMYoVHyzff5oRJxl-IXRtztJ6uE" | /k/ -1 : h'6684523ab17337f173500e5728c628547cb37df | |||
| e68449c65f885d1b73b49eae1A0B0C0D0E0F10' | ||||
| } | } | |||
| The COSE_Key representation is used as the plaintext when encrypting | The COSE_Key representation is used as the plaintext when encrypting | |||
| the key. The COSE_Key could, for instance, be encrypted using a | the key. The COSE_Key could, for instance, be encrypted using a | |||
| COSE_Encrypt0 representation using the AES-CCM-16-64-128 algorithm. | COSE_Encrypt0 representation using the AES-CCM-16-64-128 algorithm. | |||
| The following example CWT Claims Set of a CWT (using JSON notation) | The following example CWT Claims Set of a CWT (using CBOR diagnostic | |||
| illustrates the use of an encrypted symmetric key as the | notation, with linebreaks for readability) illustrates the use of an | |||
| "Encrypted_COSE_Key" member value: | encrypted symmetric key as the "Encrypted_COSE_Key" member value: | |||
| { | { | |||
| "iss": "https://server.example.com", | /iss/ 1 : "coaps://server.example.com", | |||
| "sub": "24400320", | /sub/ 2 : "24400320", | |||
| "aud": "s6BhdRkqt3", | /aud/ 3: "s6BhdRkqt3", | |||
| "exp": 1311281970, | /exp/ 4 : 1311281970, | |||
| "iat": 1311280970, | /iat/ 5 : 1311280970, | |||
| "cnf":{ | /cnf/ 8 : { | |||
| "Encrypted_COSE_Key": | /COSE_Encrypt0/ 2 : [ | |||
| "(TBD)" | /protected header / h'A1010A' /{ \alg\ 1:10 \AES-CCM-16-64-128\}/, | |||
| } | /unprotected header/ { / iv / 5: h'636898994FF0EC7BFCF6D3F95B'}, | |||
| } | /ciphertext/ h'0573318A3573EB983E55A7C2F06CADD0796C9E584F1D0E3E | |||
| A8C5B052592A8B2694BE9654F0431F38D5BBC8049FA7F13F' | ||||
| ] | ||||
| } | ||||
| } | ||||
| The example above was generated with the key: | ||||
| h'6162630405060708090a0b0c0d0e0f10' | ||||
| 3.4. Representation of a Key ID for a Proof-of-Possession Key | 3.4. Representation of a Key ID for a Proof-of-Possession Key | |||
| The proof-of-possession key can also be identified by the use of a | The proof-of-possession key can also be identified by the use of a | |||
| Key ID instead of communicating the actual key, provided the | Key ID instead of communicating the actual key, provided the | |||
| recipient is able to obtain the identified key using the Key ID. In | recipient is able to obtain the identified key using the Key ID. In | |||
| this case, the issuer of a CWT declares that the presenter possesses | this case, the issuer of a CWT declares that the presenter possesses | |||
| a particular key and that the recipient can cryptographically confirm | a particular key and that the recipient can cryptographically confirm | |||
| proof of possession of the key by the presenter by including a "cnf" | proof of possession of the key by the presenter by including a "cnf" | |||
| claim in the CWT whose value is a CBOR map with the CBOR map | claim in the CWT whose value is a CBOR map with the CBOR map | |||
| containing a "kid" member identifying the key. | containing a "kid" member identifying the key. | |||
| The following example (using JSON notation) demonstrates such a | The following example (using CBOR diagnostic notation) demonstrates | |||
| declaration in the CWT Claims Set of a CWT: | such a declaration in the CWT Claims Set of a CWT: | |||
| { | { | |||
| "iss": "https://server.example.com", | /iss/ 1 : "coaps://server.example.com", | |||
| "aud": "https://client.example.org", | /aud/ 3 : "coaps://client.example.org", | |||
| "exp": 1361398824, | /exp/ 4 : 1361398824, | |||
| "cnf":{ | /cnf/ 8 : { | |||
| "kid": "dfd1aa97-6d8d-4575-a0fe-34b96de2bfad" | /kid/ 2 : h'dfd1aa976d8d4575a0fe34b96de2bfad' | |||
| } | } | |||
| } | } | |||
| The content of the "kid" value is application specific. For | The content of the "kid" value is application specific. For | |||
| instance, some applications may choose to use a cryptographic hash of | instance, some applications may choose to use a cryptographic hash of | |||
| the public key value as the "kid" value. | the public key value as the "kid" value. | |||
| 3.5. Specifics Intentionally Not Specified | 3.5. Specifics Intentionally Not Specified | |||
| Proof of possession is typically demonstrated by having the presenter | Proof of possession is typically demonstrated by having the presenter | |||
| skipping to change at page 8, line 11 ¶ | skipping to change at page 8, line 30 ¶ | |||
| necessary to apply data origin authentication and integrity | necessary to apply data origin authentication and integrity | |||
| protection (via a keyed message digest or a digital signature). Data | protection (via a keyed message digest or a digital signature). Data | |||
| origin authentication ensures that the recipient of the CWT learns | origin authentication ensures that the recipient of the CWT learns | |||
| about the entity that created the CWT since this will be important | about the entity that created the CWT since this will be important | |||
| for any policy decisions. Integrity protection prevents an adversary | for any policy decisions. Integrity protection prevents an adversary | |||
| from changing any elements conveyed within the CWT payload. Special | from changing any elements conveyed within the CWT payload. Special | |||
| care has to be applied when carrying symmetric keys inside the CWT | care has to be applied when carrying symmetric keys inside the CWT | |||
| since those not only require integrity protection but also | since those not only require integrity protection but also | |||
| confidentiality protection. | confidentiality protection. | |||
| As described in Section 6 (Key Identification) and Appendix D (Notes | ||||
| on Key Selection) of [JWS], it is important to make explicit trust | ||||
| decisions about the keys. Proof-of-possession signatures made with | ||||
| keys not meeting the application's trust criteria MUST NOT not be | ||||
| relied upon. | ||||
| 5. Privacy Considerations | 5. Privacy Considerations | |||
| A proof-of-possession key can be used as a correlation handle if the | A proof-of-possession key can be used as a correlation handle if the | |||
| same key is used with multiple parties. Thus, for privacy reasons, | same key is used with multiple parties. Thus, for privacy reasons, | |||
| it is recommended that different proof-of-possession keys be used | it is recommended that different proof-of-possession keys be used | |||
| when interacting with different parties. | when interacting with different parties. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| The following registration procedure is used for all the registries | The following registration procedure is used for all the registries | |||
| skipping to change at page 10, line 49 ¶ | skipping to change at page 11, line 24 ¶ | |||
| o Change Controller: IESG | o Change Controller: IESG | |||
| o Specification Document(s): Section 3.4 of [[ this document ]] | o Specification Document(s): Section 3.4 of [[ this document ]] | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [CWT] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | [CWT] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig, | |||
| "CBOR Web Token (CWT)", Work in Progress, draft-ietf-ace- | "CBOR Web Token (CWT)", Work in Progress, draft-ietf-ace- | |||
| cbor-web-token-07, June 2017, | cbor-web-token-07, June 2017, | |||
| <https://tools.ietf.org/html/draft-ietf-ace-cbor-web- | <https://tools.ietf.org/html/ | |||
| token-07>. | draft-ietf-ace-cbor-web-token-07>. | |||
| [IANA.CWT.Claims] | [IANA.CWT.Claims] | |||
| IANA, "CBOR Web Token Claims", | IANA, "CBOR Web Token Claims", | |||
| <http://www.iana.org/assignments/cwt>. | <http://www.iana.org/assignments/cwt>. | |||
| [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, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | |||
| 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November | 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November | |||
| 2003, <http://www.rfc-editor.org/info/rfc3629>. | 2003, <https://www.rfc-editor.org/info/rfc3629>. | |||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
| Resource Identifier (URI): Generic Syntax", STD 66, | Resource Identifier (URI): Generic Syntax", STD 66, | |||
| RFC 3986, DOI 10.17487/RFC3986, January 2005, | RFC 3986, DOI 10.17487/RFC3986, January 2005, | |||
| <http://www.rfc-editor.org/info/rfc3986>. | <https://www.rfc-editor.org/info/rfc3986>. | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
| IANA Considerations Section in RFCs", RFC 5226, | IANA Considerations Section in RFCs", RFC 5226, | |||
| DOI 10.17487/RFC5226, May 2008, | DOI 10.17487/RFC5226, May 2008, | |||
| <http://www.rfc-editor.org/info/rfc5226>. | <https://www.rfc-editor.org/info/rfc5226>. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, | (TLS) Protocol Version 1.2", RFC 5246, | |||
| DOI 10.17487/RFC5246, August 2008, | DOI 10.17487/RFC5246, August 2008, | |||
| <http://www.rfc-editor.org/info/rfc5246>. | <https://www.rfc-editor.org/info/rfc5246>. | |||
| [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and | [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and | |||
| Verification of Domain-Based Application Service Identity | Verification of Domain-Based Application Service Identity | |||
| within Internet Public Key Infrastructure Using X.509 | within Internet Public Key Infrastructure Using X.509 | |||
| (PKIX) Certificates in the Context of Transport Layer | (PKIX) Certificates in the Context of Transport Layer | |||
| Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March | Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March | |||
| 2011, <http://www.rfc-editor.org/info/rfc6125>. | 2011, <https://www.rfc-editor.org/info/rfc6125>. | |||
| [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object | [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object | |||
| Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, | Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, | |||
| October 2013, <http://www.rfc-editor.org/info/rfc7049>. | October 2013, <https://www.rfc-editor.org/info/rfc7049>. | |||
| [RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)", | [RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)", | |||
| RFC 8152, DOI 10.17487/RFC8152, July 2017, | RFC 8152, DOI 10.17487/RFC8152, July 2017, | |||
| <http://www.rfc-editor.org/info/rfc8152>. | <https://www.rfc-editor.org/info/rfc8152>. | |||
| 7.2. Informative References | 7.2. Informative References | |||
| [IANA.JWT.Claims] | [IANA.JWT.Claims] | |||
| IANA, "JSON Web Token Claims", | IANA, "JSON Web Token Claims", | |||
| <http://www.iana.org/assignments/jwt>. | <http://www.iana.org/assignments/jwt>. | |||
| [JWS] Jones, M., Bradley, J., and N. Sakimura, "JSON Web | ||||
| Signature (JWS)", RFC 7515, May 2015, | ||||
| <http://www.rfc-editor.org/info/rfc7515>. | ||||
| [JWT] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token | [JWT] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token | |||
| (JWT)", RFC 7519, DOI 10.17487/RFC7159, May 2015, | (JWT)", RFC 7519, DOI 10.17487/RFC7159, May 2015, | |||
| <http://www.rfc-editor.org/info/rfc7519>. | <http://www.rfc-editor.org/info/rfc7519>. | |||
| [OASIS.saml-core-2.0-os] | [OASIS.saml-core-2.0-os] | |||
| Cantor, S., Kemp, J., Philpott, R., and E. Maler, | Cantor, S., Kemp, J., Philpott, R., and E. Maler, | |||
| "Assertions and Protocol for the OASIS Security Assertion | "Assertions and Protocol for the OASIS Security Assertion | |||
| Markup Language (SAML) V2.0", OASIS Standard saml-core- | Markup Language (SAML) V2.0", OASIS Standard saml-core- | |||
| 2.0-os, March 2005, | 2.0-os, March 2005, | |||
| <http://docs.oasis-open.org/security/saml/v2.0/>. | <http://docs.oasis-open.org/security/saml/v2.0/>. | |||
| [RFC7159] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | [RFC7159] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | |||
| Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March | Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March | |||
| 2014, <http://www.rfc-editor.org/info/rfc7159>. | 2014, <https://www.rfc-editor.org/info/rfc7159>. | |||
| [RFC7800] Jones, M., Bradley, J., and H. Tschofenig, "Proof-of- | [RFC7800] Jones, M., Bradley, J., and H. Tschofenig, "Proof-of- | |||
| Possession Key Semantics for JSON Web Tokens (JWTs)", | Possession Key Semantics for JSON Web Tokens (JWTs)", | |||
| RFC 7800, DOI 10.17487/RFC7800, April 2016, | RFC 7800, DOI 10.17487/RFC7800, April 2016, | |||
| <http://www.rfc-editor.org/info/rfc7800>. | <https://www.rfc-editor.org/info/rfc7800>. | |||
| Acknowledgements | Acknowledgements | |||
| Thanks to the following people for their reviews of the | Thanks to the following people for their reviews of the | |||
| specification: Michael Richardson and Jim Schaad. | specification: Michael Richardson and Jim Schaad. | |||
| Open Issues | Open Issues | |||
| o Convert the examples from JSON/JWT to CBOR/CWT. | o Convert the examples from JSON/JWT to CBOR/CWT. | |||
| 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 ]] | |||
| -01 | ||||
| o Now uses CBOR diagnostic notation for the examples. | ||||
| o Added a table summarizing the "cnf" names, keys, and value types. | ||||
| o Addressed some of Jim Schaad's feedback on -00. | ||||
| -00 | -00 | |||
| o Created the initial working group draft from draft-jones-ace-cwt- | o Created the initial working group draft from draft-jones-ace-cwt- | |||
| proof-of-possession-01. | proof-of-possession-01. | |||
| Authors' Addresses | Authors' Addresses | |||
| Michael B. Jones | Michael B. Jones | |||
| Microsoft | Microsoft | |||
| End of changes. 35 change blocks. | ||||
| 76 lines changed or deleted | 113 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||