Какое влияние оказывает виртуализация на криптографически сильные генераторы случайных чисел? - PullRequest
9 голосов
/ 24 октября 2008

/ dev / random и / dev / urandom используют окружающий шум для генерации случайности.

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

Означает ли это, что для группы мощность генераторов случайных чисел уменьшается, поскольку все экземпляры ОС основывают свои расчеты на одном и том же входе? Или шум окружающей среды разделен так, что совместное использование не происходит?

Если последнее верно, я вижу, что это снижает эффективность / dev / urandom, потому что он повторно использует свой внутренний пул и с меньшим воздействием окружающей среды уменьшает энтропию.

/ dev / random должен быть в порядке, потому что он блокируется до тех пор, пока не будет получено достаточно шума ... если, конечно, все экземпляры ОС не разделяют входные данные.

Итак, вопрос: каково влияние виртуализации на криптографически сильные генераторы случайных чисел, особенно те, которые используют шум окружающей среды?

Ответы [ 3 ]

3 голосов
/ 24 октября 2008

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

[EDIT] После просмотра источника ядра (на самом деле истории исправлений), похоже, что Linux, по крайней мере, собирает энтропию от нажатий клавиатуры, активности мыши, времени прерываний (но не всех прерываний) и времени завершения запроса устройства. , Я подозреваю, что в виртуализированной системе события мыши / клавиатуры будут довольно низкими и, следовательно, не будут способствовать накоплению энтропии. Предположительно, это будет компенсировано дополнительной активностью прерывания ввода-вывода в сети, но это не ясно. В этом отношении я не думаю, что он сильно отличается от не-VM-сервера.

0 голосов
/ 25 октября 2008

По определению, виртуализация не должна влиять на случайность криптографически сильного PRNG. Как вы упомянули, разница между / dev / random и / dev / urandom [ref: http://en.wikipedia.org/wiki/Urandom/] заключается в том, что операция чтения в / dev / random будет блокироваться, если система набрала недостаточно энтропии для получения желаемого количества случайные данные. Вы также можете записать в / dev / random, чтобы смешать ваши собственные данные в пуле энтропии.

0 голосов
/ 25 октября 2008

Спасибо.

Из того, что я понимаю, система, которая полагается на сетевой ввод / вывод для энтропии, восприимчива к атакам человека в середине. Я нашел следующую статью , в которой обсуждаются соответствующие источники энтропии. Они предлагают удалить сетевой ввод-вывод из ядра Linux из-за его уязвимости.

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

...