2

Мы используем специальную доску на основе биглебона.

В одном из скриптов инициализации мы генерируем ssh-ключи, но генерация ssh-ключей занимает около 7 секунд. Как ускорить процесс генерации ключей SSH?

Из руководства по ssh мы узнали, что ssh-keygen ожидает достаточной энтропии для генерации ключей ssh.

Как нам создать достаточно энтропии перед генерацией ключей SSH?

Любые предложения / указатель поможет

3 ответа3

3

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

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

  • Генерация большого количества операций ввода-вывода, вы можете использовать dd if=/dev/hda1 of=/dev/null (замените hda1 на ваш диск)
  • Запишите дополнительные данные в /dev/random , например, dd if=/dev/hda1 of=/dev/random . Однако это уменьшает случайность в пуле. Возможно, лучше использовать аудиоисточник для записи в /dev/random .
0

Из вашего комментария

когда я генерирую ключ, я получаю «+- [RSA1 2048] ----+», так что я предполагаю, что его 2048 верно?

Похоже, ваш процесс загрузки генерирует ключи SSHv1 в дополнение к SSHv2. Таким образом, в итоге вы генерируете как минимум два ключа RSA (и, возможно, ключ DSA и ключ ECDSA).

Если вы выключите генерацию ключа SSHv1, это может сократить время вдвое. (Версия 1 протокола SSH имеет некоторые серьезные проблемы и никогда не должна использоваться.)

-1

У меня есть история некробампинга (привет, Google/DDG/Bing (?!) пользователи!), но я бы не использовал трюк с дд. Один из источников генерации энтропии не такой горячий, когда вы можете использовать что-то специально разработанное для этого!

Пара вещей вызывает генерацию медленного ключа, DH-параметра и т.д.

Первый аппаратный. Процессор на Beaglebone Black, на момент написания этой статьи, был (для их сайта) « Arm Cortex-A8, 3D Graphics, PRU-ICSS ». Теперь я знаю, что вы сказали, что используете специальную плату на базе Beaglebone, но я отвлекся - возможно, тот же процессор (или более ранний запуск, учитывая, что я отвечаю на вопрос 4,5-летней давности). Не самое лучшее для тяжелой криптографии, но вы обходитесь тем, что имеете. Вы могли видеть, возможно, есть периферийное устройство для платы, которая использует HRNG (аппаратный генератор случайных чисел). HNRG значительно ускорит процесс.

Второе, на что намекают другие ответы, - это доступная энтропия. Генерация ключей использует /dev/random вместо /dev/u(nblocking)random. Это хорошая вещь. /dev/random генерирует гораздо лучшую случайность (по цене, как вы уже догадались, блокировка). Это означает, что система будет ожидать появления большей энтропии, а затем генерирует случайность из этого. Который, если вы находитесь на безголовом сервере, и безголовом сервере с ограниченным аппаратным обеспечением, и на безголовом сервере с ограниченным оборудованием без HNRG, и да. Это займет много времени. Неактивные серверы просто не генерируют достаточно "цифрового шума", чтобы быстро генерировать энтропию!

Так что же делать парню или девушке, заботящимся о безопасности?

Почему, у г ООД е ntropy, конечно! haveged - это демон, который запускает алгоритм HAVEGE, который создает этот цифровой шум, используя некоторые умные математические вычисления, и широко рекомендуется для такого рода вещей. Это должно быть очень легко установлено; Я не знаю ни одного современного дистрибутива, в котором его нет в репозиториях.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .