Kerberos использует временные метки и сроки действия билетов. Допустимое расхождение часов задаётся настройкой; в типичной доменной политике Windows это пять минут. Проверки есть при timestamp-предаутентификации, запросе сервисного билета и обращении к службе. Ограничение времени дополняется защитой от повторов, а не заменяет её.
Почему Kerberos требует синхронизации часов и на каких этапах проверяется время?
Временные метки, срок действия билетов и защита от повторного использования запросов. Проверки происходят не только при получении TGT.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Синхронизация нужна, чтобы участники одинаково интерпретировали свежесть аутентификаторов и сроки действия билетов. Допуск компенсирует небольшие расхождения часов, но не является универсальной константой протокола. Для стандартной доменной политики Windows Microsoft указывает пять минут.
Проверка не ограничивается выдачей TGT:
- При предаутентификации с зашифрованной временной меткой в AS-обмене KDC проверяет её допустимость. Не каждый механизм предаутентификации устроен одинаково.
- При TGS-обмене проверяются предъявленные TGT и аутентификатор запроса сервисного билета.
- В AP-обмене сама служба проверяет билет и аутентификатор клиента, включая допустимое время. Поэтому важны часы не только клиента и KDC, но и сервера приложения.
Правила проверок и replay cache описаны в RFC 4120. Одной проверки «не старше пяти минут» недостаточно: повторный аутентификатор внутри этого окна тоже должен обнаруживаться.
Срок жизни билета и допустимое расхождение часов — разные параметры. Не нужно увеличивать допуск как универсальное лечение ошибок входа: сначала проверяют источник времени, синхронизацию, состояние служб и события Kerberos. Часовой пояс отображения не равен расхождению системных часов: сравнивается сам момент времени.