You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@guacamole.apache.org by "Mike Jumper (Jira)" <ji...@apache.org> on 2020/06/16 02:17:00 UTC

[jira] [Commented] (GUACAMOLE-1056) Add support for tracking the time drift between guacamole and TOTP-tokens

    [ https://issues.apache.org/jira/browse/GUACAMOLE-1056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17136238#comment-17136238 ] 

Mike Jumper commented on GUACAMOLE-1056:
----------------------------------------

I was initially wary of these proposed changes, but [RFC 6238 contains a recommendation for a similar mechanism to manage drift|https://tools.ietf.org/html/rfc6238#section-6]:

{quote}
h2. 6.  Resynchronization

Because of possible clock drifts between a client and a validation server, we RECOMMEND that the validator be set with a specific limit to the number of time steps a prover can be "out of synch" before being rejected.

This limit can be set both forward and backward from the calculated time step on receipt of the OTP value.  If the time step is 30 seconds as recommended, and the validator is set to only accept two time steps backward, then the maximum elapsed time drift would be around 89 seconds, i.e., 29 seconds in the calculated time step and 60 seconds for two backward time steps.

This would mean the validator could perform a validation against the current time and then two further validations for each backward step (for a total of 3 validations).  Upon successful validation, the validation server can record the detected clock drift for the token in terms of the number of time steps.  When a new OTP is received after this step, the validator can validate the OTP with the current timestamp adjusted with the recorded number of time-step clock drifts for the token.

Also, it is important to note that the longer a prover has not sent an OTP to a validation system, the longer (potentially) the accumulated clock drift between the prover and the verifier.  In such cases, the automatic resynchronization described above may not work if the drift exceeds the allowed threshold.  Additional authentication measures should be used to safely authenticate the prover and explicitly resynchronize the clock drift between the prover and the validator.
{quote}

Given the above, I think the idea is OK as long as the maximum allowed drift is configurable.

> Add support for tracking the time drift between guacamole and TOTP-tokens
> -------------------------------------------------------------------------
>
>                 Key: GUACAMOLE-1056
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1056
>             Project: Guacamole
>          Issue Type: Improvement
>          Components: guacamole-auth-totp
>            Reporter: Stefan
>            Priority: Minor
>
> Tokens/Display cards which generate codes directly on the device have an internal clock. According our investigates it seams to be normal that a time drift of 2 second per week seems to be in a common range. At some point the time drift of these token is to high so the TOTP- extensions rejects the generated codes. Because it is not possible to correct the on an easy way, we will add a tracking of this time drift.
> We added a new attribute for storing the value of the time drift next to the TOTP-Key. The module will accept 3 codes, one previous, one on time and one in the future. Depending on the accepted code the value will be decremented (previous) or incremented (future) or unchanged (on time). The new value will be used to compensate the timedrift on the next login.
> The changed code will follow the next days.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)