Hello Klaas,

Thank you for your very thorough review!
And sorry that it took me so long to reply.

My replies are in-line and will be reflected in the next draft version
that I plan on posting shortly. 

I would appreciate your and the group's feedback on whether I addressed
all your comments. 

I'd like to ask the group to check Klaas' primary comment since it is
concerned with the scope of the draft. I'd be interested to know who
shares this concern and whether the current draft should be modified
accordingly. You'll find my opinion on this matter among my other
replies below.

Regards,
Katrin


-----Original Message-----
From: Klaas Wierenga [mailto:kl...@cisco.com] 
Sent: Tuesday, April 28, 2009 3:26 AM
To: Hoeper Katrin-QWKN37
Cc: emu@ietf.org
Subject: review of chbind-01

Hi Katrin,

I have reviewed your draft and I think the content is in principle in 
pretty good shape, see my comments further below. I have however a more 
fundamental concern that I would like to hear your (and others') opinion

about.

I have the feeling that the draft is too complicated because you mix 
two, only loosely related, problems. The way I see it there are 2 
fundamental issues:

1) the NAS talks to both the peer and to the authentication server and 
the information given to both doesn't have to be consistent

2) the NAS gives information to authentication server (via the peer or 
not) and the authentication server needs to evaluate that information 
and make policy decisions based on that.

Issue 1 is for me the one that most needs solving, and I would prefer 
this draft to focus on that one only. Issue 2 is not so much a technical

problem as a business problem. The administrative entities controlling 
respectively the NAS and the AuthN server need to agree on the info they

  exchange and it is than up to the administrative entity to process 
that info (and log it for non-repudiation purposes etc.) and make policy

decisions on them.

Wrt to issue 1 I wonder if it is not sufficient to just "close the 
loop", i.e. have the NAS send the same info to both peer and AuthN 
server. Or alternatively, have all the info flow through the peer, that 
way you can be sure that peer and AuthN server have a consistent view of

what the NAS offers.

[KH] I agree that the solution presented in the current draft consists
of a technical part (exchange end-to-end secured information between the
peer & server, verify it and notify the peer about the result) and an
administrative part (setting up a database to support the consistency
and compliance checks of the exchanged channel binding information).

Introducing a database to the network model is absolute essential for
the solution to work. First of all, the exchanged information cannot be
directly compared because peer and server may have a different view of
the network information provided by the NAS/authenticator. For example,
the peer may identify a NAS by its SSID, whereas the EAP server may only
know the NAS-IP-Address. In order for the server to check whether both
addresses belong to the same device, a table look-up is required. Such
look-up tables are stored in the local database. Secondly, in roaming
scenarios the server cannot "know" each NAS of all visited networks that
the home network has a roaming agreement with. Here, the server can only
check whether the information broadcasted by a NAS in a visited network
complies with the roaming agreement with this network. For that reason,
rules derived from the agreements and policies need to be stored in a
database, such that the server can use these rules for its
consistency/compliance checks. 

I hope we can agree on that a database is absolute essential for
implementing meaningful channel bindings and that channel bindings in
roaming scenarios need to make use of rules that have been derived from
agreements and/or policies. The draft does not say how these rules are
derived, that is indeed outside the scope.

Bernard suggested in one of his earlier reviews to utilize such policy
compliance checks to validate authorizations, e.g. checking whether a
peer is authorized to access a particular part of a network or using a
particular media. In addition, the solution enables the server to check
whether an authenticator is authorized to grant access to a peer under
the given circumstances. These authorization checks are included in the
draft and are carried out by additional compliance checks. IMO this is a
nice feature that can be achieved using channel bindings without
changing the underlying protocol. It only requires additional
information to be stored in the database. If there is a consensus that
this feature should be outside the scope of the draft, it could be moved
to a separate draft. Again, though, the local database and some
compliance checks would still be a part of the remaining channel binding
solution.
------------------------------------------------------


My concrete comments:

1, par 2: "while there may be some identity tied to that security 
association"

What do you mean with "identity", are you talking about NAS-identifier, 
or something more generic?

[KH] Yes, we are referring to NAS-IP-Address, NAS-Identifier and such.

Proposed solution: "While there may be some identity tied to that
security association, such as the NAS-Identifier, there's no reason the
access point needs to advertize a consistent identity to clients." 

1, par 4: "consistent with the defined network policy"

I think it is not so much consistent as well as that is 'satisfies' the 
defined network policies

[KH] Agree. What about 'compliant' instead? In addition, I think its
best to explicitly distinguish between the consistency and the
compliance checks.

Proposed solution: "This allows the server to verify the authenticator
is providing information to the peer that is 1) consistent with the
information stored about this authenticator and 2) compliant with the
defined network policy. In addition, the presented solution allows the
server to verify that the peer is authorized to access the network in
the manner described by the NAS."

3, par 1: I think you should call out here that proxy's are an example 
of that, you mention it later but it helps to give the reader an idea 
what you are talking about.

[KH] Agree.

Proposed solution: "Additionally, while an authenticator may not be
compromised, other compromised elements in the networks (such as
proxies), could provide false information to the authenticator..." 

3, examples: I don't find the examples very compelling, how about for 
example a NAS giving wrong billing info to the peer "5$ all you can eat,

while sending per minute rates to the Auth server?

[KH] The current roaming example was chosen to illustrate an attack
where victims are not aware of that they are actually roaming. If you
(or anybody else) can come up with a more compelling example for the
enterprise case, please let me know.

Proposed solution: I will add another simple example to the Service
Provider Network case along the lines of what you suggested.

4: "...do not ensure the binding different layers..." -> "...the binding

OF different layers..."

[KH] Corrected.

4.1: is the fact whether it is plaintext or opaque the unique 
difference? I would argue that it is whether it is in a separate channel

or inline in the session key derivation. I think the plaintext vs opaque

doesn't add anything here, later in your requirements you point out that

the info sent needs to be protected, that seems enough to me.

[KH] Here, we wanted to emphasize that only the exchange of the data
allows an analysis of the information rather than a bitwise comparison.
Latter only works for identical information (not always feasible, see
different address/identifier discussion) that is exactly encoded in the
same way (not really practical). 

Proposed solution: "The peer and server can both uniquely encode their
respective view of the network information without exchanging it,
resulting into an opaque blob that can be included directly into the
derivation of EAP session keys."

4.2.: is it not enough to just say that the AuthN server and the peer 
need to get the same info? isConsistent would become isEqual, much 
easier to compute...... ;-)

Unfortunately, isEqual is not feasible (see earlier discussion and
address/identifier example). Another way to put it: Let's imagine peer
and NAS/authenticator speak Dutch with each other, whereas the
NAS/authenticator and the authentication server speak German. The
isConsistent check allows us to verify whether both pieces of
information have the same meaning (using the dictionary stored in the
local database). On the other hand, the isEqual check will always fail.

Proposed solution: none.

5.1, par 1: isConsistant -> isConsistent

[KH] Corrected.

5.2, par 1: conistency of i1 and i2 and evaluating the policy is indeed 
nontrivial, but policy evaluation should imo be out of scope for this 
draft anyway. Policy verification is a local problem at the Auth server 
side, it has nothing to do withy the communication protocols.

[KH] See my reply to your first comment.

6.2: "EAP methods MUST be able to import channel binding data from the 
lower layer...."

I don't understand this requirement, what type of data are we talking
about?

[KH] For example, a peer should include the SSID received in the Beacon
of a NAS/authenticator in i1. Consequently, a peer must be able to
include information in i1 that has not been received as part of the EAP
method. In order to do this, the EAP method must be able to access this
kind of information from a lower layer.

Proposed solution: none

7.2: NAS-Port-Type

Why a MUST? I can imagine many use cases where from a policy point of 
view I couldn't care less what medium type I am using

[KH] Agree

Proposed solution: change to SHOULD

7.3: again, why a MUST?

[KH] Disagree. This is not a policy question. This AVP is essential for
mitigating lying NAS attacks and thus should be a MUST.

Proposed solution: none

7.3.?: I think it worthwhile including 802.11u, after all this deals 
with NASes communicating data about their network to the peers, that is 
exactly what 11u does.

[KH] Older draft versions included additional link-layers (admittedly
not 11u), but were removed due to lack of feedback from the group on
which AVPs should be included. Instead a few general attributes are
provided that are useful to all link-layers (Section 7.2) and attributes
for .11, 11r and 11s are listed as an example (Section 7.3). This is
intended to provide a guideline for implementers to choose appropriate
attributes when implementing channel bindings on different link layers.

If you (or somebody else) happen to know which 11u AVPs should be used
here, please let me know and I include them.

Proposed solution: none, unless feedback from group is received

9.1:

There is also trust between NAS/Authenticator and AuthN server. The 
Authenticator relies on the Authentication server for policy decisions.

[KH] The trust model for channel bindings assumes that peer and server
are honest, while the authenticator is the potential attacker (e.g.
lying NAS attack, etc). In a trust model you usually don't care who the
attacker trusts.

10.1, par 4: I don't think you put contractual info about roaming 
partners in the database, but the rules in the policy engine are rather 
the results of that.

[KH] Agree

Proposed solution: "In the service provider case, there should be a
mechanism for entering policy rules that have been derived from the
contractual information about roaming partners."


Cheers,

Klaas

[KH] Prost, Katrin
_______________________________________________
Emu mailing list
Emu@ietf.org
https://www.ietf.org/mailman/listinfo/emu

Reply via email to