view Side-By-Side changes
Network Working Group Bernard Aboba INTERNET-DRAFT Microsoft Category:Standards Track <draft-aboba-pppext-eapgss-00.txt> 1 December 1999 Expires: August 1,Experimental <draft-aboba-pppext-eapgss-02.txt> 21 November 2000PPPEAP GSS Authentication Protocol 1. Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.To view the entire list of current Internet-Drafts, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). The distribution of this memo is unlimited.2. Copyright Notice Copyright (C) The Internet Society(1999).(2000). All Rights Reserved. 3. Abstract ThePoint-to-Point Protocol (PPP) provides a standard method for transporting multi-protocol datagrams over point-to-point links. PPP also defines an extensible Link Control Protocol (LCP), which can be used to negotiate authentication methods, as well as an Encryption Aboba Standards Track [Page 1] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 1999 Control Protocol (ECP), used to negotiate data encryption over PPP links, and a Compression Control Protocol (CCP), used to negotiate compression methods. TheExtensible Authentication Protocol (EAP) provides a standard mechanism for support of additional authentication methods withinPPP.layer 2 protocols, including PPP and IEEE 802.1X. Through the use of EAP, support for a number of authentication schemes may be added, including public key, smart cards, Kerberos,Public Key,One Time Passwords, and others. It is desirable to supportGSS_APIGSS-API authentication methods within EAP, since this permits developers creatingGSS_APIGSS-API compliant authentication methods to leverage their development efforts. This document describes how EAP-GSS, which includes support for fragmentation and reassembly, supports the use ofGSS_APIGSS-API mechanisms within EAP.GSS_APIGSS-API provides for the negotiation of authentication methods through use of the SPNEGO mechanism. As a result, anyGSS_APIGSS-API mechanism supported by SPNEGO and Aboba Experimental [Page 1] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 providing initial authentication can be used withEAP-GSS.EAP-GSS, including IAKERB. 4. Introduction ThePoint-to-Point Protocol (PPP), described in [1], provides a standard method for transporting multi-protocol datagrams over point-to-point links. PPP also defines an extensible Link Control Protocol (LCP) [3], which can be used to negotiate authentication methods, as well as an Encryption Control Protocol (ECP) [6], used to negotiate data encryption over PPP links, and a Compression Control Protocol (CCP) [13], used to negotiate compression methods. TheExtensible Authentication Protocol (EAP)[5],[5] provides a standard mechanism for support of additional authentication methods withinPPP.layer 2 protocols, including PPP [1] and IEEE 802.1X [27]. Through the use of EAP, support for a number of authentication schemes may be added, including public key [12], smart cards, Kerberos, One Time Passwords, and others. It is desirable to supportGSS_APIGSS-API authentication methods within EAP, since this permits developers creatingGSS_APIGSS-API compliant authentication methods to leverage their development efforts. This document describes how EAP-GSS, which includes support for fragmentation and reassembly, supports the use ofGSS_APIGSS-API mechanisms within EAP.GSS_API,GSS-API, described in [15], provides for the negotiation of authentication methods through use of the SPNEGO mechanism, described in[20].[19]. As a result, anyGSS_APIGSS-API mechanism supported by SPNEGO and providing initial authentication can be used withEAP-GSS.EAP-GSS, including IAKERB [18]. 4.1. Requirements language In this document, the key words "MAY", "MUST, "MUST NOT", "optional", "recommended", "SHOULD", and "SHOULD NOT", are to be interpreted as described in [11].Aboba Standards Track [Page 2] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 19995. Protocol overview5.1. Overview of the EAP-GSS conversationAs described in [5], the EAP-GSS conversation will typically begin with the authenticator and the peer negotiating EAP. The authenticator will then typically send an EAP-Request/Identity packet to the peer, and the peer will respond with an EAP-Response/Identity packet to the authenticator, containing the peer'suserId.user-Id. >Fromthis point forward, while nominallyhere on, theEAPEAP-GSS conversationoccurs between the PPP authenticator andmay proceed in one of two ways. In thepeer,first mode, theauthenticator MAY actpeer acts asa passthrough device, withtheEAP packets received fromGSS-API initiator, and thepeer being encapsulated for transmission to a RADIUSEAP serveror backend security server.acts as the GSS-API target. In thediscussion that follows, we will usesecond mode, which shortens theterm "EAP server" to denoteconversation by one round-trip, theultimate endpoint conversing withEAP server acts as thepeer.GSS-API initiator, and the peer acts as the GSS-API target. We discuss each mode in turn. 5.1. EAP server as GSS-API initiator Once having received the peer's Identity, the EAP serverMUST respondresponds with anEAP-GSS/Start packet, which is anEAP-Request packet of EAP-Type=EAP-GSS. Aboba Experimental [Page 2] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 If the EAP server knows the GSS-API method to be used withEAP- Type=EAP-GSS,theStart (S) bit set,peer a- priori, andno data. The EAP-GSS conversation willthat GSS-API method can be initiated by the EAP Server, thenbegin,the EAP server MAY act as a GSS-API initiator with the peersending an EAP-Response packet with EAP-Type=EAP-GSS. The data field of that packet will encapsulateacting as aGSS_API token. TheGSS-API target. Since the EAP serverwill then respond withcannot know whether it can act as initiator if the GSS-API method is to be negotiated, in this case the method must be selected a-priori and SPNEGO MUST NOT be used. To initiate the conversation, the EAP-Server sends an EAP-Request packet withEAP- Type=EAP-GSS.EAP-Type=EAP-GSS. The data field ofthisthe packet will encapsulate aGSS_API token. Note that a client with valid GSS_API credentials may chose to reuse those credentialsGSS-API token, created aspart of the GSS_API authentication. This allows for improved efficiency in the case where a client repeatedly attempts to authentication to an EAP server withinashort periodresult oftime. This may have application in cases such as multilink authentication. Asaresult, it is left upcall to GSS_Init_sec_context (). In this case mutual authentication MUST be requested (otherwise the peerwhether to attemptwould not be authenticated toreuse credentials, thus shorteningtheEAP-GSS conversation. Typicallyauthenticator!) so that thepeer's decision will be made based onthetime elapsed sincemutual_req_flag is set and theprevious authentication attemptcall tothat EAP server. Based on the expiration time ofGSS_Init_sec-context() returns GSS_S_CONTINUE_NEEDED status. When it receives thecredentials,EAP-Request, theEAP serverpeer willdecide whether to allow the reuse. Inde-capsulate thecase wherereceived GSS-API token within theEAP serverEAP-GSS frame, andauthenticator reside on the same device, then clientwillonly be able to reuse credentials when connectingpass it as the input_token parameter to GSS_Accept_sec_context(). If GSS_Accept_sec_context indicates GSS_S_COMPLETE status, then thesame NAS or tunnel server. Should these devices be set upauthenticator has been authenticated by the peer, and the authenticator's indicated identity is provided ina rotary or round-robin then it may not be possible forthepeersrc_name result, along with an output_token to be encapsulated within an EAP-Response packet with EAP-Type=EAP-GSS, and passed back toknow in advancetheauthenticator itEAP-Server. The EAP server willbe connecting to,then de-capsulate the GSS-API token within the EAP- Response message andtherefore which credentialspass it as the input_token parameter toattemptGSS_Init_sec_context(). If the call returns GSS_S_COMPLETE status, then the peer has been authenticated toreuse. As a result, it is likely thatthereuse attempt will fail. InEAP-Server, then thecase whereEAP-Server responds with an EAP-Success message. If GSS_S_CONTINUE_NEEDED status is returned, then the EAP Server encapsulates the returned output_token with an EAP-Request packet of EAP-Type=EAP-GSS, and pass this back to the peer. AbobaStandards TrackExperimental [Page 3] INTERNET-DRAFTPPPEAP GSS Authentication Protocol1 December 1999 authentication is remoted then reuse21 November 2000 The conversation (which can require as few as 2.5 round trips) appears as follows: Peer Authenticator ------ ------------- EAP/Identity <-------Request EAP/Identity Response --------> GSS_Init_sec_context(mutual_req_flag) returns GSS_S_CONTINUE_NEEDED, output_token <--------EAP Request EAP-GSS output_token GSS_Accept_sec_context(input_token) returns GSS_S_COMPLETE, output_token EAP Response EAP-GSS output_token --------> GSS_Init_sec_context(input_token) returns GSS_S_COMPLETE <--------EAP Success 5.2. Peer as GSS-API initiator If the EAP server ismuch more likelyprepared tobe successful, since multiple NAS devices and tunnel servers will remote theirallow negotiation of the GSS-API method via SPNEGO [19], or if the EAPauthenticationsserver knows the GSS-API method to be used, but cannot initiate it (e.g. IAKERB, Kerberos V), then thesame RADIUS server. Ifpeer MUST act as a GSS-API initiator, with the EAP serverauthenticates successfully,acting as thepeerGSS- API target. In this case, the EAP server MUSTsendrespond with anEAP- ResponseEAP-GSS/Start packet, which is an EAP-Request packetofwith EAP-Type=EAP-GSS, the Start (S) bit set, and no data. TheEAP-Serverper thenMUST respond with an EAP-Success message. 5.2. Retry behavior Ascalls GSS_Init_sec_context(), typically withother EAP protocols, the EAP server is responsible for retry behavior. This meansmutual authentication requested so thatif the EAP server does not receive a reply fromthepeer, it MUST resendmutual_req_flag is set and theEAP-Request for which it has not yet receivedcall returns GSS_S_CONTINUE_NEEDED status. The output_token is then encapsulated within anEAP-Response. However, the peer MUST NOT resendEAP-Responsepackets without first being prompted by the EAP server. For example, if the initial EAP-GSS startpacket with EAP-Type=EAP-GSS and sentbyto theEAP server wereauthenticator. If method negotiation is to belost,used, then an initial negotiation toekn for thepeer would not receive this packet,Simple andwould not respond to it. AsProtected GSS-API Negotiation Mechanism (SPNEGO) [19] is transferred. This contains an ordered list of mechanisms, aresult, the EAP-GSS start packet wouldset of options that should beresentsupported by the selected mechanism and the initial security token for the mechanism Aboba Experimental [Page 4] INTERNET-DRAFT EAPserver. OnceGSS Authentication Protocol 21 November 2000 preferred by thepeer receivedpeer. The inclusion of theEAP-GSS start packet, it would send an EAP-Response encapsulatinginitial security token for theclient_hello message. Ifpreferred method saves a round-trip, assuming that theEAP-Response wereauthenticator agrees tobe lost, thenthe preferred mechanism. The EAP serverwould resendthen de-capsulates theinitial EAP-GSS start, andGSS-API token contained within thepeer would resendEAP-Response of EAP-Type=EAP-GSS and uses this as theEAP-Response. As a result, it is possible thatinput_token parameter to apeercall to GSS_Accept_sec_context(). The output_token parameter willreceive duplicate EAP- Request messages,then contain a token, containing the result of the negotiation andmay send duplicate EAP-Responses. Bothin thepeercase of accept, the agreed security mechanism and theEAP-Server should be engineeredresponse tohandle this possibility. 5.3. Fragmentation It is possible that EAP-GSS messages may exceed the PPP MTU size,themaximum RADIUS packet size of 4096 octets, or even the Multilink Maximum Received Reconstructed Unit (MRRU). Asinitial security token as described in[2], the multilink MRRU[19]. This token isnegotiated via the Multilink MRRU LCP option, which includesthen encapsulated within anMRRU length fieldEAP-Request packet oftwo octets, and thus can support MRRUs as large as 64 KB. However, note that in orderEAP-Type=GSS- API, which is sent toprotect against reassembly lockupthe peer. This occurs whether the call completed with GSS_S_CONTINUE_NEEDED status or GSS_S_COMPLETE status. The peer then de-capsulates the GSS-API token contained within the EAP- Request packet with EAP-Type=EAP-GSS, anddenial of service attacks, it may be desirable for an implementationpasses the input_token parameter toset a maximum size for a GSS_API token. Since a typical certificate chainGSS_Init_sec_context(). The output_token israrely longer than a few thousand octets,encapsulated within an EAP-Response packet with EAP-Type=EAP-GSS andno other field is likelysent tobe anwhere near as long, a reasonable choice of maximum acceptable message length might be 64 KB. If this value is chosen, then fragmentation can be handled viathemultilink PPP fragmentation mechanisms described in [2]. While this is desirable, there may be cases in which multilinkEAP server. This occurs whether the call completed with GSS_S_CONTINUE_NEEDED status or GSS_S_COMPLETE status. If theMRRU LCP option cannot be negotiated. As a result,previous call to GSS_Accept_sec_context() returned GSS_S_COMPLETE status, then the EAP-Server returns anEAP-GSS implementation MUSTEAP-Success message to the client. Otherwise, it de-capsulates the GSS-API token contained within the EAP-Request packet, and the conversation continues. AbobaStandards TrackExperimental [Page4]5] INTERNET-DRAFTPPPEAP GSS Authentication Protocol1 December 1999 provide its own support for fragmentation and reassembly. Since EAP is a simple ACK-NAK protocol, fragmentation support21 November 2000 The conversation (which canbe added in a simple manner. In EAP, fragments that are lost or damaged in transit will be retransmitted, and since sequencing information is provided by the Identifier field in EAP, there is no need for a fragment offset fieldrequire asis provided in IPv4. EAP-GSS fragmentation support is provided through addition of a flags octet withinfew as 3.5 round trips) appears as follows: Authenticating Peer Authenticator ------------------- ------------- EAP-Request/ <- Identity EAP-Response/ Identity (MyID) -> EAP-Request/ EAP-Type=EAP-GSS <- (GSS Start, S bit set) GSS_Init_sec_context(mutual_req_flag) returns GSS_S_CONTINUE_NEEDED, output_token (SPNEGO) EAP-Response/ EAP-Type=EAP-GSS output_token -> GSS_Accept_sec_context(input_token) returns GSS_S_COMPLETE, output_token (SPNEGO) EAP-Request/ EAP-Type=EAP-GSS <- output_token GSS_Init_sec_context(input_token) returns GSS_S_COMPLETE, output_token EAP-Response/ EAP-Type=EAP-GSS output_token -> <- EAP-Success 5.3. Topology While nominally theEAP-ResponseEAP conversation occurs between the authenticator andEAP-Request packets,the peer, the authenticator MAY act aswella pass-through device, with the EAP packets received from the peer being encapsulated for transmission to a RADIUS server or backend security server, such as aGSS Message Length field of four octets. Flags includeKerberos KDC. In theLength included (L), More fragments (M), and EAP-GSS Start (S) bits. The L flag is setdiscussion that follows, we will use the term "EAP server" toindicatedenote thepresence ofultimate endpoint conversing with thefour octet GSS Message Length field, and MUST be set forpeer. For use with EAP-GSS, two topologies are likely. In one topology, thefirst fragment of a fragmentedauthenticator functions as an EAP-passthrough device, encapsulating EAP Aboba Experimental [Page 6] INTERNET-DRAFT EAP GSSmessage or set of messages. The M flag is set on all butAuthentication Protocol 21 November 2000 messages received from thelast fragment. The S flag is set onlypeer within RADIUS as described in [33], and passing them on to theEAP-GSS start message sentRADIUS server. In turn, EAP-Message attributes received from theEAPRADIUS servertoare de-capsulated by thepeer. The GSS Message Length field is four octets,authenticator andprovidessent to thetotal length ofpeer. In this topology, theGSS_API token or setauthenticator need not have knowledge ofmessages that is being fragmented; this simplifies buffer allocation. When anspecific EAP or GSS-API methods. In the other topology, EAP-GSSpeer receives an EAP-Request packetis used along with theM bit set, it MUST respond withGSS-API IAKERB [18] or Kerberos V [20] mechanisms. Where IAKERB is used, the authenticator functions as anEAP-Response with EAP-Type=EAP-GSSIAKERB proxy, de-capsulating EAP- GSS/IAKERB messages andno data. This serves as a fragment ACK. The EAP server MUST wait until it receives the EAP-Response before sending another fragment. In orderpassing them on toprevent errors in processing of fragments,theEAP server MUST incrementKDC. In turn, messages from theIdentifier field for each fragment containedKDC are encapsulated withinan EAP-Request,EAP-GSS/IAKERB and sent to thepeer MUST includepeer. In thisIdentifier value in the fragment ACK contained within the EAP-Reponse. Retransmitted fragments will contain the same Identifier value. Similarly, whencase, theEAP server receives an EAP-Response withauthenticator needs to understand theM bit set, it MUST respond with an EAP-Request with EAP-Type=EAP-GSS and no data. This servesEAP-GSS, GSS-API IAKERB, asa fragment ACK. The EAP peer MUST wait until it receives the EAP-Request before sending another fragment.well as GSS-API Kerberos V mechanisms. Inorder to prevent errors in the processing of fragments,theEAP server MUST use increment the Identifier valueexamples below, conversations are provided for eachfragment ACK contained within an EAP-Request, and the peer MUST include this Identifier valuetopology. Aboba Experimental [Page 7] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 5.3.1. RADIUS backend A successful EAP-GSS/IAKERB authentication occuring inthe subsequent fragment contained within an EAP-Reponse. 5.4. Identity verification As part of GSS_API, it is possible that the server may presentacertificatetopology with an authenticator acting as an IAKERB proxy tothe peer,a Kerberos KDC will appear as follows: Peer Authenticator RADIUS KDC ------ ------------- --------- ------ EAP/Identity <-------Request EAP/Identity Response --------> EAP/Identity Response --------> Access-Challenge <--------EAP-GSS Request (Start) <-------EAP-GSS Request(Empty) EAP-GSS Response [1] (SPNEGO) --------> EAP-GSS Response (SPNEGO) --------> Access-Challenge EAP-GSS Request <--------(SPNEGO) EAP-GSS Request <-------(SPNEGO) EAP-GSS IAKERB Response [2] (AS_REQ) --------> EAP-GSS IAKERB Response (AS_REQ) --------> AS_REQ ------------> <-------------------- AS_REP Access-Challenge EAP-GSS IAKERB Request <--------(AS_REP) EAP-GSS IAKERB Request <-------(AS_REP) EAP-GSS IAKERB Response [3] (TGS_REQ) -------> EAP-GSS IAKERB Response (TGS_REQ) --------> TGS_REQ ----------> Aboba Experimental [Page 8] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 <-------------------- TGS_REP Access-Challenge EAP-GSS IAKERB Request <--------(TGS_REP) EAP-GSS IAKERB Request <-------(TGS_REP) EAP-GSS IAKERB Response (Empty) --------> EAP-GSS IAKERB Response (Empty) -----------> Access-Accept [4] <------- EAP-Success <------ EAP-Success AP_REQ ---------> <------ AP_REP [5] Notes: 1. IAKERB may be requested by the EAP-GSS client without the need for negotiation, orthatSPNEGO may be used. 2. The AS_REQ requests a TGT from thepeerKDC. It maypresentor may not include PADATA. As acertificate toresult, theserver. IfAS_REQ may not authenticate the peerhas made a claim of identity into theEAP- Response/Identity (MyID) packet,KDC, but theEAP server SHOULD verify thatAS_REP authenticates theclaimed identity correspondsKDC to thecertificate presented by thepeer.Typically this will3. The TGS_REQ requests a ticket to the authenticator service. The ticket is encrypted with the authenticator's key so that it can only beaccomplished eithervalidated byplacingtheuserId withinauthenticator. 4. On receiving a TGS_REP from thepeer certificate, or by providingKDC rather than amapping betweenKRB_ERROR, the RADIUS server can conclude that the peerAboba Standards Track [Page 5] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 1999 certificatehas succesfully authenticated, and thus that it is appropriate to reply to theuserId usingauthenticator with an Access-Accept encapsulating an EAP-Success. 5. The IAKERB exchange ends before the AP_REQ/AP_REP exchange occurs. As adirectory service. Similarly,result, the AP_REQ/AP_REP exchange either will not occur (preventing mutual authentication between peerMUST verify the validity of the EAP server certificate,andSHOULD also examine the EAP server name presented inauthenticator or transport of thecertificate, in ordersession key from peer todetermine whether the EAP server can be trusted. Please note thatauthenticator), will occur out-of-band (e.g. after access is granted), or will occur in another EAP-GSS conversation (e.g. using thecase where theGSS-API Kerberos V method). Aboba Experimental [Page 9] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 5.3.2. Kerberos backend A successful EAP-GSS/IAKERB authenticationis remoted that the EAP serveroccuring in a topology with an authenticator acting as an IAKERB proxy to a Kerberos KDC will appear as follows: Peer Authenticator KDC ------ ------------- --------- EAP/Identity <----------Request EAP/Identity Response ----------> <----------EAP-GSS Start EAP-GSS IAKERB Response [1] (AS_REQ) ----------> AS_REQ ------------------> <------------------------- AS_REP [2] EAP-GSS IAKERB Request <----------(AS_REP) EAP-GSS IAKERB Response [3] (TGS_REQ) ----------> TGS_REQ -----------------> <------------------------- TGS_REP [4] EAP-GSS IAKERB Request <----------(TGS_REP) EAP-GSS IAKERB Response (Empty) -----------> <--------- EAP-Success AP_REQ [5]-----------> <----------- AP_REP [6] Notes: 1. If PADATA is notreside onused in thesame machine asAS_REQ, then theauthenticator, and thereforepeer does not authenticate to thenameKDC. 2. The KDC authenticates to the peer in theEAP server's certificate cannot be expectedAS_REP. 3. The peer authenticates tomatch that oftheintended destination. In this case, a more appropriate test might be whetherKDC via theEAP server's certificate is signed by a CA controllingTGS_REQ. 4. The KDC authenticates to theintended destination and whetherpeer via theEAP server exists within a target sub-domain. 5.5. Key derivation As part ofTGS_REP. The TGS_REP also provides theGSS_API exchange, it is conceivable thatpeer with asession key may be derived. [Should we justticket and session-key for use with the authenticator. Aboba Experimental [Page 10] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 5. Up until thissession key or derive another session key from it??] 5.6. ECP negotiation Since SPNEGO supports ciphersuite negotiation, peers completingpoint, theGSS_API SPNEGO negotiation will also have selectedpeer has not mutually authenticated with the authenticator, or exchanged aciphersuite, which includeskeystrength, encryption and hashing methods.with it. As a result,a subsequent Encryption Control Protocol (ECP) conversation, if it occurs, has a predetermined result. In order to ensure agreement betweentheEAP-GSS SPNEGOpeer and authenticator need to conclude an AP_REQ/AP_REP exchange. This can occur in-band or out-of-band. In thesubsequent ECP negotiation (described in [6]), during ECP negotiationAP-REQ, thePPPpeerMUST offer only the ciphersuite negotiated in EAP-GSS. This ensures thatauthenticates to thePPPauthenticatorMUST accept the EAP-GSS negotiated ciphersuite in order for the onversationand provides it with a session key. 6. The authenticator authenticates toproceed. Shouldtheauthenticator not acceptpeer using theEAP-GSS negotiated ciphersuite, thenAP_REP. 6. Detailed description of thepeer MUST send an LCP terminate and disconnect. Please note that it cannot be assumed thatEAP-GSS protocol 6.1. EAP GSS Packet Format A summary of thePPP authenticator andEAPserverGSS Request/Response packet format is shown below. The fields arelocated ontransmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Data... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Code 1 - Request 2 - Response Identifier The identifier field is one octet and aids in matching responses with requests. Length The Length field is two octets and indicates thesame machine or thatlength of theauthenticator understandsEAP packet including theEAP-GSS conversation that has passed through it. Thus ifCode, Identifier, Length, Type, and Data fields. Octets outside thepeer offers a ciphersuite other thanrange of theone negotiated in EAP-GSS thereLength field should be treated as Data Link Layer padding and should be ignored on reception. Type 14 - EAP GSS Data The format of the Data field isno way fordetermined by theauthenticator to know how to respond correctly.Code field. AbobaStandards TrackExperimental [Page6]11] INTERNET-DRAFTPPPEAP GSS Authentication Protocol1 December 1999 5.7. Examples In the case where21 November 2000 6.2. EAP GSS Request Packet A summary of theEAP-GSS authentication is successful, the conversation will appear as follows: Authenticating Peer Authenticator ------------------- ------------- <- PPP LCP Request-EAP auth PPP LCP ACK-EAP auth -> <- PPP EAP-Request/ Identity PPP EAP-Response/ Identity (MyID) -> <- PPP EAP-Request/ EAP-Type=EAP-GSS (GSS Start, S bit set) PPP EAP-Response/ EAP-Type=EAP-GSS -> <- PPP EAP-Request/ EAP-Type=EAP-GSS PPP EAP-Response/ EAP-Type=EAP-GSS -> <- PPP EAP-Request/ EAP-Type=EAP-GSS PPP EAP-Response/ EAP-Type=EAP-GSS -> <- PPP EAP-Success PPP Authentication Phase complete, NCP Phase starts ECP negotiation CCP negotiation In the case where the EAP-GSS authentication is successful, and fragmentation is required, the conversation will appear as follows: Authenticating Peer Authenticator ------------------- ------------- <- PPP LCP Request-EAP auth PPP LCP ACK-EAP auth -> <- PPP EAP-Request/ Identity Aboba Standards Track [Page 7] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 1999 PPP EAP-Response/ Identity (MyID) -> <- PPP EAP-Request/ EAP-Type=EAP-GSS (GSS Start, S bit set) PPP EAP-Response/ EAP-Type=EAP-GSS -> <- PPP EAP-Request/ EAP-Type=EAP-GSS (Fragment 1: L, M bits set) PPP EAP-Response/ EAP-Type=EAP-GSS -> <- PPP EAP-Request/ EAP-Type=EAP-GSS (Fragment 2: M bit set) PPP EAP-Response/ EAP-Type=EAP-GSS -> <- PPP EAP-Request/ EAP-Type=EAP-GSS (Fragment 3) PPP EAP-Response/ EAP-Type=EAP-GSS (Fragment 1: L, M bits set)-> <- PPP EAP-Request/ EAP-Type=EAP-GSS PPP EAP-Response/ EAP-Type=EAP-GSS (Fragment 2)-> <- PPP EAP-Request/ EAP-Type=EAP-GSS PPP EAP-Response/ EAP-Type=EAP-GSS -> <- PPP EAP-Success PPP Authentication Phase complete, NCP Phase starts ECP negotiation CCP negotiation 6. Detailed description of the EAP-GSS protocol 6.1. PPP EAP GSS Packet Format A summary of the PPP EAP GSS Request/Response packet formatEAP GSS Request packet format is shown below. The fields are transmitted from left to right.Aboba Standards Track [Page 8] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 19990 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Flags | GSS Message Length +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GSS Message Length | GSS Data...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Code 1- Request 2 - ResponseIdentifier TheidentifierIdentifier field is one octet and aids in matching responses with requests.LengthTheLength field is two octets and indicates the length of the EAP packet including the Code, Identifier, Length, Type, and Data fields. Octets outside the range of the Length field should be treated as Data Link Layer padding and should be ignored on reception. Type 14 - EAP GSS Data The format of the Data field is determined by the Code field. 6.2. PPP EAP GSS Request Packet A summary of the PPP EAP GSS Request packet format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Flags | GSS Message Length +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GSS Message Length | GSS Data... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Aboba Standards Track [Page 9] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 1999 Code 1 Identifier The Identifier field is one octet and aids in matching responses with requests. The IdentifierIdentifier field MUST be changed on each Request packet. Length The Length field is two octets and indicates the length of the EAP packet including the Code, Identifier, Length, Type, and GSS Response fields. Type14? - EAP GSS Flags 0 1 2 3 4 5 6 7 8 +-+-+-+-+-+-+-+-+ |L M S R R R R R| +-+-+-+-+-+-+-+-+ L = Length included M = More fragments S = EAP-GSS start R = Reserved The L bit (length included) is set to indicate the presence of the Aboba Experimental [Page 12] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 four octet GSS Message Length field, and MUST be set for the first fragment of a fragmented GSS message or set of messages. The M bit (more fragments) is set on all but the last fragment. The S bit (EAP- GSS start) is set in an EAP-GSS Start message. This differentiates the EAP-GSS Start message from a fragmentacknowledgement.acknowledgment. GSS Message Length The GSS Message Length field is four octets, and is present only if the L bit is set. This field provides the total length of the GSS message or set of messages that is being fragmented. GSS data The GSS data consists of the encapsulated GSS packet.Aboba Standards Track [Page 10] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 19996.3.PPPEAP GSS Response Packet A summary of thePPPEAP GSS Response packet format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Flags | GSS Message Length +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GSS Message Length | GSS Data... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Code 2 Identifier The Identifier field is one octet and MUST match the Identifier field from the corresponding request. Length The Length field is two octets and indicates the length of the EAP packet including theCode, Identifier, Length, Type,Code, Identifier, Length, Type, and GSS data fields. Type Aboba Experimental [Page 13] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 ? - EAP GSS Flags 0 1 2 3 4 5 6 7 8 +-+-+-+-+-+-+-+-+ |L M S R R R R R| +-+-+-+-+-+-+-+-+ L = Length included M = More fragments S = EAP-GSS start R = Reserved The L bit (length included) is set to indicate the presence of the four octet GSS Message Length field, and MUST be set for the first fragment of a fragmented GSS message or set of messages. The M bit (more fragments) is set on all but the last fragment. The S bit (EAP- GSS start) is set in an EAP-GSS Start message. This differentiates the EAP-GSS Start message from a fragment acknowledgment. GSS Message Length The GSS Message Length field is four octets, and is present only if the L bit is set. This field provides the total length of the GSS message or set of messages that is being fragmented. GSS data The GSS data consists of the encapsulated GSS packet. 6.4. Fragmentation It is possible that EAP-GSS messages may exceed the link MTU size, the maximum RADIUS packet size of 4096 octets, or even the Multilink Maximum Received Reconstructed Unit (MRRU). As described in [2], within PPP the multi-link MRRU is negotiated via the Multilink MRRU LCP option, which includes an MRRU length field of two octets, and thus can support MRRUs as large as 64 KB. In order to protect against reassembly lockup and denial of service attacks, it may be desirable for an implementation to set a maximum size for a GSS-API token. Since a typical certificate chain is rarely longer than a few thousand octets, and no other field is likely to be anywhere near as long, a reasonable choice of maximum acceptable message length might be 64 KB. Aboba Experimental [Page 14] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 If this value is chosen, then for PPP links, fragmentation can be handled via the multi-link PPP fragmentation mechanisms described in [2]. While this is desirable, there may be cases in which multi-link or the MRRU LCP option cannot be negotiated. Also, since EAP methods must also be usable within IEEE 802.1X [27], an EAP-GSS implementation MUST provide its own support for fragmentation and reassembly. Since EAP is a simple ACK-NAK protocol, fragmentation support can be added in a simple manner. In EAP, fragments that are lost or damaged in transit will be retransmitted, and since sequencing information is provided by the Identifier field in EAP, there is no need for a fragment offset field as is provided in IP. EAP-GSS fragmentation support is provided through addition of a flags octet within the EAP-Response and EAP-Request packets, as well as a GSS Message Length field of four octets. Flags include the Length included (L), More fragments (M), and EAP-GSS Start (S) bits. The L flag is set to indicate the presence of the four octet GSS Message Length field, and MUST be set for the first fragment of a fragmented GSS message or set of messages. The M flag is set on all but the last fragment. The S flag is set only within the EAP-GSS start message sent from the EAP server to the peer. The GSS Message Length field is four octets, and provides the total length of the GSS-API token or set of messages that is being fragmented; this simplifies buffer allocation. When an EAP-GSS peer receives an EAP-Request packet with the M bit set, it MUST respond with an EAP-Response with EAP-Type=EAP-GSS and no data. This serves as a fragment ACK. The EAP server MUST wait until it receives the EAP-Response before sending another fragment. In order to prevent errors in processing of fragments, the EAP server MUST increment the Identifier field for each fragment contained within an EAP-Request, and the peer MUST include this Identifier value in the fragment ACK contained within the EAP-Response. Retransmitted fragments will contain the same Identifier value. Similarly, when the EAP server receives an EAP-Response with the M bit set, it MUST respond with an EAP-Request with EAP-Type=EAP-GSS and no data. This serves as a fragment ACK. The EAP peer MUST wait until it receives the EAP-Request before sending another fragment. In order to prevent errors in the processing of fragments, the EAP server MUST use increment the Identifier value for each fragment ACK contained within an EAP-Request, and the peer MUST include this Identifier value in the subsequent fragment contained within an EAP-Response. Aboba Experimental [Page 15] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 In the case where the EAP-GSS authentication is successful, and fragmentation is required, the conversation will appear as follows: Authenticating Peer Authenticator ------------------- ------------- EAP-Request/ <- Identity EAP-Response/ Identity (MyID) -> EAP-Request/ EAP-Type=EAP-GSS <-(GSS Start, S bit set) GSS_Init_sec_context(mutual_req_flag) returns GSS_S_CONTINUE_NEEDED, output_token (SPNEGO) EAP-Response/ EAP-Type=EAP-GSS output_token -> GSS_Accept_sec_context(input_token) returns GSS_S_COMPLETE, output_token (SPNEGO) EAP-Request/ EAP-Type=EAP-GSS output_token <- (Fragment 1: L, M bits set) EAP-Response/ EAP-Type=EAP-GSS -> EAP-Request/ EAP-Type=EAP-GSS <- (Fragment 2: M bit set) EAP-Response/ EAP-Type=EAP-GSS -> EAP-Request/ EAP-Type=EAP-GSS <- (Fragment 3) GSS_Init_sec_context(input_token) returns GSS_S_COMPLETE, output_token EAP-Response/ EAP-Type=EAP-GSS output_token Aboba Experimental [Page 16] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 (Fragment 1: L, M bits set)-> EAP-Request/ <- EAP-Type=EAP-GSS EAP-Response/ EAP-Type=EAP-GSS (Fragment 2)-> <- EAP-Success 6.5. Retry behavior As with other EAP protocols, the EAP server is responsible for retry behavior. This means that if the EAP server does not receive a reply from the peer, it MUST resend the EAP-Request for which it has not yet received an EAP-Response. However, the peer MUST NOT resend EAP-Response packets without first being prompted by the EAP server. For example, if the initial EAP-GSS start packet sent by the EAP server were to be lost, then the peer would not receive this packet, and would not respond to it. As a result, the EAP-GSS start packet would be resent by the EAP server. Once the peer received the EAP-GSS start packet, it would send an EAP-Response encapsulating the client_hello message. If the EAP-Response were to be lost, then the EAP server would resend the initial EAP-GSS start, and the peer would resend the EAP-Response. As a result, it is possible that a peer will receive duplicate EAP- Request messages, and may send duplicate EAP-Responses. Both the peer and the EAP-Server should be engineered to handle this possibility. 6.6. Identity verification As part of the GSS-API conversation, it is possible that the server may present a certificate to the peer, or that the peer may present a certificate to the EAP server. If the peer has made a claim of identity in the EAP-Response/Identity (MyID) packet, the EAP server SHOULD verify that the claimed identity corresponds to the certificate presented by the peer. Typically this will be accomplished either by placing the userId within the peer certificate, or by providing a mapping between the peer certificate and the userId using a directory service. Similarly, the peer MUST verify the validity of the EAP server certificate, and SHOULD also examine the EAP server name presented in the certificate, in order to determine whether the EAP server can be trusted. Please note that in the case where the EAP authentication is remoted that the EAP server will not reside on the same machine as the authenticator, and therefore the name in the EAP server's certificate cannot be expected to match that of the intended destination. In this Aboba Experimental [Page 17] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 case, a more appropriate test might be whether the EAP server's certificate is signed by a CA controlling the intended destination and whether the EAP server exists within a target sub-domain. 6.7. Use of addresses When using EAP-GSS, the EAP client may not be able to include an address in an EAP-Response message, since prior to obtaining access the EAP client may not have an IP address. The IAKERB GSS-API method can explicitly handle this, as described in [18]. However, Where Kerberos V is negotiated [16], [20] the addresses field of the AS_REQ and TGS_REQ SHOULD be blank and the caddr field of the ticket SHOULD also be left blank. 6.8. Credential reuse Note that a peer with valid credentials may reuse those credentials in a subsequent authentication. For example, a peer initially using the IAKERB GSS-API method to obtain a TGT and a ticket to the authenticator may subsequently reuse that ticket in an AP_REQ/AP_REP exchange that may occur either in-band (e.g. via use of the Kerberos V GSS-API method) or out-of-band (e.g. via an 802.1X EAPOL-Key message). Typically in-band efficiency savings are modest (one round-trip saved using the Kerberos V GSS-API method versus IAKERB), while savings from out-of-band credential reuse can be more substantial. Credential reuse improves efficiency in a number of scenarios. Where the peer attempts to re-authenticate to an EAP server within a short period of time, the re-authentication time may be shortened. Also, where the peer roams to another authenticator willing to accept credentials from a previous authenticator, fast-handoff may be achieved. Credential reuse may also prove useful during multi-link authentication. The decision of whether to attempt to reuse credentials is left up to the peer, which needs to determine whether credential use is likely to succeed. The decision may be based on out-of-band information (such as probe/response messages exchanged via 802.11 [28], or the time elapsed since the previous authentication attempt. If the peer attempts to reuse credentials that are not valid for the authenticator, then no harm is done. The authenticator will respond with an error and the peer can then re-authenticate using the more complete sequence. For example, after an initial IAKERB authentication, the peer will have obtained a TGT from the KDC via the AS_REP, andGSS data fields. Type 14 - EAP GSS Flags 0 1 2 3 4 5 6 7 8 +-+-+-+-+-+-+-+-+ |L M S R R R R R| +-+-+-+-+-+-+-+-+ L = Length included M = More fragments S = EAP-GSS start R = Reserveda ticket to the authenticator within the TGS_REP. TheL bit (length included) is setpeer may subsequently attempt toindicatenegotiate thepresence ofKerberos V GSS-API method, so as to reuse thefour octet GSS Message Length field, and MUSTpreviously obtained credentials. Should a KRB_ERROR beset forreturned by thefirstauthenticator, then the peer can negotiate IAKERB on its next attempt AbobaStandards TrackExperimental [Page11]18] INTERNET-DRAFTPPPEAP GSS Authentication Protocol1 December 1999 fragment of a fragmented GSS message or set of messages. The M bit (more fragments)21 November 2000 instead. Note that for credential reuse to be possible while roaming, it isset on all butnecessary for authenticators to share thelast fragment. The S bit (EAP- GSS start)same key with the KDC. If this is not the case, then peers moving from one authenticator to another will not be able to reuse authenticator tickets. Similarly, if the EAP servers are set up inan EAP-GSS Start message. This differentiatesa rotary or made available via a round- robin technique, then theEAP-GSS Start message fromcredentials also may not be reusable, unless the EAP authentication is remoted to afragment acknowledgement. GSS Message Length The GSS Message Length fieldcentral authentication server. 6.9. ECP negotiation ECP, described in [6], supports unprotected cipher-suite negotiations within PPP and isfour octets,thus vulnerable to attack. Since SPNEGO [19] supports protected cipher-suite negotiation in the case where the negotiated method provides authentication and integrity protection, use of SPNEGO ispresent onlypreferable to ECP. Peers completing the GSS-API SPNEGO negotiation will typically implicitly select a cipher-suite, which includes key strength, encryption and hashing methods. As a result, a subsequent Encryption Control Protocol (ECP) conversation [6], if it occurs, has a predetermined result. However, since theL bit is set. This field providesECP-supported ciphersuites may not correspond to thetotal lengthciphersuites implicitly negotiated as part of SPNEGO, it may not be possible for theGSS messageECP conversation to verify the ciphersuites implicitly selected via SPNEGO. For example, the ECP methods defined in [9]-[10] only support DES and 3DES transforms for confidentiality, and do not support authentication orset of messages thatintegrity protection. Thus, there isbeing fragmented. GSS data The GSS data consists ofno correspondence between existing ECP methods and theencapsulated GSS packet.ciphersuites available within GSS-API methods such as Kerberos [16]-[17]. 7. References [1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)." STD 51, RFC 1661, July 1994. [2] Sklower, K., Lloyd, B., McGregor, G., Carr, D., and T. Coradetti, "The PPP Multilink Protocol (MP)." RFC 1990, August 1996. [3] Simpson, W., Editor, "PPP LCP Extensions." RFC 1570, January 1994. [4] Rivest, R., Dusse, S., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992. [5] Blunk, L., Vollbrecht, J., "PPP Extensible Authentication Protocol (EAP)", RFC 2284, March 1998. Aboba Experimental [Page 19] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 [6] Meyer, G., "The PPP Encryption Protocol (ECP)." RFC 1968, June 1996 [7] National Bureau of Standards, "Data Encryption Standard", FIPS PUB 46 (January 1977). [8] National Bureau of Standards, "DES Modes of Operation", FIPS PUB 81 (December 1980). [9] Sklower, K., Meyer, G., "The PPP DES Encryption Protocol, Version 2 (DESE-bis)", RFC 2419, September 1998. [10] Hummert, K., "The PPP Triple-DES Encryption Protocol (3DESE)", RFC 2420, September 1998.Aboba Standards Track [Page 12] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 1999[11] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [12] Aboba, B., Simon, S.,"PPP EAP TLS Authentication Protocol", RFC 2716, October 1999. [13] D. Rand. "The PPP Compression Control Protocol." RFC 1962, Novell, June 1996. [14] Myers, J., "Simple Authentication and Security Layer (SASL)", RFC 2222, October 1997. [15] Linn, J., "Generic Security Service Application Program Interface, Version 2", RFC2078,2743, January1997.2000. [16] Kohl, J., Neuman, C., "The Kerberos Network Authentication Service (V5)", RFC 1510, September 1993. [17] Neuman, B. C., Ts'o, T., "Kerberos: An Authentication Service for Computer Networks", IEEE Communications, 32(9):33-38, September 1994. [18]Tung, B., Neuman, B. C., Hur,Swift, M.,Medvinsky, Medvinsky, S., Wray, J.,Trostle, J.,A., "Public Key Cryptography for Initial"Initial Authenticationin Kerberos",and Pass Through Authentication Using Kerberos V5 and the GSS-API (IAKERB)", Internet draft (work in progress),draft-ietf-cat-kerberos-pk-init-08.txt, May 1999.draft-ietf-cat-iakerb-05.txt, November 2000. [19]McMahon, P., "GSS-API Authentication Method for SOCKS Version 5", RFC 1961, June 1996. [20]Baize, E., Pinkas., D., "The Simple and Protected GSS-API Negotiation Mechanism", RFC 2478, December 1998.[21][20] Linn, J., "The Kerberos Version 5 GSS-API Mechanism", RFC1964,1964, June 1996. Aboba Experimental [Page 20] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 [21] IEEE Standards for Local and Metropolitan Area Networks: Overview and Architecture, ANSI/IEEE Std 802, 1990. [22] ISO/IEC 10038 Information technology - Telecommunications and information exchange between systems - Local area networks - Media Access Control (MAC) Bridges, (also ANSI/IEEE Std 802.1D- 1993), 1993. [23] ISO/IEC Final CD 15802-3 Information technology - Tele- communications and information exchange between systems - Local and metropolitan area networks - Common specifications - Part 3:Media Access Control (MAC) bridges, (current draft available as IEEE P802.1D/D15). [24] IEEE Standards for Local and Metropolitan Area Networks: Draft Standard for Virtual Bridged Local Area Networks, P802.1Q/D8, January 1998. [25] ISO/IEC 8802-3 Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Common specifications - Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications, (also ANSI/IEEE Std 802.3- 1996), 1996. [26] IEEE Standards for Local and Metropolitan Area Networks: Demand Priority Access Method, Physical Layer and Repeater Specification For 100 Mb/s Operation, IEEE Std 802.12-1995. [27] IEEE Standards for Local and Metropolitan Area Networks: Port based Network Access Control, IEEE Draft 802.1X/D8, November 2000. [28] Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Specific Requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, IEEE Std. 802.11-1997, 1997. [29] Rigney, C., Rubens, A., Simpson, W., Willens, S., "Remote Authentication Dial In User Service (RADIUS)", RFC 2865, June 2000. [30] Rigney, C., "RADIUS Accounting", RFC 2866, June1996. [22] Myers, J., "SASL GSSAPI mechanisms", Internet draft (work in progress), draft-ietf-cat-sasl-gssapi-00.txt, March 1999. [23] Piper,2000. [31] Zorn, G., Mitton, D.,"A GSS-API Authentication ModeAboba, B., "RADIUS Accounting Modifications forIKE", Internet draft (work in progress), draft-ietf-ipsec-isakmp-gss-auth-03.txt, October 1999. [24] Swift, M., Trostle,Tunnel Protocol Support", RFC 2867, June 2000. [32] Zorn, G., Leifer, D., Rubens, A., Shriver, J.,"Initial Authentication and Pass Through Authentication Using Kerberos V5 and the GSS-API (IAKERB)", Internet draft (work in progress), draft-ietf-cat-iakerb-04.txt, October 1999.Holdrege, M., Goyret, I., "RADIUS Attributes for Tunnel Protocol Support", RFC AbobaStandards TrackExperimental [Page13]21] INTERNET-DRAFTPPPEAP GSS Authentication Protocol1 December 199921 November 2000 2868, June 2000. [33] Rigney, C., Willats, W., Calhoun, P., "RADIUS Extensions", RFC 2869, June 2000. 8. Security Considerations 8.1. Certificate revocation Since the EAP server is on the Internet during the EAP conversation, the server is capable of following a certificate chain or verifying whether the peer's certificate has been revoked. In contrast, the peer may or may not have Internet connectivity, and thus while it can validate the EAP server's certificate based on a pre-configured set of CAs, it may not be able to follow a certificate chain or verify whether the EAP server's certificate has been revoked. In the case where the peer is initiating a voluntary Layer 2 tunnel using PPTP or L2TP, the peer will typically already have a PPP interface and Internet connectivity established at the time of tunnel initiation. As a result, during the EAP conversation it is capable of checking for certificate revocation. However, in the case where the peer is initiatingan intial PPP conversation,a connection, it will not have Internet connectivity and is therefore not capable of checking for certificate revocation until afterNCP negotiation completes andthe peer has access to the Internet. In this case, the peer SHOULD check for certificate revocation after connecting to the Internet. 8.2.Separation ofMutual authentication It is highly recommended that a GSS-API method supporting mutual authentication be selected during the SPNEGO negotiation. This addresses vulnerabilities associated with rogue EAPserver and PPP authenticatorservers, as well as avoiding vulnerabilities associated with parallel one-way authentications. 8.3. Key management As a result of the EAP-GSS conversation, the EAP endpoints will mutuallyauthenticate, negotiate a ciphersuite,authenticate and derive a session key for subsequent use in PPP or 802.11 WEP [28] encryption. Since the peer and EAP client reside on the same machine, it is necessary for the EAP client module to pass the session key to thePPPlayer 2 encryption module. The situation may be more complex on thePPPauthenticator, which may or may not reside on the same machine as the EAP server. In the case where the EAP server andPPPauthenticator reside on different machines, there are several implications for security. Firstly, the mutual authentication Aboba Experimental [Page 22] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 defined in EAP-GSS will occur between the peer and the EAP server, not between the peer and the authenticator. This means that as a result of the EAP-GSS conversation, it isnot possible for the peer to validate the identity of the NAS or tunnel server that it is speaking to. The second issue is that the session key negotiated between the peer and EAP server will need to be transmitted to the authenticator. Therefore a mechanism needs to be provided to transmit the session key from the EAP server to the authenticator or tunnel server that needs to use the key. The specification of this transit mechanism is outside the scope of Aboba Standards Track [Page 14] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 1999 this document. 8.3. Relationship of PPP encryption to other security mechanisms It is envisaged that EAP-GSS will be used primarily with dialup PPP connections. However, there are also circumstances in which PPP encryption may be used along with Layer 2 tunneling protocols such as PPTP and L2TP. In compulsory layer 2 tunneling, a PPPnot possible for the peermakes a connectiontoa NAS or router which tunnelsvalidate thePPP packets to a tunnel server. Since with compulsory tunneling a PPP peer cannot tell whether its packets are being tunneled, let alone whetheridentity of thenetworkdevice that it issecuring the tunnel, if securityspeaking to. The second issue isrequired thenthat theclient must make its own arrangements. Insession key negotiated between thecase where all endpoints cannot be relied uponpeer and EAP server will need toimplement IPSEC, TLS, or another suitable security protocol, PPP encryption provides a convenient meansbe transmitted toensuretheprivacyauthenticator. Both issues can be addressed via addition ofpackets transiting betweena followon exchange. For example, where theclientIAKERB GSS-API method is used for initial authentication, the Kerberos V GSS-API method can be used to mutually authenticate the peer and authenticator and transfer thetunnel server.session key from the peer to the authenticator. 9. Acknowledgments Thanks to Terence Spies, Paul Leach, and Mike Swift of Microsoft for useful discussions of this problem space. 10. Authors' Addresses Bernard Aboba Microsoft Corporation One Microsoft Way Redmond, WA 98052 Phone: +1 (425) 936-6605 EMail: bernarda@microsoft.com 11. Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards- related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Aboba Experimental [Page 23] INTERNET-DRAFT EAP GSS Authentication Protocol 21 November 2000 Director. 12. Full Copyright Statement Copyright (C) The Internet Society(1999).(2000). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in itsimplmentationimplementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the InternetAboba Standards Track [Page 15] INTERNET-DRAFT PPP EAP GSS Authentication Protocol 1 December 1999Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."12.13. Expiration Date This memo is filed as<draft-aboba-pppext-eapgss-00.txt>,<draft-aboba-pppext-eapgss-02.txt>, and expires August 1,2000.2001. AbobaStandards TrackExperimental [Page16]24] ----