On Jan 25, 2023, at 8:27 AM, Eliot Lear <l...@lear.ch> wrote:
> No negotiation required.  It gets the username as part of basic auth, sees 
> the name and then makes a decision to initiate a new inner method.

  It has to finish the current method first.  i.e. the server only gets the 
username after sending a Basic-Password-Auth-Req TLV.  The response contains a 
username && password.

  There's no way to negotiate "the server wants you to send your name, but 
doesn't care about the password".  So the supplicant has to send some value for 
the password.

  I think this is mostly nits.  The server is free to ignore (or not verify) 
the password.  But it's bad practice to allow zero-length passwords in 
authentication protocols.

>  Imagine two groups of usernames on a server: one that use basic auth and 
> another that has 2FA, where the 2FA is invoked in an EAP method.  This may 
> not be the BEST method (you could probably think of better), but TEAP doesn't 
> say you can't do it (perhaps we're here because TEAP doesn't forbid enough 
> stuff ;-)

  Except that the server has to make the decision of which kind of auth to do 
*before* it has access to any username information.

* server sends EAP and the supplicant responds with an identity 

* server sends Basic-Password-Auth-Req and the supplicant responds with an 
identity 

  There is no way to decide which path to take based on identity.  The server 
has to choose a method, then get the identity, then perhaps NAK the method, and 
continue with another method?

  But how do you NAK an EAP exchange?  i.e. "Oops, now that you sent me your 
identity, it looks like I don't want to do EAP.  So I've got to stop the entire 
EAP state machine, and pick something else".

  This seems like an oversight in the protocol.  Your desired workflow looks to 
be impossible.

  It's a little late to do major protocol changes. But hopefully not too late.

  Perhaps it would be useful to add a TLV indicating inner identity.  It could 
be sent by the peer as soon as the inner tunnel is established.  i.e. as soon 
as the peer sends TLS Finished, it could include application data of one TLV, 
which would be any identity hint.  The server could then use that identity hint 
to choose what kind of authentication to select.

  And then we have issues where the identities should agree... but perhaps we 
can ignore that, and just hope for the best.

  So in conclusion, it looks like your workflow is impossible without the 
addition of an Identity-Hint TLV which is sent by the peer, as soon as the 
tunnel is established.

  Alan DeKok.


  
_______________________________________________
Emu mailing list
Emu@ietf.org
https://www.ietf.org/mailman/listinfo/emu

Reply via email to