2008-10-24 2 views
9

/dev/random и/dev/urandom использовать экологический шум для генерации случайности.Каково влияние виртуализации на криптографически сильные генераторы случайных чисел?

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

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

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

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

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

ответ

3

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

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

0

Спасибо.

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

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

0

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