Является ли клиент, сгенерированный nonce менее безопасным?
Является ли проблемой безопасности создание одноразового номера на клиенте, а затем подписать его общим секретом?
т.е.
сервер А и Б общаются. Оба знают общий секрет "$ECRET"
Сервер A генерирует UUID как одноразовый номер и подписывает его вместе с остальной частью полезной нагрузки, используя секрет.
Затем он отправляет запрос на сервер B, который подтверждает достоверность запроса, используя общий ключ. B также хранит одноразовые номера в своей БД и сравнивает их с существующими одноразовыми номерами для предотвращения повторных атак.
Мне сказали, что это будет небезопасно по сравнению с одноразовым номером, который предоставляется сервером B, предварительно запросив его отдельно.
Однако я не понимаю, насколько это намного безопаснее, если предположить, что секрет силен.
1 ответ
Существует то, что называется nonce клиента, и есть также то, что называется nonce сервера. В зависимости от того, как вы хотите использовать. Одноразовый номер клиента предназначен для защиты клиента от повторной атаки ("сервер" фактически является злоумышленником, который отправит один и тот же вызов каждому клиенту, на которого он хочет атаковать).
Однако нет необходимости запрашивать nonce отдельно, это может быть частью рукопожатия.
Пожалуйста, прочитайте этот ответ Security.StackExchange для подробного объяснения использования nonce (как клиента, так и сервера)