Что такое случайное число уязвимость?
Компьютеры являются детерминированными и, следовательно, предсказуемы. Компьютеры не могут, и сами по себе генерировать поистине случайные числа.
В отсутствие внешнего вклада, компьютеры могут только создавать псевдо-случайных чисел.
Случайное число уязвимость возникает, когда программа использует метод генерации случайных чисел, которая либо:
- Не случайным
- Предсказуемое
Для генерации случайных чисел хорошее, на компьютере необходимо иметь две вещи:
- Хороший генерации случайных чисел, алгоритм
- В случайных и unpredicatable семян для генерации случайных чисел, алгоритм
Случайные Количество Уязвимость Примеры
Рассмотрим следующий фрагмент кода:
X = RAND ();
Этот код плохо случайных чисел, потому что когда вы звоните Rand () перед семян была создана с srand (), то используется значение 1, как по умолчанию семян. Любой другой на той же машине с тем же компилятором, который требует RAND () с семенами 1 получим то же случайное число, как вы только что сделали.
Давайте посмотрим на еще один фрагмент кода:
srand (время (0)); X = RAND ();
Этот код вызова srand () в настоящее время в качестве семенного материала. Однако этот код по-прежнему небезопасно, поскольку:
- Система время очень плохо семена, потому что она предсказуема в небольшом диапазоне.
- В ANSI C Rand () функция сама не создает хорошие случайные числа.
Рассмотрим третий фрагмент кода:
srandom (время (0)); X = случайных ();
Этот код используется случайная BSD () и srandom () функций, которые порождают гораздо лучше случайных чисел, чем их предшественники ANSI C. Тем не менее, этот код используется еще раз () для получения семян число. Гораздо лучше источника случайных чисел на BSD и Linux систем в / Dev / случайная устройства.
Количество семян и случайных чисел Уязвимости
Доброе семя номера из непредсказуемых событий, таких, как пользователь клавиатуры или мыши движений. Это не идеальный источник случайности, однако. Права поведение несколько предсказуемым и компьютерные аппаратные средства могут буфер клавиатуры и мыши, прерывания, сокращения их случайность.
Многочисленные другие генераторы случайных чисел, доступны для различных платформ и сред разработки. Очень сложно создать хороший, и еще труднее определить, если генератор случайных чисел, который вы создали действительно генерации случайных чисел и непредсказуемой. Наилучший путь для большинства приложений, для реализации существующего генератора случайных чисел, который был предметом общественного криптоанализ.
Случайное число уязвимостей представляют интерес для хакеров, когда они могут быть использованы для определения входных значений криптографических функций. Это может быть использовано в криптоанализ.
Неправильное использование этой функции требует Rand () и случайные () являются обычными причинами случайное число уязвимостей.
Дополнительные источники информации по Генерация случайных чисел
Для получения дополнительной информации о генерации случайных чисел, читайте RFC 1750 - Случайность рекомендаций по безопасности.
|
Закладка Что такое случайное число уязвимость?
Последние сообщения блога
- SourceForge против Freshmeat





