Re: [secdir] secdir review of draft-ietf-emu-chbind-14

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Apr 24, 2012, at 2:05 PM, Stephen Hanna wrote:

> Joe,
> 
> I'm glad that my comments were useful to you and to the editors
> of this draft. I will respond to your comments below inline.
> I'm going to clip out as much as I can, including anything
> that has already been agreed on.
> 
> Thanks,
> 
> Steve
> 
> ----------
> 
> Joe Salowey wrote:
>> 
>> On Apr 13, 2012, at 11:26 AM, Stephen Hanna wrote:
>> 
>>> In the Introduction, the second paragraph says that the
>>> problem "results when the same credentials are used to
>>> access multiple services that differ in some interesting
>>> property". Do you mean client or server credentials?
>>> I think you mean EAP server credentials. Please be more
>>> explicit to make this clearer, since many people will
>>> assume that you mean client (EAP peer) credentials. If
>>> I'm correct and you do mean EAP server credentials,
>>> I suggest that you say so in the first sentence of
>>> this paragraph and also in the last sentence.
>> 
>> [Joe]   The case here is both client and server credentials.  If
>> different credentials are required for each type of service then the
>> authenticator will not be able to lie about the type of service it is
>> representing to the client because the client credentials are bound to
>> the service.
> 
> SH> I don't see what the problem is with using the same
> client credentials with two different services if the
> server credentials are different. The client will be able
> to detect a lying NAS easily since the server credentials
> won't match what it expects for that service. Could you
> please explain this more?
> 

[Joe] In many cases the server credentials will be the same.  They will be the credentials of the AAA server.  

>>> In the first paragraph of the Problem Statement, the second
>>> sentence says "However, when operating in pass-through mode,
>>> the EAP server can be far removed from the authenticator."
>>> While this is true, I think the more relevant statement here
>>> is that the EAP server can be far removed from the EAP peer.
>>> This paragraph is all about problems that can arise when
>>> parties between the EAP peer and the EAP server (including
>>> the authenticator) are malicious or compromised. So the
>>> important thing to point out at the start of the paragraph
>>> is the large number of parties that may come between the
>>> EAP server and the EAP peer.
>>> 
>> 
>> [Joe]  I think I see your point, but I'm not sure.  Traditionally, we
>> have often thought of the path between EAP peer and EAP authenticator
>> as being vulnerable to having multiple parties able to insert
>> themselves into the conversation.  However it may be the case that the
>> authenticator the peer is talking to isn't the one it thinks it is and
>> the "real" authenticator may be somewhere in the path as well.  The
>> conversation between the EAP peer and EAP server will not be
>> compromised, however the result of the conversation may not have its
>> intended effect.
> 
> My point is that having a long distance between the EAP server
> and the authenticator has little to do with the "lying NAS"
> problem. The problem is that there are potentially untrustworthy
> parties (the NAS and any proxies) between the EAP peer and the
> EAP server and the EAP peer is trusting what it's told by them.
> If the EAP server and the authenticator were two inches apart
> with no intermediaries, that wouldn't help. The problem is the
> potentially untrustworthy folks between the EAP server and
> the EAP peer. You're trying to verify some of what they're
> telling the EAP peer. So I'm not sure that sentence helps but
> if it does, the problem is between the EAP peer and the EAP server.
> 

[Joe] I don't have an issue with stating that the problem is between the peer and the server, but I'd like to hear the author's view on this. 

>> 
>> [Joe] THis is historical and reflects the discussion we had in the
>> working as the document was being developed.
>> 
>>> I see
>>> several downsides to including that text in this document.
>>> First, you're making it harder for the reader to understand
>>> what they actually need to do to implement this protocol.
>>> You've probably decreased by half the number of people who
>>> will actually read all of this document. Second, some people
>>> will use that digression to support arguments like ("My
>>> incompatible implementation is compliant with RFC XXXX
>>> because I encoded the network information into a blob
>>> and used that to generate EAP session keys"). IETF is an
>>> engineering organization. We should make our specs as clear
>>> and simple as possible and no simpler. This document includes
>>> lots of interesting theory that's not needed for its purpose.
>>> If you're interested in seeing this document widely implemented,
>>> I suggest that you remove as much of that as possible and focus
>>> the document on explaining the problem and defining a protocol
>>> that solves it. Or you can leave it as is. I'm sure some people
>>> will implement it. Just not as many. Friendly suggestion. Take
>>> it or leave it.
>> 
>> [Joe] I can see your point, but I think some members of the working
>> group would object if we removed some of this material.  If its not
>> clear perhaps we can so a better job of indicating what is normative
>> and what is informative.
> 
> OK. If you think the WG really wants this confusing text,
> leave it in. But maybe you should start section 4 by saying
> "This section describes several possible design choices
> for channel bindings. It is not normative." And then you'll
> need to change, delete, or move the paragraph in section 4.2
> that includes a MUST and a SHOULD. I think that paragraph is
> redundant with the first paragraph in section 6.1 and not
> specific to sending channel bindings in the Secure Association
> Protocol (which is the topic of section 4.2) so I'd suggest
> that you just delete it. You won't lose anything.
> 
[Joe] I'm OK with this. 

>>> In section 7.1, you explain that this document isn't useful
>>> without an accompanying document defining what information
>>> should be included in i1 for each lower layer. Are those
>>> documents being prepared for all or at least some of the
>>> lower layers? I couldn't find any in a quick search. I know
>>> we can't wait for everything to be ready but it would be
>>> nice to see at least one or two of those documents so that
>>> we can have confidence that this protocol can support all
>>> the things that those documents will need.
>> 
>> [Joe]  That not how I interpret the text in section 7.1. This document
>> does specify a general attribute that can be used to specify the type
>> of lower layer used to carry EAP.    Section 7.1 states that additional
>> documents will be needed to specify attributes specific to a particular
>> lower layer.   ABFAB is working on a document that contains this
>> information for their lower layer, draft-ietf-abfab-gss-eap.
> 
> Without a document that defines what information should be
> included in i1 for a given lower layer, the only thing this
> protocol gives you is a way to confirm that the EAP server
> is OK with the lower layer advertised by the authenticator.
> Whoop-dee-do. That doesn't address any of the use cases
> described in the Problem Statement. In all those cases,
> the authenticator is advertising a lower layer that's
> supported by the EAP server.
> 
> I'm not saying that EAP channel bindings have no value.
> I'm just saying that they don't have much value without
> a document that specifies the attributes relevant to
> the lower layer that's in use. So let's publish this
> spec and the GSS-EAP spec. But let's also work on a
> spec that describes the attributes for 802.11.
> 

[Joe] I agree we should work on a spec for 802.11 and perhaps other 802 networks as well.  



>>> As I read section 8, I wonder whether include the User-Name
>>> attribute in i2 could open the system up to attacks where
>>> an authenticator or intermediate proxy could remove the
>>> anonymity of a user who's using a pseudonym for the
>>> username by changing the value of the User-Name attribute
>>> to the username of the user suspected of being responsible
>>> for this authentication. If the channel bindings checks
>>> fail, the authenticator will know they were wrong but if
>>> the channel bindings checks succeed, the authenticator
>>> will have confirmation of the user's identity.
>> 
>> [Joe] Perhaps, on the one hand I would think the system would not
>> behave this way, the server would be expecting a pseudonym or token and
>> fail if it got something else.  On the other hand, I don' think the
>> text for the user-name check or the test itself are that useful.  We
>> could either warn against the possible identity disclosure or remove
>> the user-name check.
> 
> I'd be inclined to warn about the problem since there may still
> be some utility in checking the value. Whichever you prefer.
> 

[Joe]   I think adding the warning is fine.

> 
>>> At the top of page 23, you say that "In many EAP deployments
>>> today attacks where one NAS can impersonate another are
>>> out of scope." Do you mean that these attacks are generally
>>> not considered but they are a potential problem? Or that
>>> they are not a problem? I think they are always a possible
>>> problem. Even when all the NASes are owned and managed by
>>> the same organization that runs the AAA server and no proxies
>>> are used, there's still the potential for a NAS to become
>>> compromised. So I think you should say these attacks are
>>> "not considered although a real concern" not that they are
>>> "out of scope".
>> 
>> [Joe] As EAP is deployed in most cases today the authenticator is not
>> identified, it is merely authorized as being part of the network.  The
>> peer does not expect differentiated service based on the NAS it is
>> connected to.  Since the service is the same it does not matter to the
>> peer if one authenticator impersonates another.  When we start
>> discussing use case such as ABFAB where different services are being
>> provided did the identity of the authenticator really become an issue.
>> 
>> Perhaps the following text is better
>> 
>> "In many EAP deployments today attacks where one authenticator can
>> impersonate another not a real concern since different authenticators
>> provide the same service.  In these situations an authenticator does
>> not gain significant advantage in impersonating another authenticator.
>> "
> 
> I'd say "all authenticators provide the same service". I think
> that's what you meant to say. With that change, my concerns are
> allayed.
> 
[Joe] Yes, thanks.

> 
>>> In the next paragraph, you say that when cryptographic binding
>>> is used in a tunnel method, the MSK is disclosed to the NAS.
>>> I don't think that's right. The MSK that's disclosed to the
>>> NAS is the one generated by the outer method. The MSK that's
>>> used in cryptographic binding is the one that's generated by
>>> the inner method. I don't think there's a problem there.
>> 
>> [Joe]  OK, this test is referring to where there is separate between
>> the terminating server of the inner and outer methods.  Maybe it would
>> be clearer if the text said the following:
>> 
>> "Even when cryptographic binding does attempt to confirm that the inner
>> and outer server are the same, the Master Session Key (MSK) from the
>> inner method is typically used to protect the binding.  However, if the
>> outer method tunnel terminates on the authenticator the inner MSK is
>> disclosed to the authenticator, which can attack cryptographic
>> binding."
> 
> Who on earth would terminate the outer method on the authenticator?
> The authenticator should be trusted as little as possible. The party
> who terminates the outer tunnel method must be highly trusted.
> One of the main benefits of having an authentication server is to
> reduce the number of highly trusted parties by centralizing the
> most security-critical activities such as authentication. That's
> why we have pass-through authenticator mode. Maybe you're not
> talking about using EAP pass-through authenticator mode any more.
> In that case, there's no backend authentication server so this
> whole document does not apply. At least, I don't think it does.
> Could you point out to me where in this document it explains
> how to handle this situation? If this situation is not in scope
> for this document, I think you should say that and remove this
> text about MSK problems since they don't apply to this document.
> If not using pass-through authenticator mode is in scope for
> this document, please say that and explain how EAP channel
> bindings work in that environment.
> 

[Joe] So, I'm not a big fan of splitting the inner and outer methods, but there have been quite a few advocates for various use cases.  The current issue was brought up in ABFAB so I think Sam would be better at providing the motivation for that. 

>>> Later in that paragraph, you say that an attack where the NAS
>>> terminates an EAP tunnel method is not in scope for existing
>>> models for cryptographic binding. I think that's wrong also.
>>> EAP tunnel methods protect against just this sort of attack.
>>> The first step in these methods is for the EAP peer and the
>>> EAP server to build a TLS tunnel. This requires the EAP peer
>>> to authenticate the EAP server and decide whether it's trusted.
>>> If the NAS has credentials that will cause the EAP peer to
>>> trust it as an EAP server, a MITM attack is possible. Of course,
>>> that's true for any secure communications and it's a very bad
>>> situation. That's why the EAP peer must be very careful about
>>> who it trusts and how it authenticates them and the EAP server
>>> (and any CAs or other TTPs) must also be similarly careful.
>>> I don't see that any of this has much to do with channel bindings.
>>> Am I missing something here? If so, please explain it. And maybe
>>> you can clarify the text so that other folks get it also.
>> 
>> [Joe]  The issue is when you have different services the client may not
>> have enough information to determine what an authenticator is
>> authorized for based on its identity alone.  In this case it would like
>> help from the server that terminates the inner method.  However current
>> crypto binding is based on the MSK so the authenticator can generate
>> whatever channel binding quantities it wants because the authenticator
>> has all the necessary key material.  In order for channel bindings to
>> determine if the authenticator is authorized or not,   the method needs
>> protect the channel bindings with a key generated from the inner method
>> EMSK that the authenticator does not possess.   Here is some text that
>> may help:
>> 
>> "If the authenticator controls the cryptographic binding then it also
>> controls the channel binding parameters and results.  If the channel
>> binding process is used to differentiate one authenticator from another
>> then the authenticator can claim to support services that it was not
>> authorized to.  This attack was not in scope for existing threat models
>> for cryptographic binding because differentiated authenticators was not
>> a consideration.  Thus, existing cryptographic binding does not
>> typically provide mutual authentication of the inner method server
>> required for channel binding."
> 
> Again, you've moved beyond pass-through authentication mode. I don't
> think this document covers that. If it's meant to cover that, it's
> missing a lot of text (to describe how that works).
> 
[Joe] True, that is why this was previously out of scope.  I think there are other places where a more detailed of the ABFAB use case would help.  




[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Fedora Users]