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
12 Protocol Model for TLS with EAP Authentication
13 draft-nir-tee-pm-00.txt
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-
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.
42 Copyright (C) The IETF Trust (2007).
55 Nir, et al. Expires August 25, 2007 [Page 1]
57 Internet-Draft TEE PM February 2007
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
111 Nir, et al. Expires August 25, 2007 [Page 2]
113 Internet-Draft TEE PM February 2007
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
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.
291 +-------------------------+ +------------------------+
292 | |GUI| | Client | |TLS+-+-----+-+TLS| |Server | |
293 | +-^-+ |Software| +-^-+ | +-+-^-+ |Application | |
294 | | +--------+ | | | | |Software | |
295 | | | | | | +------------+ |
296 | +-v----------------v-+ | | | |
297 | | EAP | | +---|--------------------+
298 | | Infrastructure | | |
299 | +--------------------+ | | +--------+
300 +-------------------------+ | | AAA |
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
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
357 ClientHello(*) -------->
361 EapMsg(Identity-Request)
362 <-------- ServerHelloDone
367 EapMsg(Identity-Reply) -------->
370 EapMsg(MS-CHAP-v2-Request)
372 EapMsg(MS-CHAP-v2-Reply) -------->
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
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
419 3.3. The EapMsg Handshake Message
421 The EapMsg handshake message carries exactly one EAP message as
424 The HandshakeType value for the EapMsg handshake message is TBA by
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
453 opaque verify_data[12];
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
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
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
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
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
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
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
790 8.1. Normative References
792 [EAP] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
793 Levkowetz, "Extensible Authentication Protocol (EAP)",
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,
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),
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)",
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,
847 [TLS-PSK] Eronen, P. and H. Tschofenig, "Pre-Shared Key Ciphersuites
848 for Transport Layer Security (TLS)", RFC 4279,
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
903 Check Point Software Technologies Ltd.
908 Email: ynir@checkpoint.com
912 Check Point Software Technologies Ltd.
917 Email: yaronf at checkpoint dot com
923 Munich, Bavaria 81739
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
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]