📄 draft-josefsson-pppext-eap-tls-eap-05.txt
字号:
behavior. This means that if the EAP server does not receive a replyfrom the peer, it MUST resend the EAP-Request for which it has not yetreceived an EAP-Response. However, the peer MUST NOT resend EAP-Responsepackets without first being prompted by the EAP server.For example, if the initial PEAP start packet sent by the EAP serverwere to be lost, then the peer would not receive this packet, and wouldnot respond to it. As a result, the PEAP start packet would be resent bythe EAP server. Once the peer received the PEAP start packet, it wouldsend an EAP-Response encapsulating the client_hello message. If theEAP-Response were to be lost, then the EAP server would resend theinitial PEAP 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 peerand the EAP Server should be engineered to handle this possibility.2.6. Session resumptionThe purpose of the sessionId within the TLS protocol is to allow forimproved efficiency in the case where a client repeatedly attempts toauthenticate to an EAP server within a short period of time. Thiscapability is particularly useful for support of wireless roaming.It is left up to the peer whether to attempt to continue a previoussession, thus shortening the PEAP Part 1 conversation. Typically theAndersson et al. Standards Track [Page 12]INTERNET-DRAFT PEAP September 2002peer's decision will be made based on the time elapsed since theprevious authentication attempt to that EAP server. Based on thesessionId chosen by the peer, and the time elapsed since the previousauthentication, the EAP server will decide whether to allow thecontinuation, or whether to choose a new session.In the case where the EAP server and the authenticator reside on thesame device, then the client will only be able to continue sessions whenconnecting to the same NAS or tunnel server. Should these devices be setup in a rotary or round-robin then it may not be possible for the peerto know in advance the authenticator it will be connecting to, andtherefore which sessionId to attempt to reuse. As a result, it is likelythat the continuation attempt will fail.In the case where the EAP authentication is remoted then continuation ismuch more likely to be successful, since multiple NAS devices and tunnelservers will remote their EAP authentications to the same backendauthentication server.If the EAP server is resuming a previously established session, then itMUST include only a TLS change_cipher_spec message and a TLS finishedhandshake message after the server_hello message. The finished messagecontains the EAP server's authentication response to the peer.2.7. FragmentationA single TLS record may be up to 16384 octets in length, but a TLSmessage may span multiple TLS records, and a TLS certificate message mayin principle be as long as 16MB. The group of PEAP messages sent in asingle round may thus be larger than the PPP MTU size, the maximumRADIUS packet size of 4096 octets, or even the Multilink MaximumReceived Reconstructed Unit (MRRU). As described in [2], the multilinkMRRU is negotiated via the Multilink MRRU LCP option, which includes anMRRU length field of two octets, and thus can support MRRUs as large as64 KB.However, note that in order to protect against reassembly lockup anddenial of service attacks, it may be desirable for an implementation toset a maximum size for one such group of TLS messages. Since a typicalcertificate chain is rarely longer than a few thousand octets, and noother field is likely to be anywhere near as long, a reasonable choiceof maximum acceptable message length might be 64 KB.If this value is chosen, then fragmentation can be handled via themultilink PPP fragmentation mechanisms described in [RFC1990]. Whilethis is desirable, EAP methods are used in other applications such as[IEEE80211] and there may be cases in which multilink or the MRRU LCPoption cannot be negotiated. As a result, a PEAP implementation MUSTAndersson et al. Standards Track [Page 13]INTERNET-DRAFT PEAP September 2002provide its own support for fragmentation and reassembly.Since EAP is an ACK-NAK protocol, fragmentation support can be added ina simple manner. In EAP, fragments that are lost or damaged in transitwill be retransmitted, and since sequencing information is provided bythe Identifier field in EAP, there is no need for a fragment offsetfield as is provided in IPv4.PEAP fragmentation support is provided through addition of flag bitswithin the EAP-Response and EAP-Request packets, as well as a TLSMessage Length field of four octets. Flags include the Length included(L), More fragments (M), and PEAP Start (S) bits. The L flag is set toindicate the presence of the four octet TLS Message Length field, andMUST be set for the first fragment of a fragmented TLS message or set ofmessages. The M flag is set on all but the last fragment. The S flag isset only within the PEAP start message sent from the EAP server to thepeer. The TLS Message Length field is four octets, and provides thetotal length of the TLS message or set of messages that is beingfragmented; this simplifies buffer allocation.When a PEAP peer receives an EAP-Request packet with the M bit set, itMUST respond with an EAP-Response with EAP-Type=PEAP and no data. Thisserves as a fragment ACK. The EAP server MUST wait until it receives theEAP-Response before sending another fragment. In order to prevent errorsin processing of fragments, the EAP server MUST increment the Identifierfield for each fragment contained within an EAP-Request, and the peerMUST include this Identifier value in the fragment ACK contained withinthe EAP-Response. Retransmitted fragments will contain the sameIdentifier value.Similarly, when the EAP server receives an EAP-Response with the M bitset, it MUST respond with an EAP-Request with EAP-Type=PEAP and no data.This serves as a fragment ACK. The EAP peer MUST wait until it receivesthe EAP-Request before sending another fragment. In order to preventerrors in the processing of fragments, the EAP server MUST increment theIdentifier value for each fragment ACK contained within an EAP-Request,and the peer MUST include this Identifier value in the subsequentfragment contained within an EAP-Response.2.8. Key derivationSince the normal TLS keys are used in the handshake, and thereforeshould not be used in a different context, new keys must be derived fromthe TLS master secret for use with the selected link layer ciphersuites.In the most general case, keying material must be provided forauthentication, encryption and initialization vectors (IVs) in eachdirection.Andersson et al. Standards Track [Page 14]INTERNET-DRAFT PEAP September 2002Since EAP methods may not know the link layer ciphersuite that has beennegotiated, it may not be possible for them to provide link layerciphersuite-specific keys. In addition, attempting to provide such keysis undesirable, since it would require the EAP method to be revised eachtime a new link layer ciphersuite is developed. As a result, PEAPderives master session keys which can subsequently be truncated for usewith a particular link layer ciphersuite. Since the truncationalgorithms are ciphersuite-specific, they are not discussed here;examples of such algorithms are provided in [RFC3079]. This draft alsodoes not discuss the format of the attributes used to communicate themaster session keys from the backend authentication server to the NAS;examples of such attributes are provided in [RFC2548].For both peer and EAP server, the derivation of master session keysproceeds as follows:[1] Given the master key negotiated by the TLS handshake, the pseudorandom function (PRF) defined in the specification for the version of TLS in use, and the value random defined as the concatenation of the handshake message fields client_hello.random and server_hello.random (in that order), the value PRF(master key, "client PEAP encryption", random) is computed up to 128 bytes, and the value PRF("", "client PEAP encryption", random) is computed up to 64 bytes (where "" is an empty string).[2] The peer master session encryption key (the one used for encrypting data from peer to EAP server) is obtained by truncating to the correct length the first 32 bytes of these two PRF output strings.[3] The EAP server master session encryption key (the one used to encrypting data from EAP server to peer), if different from the client master session encryption key, is obtained by truncating to the correct length the second 32 bytes of this same PRF output string.[4] The peer master session authentication key (the one used for computing MACs for messages from peer to EAP server), if used, is obtained by truncating to the correct length the third 32 bytes of this same PRF output string.[5] The EAP server master session authentication key (the one used for computing MACs for messages from EAP server to peer), if used, and if different from the peer master session authentication key, is obtained by truncating to the correct length the fourth 32 bytes of this same PRF output string.[6] The peer master session initialization vector (IV), used for messages from peer to EAP server, is obtained by truncating to theAndersson et al. Standards Track [Page 15]INTERNET-DRAFT PEAP September 2002 cipher's block size the first 32 bytes of the second PRF output string mentioned above.[7] Finally, the EAP server master session initialization vector (IV), used for messages from peer to EAP server, is obtained by truncating to the cipher's block size the second 32 bytes of this second PRF output.Algorithms for the truncation of these encryption and authenticationmaster session keys are specific to each link layer ciphersuite. Linklayer ciphersuites in use with PPP include DESEbis [RFC2419], 3DES[RFC2420] and MPPE [RFC3078]. IEEE 802.11 ciphersuites are described in[IEEE80211]. An example of how encryption keys for use with MPPE[RFC3078] are derived from the TLS master session keys is given in[RFC3079]. Additional keys or other non-secret values (such as IVs) canbe obtained as needed by extending the outputs of the PRF beyond 128bytes and 64 bytes, respectively.2.9. Ciphersuite negotiationSince TLS supports TLS ciphersuite negotiation, peers completing the TLSnegotiation will also have selected a TLS ciphersuite, which includeskey strength, encryption and hashing methods. However, unlike in[RFC2716], within PEAP, the negotiated TLS ciphersuite relates only tothe mechanism by which the PEAP Part 2 conversation will be protected,and has no relationship to link layer security mechanisms negotiatedwithin the PPP Encryption Control Protocol (ECP) [RFC1968] or withinIEEE 802.11 [IEEE80211].As a result, PEAP does not support secure negotiation of link layerciphersuites. While such a negotiation is preferable from a securityperspective, it is in practice difficult to integrate with existing PPPand IEEE 802.11 link layer security negotiation, as well as with backendauthentication servers.Depending on the link layer technology in use, the link layer securitynegotiation will occur at different stages in the connection process. InIEEE 802.11, selection of the link layer security mechanism occurs viathe association/re-association messages, prior to authentication. Incontrast, within PPP, link layer security negotiation occurs in ECP[RFC1968], which occurs after authentication.As a result, within IEEE 802.11, by the time that PEAP is invoked, thelink layer security technology has already been selected. Thus if PEAPwere to support a protected link layer ciphersuite negotiation whoseconclusion disagreed with the IEEE 802.11 negotiation, a reassociation(and additional authentication!) would be required to synchronize theresults of the two negotiations. Within PPP, it is conceivable that theAndersson et al. Standards Track [Page 16]INTERNET-DRAFT PEAP September 2002results of a PEAP secure link layer security negotiation could besubsequently reflected in the ECP negotiation.There are other issues as well. While link layer ciphersuitenegotiation occurs between the peer and the NAS, the EAP conversationoccurs between the peer and the EAP server. Since the EAP server maynot be aware of the link layer ciphersuites supported by the NAS, it isconceivable that the NAS and peer can negotiate a link layer ciphersuitethat is not supported by the NAS. To address this issue, it would benecessary for the NAS to send the list of supported link layerciphersuites to the backend authentication server, and have the backendsecurity server respond with a list of acceptable choices. However, whenused with technologies such as IEEE 802.11 where link layer securitytechnology selection occurs prior to authentication, multipleassociation/reassociation exchanges might be required to synchronize thenegotiations, resulting in extended connectivity loss.The situation typically cannot be addressed merely by omitting IEEE802.11 link layer security negotiation. Unless all users on the AP areto be authenticated with PEAP or an alternative EAP method providingsecure link layer security negotiation, then omitting IEEE 802.11security negotiation would leave some users without the ability tonegotiate security mechanisms.For these reasons, protected negotiation of link layer ciphersuiteswithin PEAP is considered impractical and is omitted from thisspecification.Andersson et al. Standards Track [Page 17]INTERNET-DRAFT PEAP September 20023. Detailed description of the PEAP protocol3.1. PEAP Packet FormatA summary of the PEAP Request/Response packet format is shown below.The fields are transmitted from left to right.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -