Stefan Winter wrote:
Hi,
Running a packet capture of an EAP TTLS session against FR cvs head,
noticed EAP Notifcation packets are being sent.
The type-data appears to match that of the Reply-Message. Is this a
feature of rlm_eap that I missed before,
or is the NAS being clever about it's interpretation of the
Access-Accept packet, and encapsulating the Reply-Message attribute in an
EAP-Request Notification packet ?
Didn't we have a similar discussion on this list before, about RFC3579's text
in chapter 2.6.5? IIRC, the outcome was that a Access-Accept packet which
contains an EAP-Message attribute MUST NOT contain a Reply-Message? And since
EAP conversations end with an Access-Accept that always contains an
EAP-Message with EAP-Success in it, no Reply-Message should be sent at all?
Plus, RFC3579 contains lots of text in that chapter that explains why it is a
bad idea to a) send a Reply-Message anyways and b) why a NAS should silently
discard this attribute if present, rather than try and translate it to a
Notification.
So, I agree with Josh that it must be something very NAS-specific, but it's
highly dubious that it's a good thing.
Then again, if RFC3579 would be updated some time soon so that the behaviour
is then standardised and not any more vendor-voodoo (keying material stuff is
under review anyways by the HOKEY wg), and if the drawbacks mentioned in
there could be solved cleanly, *then* this behaviour could become a good one.
A very good one even, for those debugging purposes.
Like, concern [1] in RFC3579 section 2.6.5 could be addressed by: the NAS then
MUST filter out the EAP-Response/Notification packet and not forward it to
the RADIUS server and treat this EAP conversation as ended.
concern [2] could be addressed with: since the NAS knows all identifiers in
use for current EAP conversations, it can choose one that is currently not in
use.
Then again, RFC3748 (EAP) states:
5.2. Notification
Description
The Notification Type is optionally used to convey a displayable
message from the authenticator to the peer. An authenticator MAY
send a Notification Request to the peer at any time when there is
no outstanding Request, prior to completion of an EAP
authentication method.
, the important part being *prior to completion*. So the only message flow
that makes sense in this context is
(supplicant) (NAS) (RADIUS-Server)
... EAP ...
<------------------ Access-Accept with
EAP-Message and
Reply-Message
<--------------- EAP-Req/Notification
(containing Reply-M)
---------------> EAP-Resp/Notification
--- NAS discards EAP-Resp,
no forward to Server ---
<--------------- EAP-Success with
content of EAP-Message
Is that what you're seeing? In that case, quite cool, but that should be
somewhat explicitly documented in an update of RFC3579 because it is not
exactly trivial.
Thats the pattern that makes logical sense, unfortunately what actually
happens is :
(supplicant) (NAS) (RADIUS-Server)
... EAP ...
<------------------ Access-Accept with
EAP-Message and
Reply-Message
<--------------- EAP-Success with
content of EAP-Message
<--------------- EAP-Req/Notification
(containing Reply-M)
---------------> EAP-Resp/Notification
--- NAS discards EAP-Resp,
no forward to Server ---
The NAS does discard the Notification response, which resolves RFC3579 2.6.5[1].
By sending the Notification post EAP-Success, it contravenes RFC3748 5.2, but does resolve RFC3579
2.6.5[2], as there should be no further packets within the EAP conversation.
I'm actually rather surprised the supplicant supports this behaviour; I would
have expected it to silently discard the Notification as authentication
effectively completed with the EAP-Success packet.
RFC2579 States:
2.6.5. Displayable Messages
The Reply-Message attribute, defined in [RFC2865], Section 5.18,
indicates text which may be displayed to the peer. This is similar
in concept to EAP Notification, defined in [RFC2284]. When sending a
displayable message to a NAS during an EAP conversation, the RADIUS
server MUST encapsulate displayable messages within
EAP-Message/EAP-Request/Notification attribute(s). Reply-Message
attribute(s) MUST NOT be included in any RADIUS message containing an
EAP-Message attribute. An EAP-Message/EAP-Request/Notification
SHOULD NOT be included within an Access-Accept or Access-Reject
packet.
So really *any* interpretation of the Reply-Message by the NAS is wrong.
Instead the RADIUS server, on detecting a potential displayable message in the
formulated RADIUS Access-Accept/Access-Reject packet; should send a
notification packet encapsulating the displayable message, and wait for a
notification response from the supplicant, prior to sending the final
EAP-Success/Access-Accept,EAP-Failure/Access-Reject packet. It should also
filter any displayable messages in the formulated RADIUS response.
I wonder though why FR permits sending a Reply-Message when an EAP-Message is
present. I used to think it forbids that for RFC-compliance reasons.
Looking at 'attrs.access_reject' in the current CVS head it appears that
this is not enforced, and that it explicitly allows a Reply-Message
attributes in Access-Reject packets.
1 #
2 # Configuration file for the rlm_attr_filter module.
3 # Please see rlm_attr_filter(5) manpage for more information.
4 #
5 # $Id: attrs.access_reject,v 1.1 2006/11/22 21:48:35 aland
Exp $
6 #
7 # This configuration file is used to remove almost all of
the attributes
8 # From an Access-Reject message. The RFC's say that an
Access-Reject
9 # packet can contain only a few attributes. We enforce
that here.
10 #
11 DEFAULT
12 EAP-Message =* ANY,
13 State =* ANY,
14 Message-Authenticator =* ANY,
15 Reply-Message =* ANY,
16 Proxy-State =* ANY
It is possible in FR2-Beta to satisfy the RFC's using FR's conditional
language... something like:
post-auth {
if("%{reply:EAP-Message"}{
update reply {
Reply-Message -=
}
}
}
Though thats a guess, as the man pages are unclear as to how the new
filtering and enforcement operators are to be used.
Greetings,
Stefan
Regards,
Arran
--
Arran Cudbard-Bell ([EMAIL PROTECTED])
Authentication, Authorisation and Accounting Officer
Infrastructure Services | ENG1 E1-1-08
University Of Sussex, Brighton
EXT:01273 873900 | INT: 3900
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html