Обновить
4K+
1
Пётр Васильченко@PetrVasilchenko

Пользователь

1
Подписчики
Отправить сообщение

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

Я лишь говорю о криптостойкости на практике, ведь если мы введем контекст того, что есть утечка части выходов PRNG, то в таком случае распределение для атакующего уже не является равномерным, из-за чего неопределенность резко снижается.

Да, “реальная энтропия” - неудачная формулировка, правильнее было бы сказать "условная энтропия", с учётом информации, доступной атакующему.

Я не ставил цель в статье показать восстановление внутреннего состояния Mersenne Twister — это уже хорошо известная атака, и при желании её несложно воспроизвести. Мне было важнее объяснить, почему сам выбор генератора здесь принципиален. Возможно, чуть позже, я воспроизведу подобную атаку и расскажу о ней.

Что касается вопроса, для чего фокусироваться именно на свойстве генерации: Проблема не в том, откуда берётся seed. Даже если он получен из urandom, дальше мы имеем дело с детерминированным PRNG. А значит, при утечке достаточного количества сгенерированных значений появляется возможность восстановить внутреннее состояние и предсказывать остальные.

Например, если в компании N, DevOps для генерации “динамических секретов” использует random, и происходит утечка нескольких тысяч паролей, то при отсутствии reseed’а это уже потенциально позволяет восстановить состояние генератора и предсказывать новые значения.

Аналогично, если есть сервис, который долго генерирует пароли на одном экземпляре MT19937 без reseed’а, то восстановление состояния даёт возможность узнать как будущие, так и прошлые пароли.

Да, в этих примерах должно совпасть довольно много условий, но это не отменяет принципиальной возможности такой атаки.

Поэтому акцент на процессе генерации важен: энтропия начального seed’а сама по себе не делает генератор криптографически стойким. Именно по этой причине для таких задач и существует secrets, а не random.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Антифрод аналитик, Аналитик SOC
Стажёр
От 60 000 ₽
Python
Git
SQL
JavaScript