make sure that the microseconds field does not overflow
[gnutls.git] / doc / protocol / draft-nir-tee-pm-00.txt
blob0219d3b7ddf98f6872fe93f8f53fea0341fb0eef
4 TLS Working Group                                                 Y. Nir
5 Internet-Draft                                                Y. Sheffer
6 Intended status: Standards Track                             Check Point
7 Expires: August 25, 2007                                   H. Tschofenig
8                                                                  Siemens
9                                                        February 21, 2007
12              Protocol Model for TLS with EAP Authentication
13                         draft-nir-tee-pm-00.txt
15 Status of this Memo
17    By submitting this Internet-Draft, each author represents that any
18    applicable patent or other IPR claims of which he or she is aware
19    have been or will be disclosed, and any of which he or she becomes
20    aware will be disclosed, in accordance with Section 6 of BCP 79.
22    Internet-Drafts are working documents of the Internet Engineering
23    Task Force (IETF), its areas, and its working groups.  Note that
24    other groups may also distribute working documents as Internet-
25    Drafts.
27    Internet-Drafts are draft documents valid for a maximum of six months
28    and may be updated, replaced, or obsoleted by other documents at any
29    time.  It is inappropriate to use Internet-Drafts as reference
30    material or to cite them other than as "work in progress."
32    The list of current Internet-Drafts can be accessed at
33    http://www.ietf.org/ietf/1id-abstracts.txt.
35    The list of Internet-Draft Shadow Directories can be accessed at
36    http://www.ietf.org/shadow.html.
38    This Internet-Draft will expire on August 25, 2007.
40 Copyright Notice
42    Copyright (C) The IETF Trust (2007).
55 Nir, et al.              Expires August 25, 2007                [Page 1]
57 Internet-Draft                   TEE PM                    February 2007
60 Abstract
62    This document describes an extension to the TLS protocol to allow TLS
63    clients to authenticate with legacy credentials using the Extensible
64    Authentication Protocol (EAP).
66    This work follows the example of IKEv2, where EAP has been added to
67    the IKEv2 protocol to allow clients to use different credentials such
68    as passwords, token cards, and shared secrets.
70    When TLS is used with EAP, additional records are sent after the
71    ChangeCipherSpec protocol message, effectively creating an extended
72    handshake before the application layer data can be sent.  Each EapMsg
73    handshake record contains exactly one EAP message.  Using EAP for
74    client authentication allows TLS to be used with various AAA back-end
75    servers such as RADIUS or Diameter.
77    TLS with EAP may be used for securing a data connection such as HTTP
78    or POP3, where the ability of EAP to work with backend servers can
79    remove that burden from the application layer.
81    This document is a protocol model, rather than a full protocol
82    specification.
111 Nir, et al.              Expires August 25, 2007                [Page 2]
113 Internet-Draft                   TEE PM                    February 2007
116 Table of Contents
118    1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
119      1.1.  Conventions Used in This Document  . . . . . . . . . . . .  5
120    2.  Operating Environment  . . . . . . . . . . . . . . . . . . . .  6
121    3.  Protocol Overview  . . . . . . . . . . . . . . . . . . . . . .  7
122      3.1.  The tee_supported Extension  . . . . . . . . . . . . . . .  8
123      3.2.  The InterimAuth Handshake Message  . . . . . . . . . . . .  8
124      3.3.  The EapMsg Handshake Message . . . . . . . . . . . . . . .  8
125      3.4.  Calculating the Finished message . . . . . . . . . . . . .  8
126    4.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
127      4.1.  InterimAuth vs. Finished . . . . . . . . . . . . . . . . . 10
128      4.2.  Identity Protection  . . . . . . . . . . . . . . . . . . . 10
129    5.  Performance Considerations . . . . . . . . . . . . . . . . . . 12
130    6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 13
131    7.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 14
132    8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
133      8.1.  Normative References . . . . . . . . . . . . . . . . . . . 15
134      8.2.  Informative References . . . . . . . . . . . . . . . . . . 15
135    Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17
136    Intellectual Property and Copyright Statements . . . . . . . . . . 18
167 Nir, et al.              Expires August 25, 2007                [Page 3]
169 Internet-Draft                   TEE PM                    February 2007
172 1.  Introduction
174    This document describes a new extension to [TLS].  This extension
175    allows a TLS client to authenticate using [EAP] instead of using a
176    certificate, or alternatively performing the authentication at the
177    application level.  The extension follows [TLS-EXT].  For the
178    remainder of this document we will refer to this extension as TEE
179    (TLS with EAP Extension).  The document is a protocol model as
180    described in [RFC4101].
182    TEE extends the TLS handshake beyond the regular setup, to allow the
183    EAP protocol to run between the TLS server (called an "authenticator"
184    in EAP) and the TLS client (called a "supplicant").  This allows the
185    TLS architecture to handle client authentication before exposing the
186    server application software to an unauthenticated client.  In doing
187    this, we follow the approach taken for IKEv2 in [IKEv2].  However,
188    similar to regular TLS, we protect the user identity by only sending
189    the client identity after the server has authenticated.  In this our
190    solution defers from that of IKEv2.
192    Currently used applications use TLS to authenticate the server only.
193    After that, the application takes over, and presents a login screen
194    where the user is expected to present their credentials.
196    This creates several problems.  It allows a client to access the
197    application before authentication, thus creating a potential for
198    anonymous attacks on non-hardened applications.  Additionally, web
199    pages are not particularly well suited for long shared secrets and
200    for certain devices such as USB tokens.
202    TEE allows full mutual authentication to occur for all these
203    applications within the TLS exchange.  The application receives
204    control only when the user is identified and authenticated.  The
205    authentication can be built into the server infrastructure by
206    connecting to an AAA server.  The client side can be integrated into
207    client software such as web browsers and mail clients.  An EAP
208    infrastructure is already built-in to some operating systems
209    providing a user interface for each authentication method within EAP.
211    We intend TEE to be used for various protocols that use TLS such as
212    HTTPS, in cases where certificate based authentication is not
213    practical.  This includes web-based mail services, online banking,
214    premium content websites and mail clients.
216    Another class of applications that may see benefit from TEE are TLS
217    based VPN clients used as part of so-called "SSL VPN" products.  No
218    such client protocols have so far been standardized.
223 Nir, et al.              Expires August 25, 2007                [Page 4]
225 Internet-Draft                   TEE PM                    February 2007
228 1.1.  Conventions Used in This Document
230    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
231    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
232    document are to be interpreted as described in [RFC2119].
279 Nir, et al.              Expires August 25, 2007                [Page 5]
281 Internet-Draft                   TEE PM                    February 2007
284 2.  Operating Environment
286    TEE will work between a client application and a server application,
287    taking care of all encryption and authentication.
290         Client                         Server
291     +-------------------------+     +------------------------+
292     |  |GUI| | Client | |TLS+-+-----+-+TLS|   |Server      | |
293     |  +-^-+ |Software| +-^-+ |     +-+-^-+   |Application | |
294     |    |   +--------+   |   |     |   |     |Software    | |
295     |    |                |   |     |   |     +------------+ |
296     |  +-v----------------v-+ |     |   |                    |
297     |  |   EAP              | |     +---|--------------------+
298     |  |  Infrastructure    | |         |
299     |  +--------------------+ |         |    +--------+
300     +-------------------------+         |    | AAA    |
301                                         |    | Server |
302                                         +-----        |
303                                              +--------+
305    The above diagram shows the typical deployment.  The client has
306    software that either includes a UI for some EAP methods, or else is
307    able to invoke some operating system EAP infrastructure that takes
308    care of the user interaction.  The server is configured with the
309    address and protocol of the AAA server.  Typically the AAA server
310    communicates using the RADIUS protocol with EAP ([RADIUS] and
311    [RAD-EAP]), or the Diameter protocol ([Diameter] and [Dia-EAP]).
313    As stated in the introduction, we expect TEE to be used in both
314    browsers and applications.  Further uses may be authentication and
315    key generation for other protocols, and tunneling clients, which so
316    far have not been standardized.
335 Nir, et al.              Expires August 25, 2007                [Page 6]
337 Internet-Draft                   TEE PM                    February 2007
340 3.  Protocol Overview
342    The TEE extension defines the following:
343    o  A new extension type called tee_supported, used to indicate that
344       the client supports this extension.
345    o  A new message type for the handshake protocol, called InterimAuth,
346       which is used to sign previous messages.
347    o  A new message type for the handshake protocol, called EapMsg,
348       which is used to carry a single EAP message.
350    The diagram below outlines the protocol structure.  For illustration
351    purposes only, we use the [I-D.dpotter-pppext-eap-mschap] EAP method
352    .
354          Client                                               Server
355          ------                                               ------
357          ClientHello(*)             -------->
358                                                       ServerHello(*)
359                                                        (Certificate)
360                                                    ServerKeyExchange
361                                             EapMsg(Identity-Request)
362                                      <--------       ServerHelloDone
363          ClientKeyExchange
364          (CertificateVerify)
365          ChangeCipherSpec
366          InterimAuth
367          EapMsg(Identity-Reply)     -------->
368                                                     ChangeCipherSpec
369                                                          InterimAuth
370                                           EapMsg(MS-CHAP-v2-Request)
371                                     <--------
372          EapMsg(MS-CHAP-v2-Reply)   -------->
373                                                      EapMsg(Success)
374                                     <--------               Finished
375          Finished                   -------->
377        (*) The ClientHello and ServerHello include the tee_supported
378            extension to indicate support for TEE
381    The client indicates in the first message its support for TEE.  The
382    server sends an EAP identity request in the reply.  The client sends
383    the identity reply after the handshake completion.  The EAP request-
384    response sequence continues until the client is either authenticated
385    or rejected.
391 Nir, et al.              Expires August 25, 2007                [Page 7]
393 Internet-Draft                   TEE PM                    February 2007
396 3.1.  The tee_supported Extension
398    The tee_supported extension is a ClientHello and ServerHello
399    extension as defined in section 2.3 of [TLS-EXT].  The extension_type
400    field is TBA by IANA.  The extension_data is zero-length.
402 3.2.  The InterimAuth Handshake Message
404    The InterimAuth message is identical in syntax to the Finished
405    message described in section 7.4.9 of [TLS].  It is calculated in
406    exactly the same way.
408    The semantics, however, are somewhat different.  The "Finished"
409    message indicates that application data may now be sent.  The
410    "InterimAuth" message does not indicate this.  Instead, further
411    handshake messages are needed.
413    Depending on the EAP method used, the Finished message may be
414    calculated differently.  See Section 3.4 for details.
416    The HandshakeType value for the InterimAuth handshake message is TBA
417    by IANA.
419 3.3.  The EapMsg Handshake Message
421    The EapMsg handshake message carries exactly one EAP message as
422    defined in [EAP].
424    The HandshakeType value for the EapMsg handshake message is TBA by
425    IANA.
427    The EapMsg message is used to tunnel EAP messages between the
428    authentication server, which may be the co-located with the TLS
429    server, or may be a separate AAA server, and the supplicant, which is
430    co-located with the TLS client.  TLS on either side receives the EAP
431    data from the EAP infrastructure, and treats it as opaque.  TLS does
432    not make any changes to the EAP payload or make any decisions based
433    on the contents of an EapMsg handshake message.
435 3.4.  Calculating the Finished message
437    If the EAP method is key-generating, the Finished message is
438    calculated as follows:
447 Nir, et al.              Expires August 25, 2007                [Page 8]
449 Internet-Draft                   TEE PM                    February 2007
452          struct {
453              opaque verify_data[12];
454          } Finished;
456          verify_data
457              PRF(MSK, finished_label, MD5(handshake_messages) +
458              SHA-1(handshake_messages)) [0..11];
460    The finished_label is defined exactly as in section 7.4.9 of [TLS].
462    The handshake_messages, similar to regular TLS is all of the data
463    from all messages in this handshake, including any EapMsg and
464    InterimAuth messages, up to but not including this Finished message.
465    This is the concatenation of all the Handshake structures, as defined
466    in section 7.4 of [TLS] and here, exchanged thus far.
468    The MSK is typically received from the AAA server over the RADIUS or
469    Diameter protocol.
471    If the EAP method is not key-generating, then the Finished message is
472    calculated exactly as described in [TLS].  Such methods however, are
473    NOT RECOMMENDED.  See Section 4.1 for details.
503 Nir, et al.              Expires August 25, 2007                [Page 9]
505 Internet-Draft                   TEE PM                    February 2007
508 4.  Security Considerations
510 4.1.  InterimAuth vs. Finished
512    In regular TLS, the Finished message provides two functions: it signs
513    all previous messages, and it signals that application data can now
514    be used.  In TEE, we sign the previous messages twice.
516    Some EAP methods, such as EAP-TLS, EAP-IKEv2 and EAP-SIM generate
517    keys in addition to authenticating clients.  Such methods are said to
518    be resistant to MITM attacks as discussed in [MITM].  Such methods
519    are called key-generating methods.
521    To realize the benefit of such methods, we need to verify the key
522    that was generated within the EAP method.  This is referred to as the
523    MSK in EAP.  In TEE, the InterimAuth message signs all previous
524    messages with the master_secret, just like the Finished message in
525    regular TLS.  The Finished message signs all previous messages using
526    the MSK if such exists.  If not, then the messages are signed with
527    the master_secret as in regular TLS.
529    The need for signing twice arises from the fact that we need to use
530    both the master_secret and the MSK.  It was possible to use just one
531    Finished record and blend the MSK into the master_secret.  However,
532    this would needlessly complicate the protocol and make security
533    analysis more difficult.  Instead, we have decided to follow the
534    example of IKEv2, where two AUTH payloads are exchanged.
536    It should be noted that using non-key-generating methods may expose
537    the client to a MITM attack if the same MITM method is used in some
538    other situation, in which the EAP is done outside of a protected
539    tunnel with an authenticated server.  Unless it can be determined
540    that the EAP method is never used in such a situation, non-key-
541    generating methods SHOULD NOT be used.
543 4.2.  Identity Protection
545    Unlike [TLS-PSK], TEE provides identity protection for the client.
546    The client's identity is hidden from a passive eavesdropper using TLS
547    encryption, and it is not sent to the server until after the server's
548    identity has been authenticated by verifying the certificate.
550    Active attacks are thwarted by the server authentication using a
551    certificate or by using a suitable EAP method.
553    We could save one round-trip by having the client send its identity
554    within the Client Hello message.  This is similar to TLS-PSK.
555    However, we believe that identity protection is a worthy enough goal,
559 Nir, et al.              Expires August 25, 2007               [Page 10]
561 Internet-Draft                   TEE PM                    February 2007
564    so as to justify the extra round-trip.
615 Nir, et al.              Expires August 25, 2007               [Page 11]
617 Internet-Draft                   TEE PM                    February 2007
620 5.  Performance Considerations
622    Regular TLS adds two round-trips to a TCP connection.  However,
623    because of the stream nature of TCP, the client does not really need
624    to wait for the server's Finished message, and can begin sending
625    application data immediately after its own Finished message.  In
626    practice, many clients do so, and TLS only adds one round-trip of
627    delay.
629    TEE adds as many round-trips as the EAP method requires.  For
630    example, EAP-MD5 requires 1 round-trip, while EAP-SIM requires 2
631    round-trips.  Additionally, the client MUST wait for the EAP-Success
632    message before sending its own Finished message, so we need at least
633    3 round-trips for the entire handshake.  The best a client can do is
634    two round-trips plus however many round-trips the EAP method
635    requires.
637    It should be noted, though, that these extra round-trips save
638    processing time at the application level.  Two extra round-trips take
639    a lot less time than presenting a log-in web page and processing the
640    user's input.
642    It should also be noted, that TEE reverses the order of the Finished
643    messages.  In regular TLS the client sends the Finished message
644    first.  In TEE it is the server that sends the Finished message
645    first.  This should not affect performance, and it is clear that the
646    client may send application data immediately after the Finished
647    message.
671 Nir, et al.              Expires August 25, 2007               [Page 12]
673 Internet-Draft                   TEE PM                    February 2007
676 6.  IANA Considerations
678    IANA is asked to assign an extension type value from the
679    "ExtensionType Values" registry for the tee_supported extension.
681    IANA is asked to assign two handshake message types from the "TLS
682    HandshakeType Registry", one for "EapMsg" and one for "InterimAuth".
727 Nir, et al.              Expires August 25, 2007               [Page 13]
729 Internet-Draft                   TEE PM                    February 2007
732 7.  Acknowledgments
734    The TLS Innel Application Extension work ([TLS/IA]) has inspired the
735    authors to create this simplified work.  TLS/IA provides a somewhat
736    different approach to integrating non-certificate credentials into
737    the TLS protocol, in addition to several other features available
738    from the RADIUS namespace.
740    The authors would also like to thanks the various contributors to
741    [IKEv2] whose work inspired this one.
783 Nir, et al.              Expires August 25, 2007               [Page 14]
785 Internet-Draft                   TEE PM                    February 2007
788 8.  References
790 8.1.  Normative References
792    [EAP]      Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
793               Levkowetz, "Extensible Authentication Protocol (EAP)",
794               RFC 3748, June 2004.
796    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
797               Requirement Levels", BCP 14, RFC 2119, March 1997.
799    [TLS]      Dierks, T. and E. Rescorla, "The Transport Layer Security
800               (TLS) Protocol Version 1.1", RFC 4346, April 2006.
802    [TLS-EXT]  Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J.,
803               and T. Wright, "Transport Layer Security (TLS)
804               Extensions", RFC 4366, April 2006.
806 8.2.  Informative References
808    [Dia-EAP]  Eronen, P., Hiller, T., and G. Zorn, "Diameter Extensible
809               Authentication Protocol (EAP) Application", RFC 4072,
810               August 2005.
812    [Diameter]
813               Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J.
814               Arkko, "Diameter Base Protocol", RFC 3588, September 2003.
816    [I-D.dpotter-pppext-eap-mschap]
817               Potter, D. and J. Zamick, "PPP EAP MS-CHAP-V2
818               Authentication Protocol",
819               draft-dpotter-pppext-eap-mschap-01 (work in progress),
820               January 2002.
822    [IKEv2]    Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
823               RFC 4306, December 2005.
825    [MITM]     Asokan, N., Niemi, V., and K. Nyberg, "Man-in-the-Middle
826               in Tunneled Authentication Protocols", October 2002.
828    [RAD-EAP]  Aboba, B. and P. Calhoun, "RADIUS (Remote Authentication
829               Dial In User Service) Support For Extensible
830               Authentication Protocol (EAP)", RFC 3579, September 2003.
832    [RADIUS]   Rigney, C., Willens, S., Rubens, A., and W. Simpson,
833               "Remote Authentication Dial In User Service (RADIUS)",
834               RFC 2865, June 2000.
839 Nir, et al.              Expires August 25, 2007               [Page 15]
841 Internet-Draft                   TEE PM                    February 2007
844    [RFC4101]  Rescorla, E. and IAB, "Writing Protocol Models", RFC 4101,
845               June 2005.
847    [TLS-PSK]  Eronen, P. and H. Tschofenig, "Pre-Shared Key Ciphersuites
848               for Transport Layer Security (TLS)", RFC 4279,
849               December 2005.
851    [TLS/IA]   Funk, P., Blake-Wilson, S., Smith, H., Tschofenig, N., and
852               T. Hardjono, "TLS Inner Application Extension (TLS/IA)",
853               draft-funk-tls-inner-application-extension-03 (work in
854               progress), June 2006.
895 Nir, et al.              Expires August 25, 2007               [Page 16]
897 Internet-Draft                   TEE PM                    February 2007
900 Authors' Addresses
902    Yoav Nir
903    Check Point Software Technologies Ltd.
904    3A Jabotinsky St.
905    Ramat Gan  52520
906    Israel
908    Email: ynir@checkpoint.com
911    Yaron Sheffer
912    Check Point Software Technologies Ltd.
913    3A Jabotinsky St.
914    Ramat Gan  52520
915    Israel
917    Email: yaronf at checkpoint dot com
920    Hannes Tschofenig
921    Siemens
922    Otto-Hahn-Ring 6
923    Munich, Bavaria  81739
924    Germany
926    Email: Hannes.Tschofenig@siemens.com
927    URI:   http://www.tschofenig.com
951 Nir, et al.              Expires August 25, 2007               [Page 17]
953 Internet-Draft                   TEE PM                    February 2007
956 Full Copyright Statement
958    Copyright (C) The IETF Trust (2007).
960    This document is subject to the rights, licenses and restrictions
961    contained in BCP 78, and except as set forth therein, the authors
962    retain all their rights.
964    This document and the information contained herein are provided on an
965    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
966    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
967    THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
968    OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
969    THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
970    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
973 Intellectual Property
975    The IETF takes no position regarding the validity or scope of any
976    Intellectual Property Rights or other rights that might be claimed to
977    pertain to the implementation or use of the technology described in
978    this document or the extent to which any license under such rights
979    might or might not be available; nor does it represent that it has
980    made any independent effort to identify any such rights.  Information
981    on the procedures with respect to rights in RFC documents can be
982    found in BCP 78 and BCP 79.
984    Copies of IPR disclosures made to the IETF Secretariat and any
985    assurances of licenses to be made available, or the result of an
986    attempt made to obtain a general license or permission for the use of
987    such proprietary rights by implementers or users of this
988    specification can be obtained from the IETF on-line IPR repository at
989    http://www.ietf.org/ipr.
991    The IETF invites any interested party to bring to its attention any
992    copyrights, patents or patent applications, or other proprietary
993    rights that may cover technology that may be required to implement
994    this standard.  Please address the information to the IETF at
995    ietf-ipr@ietf.org.
998 Acknowledgment
1000    Funding for the RFC Editor function is provided by the IETF
1001    Administrative Support Activity (IASA).
1007 Nir, et al.              Expires August 25, 2007               [Page 18]