Improve GTK-DOC coverage.
[gnutls.git] / doc / protocol / draft-nir-tls-eap-02.txt
blobfa56748dc1681b10dcc79685b803d3a554a75e48
4 TLS Working Group                                                 Y. Nir
5 Internet-Draft                                                Y. Sheffer
6 Intended status: Standards Track                             Check Point
7 Expires: April 16, 2008                                    H. Tschofenig
8                                                                      NSN
9                                                               P. Gutmann
10                                                   University of Auckland
11                                                         October 14, 2007
14                       TLS using EAP Authentication
15                         draft-nir-tls-eap-02.txt
17 Status of this Memo
19    By submitting this Internet-Draft, each author represents that any
20    applicable patent or other IPR claims of which he or she is aware
21    have been or will be disclosed, and any of which he or she becomes
22    aware will be disclosed, in accordance with Section 6 of BCP 79.
24    Internet-Drafts are working documents of the Internet Engineering
25    Task Force (IETF), its areas, and its working groups.  Note that
26    other groups may also distribute working documents as Internet-
27    Drafts.
29    Internet-Drafts are draft documents valid for a maximum of six months
30    and may be updated, replaced, or obsoleted by other documents at any
31    time.  It is inappropriate to use Internet-Drafts as reference
32    material or to cite them other than as "work in progress."
34    The list of current Internet-Drafts can be accessed at
35    http://www.ietf.org/ietf/1id-abstracts.txt.
37    The list of Internet-Draft Shadow Directories can be accessed at
38    http://www.ietf.org/shadow.html.
40    This Internet-Draft will expire on April 16, 2008.
42 Copyright Notice
44    Copyright (C) The IETF Trust (2007).
55 Nir, et al.              Expires April 16, 2008                 [Page 1]
57 Internet-Draft                 EAP-in-TLS                   October 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 and before the Finished message,
72    effectively creating an extended handshake before the application
73    layer data can be sent.  Each EapMsg handshake record contains
74    exactly one EAP message.  Using EAP for client authentication allows
75    TLS to be used with various AAA back-end servers, such as RADIUS or
76    Diameter.
78    TLS with EAP may be used for securing a data connection such as HTTP
79    or POP3.  We believe it has three main benefits:
80    o  The ability of EAP to work with backend servers can remove that
81       burden from the application layer.
82    o  Moving the user authentication into the TLS handshake protects the
83       presumably less secure application layer from attacks by
84       unauthenticated parties.
85    o  Using mutual authentication methods within EAP can help thwart
86       certain classes of phishing attacks.
111 Nir, et al.              Expires April 16, 2008                 [Page 2]
113 Internet-Draft                 EAP-in-TLS                   October 2007
116 Table of Contents
118    1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
119      1.1.  EAP Applicability  . . . . . . . . . . . . . . . . . . . .  5
120      1.2.  Comparison with Design Alternatives  . . . . . . . . . . .  5
121      1.3.  Conventions Used in This Document  . . . . . . . . . . . .  5
122    2.  Operating Environment  . . . . . . . . . . . . . . . . . . . .  6
123    3.  Protocol Overview  . . . . . . . . . . . . . . . . . . . . . .  7
124      3.1.  The tee_supported Extension  . . . . . . . . . . . . . . .  8
125      3.2.  The InterimAuth Handshake Message  . . . . . . . . . . . .  8
126      3.3.  The EapMsg Handshake Message . . . . . . . . . . . . . . .  8
127      3.4.  Calculating the Finished message . . . . . . . . . . . . .  9
128    4.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
129      4.1.  InterimAuth vs. Finished . . . . . . . . . . . . . . . . . 10
130      4.2.  Identity Protection  . . . . . . . . . . . . . . . . . . . 10
131      4.3.  Mutual Authentication  . . . . . . . . . . . . . . . . . . 11
132    5.  Performance Considerations . . . . . . . . . . . . . . . . . . 12
133    6.  Operational Considerations . . . . . . . . . . . . . . . . . . 13
134    7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 14
135    8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 15
136    9.  Open Issues  . . . . . . . . . . . . . . . . . . . . . . . . . 16
137    10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17
138      10.1. Normative References . . . . . . . . . . . . . . . . . . . 17
139      10.2. Informative References . . . . . . . . . . . . . . . . . . 17
140    Appendix A.  Change History  . . . . . . . . . . . . . . . . . . . 19
141      A.1.  Changes from Previous Versions . . . . . . . . . . . . . . 19
142        A.1.1.  Changes in version -02 . . . . . . . . . . . . . . . . 19
143        A.1.2.  Changes in version -01 . . . . . . . . . . . . . . . . 19
144        A.1.3.  Changes from the protocol model draft  . . . . . . . . 19
145    Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20
146    Intellectual Property and Copyright Statements . . . . . . . . . . 21
167 Nir, et al.              Expires April 16, 2008                 [Page 3]
169 Internet-Draft                 EAP-in-TLS                   October 2007
172 1.  Introduction
174    This document describes a new extension to [TLS] that allows a TLS
175    client to authenticate using [EAP] instead of performing the
176    authentication at the application layer.  The extension follows
177    [TLS-EXT].  For the remainder of this document we will refer to this
178    extension as TEE (TLS with EAP Extension).
180    TEE extends the TLS handshake beyond the regular setup, to allow the
181    EAP protocol to run between the TLS server (called an "authenticator"
182    in EAP) and the TLS client (called a "supplicant").  This allows the
183    TLS architecture to handle client authentication before exposing the
184    server application software to an unauthenticated client.  In doing
185    this, we follow the approach taken for IKEv2 in [RFC4306].  However,
186    similar to regular TLS, we protect the user identity by only sending
187    the client identity after the server has authenticated.  In this our
188    solution differs from that of IKEv2.
190    Today, most applications that rely on symmetric credentials use TLS
191    to authenticate the server only.  After that, the application takes
192    over, and presents a login screen where the user is expected to
193    present their credentials.
195    This creates several problems.  It allows a client to access the
196    application before authentication, thus creating a potential for
197    anonymous attacks on non-hardened applications.  Additionally, web
198    pages are not particularly well suited for long shared secrets and
199    for interfacing with certain devices such as USB tokens.
201    TEE allows full mutual authentication to occur for all these
202    applications within the TLS exchange.  The application receives
203    control only when the user is identified and authenticated.  The
204    authentication can be built into the server infrastructure by
205    connecting to a AAA server.  The client side can be integrated into
206    client software such as web browsers and mail clients.  An EAP
207    infrastructure is already built into major operating systems
208    providing a user interface for each authentication method within EAP.
210    We intend TEE to be used for various protocols that use TLS such as
211    HTTPS, in cases where certificate based client authentication is not
212    practical.  This includes web-based mail services, online banking,
213    premium content websites and mail clients.
215    Another class of applications that may see benefit from TEE are TLS
216    based VPN clients used as part of so-called "SSL VPN" products.  No
217    such client protocols so far has been standardized.
223 Nir, et al.              Expires April 16, 2008                 [Page 4]
225 Internet-Draft                 EAP-in-TLS                   October 2007
228 1.1.  EAP Applicability
230    Section 1.3 of [EAP] states that EAP is only applicable for network
231    access authentication, rather than for "bulk data transfer".  It then
232    goes on to explain why the transport properties of EAP indeed make it
233    unsuitable for bulk data transfer, e.g., for large file transport.
234    Our proposed use of EAP falls squarely within the applicability as
235    defined, since we make no further use of EAP beyond access
236    authentication.
238 1.2.  Comparison with Design Alternatives
240    It has been suggested to implement EAP authentication as part of the
241    protected application, rather than as part of the TLS handshake.  A
242    BCP document could be used to describe a secure way of doing this.
243    The drawbacks we see in such an approach are listed below:
244    o  EAP does not have a pre-defined transport method.  Application
245       designers would need to specify an EAP transport for each
246       application.  Making this a part of TLS has the benefit of a
247       single specification for all protected applications.
248    o  The integration of EAP and TLS is security-sensitive and should be
249       standardized and interoperable.  We do not believe that it should
250       be left to application designers to do this in a secure manner.
251       Specifically on the server-side, integration with AAA servers adds
252       complexity and is more naturally part of the underlying
253       infrastrcture.
254    o  Our current proposal provides channel binding between TLS and EAP,
255       to counter the MITM attacks described in [MITM].  A draft for
256       allowing applications the access to keying material produced by
257       TLS is available with [I-D.rescorla-tls-extractor].  This type of
258       interworking between the TLS stack and the application layer is
259       necessary when EAP is run outside the TLS handshake and then the
260       two exchanges need to be linked together.  Since the key extractor
261       functionality is not yet available in TLS stacks it is difficult
262       for application designers to bind the user authentication to the
263       protected channel provided by TLS.
265 1.3.  Conventions Used in This Document
267    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
268    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
269    document are to be interpreted as described in [RFC2119].
279 Nir, et al.              Expires April 16, 2008                 [Page 5]
281 Internet-Draft                 EAP-in-TLS                   October 2007
284 2.  Operating Environment
286    TEE will work between a client application and a server application,
287    performing either client authentication or mutual authentication
288    within the TLS exchange.
291         Client                         Server
292     +-------------------------+     +------------------------+
293     |  |GUI| | Client | |TLS+-+-----+-+TLS|   |Server      | |
294     |  +-^-+ |Software| +-^-+ |     +-+-^-+   |Application | |
295     |    |   +--------+   |   |     |   |     |Software    | |
296     |    |                |   |     |   |     +------------+ |
297     |  +-v----------------v-+ |     |   |                    |
298     |  |   EAP              | |     +---|--------------------+
299     |  |  Infrastructure    | |         |
300     |  +--------------------+ |         |    +--------+
301     +-------------------------+         |    | AAA    |
302                                         |    | Server |
303                                         +-----        |
304                                              +--------+
306    The above diagram shows the typical deployment.  The client has
307    software that either includes a UI for some EAP methods, or else is
308    able to invoke some operating system EAP infrastructure that takes
309    care of the user interaction.  The server is configured with the
310    address and protocol of the AAA server.  Typically the AAA server
311    communicates using the RADIUS protocol with EAP ([RADIUS] and
312    [RAD-EAP]), or the Diameter protocol ([Diameter] and [Dia-EAP]).
314    As stated in the introduction, we expect TEE to be used in both
315    browsers and applications.  Further uses may be authentication and
316    key generation for other protocols, and tunneling clients, which so
317    far have not been standardized.
335 Nir, et al.              Expires April 16, 2008                 [Page 6]
337 Internet-Draft                 EAP-in-TLS                   October 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 communicating application (either client or server) supports
345       this extension.
346    o  A new message type for the handshake protocol, called InterimAuth,
347       which is used to sign previous messages.
348    o  A new message type for the handshake protocol, called EapMsg,
349       which is used to carry a single EAP message.
351    The diagram below outlines the protocol structure.  For illustration
352    purposes only, we use the GPSK EAP method [EAP-GPSK].
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(GPSK-Request)
371                                     <--------
372          EapMsg(GPSK-Reply)         -------->
373                                                 EapMsg(GPSK-Request)
374                                     <--------
375          EapMsg(GPSK-Reply)         -------->
376                                                      EapMsg(Success)
377                                     <--------               Finished
378          Finished                   -------->
380        (*) The ClientHello and ServerHello include the tee_supported
381            extension to indicate support for TEE
384    The client indicates in the first message its support for TEE.  The
385    server sends an EAP identity request in the reply.  The client sends
386    the identity reply after the handshake completion.  The EAP request-
387    response sequence continues until the client is either authenticated
391 Nir, et al.              Expires April 16, 2008                 [Page 7]
393 Internet-Draft                 EAP-in-TLS                   October 2007
396    or rejected.
398 3.1.  The tee_supported Extension
400    The tee_supported extension is a ClientHello and ServerHello
401    extension as defined in Section 2.3 of [TLS-EXT].  The extension_type
402    field is TBA by IANA.  The extension_data is zero-length.
404 3.2.  The InterimAuth Handshake Message
406    The InterimAuth message is identical in syntax to the Finished
407    message described in Section 7.4.9 of [TLS].  It is calculated in
408    exactly the same way.
410    The semantics, however, are somewhat different.  The "Finished"
411    message indicates that application data may now be sent.  The
412    "InterimAuth" message does not indicate this.  Instead, further
413    handshake messages are needed.
415    The HandshakeType value for the InterimAuth handshake message is TBA
416    by IANA.
418 3.3.  The EapMsg Handshake Message
420    The EapMsg handshake message carries exactly one EAP message as
421    defined in [EAP].
423    The HandshakeType value for the EapMsg handshake message is TBA by
424    IANA.
426    The EapMsg message is used to tunnel EAP messages between the
427    authentication server, which may be co-located with the TLS server,
428    or else may be a separate AAA server, and the supplicant, which is
429    co-located with the TLS client.  TLS on either side receives the EAP
430    data from the EAP infrastructure, and treats it as opaque.  TLS does
431    not make any changes to the EAP payload or make any decisions based
432    on the contents of an EapMsg handshake message.
434    Note that it is expected that the EAP server notifies the TLS server
435    about authentication success or failure, and TLS does not inspect the
436    eap_payload within the EapMsg to detect success or failure.
438          struct {
439              opaque eap_payload[4..65535];
440          } EapMsg;
442          eap_payload is defined in section 4 of RFC 3748. It includes
443          the Code, Identifier, Length and Data fields of the EAP
447 Nir, et al.              Expires April 16, 2008                 [Page 8]
449 Internet-Draft                 EAP-in-TLS                   October 2007
452          packet.
454 3.4.  Calculating the Finished message
456    If the EAP method is key-generating (see [I-D.ietf-eap-keying]), the
457    Finished message is calculated as follows:
459          struct {
460              opaque verify_data[12];
461          } Finished;
463          verify_data
464              PRF(MSK, finished_label, MD5(handshake_messages) +
465              SHA-1(handshake_messages)) [0..11];
467    The finished_label and the PRF are as defined in Section 7.4.9 of
468    [TLS].
470    The handshake_messages field, unlike regular TLS, does not sign all
471    the data in the handshake.  Instead it signs all the data that has
472    not been signed by the previous InterimAuth message.  The
473    handshake_messages field includes all of the octets beginning with
474    and including the InterimAuth message, up to but not including this
475    Finished message.  This is the concatenation of all the Handshake
476    structures exchanged thus far, and not yet signed, as defined in
477    Section 7.4 of [TLS]and in this document.
479    The Master Session Key (MSK) is derived by the AAA server and by the
480    client if the EAP method is key-generating.  On the server-side, it
481    is typically received from the AAA server over the RADIUS or Diameter
482    protocol.  On the client-side, it is passed to TLS by some other
483    method.
485    If the EAP method is not key-generating, then the master_secret is
486    used to sign the messages instead of the MSK.  For a discussion on
487    the use of such methods, see Section 4.1.
503 Nir, et al.              Expires April 16, 2008                 [Page 9]
505 Internet-Draft                 EAP-in-TLS                   October 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 preceding messages, and it signals that application data can now
514    be sent.  In TEE, it only signs those messages that have not yet been
515    signed.
517    Some EAP methods, such as EAP-TLS, EAP-IKEv2 and EAP-SIM generate
518    keys in addition to authenticating clients.  Such methods are said to
519    be resistant to man-in-the-middle (MITM) attacks as discussed in
520    [MITM].  Such methods are called key-generating methods.
522    To realize the benefit of such methods, we need to verify the key
523    that was generated within the EAP method.  This is referred to as the
524    MSK in EAP.  In TEE, the InterimAuth message signs all previous
525    messages with the master_secret, just like the Finished message in
526    regular TLS.  The Finished message signs the rest of the messages
527    using the MSK if such exists.  If not, then the messages are signed
528    with the master_secret as in regular TLS.
530    The need for signing twice arises from the fact that we need to use
531    both the master_secret and the MSK.  It was possible to use just one
532    Finished record and blend the MSK into the master_secret.  However,
533    this would needlessly complicate the protocol and make security
534    analysis more difficult.  Instead, we have decided to follow the
535    example of IKEv2, where two AUTH payloads are exchanged.
537    It should be noted that using non-key-generating methods may expose
538    the client to a MITM attack if the same method and credentials are
539    used in some other situation, in which the EAP is done outside of a
540    protected tunnel with an authenticated server.  Unless it can be
541    determined that the EAP method is never used in such a situation,
542    non-key-generating methods SHOULD NOT be used.  This issue is
543    discussed extensively in [Compound-Authentication].
545 4.2.  Identity Protection
547    Unlike [TLS-PSK], TEE provides active user identity confidentiality
548    for the client.  The client's identity is hidden from an active and a
549    passive eavesdropper using the server-side authenticated TLS channel
550    (followed by encryption of the EAP-based handshake messages).  Active
551    attacks are discussed in Section 4.3.
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 April 16, 2008                [Page 10]
561 Internet-Draft                 EAP-in-TLS                   October 2007
564    so as to justify the extra round-trip.
566 4.3.  Mutual Authentication
568    In order to achieve our security goals, we need to have both the
569    server and the client authenticate.  Client authentication is
570    obviously done using the EAP method.  The server authentication can
571    be done in either of two ways:
572    1.  The client can verify the server certificate.  This may work well
573        depending on the scenario, but implies that the client or its
574        user can recognize the right DN or alternate name, and
575        distinguish it from plausible alternatives.  The introduction to
576        [I.D.Webauth-phishing] shows that at least in HTTPS, this is not
577        always the case.
578    2.  The client can use a mutually authenticated (MA) EAP method such
579        as GPSK.  In this case, server certificate verification does not
580        matter, and the TLS handshake may as well be anonymous.  Note
581        that in this case, the client identity is sent to the server
582        before server authentication.
584    To summarize:
585    o  Clients MUST NOT propose anonymous ciphersuites, unless they
586       support MA EAP methods.
587    o  Clients MUST NOT accept non-MA methods if the ciphersuite is
588       anonymous.
589    o  Clients MUST NOT accept non-MA methods if they are not able to
590       verify the server credentials.  Note that this document does not
591       define what verification involves.  If the server DN is known and
592       stored on the client, verifying certificate signature and checking
593       revocation may be enough.  For web browsers, the case is not as
594       clear cut, and MA methods SHOULD be used.
615 Nir, et al.              Expires April 16, 2008                [Page 11]
617 Internet-Draft                 EAP-in-TLS                   October 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-GPSK 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 April 16, 2008                [Page 12]
673 Internet-Draft                 EAP-in-TLS                   October 2007
676 6.  Operational Considerations
678    Section 4.3 defines a dependency between the TLS state and the EAP
679    state in that it mandates that certain EAP methods should not be used
680    with certain TLS ciphersuites.  To avoid such dependencies, there are
681    two approaches that implementations can take.  They can either not
682    use any anonymous ciphersuites, or else they can use only MA EAP
683    methods.
685    Where certificate validation is problematic, such as in browser-based
686    HTTPS, we recommend the latter approach.
688    In cases where the use of EAP within TLS is not known before opening
689    the connection, it is necessary to consider the implications of
690    requiring the user to type in credentials after the connection has
691    already started.  TCP sessions may time out, because of security
692    considerations, and this may lead to session setup failure.
727 Nir, et al.              Expires April 16, 2008                [Page 13]
729 Internet-Draft                 EAP-in-TLS                   October 2007
732 7.  IANA Considerations
734    IANA is asked to assign an extension type value from the
735    "ExtensionType Values" registry for the tee_supported extension.
737    IANA is asked to assign two handshake message types from the "TLS
738    HandshakeType Registry", one for "EapMsg" and one for "InterimAuth".
783 Nir, et al.              Expires April 16, 2008                [Page 14]
785 Internet-Draft                 EAP-in-TLS                   October 2007
788 8.  Acknowledgments
790    The authors would like to thank Josh Howlett for his comments.
792    The TLS Inner Application Extension work ([TLS/IA]) has inspired the
793    authors to create this simplified work.  TLS/IA provides a somewhat
794    different approach to integrating non-certificate credentials into
795    the TLS protocol, in addition to several other features available
796    from the RADIUS namespace.
798    The authors would also like to thank the various contributors to
799    [RFC4306] whose work inspired this one.
839 Nir, et al.              Expires April 16, 2008                [Page 15]
841 Internet-Draft                 EAP-in-TLS                   October 2007
844 9.  Open Issues
846    Some have suggested that since the protocol is identical to regular
847    TLS up to the InterimAuth message, we should call that the Finished
848    message, and call the last message in the extended handshake
849    something like "EapFinished".  This has the advantage that the
850    construction of Finished is already well defined and will not change.
851    However, the Finished message has a specific meaning as indicated by
852    its name.  It means that the handshake is over and that application
853    data can now be sent.  This is not true of what is in this draft
854    called InterimAuth.  We would like the opinions of reviewers about
855    this issue.
857    The MSK from the EAP exchange is only used to sign the Finished
858    message.  It is not used again in the data encryption.  In this we
859    followed the example of IKEv2.  The reason is that TLS already has
860    perfectly good ways of exchanging keys, and we do not need this
861    capability from EAP methods.  Also, using the MSK in keys would
862    require an additional ChangeCipherSpec and would complicate the
863    protocol.  We would like the opinions of reviewers about this issue.
865    Another response we got was that we should have a MUST requirement
866    that only mutually authenticated and key generating methods be used
867    in TEE.  This would simplify the security considerations section.
868    While we agree that this is a good idea, most EAP methods in common
869    use are not compliant.  Additionally, such requirements assume that
870    EAP packets are visible to a passive attacker.  As EAP is used in
871    protected tunnels such as in L2TP, in IKEv2 and here, this assumption
872    may not be required.  If we consider the server authenticated by its
873    certificate, it may be acceptable to use a non-MA method.
875    It has been suggested that identity protection is not important
876    enough to add a roundtrip, and so we should have the client send the
877    username in the ClientHello.  We are not sure about how others feel
878    about this, and would like to solicit the reviewers opinion.  Note
879    that if this is done, the client sends the user name before ever
880    receiving any indication that the server actually supports TEE.  This
881    might be acceptable in an email client, where the server is
882    preconfigured, but it may be unacceptable in other uses, such as web
883    browsers.
895 Nir, et al.              Expires April 16, 2008                [Page 16]
897 Internet-Draft                 EAP-in-TLS                   October 2007
900 10.  References
902 10.1.  Normative References
904    [EAP]      Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
905               Levkowetz, "Extensible Authentication Protocol (EAP)",
906               RFC 3748, June 2004.
908    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
909               Requirement Levels", BCP 14, RFC 2119, March 1997.
911    [TLS]      Dierks, T. and E. Rescorla, "The Transport Layer Security
912               (TLS) Protocol Version 1.1", RFC 4346, April 2006.
914    [TLS-EXT]  Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J.,
915               and T. Wright, "Transport Layer Security (TLS)
916               Extensions", RFC 4366, April 2006.
918 10.2.  Informative References
920    [Compound-Authentication]
921               Puthenkulam, J., Lortz, V., Palekar, A., and D. Simon,
922               "The Compound Authentication Binding Problem",
923               draft-puthenkulam-eap-binding-04 (work in progress),
924               October 2003.
926    [Dia-EAP]  Eronen, P., Hiller, T., and G. Zorn, "Diameter Extensible
927               Authentication Protocol (EAP) Application", RFC 4072,
928               August 2005.
930    [Diameter]
931               Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J.
932               Arkko, "Diameter Base Protocol", RFC 3588, September 2003.
934    [EAP-GPSK]
935               Clancy, T. and H. Tschofenig, "EAP Generalized Pre-Shared
936               Key (EAP-GPSK)", draft-ietf-emu-eap-gpsk-05 (work in
937               progress), April 2007.
939    [I-D.ietf-eap-keying]
940               Aboba, B., "Extensible Authentication Protocol (EAP) Key
941               Management Framework", draft-ietf-eap-keying-18 (work in
942               progress), February 2007.
944    [I-D.rescorla-tls-extractor]
945               Rescorla, E., "Keying Material Extractors for Transport
946               Layer Security (TLS)", draft-rescorla-tls-extractor-00
947               (work in progress), January 2007.
951 Nir, et al.              Expires April 16, 2008                [Page 17]
953 Internet-Draft                 EAP-in-TLS                   October 2007
956    [I.D.Webauth-phishing]
957               Hartman, S., "Requirements for Web Authentication
958               Resistant to Phishing", draft-hartman-webauth-phishing-03
959               (work in progress), March 2007.
961    [MITM]     Asokan, N., Niemi, V., and K. Nyberg, "Man-in-the-Middle
962               in Tunneled Authentication Protocols", IACR ePrint
963               Archive , October 2002.
965    [RAD-EAP]  Aboba, B. and P. Calhoun, "RADIUS (Remote Authentication
966               Dial In User Service) Support For Extensible
967               Authentication Protocol (EAP)", RFC 3579, September 2003.
969    [RADIUS]   Rigney, C., Willens, S., Rubens, A., and W. Simpson,
970               "Remote Authentication Dial In User Service (RADIUS)",
971               RFC 2865, June 2000.
973    [RFC4306]  Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
974               RFC 4306, December 2005.
976    [TLS-PSK]  Eronen, P. and H. Tschofenig, "Pre-Shared Key Ciphersuites
977               for Transport Layer Security (TLS)", RFC 4279,
978               December 2005.
980    [TLS/IA]   Funk, P., Blake-Wilson, S., Smith, H., Tschofenig, N., and
981               T. Hardjono, "TLS Inner Application Extension (TLS/IA)",
982               draft-funk-tls-inner-application-extension-03 (work in
983               progress), June 2006.
1007 Nir, et al.              Expires April 16, 2008                [Page 18]
1009 Internet-Draft                 EAP-in-TLS                   October 2007
1012 Appendix A.  Change History
1014 A.1.  Changes from Previous Versions
1016 A.1.1.  Changes in version -02
1018    o  Added discussion of alternative designs.
1020 A.1.2.  Changes in version -01
1022    o  Changed the construction of the Finished message
1023    o  Replaced MS-CHAPv2 with GPSK in examples.
1024    o  Added open issues section.
1025    o  Added reference to [Compound-Authentication]
1026    o  Fixed reference to MITM attack
1028 A.1.3.  Changes from the protocol model draft
1030    o  Added diagram for EapMsg
1031    o  Added discussion of EAP applicability
1032    o  Added discussion of mutually-authenticated EAP methods vs other
1033       methods in the security considerations.
1034    o  Added operational considerations.
1035    o  Other minor nits.
1063 Nir, et al.              Expires April 16, 2008                [Page 19]
1065 Internet-Draft                 EAP-in-TLS                   October 2007
1068 Authors' Addresses
1070    Yoav Nir
1071    Check Point Software Technologies Ltd.
1072    5 Hasolelim st.
1073    Tel Aviv  67897
1074    Israel
1076    Email: ynir@checkpoint.com
1079    Yaron Sheffer
1080    Check Point Software Technologies Ltd.
1081    5 Hasolelim st.
1082    Tel Aviv  67897
1083    Israel
1085    Email: yaronf@checkpoint.com
1088    Hannes Tschofenig
1089    Nokia Siemens Networks
1090    Otto-Hahn-Ring 6
1091    Munich, Bavaria  81739
1092    Germany
1094    Email: Hannes.Tschofenig@siemens.com
1095    URI:   http://www.tschofenig.com
1098    Peter Gutmann
1099    University of Auckland
1100    Department of Computer Science
1101    New Zealand
1103    Email: pgut001@cs.auckland.ac.nz
1119 Nir, et al.              Expires April 16, 2008                [Page 20]
1121 Internet-Draft                 EAP-in-TLS                   October 2007
1124 Full Copyright Statement
1126    Copyright (C) The IETF Trust (2007).
1128    This document is subject to the rights, licenses and restrictions
1129    contained in BCP 78, and except as set forth therein, the authors
1130    retain all their rights.
1132    This document and the information contained herein are provided on an
1133    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1134    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
1135    THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
1136    OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
1137    THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1138    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1141 Intellectual Property
1143    The IETF takes no position regarding the validity or scope of any
1144    Intellectual Property Rights or other rights that might be claimed to
1145    pertain to the implementation or use of the technology described in
1146    this document or the extent to which any license under such rights
1147    might or might not be available; nor does it represent that it has
1148    made any independent effort to identify any such rights.  Information
1149    on the procedures with respect to rights in RFC documents can be
1150    found in BCP 78 and BCP 79.
1152    Copies of IPR disclosures made to the IETF Secretariat and any
1153    assurances of licenses to be made available, or the result of an
1154    attempt made to obtain a general license or permission for the use of
1155    such proprietary rights by implementers or users of this
1156    specification can be obtained from the IETF on-line IPR repository at
1157    http://www.ietf.org/ipr.
1159    The IETF invites any interested party to bring to its attention any
1160    copyrights, patents or patent applications, or other proprietary
1161    rights that may cover technology that may be required to implement
1162    this standard.  Please address the information to the IETF at
1163    ietf-ipr@ietf.org.
1166 Acknowledgment
1168    Funding for the RFC Editor function is provided by the IETF
1169    Administrative Support Activity (IASA).
1175 Nir, et al.              Expires April 16, 2008                [Page 21]