auth_totp_skew
Настраивает допустимое отклонение времени для проверки аутентификации TOTP в NGINX.
Описание
Директива auth_totp_skew используется для установки допустимого отклонения времени в секундах при проверке одноразовых паролей, основанных на времени (TOTP). TOTP опирается на синхронизированное время между сервером и клиентом; однако расхождения могут возникать из‑за дрейфа часов или задержек в сети. Разрешая отклонение времени, администраторы могут улучшить удобство для пользователей, принимая значения TOTP, которые действительны в рамках заданного временного окна до или после текущего времени.
Данная директива принимает один числовой аргумент, задающий отклонение в секундах. Например, отклонение '1' означает, что значения TOTP, сгенерированные в течение одной секунды до или после текущего времени, будут считаться действительными. Цель этой настройки — минимизировать вероятность сбоев аутентификации, вызванных небольшими расхождениями в часах сервера и клиента, тем самым повышая надежность TOTP-аутентификации в реальных условиях.
При настройке этой директивы учитывайте, что разрешение большего отклонения может лучше учитывать пользователей в разных часовых поясах или в средах с плохой синхронизацией времени. Однако это также может непреднамеренно расширить окно для несанкционированного доступа, если злоумышленник сможет предсказать или перехватить действующие коды TOTP.
Пример конфига
location /protected {
auth_totp_realm "Protected";
auth_totp_file /etc/nginx/totp.conf;
auth_totp_length 8;
auth_totp_reuse off;
auth_totp_skew 1;
auth_totp_step 1m;
auth_totp_cookie "totp-session";
auth_totp_expiry 1d;
}Значение skew, равное нулю, может привести к частым ошибкам аутентификации, если часы клиента не синхронизированы с часами сервера.
Установка очень большого skew (например, нескольких минут) может подвергнуть систему атакам воспроизведения, если значения TOTP будут перехвачены.