Я зарегистрирован VM удаленно и пытающийся генерировать ключ PGP на 4096 битов, он просто зависает навсегда, потому что нет никакой энтропии и так как я работаю через удаленный рабочий стол, он, вероятно, не обнаруживает движение мыши как энтропию.
Как я могу генерировать некоторых?
Я попробовал cat /dev/urandom > /dev/null
но это не помогает.
Получение данных из из / 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 и т. Д.
Вы можете использовать haveged
.
haveged
- это демон, который при необходимости генерирует энтропию.
В системах на базе 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
Я бы рекомендовал сгенерировать ваши 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
sudo yum install haveged && sudo systemctl start haveged
определенно работает на виртуальной машине CentOS 7.2. Иногда вам нужно создать ключи GPG на виртуальной машине, если вы создаете группу и хотите, чтобы связка ключей не была повреждена.
/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; Кот ./* ; дд ; ...
- Поиграйтесь с этим - и получите "хорошую" энтропию.
При профессиональном хостинге ваш хостинг-провайдер предоставляет вам хорошо проверенный и чистый источник энтропии — я надеюсь на это — не ограничивайте его экстремальным брандмауэром и изоляцией виртуальной машины от этого специально созданного источника. Вы становитесь криптографическим зомби в Интернете. (Спросите у хостинг-провайдера, как это делается на их серверах.)