Почему у меня постоянно заканчивается энтропия?

3692
kittykittybangbang

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

Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy! (Need 294 more bytes) 

Итак, после 20 минут движений мыши, которые даже не привели к обнадеживающим +++++движениям внизу терминала, я попробовал то, что, похоже, решило проблему для других: я установил rng-toolsи запустил:

rngd -r /dev/random 

Но это тоже ничего не дало. Без изменений вообще. Когда я бегу:

cat /proc/sys/kernel/random/entropy_avail 

Я никогда не получаю вывод выше 60 или около того.

Таким образом, не говоря уже о насущных проблемах, т. Е. О невозможности генерировать новый ключ GPG, - почему моя машина так быстро поглощает энтропию? Кажется, что должна существовать основная проблема, которую следует решить.

3
Какой-то другой процесс читает `/ dev / random`? Проверьте, показывает ли `lsof / dev / random` что-то. ott-- 8 лет назад 0
@ ott-- Ничего. Хорошая мысль, хотя - спасибо. kittykittybangbang 8 лет назад 0
Что касается вашего обходного пути, * "rngd -r / dev / random [...] ничего не сделал" *: кажется, что он выводит в `/ dev / random` по умолчанию, но в этой команде вы также * читаете * из `/ dev / random`. Вы уверены, что это способ использовать его? Разве вы не должны читать из какого-то другого источника (или не указывать `-r` в команде, чтобы использовать ее значения по умолчанию)? Что если вы запустите его на переднем плане, `rngd -rf / dev / random`? (Также [Как исправить проблему с пулом энтропии с помощью RHEL 5.x] (http://serverfault.com/questions/303935/how-to-fix-the-entropy-pool-issue-with-rhel-5- x) при сбое сервера предлагает добавить параметр `-t 0.1` или` -t 0.001`.) Arjan 8 лет назад 1
Попробуйте установить набор, чтобы собрать дополнительную энтропию. Uwe Burger 8 лет назад 1
Вы уверены, что ваша команда `rngd` правильная? (Смотрите мой предыдущий комментарий.) Arjan 8 лет назад 0

1 ответ на вопрос

1
Huygens

Чтобы получить немного больше энтропии, проверьте мой ответ на Server Fault для Generate entropy for PGP key .

Резюме этого ответа:

  • генерировать сетевые и дисковые операции ввода-вывода;
  • используйте hasged (но будьте осторожны, когда в среде VM, смотрите ссылку).

Что касается использования вами rngd, оно не будет "работать". Программа rngd - это своего рода сборщик случайных вещей, который после некоторого смещения и отбеливания будет использоваться для подпитки энтропии, которая будет использоваться для генерации случайного числа с использованием PRNG. Таким образом, rngd - это один сборщик, который предоставляет «входы» для PRNG в Linux. Когда вы используете /dev/random, Linux оценивает пул энтропии и, если решит, что он достаточно хорош, он будет использовать его для генерации нового случайного числа /dev/random. Посмотрите эту техническую статью о случайных числах в LWN, см. Главу «Рекомендации администратора» .

В основном при вызове /dev/randomили gpg вы используете (и «истощаете») один и тот же пул энтропии. Так что это не поможет / работает. Используйте аппаратный RNG в качестве источника для rngd или любого другого источника, такого как веб-камера, микрофон и т. Д., Но вам понадобятся соответствующие драйверы, чтобы связать их с rngd. И это зависит от того, используете ли вы виртуальную машину и какой дистрибутив вы используете.

Примечание: если вы работаете с голым железом (не в гостевой виртуальной машине), вы можете использовать TPM для аппаратного RNG. TPM можно не рекомендовать, если ваш злейший враг - АНБ ;-), читайте онлайн о TPM. Но если вы хотите использовать его, вот способ связать TPM с rngd (отказ от ответственности, я написал эту статью): http://www.berthon.eu/2015/using-tpm-as-a-source-of-randomness -энтропия/

И проверьте эту PDF-презентацию для информации, где используется энтропия :-) https://www.blackhat.com/docs/us-15/materials/us-15-Potter-Understanding-And-Managing-Entropy-Usage.pdf

@kittykittybangbang Решает ли этот предложенный ответ вашу проблему? У вас есть дополнительные комментарии? Huygens 8 лет назад 1
В качестве отступления: приведенный выше комментарий не предупредит задающего вопрос; см. http://superuser.com/editing-help#comment-reply (но не затаив дыхание; ОП также не ответил на мои предыдущие комментарии.) Arjan 8 лет назад 1

Похожие вопросы