⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draft-josefsson-pppext-eap-tls-eap-05.txt

📁 Linux上的802.1x 的supplicant的实现。很多supplicant程序都是基于它开发的
💻 TXT
📖 第 1 页 / 共 5 页
字号:
     carried out, unless part 1 provided client authentication.In the next two sections, we provide an overview of each of the parts ofthe PEAP conversation.2.1.  PEAP Part 1The PEAP conversation typically begins with the authenticator and thepeer negotiating EAP.  The authenticator will typically send an EAP-Request/Identity packet to the peer, and the peer will respond with anAndersson et al.             Standards Track                    [Page 6]INTERNET-DRAFT                    PEAP                    September 2002EAP-Response/Identity packet to the authenticator, containing the peer'suserId.Once the optional initial Identity Request/Response exchange iscompleted, while nominally the EAP conversation occurs between theauthenticator and the peer, the authenticator MAY act as a passthroughdevice, with the EAP packets received from the peer being encapsulatedfor transmission to a backend authentication server. In the discussionthat follows, we will use the term "EAP server" to denote the ultimateendpoint conversing with the peer.Once having received the peer's Identity, and determined that PEAPauthentication is to occur, the EAP server MUST respond with aPEAP/Start packet, which is an EAP-Request packet with EAP-Type=PEAP,the Start (S) bit set, and no data.  Assuming that the peer supportsPEAP, the PEAP conversation will then begin, with the peer sending anEAP-Response packet with EAP-Type=PEAP.The data field of the EAP-Response packet will encapsulate one or moreTLS records in TLS record layer format, containing a TLS client_hellohandshake message.  The current cipher spec for the TLS records will beTLS_NULL_WITH_NULL_NULL and null compression.  This current cipher specremains the same until the change_cipher_spec message signals thatsubsequent records will have the negotiated attributes for the remainderof the handshake.The client_hello message contains the client's TLS version number, asessionId, a random number, and a set of TLS ciphersuites supported bythe client. The version offered by the client MUST correspond to TLSv1.0 or later.The EAP server will then respond with an EAP-Request packet with EAP-Type=PEAP. The data field of this packet will encapsulate one or moreTLS records.  These will contain a TLS server_hello handshake message,possibly followed by TLS certificate, server_key_exchange,certificate_request, server_hello_done and/or finished handshakemessages, and/or a TLS change_cipher_spec message.Since after the TLS session is established, another complete EAPnegotiation will occur and the peer will authenticate using a secondarymechanism, with PEAP the client need not authenticate as part of TLSsession establishment. As a result, although the EAP-Request packet sentby the EAP Server MAY contain a certificate_request message, this is notrequired.The certificate_request message indicates that the server desires theclient to authenticate itself via public key. Typically when the EAPserver sends a certificate_request message, the intent is to completeAndersson et al.             Standards Track                    [Page 7]INTERNET-DRAFT                    PEAP                    September 2002the PEAP authentication without requiring negotiation of an additionalEAP method, so that only an EAP-Success or EAP-Failure message is sentinside the TLS channel.  However, it is valid for the server to requesta certificate in the server_hello and for the client refuse to provideone. In this case, the EAP server MUST require that PEAP Part 2 becompleted.Note that since TLS client certificates are sent in the clear, ifidentity protection is required, then it is possible for the TLSauthentication to be re-negotiated after the first serverauthentication.  To accomplish this, after the server_finished messageis sent, and before PEAP part 2,  the server sends a TLS hello_request.This allows the  client to perform client authentication by sending aclient_hello if it wants to, or, send a no_renegotiation alert to theserver indicating that it wants to continue with PEAP part 2 instead.Since this re-negotiation occurs within the encrypted TLS channel, itdoes not reveal client certificate details.The server_hello handshake message contains a TLS version number,another random number, a sessionId, and a TLS ciphersuite.  The versionoffered by the server MUST correspond to TLS v1.0 or later.  In order toprovide confidentiality, integrity and replay protection, andauthentication, the negotiated TLS ciphersuite MUST provide all of thesesecurity services.If the client's sessionId is null or unrecognized by the server, theserver MUST choose the sessionId to establish a new session; otherwise,the sessionId  will  match  that  offered by the client, indicating aresumption of the previously established session with that sessionID.The server will also choose a TLS ciphersuite from those offered by  theclient; if the session matches the client's, then the TLS ciphersuiteMUST match the one negotiated during the handshake protocol executionthat established the session.PEAP implementations need not necessarily support all TLS ciphersuiteslisted in [RFC2246]. Not all TLS ciphersuites are supported by availableTLS tool kits and licenses may be required to support some TLSciphersuites (e.g. TLS ciphersuites utilizing the IDEA encryptionalgorithm). To ensure interoperability, PEAP peers and AuthenticatorsMUST be able to negotiate the following TLS ciphersuites:    TLS_RSA_WITH_RC4_128_MD5    TLS_RSA_WITH_RC4_128_SHATLS as described in [RFC2246] supports compression as well asciphersuite negotiation. Therefore during the PEAP Part 1 conversationthe EAP endpoints MAY request or negotiate TLS compression.Andersson et al.             Standards Track                    [Page 8]INTERNET-DRAFT                    PEAP                    September 2002If the EAP server is not resuming a previously established session, thenit MUST include a TLS server_certificate handshake message, and aserver_hello_done handshake message MUST be the last handshake messageencapsulated in this EAP-Request packet.The certificate message contains a public key certificate chain foreither a key exchange public key (such as an RSA or Diffie-Hellman keyexchange public key) or a signature public key (such as an RSA or DSSsignature public key).  In the latter case, a TLS server_key_exchangehandshake message MUST also be included to allow the key exchange totake place.The peer MUST respond to the EAP-Request with an EAP-Response packet ofEAP-Type=PEAP.  The data field of this packet will encapsulate one ormore TLS records containing a TLS change_cipher_spec message andfinished handshake message, and possibly certificate, certificate_verifyand/or client_key_exchange handshake messages.  If the precedingserver_hello message sent by the EAP server in the preceding EAP-Requestpacket indicated the resumption of a previous session, then the peerMUST send only the change_cipher_spec and finished handshake messages.The finished message contains the peer's authentication response to theEAP server.If the preceding server_hello message sent by the EAP server in thepreceeding EAP-Request packet did not indicate the resumption of aprevious session, then the peer MUST send, in addition to thechange_cipher_spec and finished messages, a client_key_exchange message,which completes the exchange of a shared master secret between the peerand the EAP server.The EAP server MUST then respond with an EAP-Request packet with EAP-Type=PEAP, which includes, in the case of a new TLS session, one or moreTLS records containing TLS change_cipher_spec and finished handshakemessages.  The latter contains the EAP server's authentication responseto the peer.  The peer will then verify the hash in order toauthenticate the EAP server.If the EAP server authenticates unsuccessfully, the peer MAY send anEAP-Response packet of EAP-Type=PEAP containing a TLS Alert messageidentifying the reason for the failed authentication. The peer MAY senda TLS alert message rather than immediately terminating the conversationso as to allow the EAP server to log the cause of the error forexamination by the system administrator.To ensure that the EAP Server receives the TLS alert message, the peerMUST wait for the EAP-Server to reply before terminating theconversation.  The EAP Server MUST reply with an EAP-Failure packetsince server authentication failure is a terminal condition.Andersson et al.             Standards Track                    [Page 9]INTERNET-DRAFT                    PEAP                    September 2002If the EAP server authenticates successfully, the peer MUST send an EAP-Response packet of EAP-Type=PEAP, and no data.  The EAP-Server thencontinues with Part 2 of the PEAP conversation.2.1.1.  Forging of Success and Failure packetsWithin EAP, Success and Failure packets are not authenticated, so thatthey may be forged by an attacker without fear of detection. Forged EAPFailure packets can be used to convince an EAP peer to disconnect.Forged EAP Success packets may be used by a rogue NAS to convince a peerto let itself access the network, even though the NAS has notauthenticated itself.By requiring mutual authentication and by encrypting and integrityprotecting the EAP conversation within a TLS channel, PEAP providesprotection against these attacks. Since the EAP Server MUST authenticateitself to the EAP Peer in PEAP Part 1, once the TLS channel has beenbrought up, EAP Success or Failure packets should be sent down theencrypted channel, rather than being sent in cleartext. As a result,once PEAP has been selected as the authentication method, and the PEAPconversation has begun, a peer receiving cleartext Success or Failurepackets MUST silently discard them.2.2.  PEAP Part 2The second portion of the PEAP conversation consists of another completeEAP conversation occurring within the TLS session negotiated in PEAPPart 1. It will therefore occur only if establishment of the TLS sessionin Part 1 is successful. It MUST NOT occur if the EAP Serverauthenticates unsuccessfully or if an EAP-Failure has been sent by theEAP Server to the peer, terminating the conversation.  Since all packetssent within the PEAP Part 2 conversation occur after TLS sessionestablishment, they are protected using the negotiated TLS ciphersuite.Part 2 of the PEAP conversation typically begins with the Authenticatorsending an EAP-Request/Identity packet to the peer, protected by the TLSciphersuite negotiated in PEAP Part 1. The peer responds with an EAP-Response/Identity packet to the authenticator, containing the peer'suserId. Since this Identity Request/Response exchange is protected bythe ciphersuite negotiated in TLS, it is protected against snooping orpacket modification attacks.After the TLS session-protected Identity exchange, the EAP server willthen select authentication method(s) for the peer, and will send an EAP-Request with the EAP-Type set to the initial method. As described in[RFC2284], the peer can NAK the suggested EAP method, suggesting analternative. Since the NAK will be sent within the TLS channel, it isprotected from snooping or packet modification. As a result, an attackerAndersson et al.             Standards Track                   [Page 10]INTERNET-DRAFT                    PEAP                    September 2002snooping on the exchange will be unable to inject NAKs in order to"negotiate down" the authentication method.  An attacker will also notbe able to determine which EAP method was negotiated.As with a normal EAP conversation described in [RFC2284], an EAPconversation encapsulated within the TLS channel as within PEAP Part 2continues until the EAP server sends an EAP-Failure or EAP-Success. Thereceipt of an EAP-Failure or EAP-Success within the TLS protectedchannel results in a shutdown of the TLS channel by the peer and EAPserver. The EAP-Failure or EAP-Success packet sent within the TLSchannel is protected from snooping or packet modification, and as aresult, while an EAP server MAY send an additional EAP-Failure or EAP-Success message in cleartext, this is not required, since it addsanother round-trip. As described in [RFC2869], a RADIUS Access-Accept orAccess-Reject packet need not contain an EAP-Message attribute, sincethe NAS determines the success of the conversation from the RADIUSmessage (Accept/Reject), not the encapsulated EAP-Message attribute.2.3.  Version negotiationPEAP packets contain a two bit version field, which enables PEAPimplementations to be backward compatible with previous versions of theprotocol. Implementations of this specification MUST use a version fieldset to 1.  Version negotiation proceeds as follows:[1]  In the first EAP-Request sent with EAP type=PEAP, the EAP server     MUST set the version field to the highest supported version number.[2]  If the EAP client supports this version of the protocol, it MUST     respond with an EAP-Response of EAP type=PEAP, and the version     number proposed by the EAP server.[3]  If the EAP client does not support this version, it responds with     an EAP-Response of EAP type=PEAP and a lower version number,     indicating the highest supported version number.[4]  If the EAP server supports the version proposed by the client, then     all future EAP-Request and EAP-Response packets of EAP type=PEAP     MUST include the version field set to the agreed upon version     number.[5]  If the EAP server does not support the version number proposed by     the EAP client, it responds with an EAP-Failure sent in the clear.This version negotiation procedure guarantees that the EAP client andserver will agree to the latest version supported by both parties. Ifversion negotiation fails, then use of PEAP will not be possible, andanother mutually acceptable EAP method will need to be negotiated ifAndersson et al.             Standards Track                   [Page 11]INTERNET-DRAFT                    PEAP                    September 2002authentication is to proceed.2.4.  Error handlingOther than supporting TLS alert messages, PEAP does not have its ownerror message capabilities. This is unnecessary since errors in the PEAPPart 1 conversation are communicated via TLS alert messages, and errorsin the PEAP Part 2 conversation are expected to be handled by individualEAP methods.If an error occurs at any point in the PEAP conversation, the EAP serverSHOULD send an EAP-Request packet with EAP-Type=PEAP, encapsulating aTLS record containing the appropriate TLS alert message.  The EAP serverSHOULD send a TLS alert message rather than immediately terminating theconversation so as to allow the peer to inform the user of the cause ofthe failure and possibly allow for a restart of the conversation.  Toensure that the peer receives the TLS alert message, the EAP server MUSTwait for the peer to reply with an EAP-Response packet.2.5.  Retry behaviorAs with other EAP protocols, the EAP server is responsible for retry

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -