Вопрос: GPG не хватает энтропии


У меня есть тонна процессов, работающих в фоновом режиме, чтобы попытаться получить достаточную энтропию, но я все еще терпеть неудачу.

**We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 210 more bytes)**

Мне нужен метод генерации ключа, который работает, потому что я пытаюсь сделать, по-видимому, не работает.


72
2017-12-20 21:20


Источник




Ответы:


Вы смотрели на RNG?

Типы Fedora / Rh / Centos: sudo yum install rng-tools

По типам deb: sudo apt-get install rng-tools настроить его.

Затем запустите sudo rngd -r /dev/urandom перед генерированием ключей.

Справка: http://it.toolbox.com/blogs/lim/how-to-generate-enough-entropy-for-gpg-key-generation-process-on-fedora-linux-38022


93
2017-12-20 21:43



Кроме того, на более серьезной ноте вы можете использовать sudo apt-get install rng-tools если вы находитесь на Ubuntu вместо sudo yum install rng-utils как у них для Fedora, так как нет rng-utils пакет существует для Ubuntu. - Jason Swett
Пакет назван rng-tools как на Fedora, так и на EL6, поэтому я подозреваю опечатку в связанной статье. Кстати, это хорошая идея, чтобы предоставить основные части ответа здесь, а также ссылку для справки, в случае, если ссылка будет мертвой в будущем. - Michael Hampton♦
В урбанде нет «низкокачественной энтропии» или «поддельной энтропии». urandom вызывает тот же код, что и / dev / random. Нет необходимости передавать дополнительную случайность в CSPRNG (за исключением загрузки, и там ваш дистрибутив должен позаботиться об этом). Это миф и не должен распространяться. См. Например sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers или это видео: media.ccc.de/v/32c3-7441-the_plain_simple_reality_of_entropy - Sebastian
Вот еще один хороший пример мифа уранда. - Andrew B
Самый высокий проголосовавший комментарий - глупость; К сожалению, я так много вижу на SO. Предупреждения (даже если они полностью ошибочны) получат много голосов и не смогут их исправить (без комментариев). Мы не можем избавиться от мифов. - Stijn de Witt


Мне удалось сгенерировать ключ

apt-get install rng-tools

В другом открывшемся окне SSH

 gpg --gen-key

Вернитесь к своей первой сессии SSH и запустите

sudo rngd -r /dev/urandom

Пусть это бежит, пока gpg не породит ваши ключи!


24
2017-12-20 21:42



Я бы определенно рекомендовал против использования /dev/urandom для генерации ключей любой важности. - Andrew Barber
@AndrewBarber ерунда. Это рекомендуемый метод. - David Schwartz
@AndrewBarber Это явно предназначено для этой цели. В основном, /dev/random это ошибка дизайна. Он должен только блокировать первый (когда-либо) вызов (при первой загрузке), когда еще не было собрано никакой энтропии. Как и в других ОС. Вместо этого мы получили два бассейна. Просто никогда не используйте /dev/random он не имеет никаких преимуществ. - Stijn de Witt


Чтобы проверить количество доступных в настоящее время байтов энтропии, используйте

cat /proc/sys/kernel/random/entropy_avail

Ведро энтропии имеет размер 4096 байт, что очень быстро может быть истощено.

Используя этот небольшой инструмент readspeed (http://1wt.eu/tools/readspeed/), вы можете измерить, как быстро энтропийный ковш заполняется различными методами.

Например, запуск:

$ ./readspeed < /dev/random

и передвиньте мышь. Вы увидите, что «readspeed» опустошает ведро энтропии, как только оно будет заполнено, и когда вы перемещаете мышь, она немного заполняется.

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

Наконец, доступны устройства генерации энтропии, такие как: http://www.entropykey.co.uk/,


13
2017-12-20 21:52



В урбанде нет «низкокачественной энтропии». urandom вызывает тот же код, что и / dev / random. Это миф и не должен распространяться. См. Например sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers или это видео: media.ccc.de/v/32c3-7441-the_plain_simple_reality_of_entropy - Sebastian
Этот ответ 5 лет. Мы думали, что уранд не был таким же безопасным, как и случайный, но с тех пор все изменилось, и уранд считается безопасным. - Julien Vehent
Факт, что это было безопасно с самого начала. Предупреждения были ошибочными 7 лет назад. - Stijn de Witt


+1 для rng-tools

В случае, если вы застряли в такой ситуации, как я, - у меня нет прав на установку нового программного обеспечения (rng-tools) на безголовом сервере без подключения к нему (звуковая карта, клавиатура, мышь). Вы можете запустить этот простой код с другого терминала, подключенного к тому же серверу, для добавления в энтропию. Не имеет значения, начинаете ли вы запускать это до или после запуска gpg --gen-key

$ nice -n 19 bash
$ until [ $COUNT -lt 1 ]; do
  let COUNT=`cat /proc/sys/kernel/random/entropy_avail`
  echo "`date` COUNTER $COUNT"
done

Первая строка - это запустить новую оболочку bash с более низким приоритетом (мне нужно быть приятным на сервере, который используется многими пользователями). Цикл до бесконечности, поэтому не забудьте разбить его, как только генерируется ключ. Все, что он делает, приводит к тому, что сетевой трафик увеличивает энтропию. Он также контролирует счетчик entropy_avail, чтобы показать, как он заполняется и опустошается с другой стороны gpg. В моем случае счетчик быстро заполнился до 64 и снова опустел до 0 (угадайте, что gpg поднимается в куске 64). Я ожидал 4096 бит генерации ключей более 3 часов на сервере. После запуска этого скрипта он завершился менее чем за 5 минут.


5
2018-05-25 17:08





Я был связан и решил генерировать энтропию на моем безголовом сервере Ubuntu 14.04, чтобы генерировать ключ 4096 с gpg --gen-key

Существует пакет для генерации энтропии под названием hasged. Пример установки:

sudo apt-get install haveged

Мне пришлось sudo apt-get install rng-tools так как это зависимость в следующем тесте.

Пример теста, чтобы узнать, генерируется ли энтропия посредством hasged:

cat /dev/random | rngtest -c 1000

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

Я узнал об этом в учебнике:

https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged

Теперь у меня есть ключи после запуска gpg --gen-key


4
2018-06-14 11:47