Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Типичное взаимодействие клиент-сервер во время процесса аутентификации на основе одноразового номера, включая одноразовый идентификатор сервера и одноразовый номер клиента.

В криптографии , нонс произвольное число , которое может быть использовано только один раз в криптографической связи. По духу он похож на одноразовое слово , отсюда и название. Часто это случайное или псевдослучайное число, выдаваемое протоколом аутентификации, чтобы гарантировать, что старые коммуникации не могут быть повторно использованы в атаках воспроизведения . Они также могут быть полезны в качестве векторов инициализации и в криптографических хэш-функциях .

Определение [ править ]

Одноразовый номер - это произвольное число, используемое только один раз в криптографическом сообщении в духе одноразового слова . Часто это случайные или псевдослучайные числа. Многие одноразовые номера также включают метку времени для обеспечения точной своевременности, хотя для этого требуется синхронизация часов между организациями. Добавление клиентского одноразового номера (" cnonce ") помогает в некоторой степени повысить безопасность, как это реализовано в дайджест-аутентификации доступа.. Чтобы гарантировать, что одноразовый номер используется только один раз, он должен быть зависящим от времени (включая подходящую точную метку времени в его значении) или генерироваться с достаточным количеством случайных битов, чтобы гарантировать вероятностно незначительную вероятность повторения ранее сгенерированного значения. Некоторые авторы определяют псевдослучайность (или непредсказуемость) как требование для одноразового номера. [1]

Использование [ править ]

Аутентификация [ править ]

Протоколы аутентификации могут использовать одноразовые номера, чтобы гарантировать, что старые коммуникации не могут быть повторно использованы в атаках воспроизведения . Например, одноразовые номера используются при аутентификации доступа к дайджесту HTTP для вычисления дайджеста пароля MD5 . Одноразовые номера различаются каждый раз, когда предоставляется код ответа на запрос аутентификации 401 , что делает атаки повторного воспроизведенияпрактически невозможно. Сценарий заказа продуктов через Интернет может служить примером полезности одноразовых номеров в атаках воспроизведения. Злоумышленник может получить зашифрованную информацию и - без необходимости расшифровывать - может продолжать отправлять конкретный заказ поставщику, тем самым заказывая продукты снова и снова под тем же именем и информацией о покупке. Одноразовый номер используется для придания «оригинальности» данному сообщению, так что, если компания получает какие-либо другие заказы от того же человека с тем же одноразовым номером, она отклоняет их как недействительные заказы.

Одноразовый номер может использоваться для обеспечения безопасности потокового шифра . Когда один и тот же ключ используется для нескольких сообщений, а затем используется другой одноразовый номер, чтобы гарантировать, что поток ключей отличается для разных сообщений, зашифрованных с помощью этого ключа; часто используется номер сообщения.

Секретные значения nonce используются схемой подписи Лампорта как секрет подписывающей стороны, который может быть выборочно раскрыт для сравнения с общедоступными хэшами для создания и проверки подписи.

Векторы инициализации [ править ]

Векторы инициализации могут называться одноразовыми номерами, поскольку они обычно являются случайными или псевдослучайными.

Хеширование [ править ]

Одноразовые значения используются в системах доказательства работы для изменения входных данных криптографической хеш-функции, чтобы получить хеш-код для определенного входа, который удовлетворяет определенным произвольным условиям. При этом создать «желаемый» хэш становится намного сложнее, чем его проверить, перекладывая бремя работы на одну сторону транзакции или системы. Например, доказательство работы с использованием хэш-функций рассматривалось как средство борьбы со спамом в электронной почте , заставляя отправителей электронной почты находить хеш-значение для электронной почты (которое включало временную метку, чтобы предотвратить предварительное вычисление полезных хешей для последующего использования), имел произвольное количество начальных нулей, путем хеширования одного и того же ввода с большим количеством значений, пока не был получен «желаемый» хэш.

Точно так же алгоритм хеширования цепочки блоков биткойнов можно настроить на произвольную сложность, изменив требуемое минимальное / максимальное значение хеш-функции, чтобы количество биткойнов, присуждаемых за новые блоки, не увеличивалось линейно с увеличением вычислительной мощности сети по мере присоединения новых пользователей. Это также достигается за счет принуждения майнеров биткойнов добавлять значения nonce к хешируемому значению, чтобы изменить вывод алгоритма хеширования. Поскольку алгоритмы криптографического хеширования нелегко предсказать на основе их входных данных, это делает процесс хеширования блокчейна и возможность присуждения биткойнов чем-то вроде лотереи, когда первый «майнер», который найдет одноразовый номер, который обеспечивает желаемый хеш, получает биткойны .

См. Также [ править ]

  • Соль (криптография)
  • Ключевое растяжение

Ссылки [ править ]

  1. ^ Rogaway, P. (2004). «Симметричное шифрование на основе nonce» (PDF) . В Бимал Рой; Вилли Мейер (ред.). Быстрое программное шифрование . Конспект лекций по информатике. 3017 . С. 348–358. DOI : 10.1007 / 978-3-540-25937-4_22 . ISBN 978-3-540-25937-4.

Внешние ссылки [ править ]

  • Сэм Руби Ведение блога на Nonce с реализацией
  • RFC  2617 - HTTP-аутентификация: базовая и дайджест-аутентификация доступа
  • RFC  3540 - передача сигналов надежного явного уведомления о перегрузке (ECN) с одноразовыми номерами
  • RFC  4418 - UMAC: код аутентификации сообщения с использованием универсального хеширования
  • Безопасность веб-служб