Очевидно, / dev / random основан на аппаратных прерываниях или похожих непредсказуемых аспектах физического оборудования. Поскольку виртуальные машины не имеют физического оборудования, работа cat /dev/random
на виртуальной машине ничего не дает. Я использую Ubuntu Server 11.04 в качестве хоста и гостя с libvirt / KVM.
Мне нужно настроить Kerberos внутри виртуальной машины, но krb5_newrealm
просто навсегда зависает «Загрузка случайных данных», поскольку система не производит никаких данных.
Кто-нибудь знает, как обойти это? Можно ли передать хосту / dev / random (который очень болтлив) в виртуальную машину, чтобы виртуальная машина могла использовать его случайные данные?
Я читал, что есть некоторые программные альтернативы, но они не годятся для криптологии, поскольку они недостаточно случайны.
РЕДАКТИРОВАТЬ: Похоже, что cat / dev / random на виртуальной машине действительно производит вывод, очень и очень медленно. Я установил свое царство, подождав около двух часов, пока оно «Загрузка случайных данных». В конце концов, этого достаточно, чтобы продолжить. Я все еще заинтересован в способе ускорить это все же.
cat /proc/sys/kernel/random/entropy_avail
все, что увеличивает, работает.python -c 'while True: import time; print str(time.sleep(1))[0:0] + open("/proc/sys/kernel/random/entropy_avail", "rb").read(),'
. Да, это трудно читать, но я не вижу возможности вводить новые строки в комментариях ...Я использую hasged на всех моих безголовых серверах, которые выполняют криптографические операции (например, TLS-рукопожатия, kerberos и т. Д.). Это должно быть в большинстве репозиториев пакетов версий Ubuntu: http://packages.ubuntu.com/search?keywords=haveged&searchon=names&suite=all§ion=all
hasged использует алгоритм HAVAGE для извлечения энтропии из внутреннего состояния современных процессоров. Вот подробное объяснение: http://www.irisa.fr/caps/projects/hipsor/
Вы можете проверить случайность сгенерированной энтропии с помощью пакета ent. На моих системах сгенерированная энтропия из hasged прошла все тесты на случайность
источник
Да, вы можете отобрать это из:
http://manpages.ubuntu.com/manpages/jaunty/man4/random.4.html
Вы можете просто поместить это в / dev / urandom, и он должен заполнить пул энтропии. Я смог подтвердить это:
Бонус, если вы заставите команду ssh пройти через маршрутизатор, чтобы она генерировала энтропию * :)
источник
Это сработало для меня
Запуск krb5_newrealm внутри виртуальной машины может занять много времени (после отображения сообщения «Загрузка случайных данных»). Вы можете использовать следующий хак, чтобы немного ускорить процесс.
размещено на http://fossies.org/linux/john/doc/Kerberos-Auditing-HOWTO.md
источник
Ответ X86 - убедитесь, что ваша виртуальная машина не перехватывает RdRand или RdSeed. Вы доверяете своей виртуальной машине во многих вещах, это одна из них.
Достаточно недавний RNGd на постпроцессорном процессоре Snady Bridge будет (или может быть сказано) использовать RdRand или RdSeed, а необработанный RdRand или RdSeed получает энтропию в ВМ. Затем / dev / random работает с реальным (не виртуальным) источником энтропии.
Это не случайно. Это прямо в документации по архитектуре Intel.
Для аппаратного источника энтропии на основе устройства (IE использует драйвер ядра для его совместного использования) вам нужна виртуальная машина для правильной виртуализации физического источника. Понятия не имею, делают ли они это и если да, то для каких устройств.
Если ваш RNGd не имеет опции drng ниже, обновите ее. Если ваше оборудование не имеет быстрой аппаратной RNG, вы обречены, и вам следует подумать об использовании другого оборудования в целях безопасности.
источник
У меня были проблемы с зависанием krb5_newrealm. Это хорошо сработало для меня, основываясь на приведенном выше ответе:
Возможно, вы захотите убить его, как только закончите с необходимостью в случайных данных. / dev / sda, вероятно, содержит больше данных, чем вам нужно.
Примечание: я не уверен, насколько случайными являются случайные данные, сгенерированные таким образом.
источник