Когда я должен принимать и отклонять временные метки, чтобы предотвратить атаки повторного воспроизведения? - PullRequest
0 голосов
/ 13 июля 2020

Для предотвращения атак повторного воспроизведения я реализую механизм, в котором клиент должен отправить на сервер токен nonce, который состоит из UUID и отметки времени. Они оба генерируются клиентом.

Однако у меня есть проблемы с отметкой времени. Я понимаю, что для того, чтобы это работало, часы сервера и клиентов должны быть синхронизированы c. У меня нет контроля над клиентами, и интуитивно кажется нереалистичным c ожидать, что часы сервера и клиентов будут полностью синхронизированы c. Таким образом, я ожидаю, что часы клиента могут быть на несколько секунд раньше или позже. получил. Я ожидаю, что разрыв будет более значительным, если соединение клиента плохое.

Из-за этих опасений я решил:

  • Отклонять отметки времени старше 2 минут;
  • Отклонять временные метки, установленные более чем на 10 секунд в будущее.

Я хотел бы получить мнение программистов, которые занимались проверкой временных меток. Вы видите проблемы с выбором, который я сделал в отношении проверки метки времени? С какими проблемами столкнулись вы ?

Спасибо!

...