Internet DRAFT - draft-tschofenig-tls-cwt
draft-tschofenig-tls-cwt
TLS H. Tschofenig
Internet-Draft M. Brossard
Intended status: Standards Track Arm Limited
Expires: January 14, 2021 July 13, 2020
Using CBOR Web Tokens (CWTs) in Transport Layer Security (TLS) and
Datagram Transport Layer Security (DTLS)
draft-tschofenig-tls-cwt-02
Abstract
The TLS protocol supports different credentials, including pre-shared
keys, raw public keys, and X.509 certificates. For use with public
key cryptography developers have to decide between raw public keys,
which require out-of-band agreement and full-fletched X.509
certificates. For devices where the reduction of code size is
important it is desirable to minimize the use of X.509-related
libraries. With the CBOR Web Token (CWT) a structure has been
defined that allows CBOR-encoded claims to be protected with CBOR
Object Signing and Encryption (COSE).
This document registers a new value to the "TLS Certificate Types"
sub-registry to allow TLS and DTLS to use CWTs. Conceptually, CWTs
can be seen as a certificate format (when with public key
cryptography) or a Kerberos ticket (when used with symmetric key
cryptography).
Status of This Memo
This Internet-Draft is submitted in full conformance with the
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
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 14, 2021.
Tschofenig & Brossard Expires January 14, 2021 [Page 1]
Internet-Draft CWTs in TLS/DTLS July 2020
Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3
3. The CWT Certificate Type . . . . . . . . . . . . . . . . . . 3
4. Representation and Verification the Identity of Application
Services . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5. Security and Privacy Considerations . . . . . . . . . . . . . 5
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
7.1. Normative References . . . . . . . . . . . . . . . . . . 5
7.2. Informative References . . . . . . . . . . . . . . . . . 6
Appendix A. History . . . . . . . . . . . . . . . . . . . . . . 8
Appendix B. Working Group Information . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction
The CBOR Web Token (CWT) [RFC8392] was defined as the CBOR-based
version of the JSON Web Token (JWT) [RFC7519]. JWT is used
extensively on Web application and for use with Internet of Things
Tschofenig & Brossard Expires January 14, 2021 [Page 2]
Internet-Draft CWTs in TLS/DTLS July 2020
environments the believe is that a more lightweight encoding, namely
CBOR, is needed. CWTs, like JWTs, contain claims and those claims
are protected against modifications using COSE [RFC8152]. CWTs are
flexible with regard to the use of cryptography and hence CWTs may be
protected using a keyed message digest, or a digital signature. One
of the claims allows keys to be included, as described in
[I-D.ietf-ace-cwt-proof-of-possession]. This specification makes use
of these proof-of-possession claims in CWTs. This document mandates
a minimum number of claims to be present in a CWT. There may,
however, be a number of additional claims present in a CWT. An
example of a token with a larger number of claims is the Entity
Attestation Token (EAT), which may also be encoded as a CWT.
Fundamentally, there are two types of keys that can be used with
CWTs:
- Asymmetric keys: In this case a CWT contains a COSE_Key [RFC8152]
representing an asymmetric public key. To protect the CWT against
modifications the CWT also needs to be digitally signed.
- Symmetric keys: In this case a CWT contains the Encrypted_COSE_Key
[RFC8152] structure representing a symmetric key encrypted to a
key known to the recipient using COSE_Encrypt or COSE_Encrypt0.
Again, to protect the CWT against modifications a keyed message
digest is used.
The CWT also allows mixing symmetric and asymmetric crypto although
this is less likely to be used in practice.
Exchanging CWTs in the TLS / DTLS handshake offers an alternative to
the use of raw public keys and X.509 certificates. Compared to raw
public keys, CWTs allow more information to be included via the use
of claims. Compared to X.509 certificates CBOR offers an alternative
encoding format, which may also be used by the application layer
thereby potentially reducing the overall code size requirements.
2. Conventions and Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in RFC
2119 [RFC2119].
3. The CWT Certificate Type
This document defines a new value to the "TLS Certificate Types" sub-
registry and the value is defined as follows.
Tschofenig & Brossard Expires January 14, 2021 [Page 3]
Internet-Draft CWTs in TLS/DTLS July 2020
/* Managed by IANA */
enum {
X509(0),
RawPublicKey(2),
CWT(TBD),
(255)
} CertificateType;
struct {
select (certificate_type) {
/* CWT "certificate type" defined in this document.*/
case CWT:
opaque cwt_data<1..2^24-1>;
/* RawPublicKey defined in RFC 7250*/
case RawPublicKey:
opaque ASN.1_subjectPublicKeyInfo<1..2^24-1>;
/* X.509 certificate defined in RFC 5246*/
case X.509:
opaque cert_data<1..2^24-1>;
};
Extension extensions<0..2^16-1>;
} CertificateEntry;
4. Representation and Verification the Identity of Application Services
RFC 6125 [RFC6125] provides guidance for matching identifiers used in
X.509 certificates against a reference identifier, i.e. an identifier
constructed from a source domain and optionally an application
service type. Different types of identifiers have been defined over
time, such as CN-IDs, DNS-IDs, SRV-IDs, and URI-IDs, and they may be
carried in different fields inside the X.509 certificate, such as in
the Common Name or in the subjectAltName extension.
For CWTs issued to servers the following rule applies: To claim
conformance with this specification an implementation MUST populate
the Subject claim with the value of the Server Name Indication (SNI)
extension. The Subject claim is of type StringOrURI. If it is
string an equality match is used between the Subject claim value and
the SNI. If the value contains a URI then the URI schema must be
matched against the service being requested and the remaining part of
the URI is matched against the SNI in an equality match (since the
SNI only defines Hostname types).
Tschofenig & Brossard Expires January 14, 2021 [Page 4]
Internet-Draft CWTs in TLS/DTLS July 2020
For CWTs issued to clients the application service interacting with
the TLS/DTLS stack on the server side is responsible for
authenticating the client. No specific rules apply but the Subject
and the Audience claims are likely to be good candidates for
authorization policy checks.
Note: Verification of the Not Before and the Expiration Time claims
MUST be performed to determine the validity of the received CWT.
5. Security and Privacy Considerations
The security and privacy characteristics of this extension are best
described in relationship to certificates (when asymmetric keys are
used) and to Kerberos tickets (when symmetric keys are used) since
the main difference is in the encoding.
When creating proof-of-possession keys the recommendations for state-
of-the-art key sizes and algorithms have to be followed. For TLS/
DTLS those algorithm recommendations can be found in [RFC7925] and
[RFC7525].
CWTs without proof-of-possession keys MUST NOT be used.
When CWTs are used with TLS 1.3 [RFC8446] and DTLS 1.3
[I-D.ietf-tls-dtls13] additional privacy properties are provided
since most handshake messages are encrypted.
6. IANA Considerations
IANA is requested to add a new value to the "TLS Certificate Types"
sub-registry for CWTs.
7. References
7.1. Normative References
[I-D.ietf-ace-cwt-proof-of-possession]
Jones, M., Seitz, L., Selander, G., Erdtman, S., and H.
Tschofenig, "Proof-of-Possession Key Semantics for CBOR
Web Tokens (CWTs)", draft-ietf-ace-cwt-proof-of-
possession-11 (work in progress), October 2019.
[I-D.ietf-tls-dtls13]
Rescorla, E., Tschofenig, H., and N. Modadugu, "The
Datagram Transport Layer Security (DTLS) Protocol Version
1.3", draft-ietf-tls-dtls13-33 (work in progress), October
2019.
Tschofenig & Brossard Expires January 14, 2021 [Page 5]
Internet-Draft CWTs in TLS/DTLS July 2020
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC7250] Wouters, P., Ed., Tschofenig, H., Ed., Gilmore, J.,
Weiler, S., and T. Kivinen, "Using Raw Public Keys in
Transport Layer Security (TLS) and Datagram Transport
Layer Security (DTLS)", RFC 7250, DOI 10.17487/RFC7250,
June 2014, <https://www.rfc-editor.org/info/rfc7250>.
[RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)",
RFC 8152, DOI 10.17487/RFC8152, July 2017,
<https://www.rfc-editor.org/info/rfc8152>.
[RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig,
"CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392,
May 2018, <https://www.rfc-editor.org/info/rfc8392>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>.
7.2. Informative References
[RFC6125] Saint-Andre, P. and J. Hodges, "Representation and
Verification of Domain-Based Application Service Identity
within Internet Public Key Infrastructure Using X.509
(PKIX) Certificates in the Context of Transport Layer
Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March
2011, <https://www.rfc-editor.org/info/rfc6125>.
[RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token
(JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015,
<https://www.rfc-editor.org/info/rfc7519>.
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre,
"Recommendations for Secure Use of Transport Layer
Security (TLS) and Datagram Transport Layer Security
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May
2015, <https://www.rfc-editor.org/info/rfc7525>.
[RFC7925] Tschofenig, H., Ed. and T. Fossati, "Transport Layer
Security (TLS) / Datagram Transport Layer Security (DTLS)
Profiles for the Internet of Things", RFC 7925,
DOI 10.17487/RFC7925, July 2016,
<https://www.rfc-editor.org/info/rfc7925>.
Tschofenig & Brossard Expires January 14, 2021 [Page 6]
Internet-Draft CWTs in TLS/DTLS July 2020
7.3. URIs
[1] mailto:tls@ietf.org
[2] https://www1.ietf.org/mailman/listinfo/tls
[3] https://www.ietf.org/mail-archive/web/tls/current/index.html
Tschofenig & Brossard Expires January 14, 2021 [Page 7]
Internet-Draft CWTs in TLS/DTLS July 2020
Appendix A. History
RFC EDITOR: PLEASE REMOVE THE THIS SECTION
- -01: Minor editorial bugfixes and reference updates; refreshing
draft
- -00: Initial version
Appendix B. Working Group Information
The discussion list for the IETF TLS working group is located at the
e-mail address tls@ietf.org [1]. Information on the group and
information on how to subscribe to the list is at
https://www1.ietf.org/mailman/listinfo/tls [2]
Archives of the list can be found at: https://www.ietf.org/mail-
archive/web/tls/current/index.html [3]
Authors' Addresses
Hannes Tschofenig
Arm Limited
EMail: hannes.tschofenig@arm.com
Mathias Brossard
Arm Limited
EMail: Mathias.Brossard@arm.com
Tschofenig & Brossard Expires January 14, 2021 [Page 8]