[devel] rngd vs haveged vs crng (khwrngd)

Alexey V. Vissarionov gremlin на altlinux.org
Сб Авг 31 18:42:43 MSK 2019


On 2019-08-31 17:47:06 +0300, Leonid Krivoshein wrote:

 >>> systemd, равно как и ядро, не решают проблему наполнения пула
 >>> качественной энтропией на ранней стадии загрузки
 >> Что любопытно, ядро эту задачу прекрасно решает. Особенно если
 >> его об этом грамотно попросить.
 > Если имеется ввиду |rng_core.default_quality=1000| , это тоже
 > не совсем доверенный источник,

Нет - я про дисковые и сетевые контроллеры.

Для первых существует специальная функция add_disk_randomness(),
а вторые вызывают срабатывание add_interrupt_randomness() через
handle_irq_event_percpu()

 > да и про |CONFIG_RANDOM_TRUST_CPU=y| некоторые скажут, что
 > эту хрень не надо никогда использовать.

Использовать ее можно, но при соблюдении двух простых условий:
1. должны быть и другие источники энтропии;
2. к моменту начала использования недоверенного RNG пул должен
быть заполнен данными из других источников. И хорошо бы, чтобы
продолжал хотя бы чучуть пополняться из них.

После этого можно хоть cat /dev/zero > /dev/random запускать - на
качество энтропии это уже не повлияет :-)

 >>> остаётся два варианта: использовать дополнительный аппаратный
 >>> (доверенный) источник
 >> Разве что на компутерах, где живет какой-нибудь CA... для
 >> всего остального хватает грамотно собранного ядра (которое
 >> накапливает энтропию начиная уже где-то с третьей секунды
 >> работы и к запуску init успевает наполнить пул).
 > Так в том и проблема, что есть железо, где не успевает.

Полностью детерминированное железо? Где? Хочу!
Продам - стану миллиардером.

 > Только о нём спич. И здесь речь о случайных числах для запуска
 > самого systemd, который может стартануть и быстрее, чем через
 > три секунды.

Он при всем желании не может стартануть раньше, чем ядро скажет
run_init_process("/sbin/init");

А к этому времени пул энтропии уже должен быть хотя бы не пустым.
И достигается это (внезапно!) грамотной настройкой ядра.

 >>> ЛИБО ослаблять энтропию программными демонами типа rngd/haveged/etc.
 >> А вот эту срань вообще использовать нельзя. Нигде и никогда.

Здесь, насколько я понимаю, возражений нет?


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net


Подробная информация о списке рассылки Devel