TLS M. Thomson Internet-Draft Mozilla Intended status: Standards Track March 8, 2014 Expires: September 9, 2014 Client Authentication Request Extension for (D)TLS draft-thomson-tls-care-00 Abstract This document describes an extension to Transport Layer Security (TLS) and Datagram TLS (DTLS) that allows a client to indicate that it wants to provide a client certificate. 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 http://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 September 9, 2014. Copyright Notice Copyright (c) 2014 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 (http://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. Thomson Expires September 9, 2014 [Page 1] Internet-Draft CARE March 2014 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Conventions and Terminology . . . . . . . . . . . . . . . 2 2. Client Authentication and TLS Renegotiation . . . . . . . . . 2 3. Client Authentication Request Extension . . . . . . . . . . . 3 4. Security Considerations . . . . . . . . . . . . . . . . . . . 3 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4 7. Normative References . . . . . . . . . . . . . . . . . . . . 4 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction In Transport Layer Security (TLS) [RFC5246] and Datagram TLS (DTLS) [RFC5764] the server decides whether or not to request a certificate from clients. In TLS versions 1.2 and earlier, the Certificate message from a client is not encrypted and is therefore not confidential. TLS renegotiation is frequently used to provide confidentiality for client credentials, since renegotiation handshakes are encrypted with the TLS session keys. A client that is aware of a need to authenticate can initial renegotiation, but is unable to induce a CertificateRequest from the server. The decision to request client authentication is one that can only be made by a server. This document defines a client authentication request extension that can be used by a client to request that the server send a CertificateRequest in its handshake. 1.1. Conventions and Terminology At times, this document falls back on shorthands for establishing interoperability requirements on implementations: the capitalized words "MUST", "SHOULD" and "MAY". These terms are defined in [RFC2119]. 2. Client Authentication and TLS Renegotiation Renegotiation has the potential to create confusion at higher layers about the security properties that apply to the byte stream. This is especially difficult when there are protocol constructs that span the ChangeCipherSpec messages that represent a switch between states. Thomson Expires September 9, 2014 [Page 2] Internet-Draft CARE March 2014 For that reason, a client can initiate a new connection when it detects a need to authenticate, initiating renegotiation to establish authentication credentials immediately after the initial handshake. Since the server only conditionally requests client authentication and it has no context with which to decide that authentication is needed, the client needs to provide some indication that it might need to be authentication. The second, renegotiation handshake can contain the client authentication request extension (Section 3) to provide this indication. As long as no application data is sent on the connection prior to completing renegotiation and sending the corresponding ChangeCipherSpec, there is no possibility for confusion over the security properties of application content. This behavior could need to be triggered by a higher level protocol. This document does not define how that happens. 3. Client Authentication Request Extension A new extension type ("client_authentication_request(TBD)") is defined. If a client includes this extension in its ClientHello to indicate that it wishes the server to issue a CertificateRequest. enum { client_authentication_request(TBD), (65535) } ExtensionType; The "extension_data" field of this extension MUST be empty. A server that supports client authentication based on certificates can use the presence of this extension to decide to include a CertificateRequest. The server MAY choose to ignore this extension. A server MUST NOT send this extension to a client. 4. Security Considerations This document is entirely about security. 5. IANA Considerations IANA has allocated a TLS extension code point of (TBD) for this extension. Thomson Expires September 9, 2014 [Page 3] Internet-Draft CARE March 2014 6. Acknowledgements Eric Rescorla helped identify the problem and formulate this mechanism. 7. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, August 2008. [RFC5764] McGrew, D. and E. Rescorla, "Datagram Transport Layer Security (DTLS) Extension to Establish Keys for the Secure Real-time Transport Protocol (SRTP)", RFC 5764, May 2010. Author's Address Martin Thomson Mozilla Suite 300 650 Castro Street Mountain View, CA 94041 US Email: martin.thomson@gmail.com Thomson Expires September 9, 2014 [Page 4]