Computing and storing the server/client time drift (overview)

Computing and storing the server/client time drift (overview)

Computing the time drift involves the following steps:

  1. The server time is requested.
  2. The server returns the time reference in seconds since epoch.
  3. The application receives the platform time reference in seconds since epoch.
  4. Both references are submitted to the Digipass SDK.
  5. The SDK returns the drift between both references.
  6. The application stores the drift for future response generations. To store the drift, the application can rely on the Secure Storage SDK.

    For more information, refer to the OneSpan Mobile Security Suite Product Guide, Secure Storage SDK.

In Computing and storing the server/client time drift (overview) the authentication server time is retrieved online. It may also be provided by the user directly through the user interface.

OTP generation with corrected platform time (overview)

OTP generation with corrected platform time (overview)

OTP generation in Response-Only mode with the Digipass SDK involves the following steps:

  1. The application integrating the SDK retrieves the Digipass vectors and the time drift from its data storage.
  2. The application calls the SDK's OTP generation function with the Digipass vectors and the time drift.
  3. The SDK returns an OTP and an RHC or an error code. The dynamic vector is updated.
  4. The application updates the dynamic vector in its data storage. To update the dynamic vector, the application can rely on the Secure Storage SDK.

    For more information, refer to the OneSpan Mobile Security Suite Product Guide, Secure Storage SDK.

  5. The application processes the OTP or the error code.

    Routines for time synchronization:

    • C/C++/Objective C: DPSDK_ComputeClientServerTimeShiftFromServerTime
    • Swift: computeClientServerTimeShift
    • Java: computeClientServerTimeShiftFromServerTime