Алгоритм TOTP полагается на то, что клиентское время всегда синхронизируется правильно?
Что произойдет, если по какой-то причине часы / календарь сотовых телефонов будут отключены на значительное время. Генерирует ли неверный токен алгоритм TOTP (OTP на основе времени)? Также играют ли часовые пояса роль в правильности маркера или клиент и сервер взаимодействуют с сервером сетевого протокола времени, чтобы убедиться, что все синхронизировано?
1 ответ
Да, если часы не синхронизированы, то Totp не будет проверяться. Но если вы не знаете, что часы клиента неверны, а часы сервера верны, то семантически неверно говорить, что токен недействителен.
Нет, часовые пояса не имеют значения при условии, что системы настроены правильно - оба устройства должны основывать хэш на общих данных. UTC или GMT обычно используются. Возможно, ваш компьютер показывает правильное время на настенных часах, но настроен в неправильном часовом поясе. Если это так, он не сможет правильно преобразовать время в общий часовой пояс.
Использование NTP является одним из решений для поддержания точного времени (и дешевым, если у вас есть подключение к Интернету), но есть и другие решения.
Сколько джиттера тактовых импульсов будет поддерживать аутентификация, зависит от реализованного алгоритма.