Re: Does mod_auth_digest not determine session expiration?

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

 



Thank you, Ben, very informative.  So I get from this that unmodified, mod_auth_digest behaves as I said, though it could be modified to force the browser to do a prompt.

I note that in any case though, the module has no knowledge of what the user is doing with the browser, such as shut-down/restart, and there is no standard which requires the browser to send such information to the server.


On Dec 22, 2013, at 3:56 PM, Ben Reser <ben@xxxxxxxxx> wrote:

> On 12/22/13 6:07 AM, Allasso Travesser wrote:
>> So I believe that mod_auth_digest has no and uses no mechanism for tracking
>> sessions, and always operates in a stateless context.  In essence, for each
>> request it checks the request header for proper login metadata, and if and only
>> if it qualifies does it allow access, otherwise, it sends a 401.  The policy on
>> prompting and gathering of login info from the user is entirely up to the browser.
>> 
>> Does this sound correct?
> 
> Yes and no.  mod_auth_digest doesn't provide a way to configure this, though it
> probably could.
> 
> You can specify the lifetime for the nonce with AuthDigestNonceLifetime.  Which
> can trigger the client side to need to produce a new request which includes an
> Authorization header that uses a new nonce.
> 
> The RFC says [1]:
> 
>  The authentication session lasts until the client receives another
>  WWW-Authenticate challenge from any server in the protection space. A
>  client should remember the username, password, nonce, nonce count and
>  opaque values associated with an authentication session to use to
>  construct the Authorization header in future requests within that
>  protection space. The Authorization header may be included
>  preemptively; doing so improves server efficiency and avoids extra
>  round trips for authentication challenges. The server may choose to
>  accept the old Authorization header information, even though the
>  nonce value included might not be fresh. Alternatively, the server
>  may return a 401 response with a new nonce value, causing the client
>  to retry the request; by specifying stale=TRUE with this response,
>  the server tells the client to retry with the new nonce, but without
>  prompting for a new username and password.
> 
> and [2],
> 
>   stale
>     A flag, indicating that the previous request from the client was
>     rejected because the nonce value was stale. If stale is TRUE
>     (case-insensitive), the client may wish to simply retry the request
>     with a new encrypted response, without reprompting the user for a
>     new username and password. The server should only set stale to TRUE
>     if it receives a request for which the nonce is invalid but with a
>     valid digest for that nonce (indicating that the client knows the
>     correct username/password). If stale is FALSE, or anything other
>     than TRUE, or the stale directive is not present, the username
>     and/or password are invalid, and new values must be obtained.
> 
> So it should be possible to change the module to force reprompting of the
> password on the client by simply omitting the stale=true from the
> WWW-Authenticate header.  That could be done by adding a new timeout that once
> the nonce age passes it doesn't send stale=true or by a configuration flag that
> specifies that the sale=true isn't sent when the nonce lifetime has expired.
> 
> This all assumes that the clients actually follow the RFC (and interpret the
> same way I am) in this regard and I haven't bothered to test that.
> 
> The RFC ultimately says nothing about how long a client should cache the
> credentials.  It implies that the client should prompt the user for credentials
> if stale isn't true, but given that browsers have password caching, I'd suspect
> that even the above may not be reliable since some browsers may simply try
> their cached credentials first.
> 
> [1] http://www.ietf.org/rfc/rfc2617.txt (section 3.3)
> [2] http://www.ietf.org/rfc/rfc2617.txt (section 3.2.1)
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
> For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx






[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux