Looking for a piece of information. Are there cases in TLS before 1.3 where the PRF and the MAC are not inferred from the cipher suite that was negotiated?
I think it would be surprising if the cipher suite was not obtainable. The question would be if these are ever independent of the suite there could be a problem. Jim > -----Original Message----- > From: emu-boun...@ietf.org [mailto:emu-boun...@ietf.org] On Behalf Of > Joseph Salowey (jsalowey) > Sent: Thursday, November 07, 2013 4:38 PM > To: emu@ietf.org > Cc: draft-ietf-emu-eap-tunnel-met...@tools.ietf.org; emu- > cha...@tools.ietf.org; Stephen Farrell > Subject: Re: [Emu] Stephen Farrell's Discuss on draft-ietf-emu-eap-tunnel- > method-07: (with DISCUSS and COMMENT) > > I'd like to hear from the working group on this. > > I think Stephen is raising a fair point that trying to use the TLS PRF in this way > creates a very tight binding between a TLS implementation and a TEAP > implementation that may make implementations difficult depending upon the > interfaces provided by a TLS library. I think its very possible that some > libraries would not provide this information. If you think reusing the TLS PRF > is a good idea then please state why. If you think we should define a PRF > please indicate what approach you think we should take. > > Thanks, > > Joe > > > On Nov 7, 2013, at 4:15 PM, Stephen Farrell <stephen.farr...@cs.tcd.ie> > wrote: > > > > > Hi Joe, > > > > On 10/04/2013 05:58 PM, Joseph Salowey (jsalowey) wrote: > >> > > > > Apologies for the glacial response. > > > > Your suggestion for point 3 looks fine. Point 1 is already a comment. > > > > But point 2 needs a bit more discussion. > > > > The concern is that you're doing a layering violation and we know that > > the layer below (TLS) is changing, possibly in a way that'd impact on > > this. Why not just pick a KDF? > > > > S. > > > >> On Oct 4, 2013, at 7:07 AM, Stephen Farrell > >> <stephen.farr...@cs.tcd.ie> > >> wrote: > >> > >>> > >>> Hi Joe, > >>> > >>> Sorry for the slow response and if I've missed anything... > >>> > >>> On 09/25/2013 07:21 AM, Joseph Salowey (jsalowey) wrote: > >>>> > >>>> On Aug 14, 2013, at 10:58 AM, Stephen Farrell > >>>> <stephen.farr...@cs.tcd.ie> wrote: > >>>> > >>>>> Stephen Farrell has entered the following ballot position for > >>>>> draft-ietf-emu-eap-tunnel-method-07: Discuss > >>>>> > >>>>> When responding, please keep the subject line intact and reply to > >>>>> all email addresses included in the To and CC lines. (Feel free to > >>>>> cut this introductory paragraph, however.) > >>>>> > >>>>> > >>>>> Please refer to > >>>>> http://www.ietf.org/iesg/statement/discuss-criteria.html for more > >>>>> information about IESG DISCUSS and COMMENT positions. > >>>>> > >>>>> > >>>>> The document, along with other ballot positions, can be found > >>>>> here: > >>>>> http://datatracker.ietf.org/doc/draft-ietf-emu-eap-tunnel-method/ > >>>>> > >>>>> > >>>>> > >>>>> ------------------------------------------------------------------ > >>>>> ---- > >>>>> > >>>>> > >>> DISCUSS: > >>>>> ------------------------------------------------------------------ > >>>>> ---- > >>>>> > >>>>> > >>>>> > >>>>> > >>> These discuss points are more questions I'd really like > >>>>> answered than blocking points (depending on the answers I guess:-) > >>>>> but I expect should be easily resolved. > >>>>> > >>>>> (1) 3.4: when x.500 names or SubjectAltNames are "exported" is it > >>>>> clear how those are formatted? Maybe a pointer to where that's > >>>>> defined would be good in case implementers get it wrong. You might > >>>>> also want to warn here (or somewhere) about names that contain a > >>>>> null byte in case that attack is used e.g. with a TLS server cert > >>>>> subject name like "CN=www.paypal.com\0.badguy.com" Even though > >>>>> that's really a PKI failure, not detecting it here would be bad > >>>>> too. > >>>>> > >>>> > >>>> [Joe] We could add a note about the null, is there some text in an > >>>> existing document we could reuse? > >>> > >>> That one's a comment now. > >>> > >>>> > >>>>> (2) 5.2, at the end: this adds a dependency on the TLS-PRF. I > >>>>> don't suppose TLS1.3 will be a big enough change for that to be a > >>>>> problem, but what if it was? E.g. if someone convinced the TLS WG > >>>>> to use IKE instead? Do you really need the same PRF or could you > >>>>> pick one for TEAP and remove the dependency? Same question for the > >>>>> MAC in 5.3. > >>>>> > >>>> > >>>> [Joe] We chose to have the dependence so we would rely on the same > >>>> crypto-algorithms as TLS so our crypto agility would track with TLS. > >>>> We figured TLS would track advances in cryptography better than EMU. > >>> > >>> Well, two things - if TLS 1.3 makes changes then that could mean > >>> that this has to run over TLS 1.2 or earlier to get interop and that > >>> seems like a bad plan. > >>> And secondly, is there really a good API to see what PRF has been > >>> used by TLS for a given session in common TLS implementations? > >>> > >> [Joe] The TLS 1.2 the PRF is no longer fixed and it depends upon the > ciphersuite. In most TLS implementations I'm aware of you can find the > ciphersuite. While this does not directly give you the PRF it does allow you to > determine what it is. THis does mean that a TEAP implementation would need > to have a mapping between ciphersuite and PRF. THis means that if a new > ciphersuite is defined TEAP implementations would need to make changes to > support it. If the PRF is an existing PRF then adapting to the new Ciiphersuite > is a simple addition to the mapping table which an implementation could > accommodate a configuration instead of a code change. If a new PRF is > needed then some code change is required to adapt the new PRF. The > thinking here is that the new PRF would have some benefit so you would want > to use it in TEAP as well as TLS. This does make TEAP tightly tied to a TLS > implementation. > >> > >> Is it your worry that changes in TLS 1.3 would make it not possible for a > TEAP implementation to to determine which PRF to use which would prevent > interop? What sort of change are you anticipating in TLS 1.3 that would > disrupt this? > >> > >> > >>>>> (3) 7.3: you have a MAY for this separation but also define what > >>>>> would become a cleartext password set of TLVs on the link between > >>>>> the two boxes here. Could you not at least REQUIRE protection (e.g. > >>>>> using IPsec) of that link if the basic password method will be > >>>>> used? > >>>>> > >>>> > >>>> [Joe] Sam's comments pretty much reflect the working group > >>>> consensus on this topic. > >>> > >>> I thought Sam was saying that it'd be good to add a recommendation > >>> but I didn't see new text on that, did I miss it, or am I confused? > >>> (Which is common:-) > >>> > >> > >> [Joe] I might be me that is confused. I was focused on the MTI security > mechanism, which I think we have consensus not to specify for this practice. I > think ti would be good to say that if you are going to do this you must provide > some sort of protection: > >> > >> If the request is to change the SHOULD to a MUST then I think that would > be OK (but I'd like to make sure the working group is OK with this): > >> > >> "The TEAP > >> encrypting/decrypting gateway MUST, at a minimum, provide support > >> for IPsec or similar protection in order to provide confidentiality > >> for the portion of the conversation between the gateway and the EAP > >> server. " > >> > >> > >> > >>> Cheers, > >>> S. > >>> > >>>> > >>>>> > >>>>> ------------------------------------------------------------------ > >>>>> ---- > >>>>> > >>>>> > >>> COMMENT: > >>>>> ------------------------------------------------------------------ > >>>>> ---- > >>>>> > >>>>> > >>>>> > >>>>> > >>> - 3.2: You're allowing TLS compression. Is there the > >>>>> potential for something like a CRIME attack here? I guess not, > >>>>> given that there's no way to programatically get a peer or inner > >>>>> method server to send attacker-chosen data. Is that correct? (Just > >>>>> checking.) > >>>>> > >>>> > >>>> [Joe] In general no. The closest thing I can think of is NEA which > >>>> can use a method such as TEAP for transport, but I don't think this > >>>> would allow an attacker to launch a CRIME attack. > >>>> > >>>>> - 3.2.2: Since a PAC-lifetime is a wall-clock time then it would > >>>>> provide a way to correlate old and new sessions (i.e. act as a > >>>>> fingerprint) if its ever carried in clear. Can that happen? > >>>>> > >>>> > >>>> [Joe] The PAC-lifetime is carried in the PAC-Info which is always > >>>> send under the protection of the TLS tunnel. Only the PAC-Opaque > >>>> is sent outside the tunnel. > >>>> > >>>>> - 3.3.3, 1st para: what does "clear text" mean here? Do you mean > >>>>> within the TLS tunnel or not? I hope you do mean within the TLS > >>>>> tunnel, but I think you need to be clear(er) in any case. > >>>>> > >>>> > >>>> [Joe] Clear text means outside the TLS tunnel. EAP state machine > >>>> requires that the EAP-Success or EAP-Failure be sent independently > >>>> of the method. This is why TEAP has its own protected result > >>>> indication and why this section states that the Peer must not > >>>> accept a cleartext success or failure before the protected results are > received. > >>>> > >>>>> - 3.8: this says mutual auth "results" if the peer trusts the > >>>>> server cert belongs to the server - that sounds wrong, isn't it? > >>>>> > >>>> > >>>> [Joe] I think this section is terminology challenged. It should > >>>> basically replace mutual server authentication with just server > >>>> authentication. > >>>> > >>>> "Several TEAP services including server unauthenticated > >>>> provisioning, PAC provisioning, certificate provisioning and > >>>> channel binding depend on the peer trusting the TEAP server. Peers > >>>> MUST authenticate the server before these peer services are used. > >>>> > >>>> TEAP peers MUST track whether server authentication has taken place. > >>>> Server authentication results if the peer trusts the provided > >>>> server certificate. Typically this involves both validating the > >>>> certificate to a trust anchor and confirming the entity named by > >>>> the certificate is the intended server. Server authentication also > >>>> results when the procedures of Section 3.3 are used to resume a > >>>> session in which the the peer and server was previously mutually > authenticated. > >>>> Alternatively, if an inner EAP method providing mutual > >>>> authentication and an Extended Master Session Key (EMSK) is > >>>> executed and cryptographic binding with the EMSK compound MAC is > >>>> present (Section 4.2.13), then the session is mutually > >>>> authenticated and peer services can be used. > >>>> > >>>> TEAP implementations SHOULD NOT use peer services by default unless > >>>> the session is server authenticated. TEAP peer implementations > >>>> MUST have a configuration where authentication fails if server > >>>> authentication cannot be achieved. > >>>> > >>>> An additional complication arises when a tunnel method > >>>> authenticates multiple parties such as authenticating both the peer > >>>> machine and the peer user to the EAP server. Depending on how > >>>> authentication is achieved, only some of these parties may have > >>>> confidence in it. For example if a strong shared secret is used to > >>>> mutually authenticate the user and the EAP server, the machine may > >>>> not have confidence that the EAP server is the authenticated party > >>>> if the machine cannot trust the user not to disclose the shared > >>>> secret to an attacker. In these cases, the parties who participate > >>>> in the authentication need to be considered when evaluating whether > to use peer services. " > >>>> > >>>> > >>>> > >>>>> - 3.8.1: I think you need an s/MAY/MUST/ here - you say the > >>>>> request "MAY be issued only ..." but I think you mean "MUST be > >>>>> issued only..." > >>>>> > >>>> > >>>> [Joe] Yes. How about: > >>>> > >>>> "The peer MUST successfully authenticated the EAP server and > >>>> validated the Crypto-Binding TLV as defined in Section 4.2.13 > >>>> before issuing the request" > >>>> > >>>> > >>>>> > >>>>> - 3.8.2: Just checking, and I may be wrong here. Say if I > >>>>> establish a TLS server-auth tunnel and then renegotiate to get TLS > >>>>> client-auth (with id privacy) as well, and then the Peer wants to > >>>>> get a new cert. This calls for the tls-unique for the initial > >>>>> server-auth TLS session to be used in the pkcs#10. Am I reading > >>>>> it right? Is that ok? I think it is, but just want to check since > >>>>> its pretty confusing;-) > >>>>> > >>>> > >>>> [Joe] This is meant to use the same mechanism as EST. It is > >>>> currently out of sync with the latest version. It should line up: > >>>> > >>>> In order to provide linking identity and proof-of-possession by > >>>> including information specific to the current authenticated TLS > >>>> session within the signed certification request, the peer > >>>> generating the request SHOULD obtain the tls-unique value from the > >>>> TLS subsystem as defined in Channel Bindings for TLS [RFC5929]. > >>>> The TEAP peer operations between obtaining the tls_unique value > >>>> through generation of the CSR that contains the current tls_unique > >>>> value and the subsequent verification of this value by the TEAP > >>>> server are the "phases of the application protocol during which > >>>> application- layer authentication occurs" that are protected by the > >>>> synchronization interoperability mechanism described in the Channel > >>>> Bindings for TLS [RFC5929] section 3.1 interoperability notes. > >>>> When performing renegotiation, TLS "secure_renegotiation" [RFC5746] > MUST be used. > >>>> > >>>> The tls-unique value is base 64-encoded as specified in Section 4 > >>>> of [RFC4648] and the resulting string is placed in the > >>>> certification request challenge-password field ( [RFC2985], Section > >>>> 5.4.1). The challenge-password field is limited to 255 bytes > >>>> (section 7.4.9 of [RFC5246] indicates that no existing cipher suite > >>>> would result in an issue with this limitation). If tls-unique > >>>> information is not embedded within the certification request the > >>>> challenge-password field MUST be empty to indicate that the peer > >>>> did not include the optional channel-binding information (any value > >>>> submitted is verified by the server as tls-unique information). > >>>> > >>>> The server SHOULD verify the tls-unique information. This ensures > >>>> that the authenticated TEAP peer is in possession of the private > >>>> key used to sign the certification request. > >>>> > >>>> > >>>> > >>>>> - The secdir review [1] raised a couple of questions that I think > >>>>> would be good to answer. Did I miss that answer? > >>>>> > >>>> > >>>> [Joe] No, I missed the review. Response in progress. > >>>> > >>>>> [1] > >>>>> http://www.ietf.org/mail-archive/web/secdir/current/msg04106.html > >>>>> > >>>>> > >>>>> _______________________________________________ Emu > mailing list > >>>>> Emu@ietf.org https://www.ietf.org/mailman/listinfo/emu > >>>> > >> > > _______________________________________________ > Emu mailing list > Emu@ietf.org > https://www.ietf.org/mailman/listinfo/emu _______________________________________________ Emu mailing list Emu@ietf.org https://www.ietf.org/mailman/listinfo/emu