Re: [Emu] Working Group Last Call for draft-ietf-emu-chbind-04.txt (part 2)
Bernard, All See my comments inline. From: emu-boun...@ietf.org [mailto:emu-boun...@ietf.org] On Behalf Of Bernard Aboba Sent: Tuesday, December 08, 2009 12:12 AM To: emu@ietf.org Subject: Re: [Emu] Working Group Last Call for draft-ietf-emu-chbind-04.txt (part 2) Section 5.1 The local database is perhaps the most important part of this system. In order for the EAP server or AAA server to know whether i1 and i2 are correct, they need access to trustworthy information, since an authenticator could include false information in both i1 and i2. Additional reasons why such a database is necessary for channel bindings to work are discussed in the next subsection. The information contained within the database could involve wildcards. For example, this could be used to check whether WiFi access points on a particular IP subnet all use a specific SSID. The exact IP address is immaterial, provided it is on the correct subnet. [BA] Is it really true that the IP address of the NAS is always immaterial? For example, couldn't a NAS lie about its IP address in order to impersonate another NAS? [KH] No, this is an example for the use of wildcards, i.e. it doesn't mean IP addresses of the NAS are always immaterial. During an EAP method execution with channel bindings, the goal is to transport i1 from the peer to the EAP server, and allow the system to verify the consistency of i1 provided by the peer, i2 provided by the authenticator, and the information in the local database. Upon the check, the EAP server sends a message to the peer indicating whether the channel binding validation check succeeded or failed and optionally includes all or some of the information that was used in the check. The message flow is illustrated in Figure 1. [BA] Is it always necessary for the EAP server to provide information to the peer about why the channel binding check succeeded or failed? While this info might be helpful for debugging, it seems like there could be situations in which the AAA server just returns an Accept/Reject indication. [KH] No, it is not necessary; this is why the text reads and optionally includes all or some of the information that was used in the check. If the compliance of i1 or i2 information with the authoritative policy source is mandatory and a consistency check failed, then after sending a protected indication of failed consistency, the EAP server MUST send an EAP-Failure message to terminate the session. If the EAP server is otherwise configured, it MUST allow the EAP session to complete normally, and leave the decision about network access up to the peer's policy. [BA] I would suggest that normative language is not appropriate here. For one thing, an EAP-Failure does not actually result in the host being denied access to the network -- an Access-Reject is what accomplishes this. Also, since an EAP-Failure (or EAP-Success) may not be delivered, it doesn't make sense to rely on it. Furthermore, couldn't there be situations where rather than denying access some other action is taken, such as putting up a warning message, isolating the host in some way (e.g. filters or VLAN setting, etc.)? [KH] OK. I guess simply mentioning that in some cases a failed channel binding leads to an EAP-Failure message is sufficient. Text will be revised accordingly. Section 5.2 These checks enable the EAP server to detect lying NAS/authenticator in enterprise networks and lying providers in service provider [BA] As noted in the previous message, these checks do not actually enable the determination of whether a provider is lying. [KH] Agree, statement should be put in perspective. Checking the consistency of i1 and i2 is nontrivial, as has been pointed out already in [HC07]. First, i1 can contain any type of information propagated by the authenticator, whereas i2 is restricted to information that can be carried in AAA attributes. [BA] Actually, i1 can only contain information that is both propagated by the authenticator *and* passed up by the host in the proper format. This requires coordination between the driver implemented on the host and the EAP method. In practice, this has been a major impediment to implementation of Channel Bindings, because without driver changes, many of the parameters desired by channel binding implementations will not be available. [KH] Will add the second condition to the sentence. The required driver updates are considered in Section 10. Similarly, the database referred to in this section also requires a non-trivial effort to put together, comparable to the wire map required to support geographic location or emergency services calling. For example, if the EAP MTU is 1020 octets, and EAP-GPSK is used as the authentication method, and maximal-length
Re: [Emu] Working Group Last Call for draft-ietf-emu-chbind-04.txt (part 2)
Section 5.1 The local database is perhaps the most important part of this system. In order for the EAP server or AAA server to know whether i1 and i2 are correct, they need access to trustworthy information, since an authenticator could include false information in both i1 and i2. Additional reasons why such a database is necessary for channel bindings to work are discussed in the next subsection. The information contained within the database could involve wildcards. For example, this could be used to check whether WiFi access points on a particular IP subnet all use a specific SSID. The exact IP address is immaterial, provided it is on the correct subnet. [BA] Is it really true that the IP address of the NAS is always immaterial? For example, couldn't a NAS lie about its IP address in order to impersonate another NAS? During an EAP method execution with channel bindings, the goal is to transport i1 from the peer to the EAP server, and allow the system to verify the consistency of i1 provided by the peer, i2 provided by the authenticator, and the information in the local database. Upon the check, the EAP server sends a message to the peer indicating whether the channel binding validation check succeeded or failed and optionally includes all or some of the information that was used in the check. The message flow is illustrated in Figure 1. [BA] Is it always necessary for the EAP server to provide information to the peer about why the channel binding check succeeded or failed? While this info might be helpful for debugging, it seems like there could be situations in which the AAA server just returns an Accept/Reject indication. If the compliance of i1 or i2 information with the authoritative policy source is mandatory and a consistency check failed, then after sending a protected indication of failed consistency, the EAP server MUST send an EAP-Failure message to terminate the session. If the EAP server is otherwise configured, it MUST allow the EAP session to complete normally, and leave the decision about network access up to the peer's policy. [BA] I would suggest that normative language is not appropriate here. For one thing, an EAP-Failure does not actually result in the host being denied access to the network -- an Access-Reject is what accomplishes this. Also, since an EAP-Failure (or EAP-Success) may not be delivered, it doesn't make sense to rely on it. Furthermore, couldn't there be situations where rather than denying access some other action is taken, such as putting up a warning message, isolating the host in some way (e.g. filters or VLAN setting, etc.)? Section 5.2 These checks enable the EAP server to detect lying NAS/authenticator in enterprise networks and lying providers in service provider [BA] As noted in the previous message, these checks do not actually enable the determination of whether a provider is lying. Checking the consistency of i1 and i2 is nontrivial, as has been pointed out already in [HC07]. First, i1 can contain any type of information propagated by the authenticator, whereas i2 is restricted to information that can be carried in AAA attributes. [BA] Actually, i1 can only contain information that is both propagated by the authenticator *and* passed up by the host in the proper format. This requires coordination between the driver implemented on the host and the EAP method. In practice, this has been a major impediment to implementation of Channel Bindings, because without driver changes, many of the parameters desired by channel binding implementations will not be available. Similarly, the database referred to in this section also requires a non-trivial effort to put together, comparable to the wire map required to support geographic location or emergency services calling. For example, if the EAP MTU is 1020 octets, and EAP-GPSK is used as the authentication method, and maximal-length identities are used, a maximum of 384 octets are available for conveying channel binding. [BA] This is an important point -- and one that indicates that the ability to implement channel bindings is limited on EAP methods that don't support fragmentation. Section 6.3 If transporting data within a lower-layer's secure association protocol (SAP), this protocol MUST support transport of integrity protected data using a key known only by the EAP peer and EAP server, and not known to the authenticator. There must be mechanism whereby the authenticator can transport the protected payloads to the EAP server, either via a AAA protocol or some other means, and receive a protected result. [BA] This paragraph does not make sense, because by definition the SAP exchange occurs between the authenticator and the peer, and therefore any keys derived in the process need to be known by the authenticator and the peer. In a