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

Re: Request for Review: "Issues and Fixes" changes



David B. Nelson wrote:
>> ... Some need State, others do not.
> 
> Here's the problem with that approach, it doesn't lead to interoperable
> standards.

  To clarify: some SERVER implementations need State for particular
authentication methods.  Others do not.

  The only interoperability requirement is on the client.  If it sees a
State in an Access-Challenge, it echoes that back in the next
Access-Request.  There is no interoperability requirement on the server.
 If it needs State, it implements code looking for State.  If it doesn't
need state, it doesn't implement code looking for State.

>  The documents we produce are supposed to lead to independent,
> interoperable implementations based on the document alone.  I don't see how
> that happens if we decide that the on-the-wire message content is
> implementation-dependent. 

  The server requirements for local policy and authentication are
*always* implementation-dependent.  Sometimes the implementation is the
code, other times the local site policy.

> If any compliant system relies on receiving a given attribute for
> interoperability, then the standard needs to mandate that all
> implementations send that attribute.

  There's no reason for server to send State if they don't need it.

  What interoperability requirements are you thinking about?

>>   I'd like to make it a MUST, but based on the discussions around
>> EAP, I think it's only a SHOULD.
> 
> Please refresh my memory regarding these discussions.  Why would an EAP
> exchange in RADIUS not require the use of State?

  RFC 3579 doesn't recommend using it.  Instead, it has a very
complicated system which is more fragile, but sometimes functionally
equivalent.

  Even in EAP implementations that use State, the initial identity
request from the server doesn't need a State.  It probably *shouldn't*
have one, because allocating one would involve tracking sessions for
unknown, and un-named users.

>>    Some RADIUS client implementations do not properly use the State
>>    attribute in order to distinguish a restarted EAP authentication
>>    process from the continuation of an ongoing process (by the same user
>>    on the same NAS and port).  Where an EAP-Message attribute is
>>    included in an Access-Challenge or Access-Accept attribute, RADIUS
>>    servers SHOULD also include a State attribute.
> 
> Why is this not a MUST?

  See above.  Also, Section 2.1.2 in the document describes the new
method of using State, and makes it a SHOULD.

>>    We extend the requirements of [RFC2865] to say that Access-Requests
>>    which are part of an ongoing Access-Request / Access-Challenge
>>    authentication process SHOULD contain a State attribute.
> 
> Why not MUST for the general case, with SHOULD or MAY for specific exception
> cases?

  The only MUST is that an implementation MUST use State if there's no
simpler way to track a "session".  If multiple packet exchanges don't
need "session" tracking (as above), then there's no need to use State.

  I have no real objection to making it a MUST, but doing so would
involve requiring many implementations to add State that they don't need.

> And how does an implementation that needs State tell that it is talking to
> an implementation that doesn't?  This seems like a real interoperability
> problem.

  A SERVER implementation that needs state talks to a CLIENT
implementation that MUST echo State from an Access-Challenge in any
subsequent Access-Request.

  Server implementations don't talk to each other. :)

>>   Any other Access-
>>    Request packet that does not contain an authentication attribute as
> 
> Uh... We just used the undefined term "authentication attribute".  :-)

  I'll go nuke it.

>>  A server may send an EAP-Message "identity request", and not include
>> State.  For the rest of the EAP session, State may be required.
> 
> May be required?  When?  Why?  Under what circumstances?  I don't think we
> can leave it that open ended.

  RFC 3576 does.  I believe that there are EAP server implementations
that don't use State.

>>> We should also advise authors of VSAs that they ought to take 
>>> note of this issue, and be explicit in their documents as to whether
>>> or not a State attribute is required to pair up with any new 
>>> authentication attributes being defined.
>>   Is the suggested text above clear enough to cover this possibility?
> 
> Not really.  I didn't see any mention of VSAs.

  It's not about VSA's.  It's about the authentication process.  I would
prefer to not discuss VSA's, or the particular authentication attributes
(whatever they are).

  The recommendation is that new authentication methods SHOULD use State
for multiple Access-Request / Access-Challenge sequences.  Since
existing methods *don't* use State all of the time for such sequences,
it's impolite to require that new methods MUST use it.

  Alan DeKok.

--
to unsubscribe send a message to radiusext-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://psg.com/lists/radiusext/>