Interested Article - Nonce

Типичный обмен между клиентом и сервером при аутентификации , использующей nonce сервера и cnonce клиента.

Однократно используемое число (от англ. nonce — оказия) в криптографии — одноразовый код, выбранный случайным или псевдослучайным образом, который используется для безопасной передачи основного пароля, предотвращая атаку повторного воспроизведения . В отличие от случайных чисел, здесь не требуется непредсказуемости числа, достаточно неповторяемости.

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

Часто nonce включает в себя метку времени ( timestamp ), чтобы ограничить время существования nonce, однако это требует синхронизации часов сервера и клиента. Для повышения безопасности может применяться также nonce, определяемый клиентом (« cnonce »).

Чтобы обеспечить уникальность nonce для сеанса аутентификации , nonce часто генерируется на основе системного времени , из достаточно точного источника timestamp.

См. также

Источники

Источник —

Same as Nonce