Что такое timing attack при валидации подписи JWT и как сравнение строк в константное время защищает от неё?

Timing attack использует зависимость времени сравнения от совпавшего префикса секретного значения. Константное по содержимому сравнение не прекращается на первом различии.

Короткий ответ

Что ответить на собеседовании

Timing attack использует зависимость времени сравнения от совпавшего префикса секретного значения. Константное по содержимому сравнение не прекращается на первом различии.

Подробный разбор

Ответ с пояснениями

Timing attack использует зависимость времени сравнения от совпавшего префикса секретного значения. Константное по содержимому сравнение не прекращается на первом различии.

Обычное посимвольное сравнение может давать наблюдаемую разницу времени, которую атакующий накапливает статистически. При проверке MAC применяют специальную функцию, например hmac.compare_digest, к данным ожидаемого типа и длины.

Для JWT предпочтительна проверенная библиотека: она должна проверять разрешённый алгоритм, подпись, срок действия, issuer и audience. Самостоятельное сравнение строк JWT не заменяет криптографическую проверку. Защита от timing attack устраняет один канал утечки, но не исправляет слабый ключ, неверное управление алгоритмами или отсутствие остальных проверок.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее