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]