Генерируйте энтропию для ключа PGP

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

Как я могу генерировать некоторых?

Я попробовал cat /dev/urandom > /dev/null но это не помогает.

12
задан 25 July 2015 в 13:53
6 ответов

Получение данных из из / dev / random или / dev / urandom определенно не поможет, все, что он сделает, это истощит ваш пул энтропии, что еще больше усугубит проблему. Основное различие между этими двумя файлами заключается в том, что даже когда ядро ​​исчерпывает энтропию urandom будет продолжать генерировать случайные данные более низкого качества, в то время как random будет блокироваться до тех пор, пока не сможет собрать новые высокие значения. качественные случайные данные. PGP требует максимально возможное количество случайных данных для генерации ключей безопасности, поэтому он всегда будет использовать / dev / random .

Если у вас есть хорошие случайные данные, или экспортируйте их с другого сервера / dev / random , вы можете cat it в / dev / random вашего сервера, чтобы получить больше энтропии. Вы никогда не должны помещать один и тот же файл дважды в / dev / random .

Если вы часто обнаруживаете, что у вас заканчивается энтропия, вы также можете рассмотреть возможность установки чего-то вроде hasged , демон, который повторно генерирует энтропию в фоновом режиме и повторно заполняет / dev / random по мере необходимости.

Также может возникнуть соблазн создать символическую ссылку / dev / random ] на / dev / urandom , но это следует рассматривать как угрозу безопасности, поскольку любой ключ, сгенерированный с его помощью, может быть менее безопасным, чем следовало бы. Хотя это может помочь для одного менее важного приложения, вы должны рассмотреть все возможные варианты использования / dev / random , включая создание другими пользователями собственных ключей, CSR и т. Д.

13
ответ дан 2 December 2019 в 21:31

Вы можете использовать haveged .

haveged - это демон, который при необходимости генерирует энтропию.

9
ответ дан 2 December 2019 в 21:31

В системах на базе Debian вы можете установить пакет rng-tools с помощью atp-get, а затем запустить демон для генерации энтропии:

echo HRNGDEVICE=/dev/urandom >> /etc/default/rng-tools && service rng-tools restart

В CentOS-6 серверов, демон rng установлен как один из базовых инструментов (по крайней мере, в большинстве систем, над которыми я работал), и вы можете запустить следующую команду, чтобы запустить его, чтобы генерировать энтропию :

sed -i \'s|EXTRAOPTIONS=\"\"|EXTRAOPTIONS=\"-r /dev/urandom\"|g\' /etc/sysconfig/rngd && service rngd restart
3
ответ дан 2 December 2019 в 21:31

Я бы рекомендовал сгенерировать ваши gpg-ключи на вашем локальном компьютере, который будет иметь гораздо лучшую случайность, чем удаленный. А затем перенесите ключи с помощью SSH на удаленный компьютер.

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

Если вы все еще хотите сгенерировать их удаленно: в Linux вы можете сгенерировать больше энтропии, просто выполнив ping-запрос к хосту (например, ping 8.8.8.8 ), если у вас есть другой сетевой хост, попытайтесь получать ping-запросы каждые 100 мс ( если, конечно, ваш RTT <100 мс). И / или используйте find для поиска файлов на жестком диске и очистки кеш-памяти RAM между каждым поиском файлов.

Вы также можете установить hasged , но ознакомьтесь с ограничениями, если вы запустить его в виртуальной среде: https://wiki.archlinux.org/index.php/Haveged#Virtual_machines

4
ответ дан 2 December 2019 в 21:31
sudo yum install haveged && sudo systemctl start haveged

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

1
ответ дан 2 December 2019 в 21:31

/dev/random и /dev/urandom доступны для записи. Если вы записываете в них энтропию, ваш пул энтропии растет. cat /proc/sys/kernel/random/entropy_avail растет.

Вы можете отправлять любые данные в /dev/urandom. # cat MyWordDocument.txt > /dev/urandom сделано от имени пользователя root! Это не очень хороший источник, но это один из источников. Если вы записываете много своих документов (тысячи) в /dev/urandom, это будет лучшим источником энтропии, но не качественным типом энтропии. Если кто-то запишет .jpeg или .png или все свои данные в /home в /dev/urandom, это зависит от «смеси» данных, насколько хороша сгенерированная энтропия.

ls-RU ~ | xargs -i cat {} > /dev/urandom не будет работать на bash — вам нужен perl <>. cp -RT ~ /dev/urandom тоже не сработает. Если вы сделаете это в сценарии ежечасно с помощью cron, ваш энтропийный пул выглядит нормально, но он отравлен копиями одного и того же, снова и снова.

Если вы также записываете хорошую энтропию в /dev/random (с вашего ПК — сгенерировано с помощью cat /dev/random > entropy.txt CTRL+C), вы получится хорошая смесь. Но тогда ваш компьютер вне энтропии - опасен в Интернете. Так что никогда не делайте этого, находясь в сети.

Создавайте эти файлы .txt в автономном режиме и сохраняйте их (я делаю это, когда моя работа заканчивается на день).Ваше случайное начальное число может стать плохим, но если вы поиграете с мышью - вставьте несколько компакт-дисков в дисковод - поиграйте во встроенные игры (тетрис...), вы создадите новую энтропию. - Лучшее решение - купить счетчик Гейгера и радиоактивный источник для работы. Источники энтропии для ферм серверов. Только до 10 000 ошибок.

Поэтому попробуйте сгенерировать pgp-ключ на машине с хорошими источниками энтропии, например, на компьютере в офисе. Ваш /home на виртуальной машине пуст - я думаю. Если вы получили реальное изменение данных на этой виртуальной машине, используйте эти данные разумно. Сделайте du -h "'/srv/Data~'" или что-то в этом роде. Перечислите его с помощью ls; Кот ./* ; дд ; ... - Поиграйтесь с этим - и получите "хорошую" энтропию.

При профессиональном хостинге ваш хостинг-провайдер предоставляет вам хорошо проверенный и чистый источник энтропии — я надеюсь на это — не ограничивайте его экстремальным брандмауэром и изоляцией виртуальной машины от этого специально созданного источника. Вы становитесь криптографическим зомби в Интернете. (Спросите у хостинг-провайдера, как это делается на их серверах.)

0
ответ дан 14 April 2021 в 21:50

Теги

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