[devel] rngd vs haveged vs crng (khwrngd)
Alexey V. Vissarionov
gremlin на altlinux.org
Вт Сен 3 08:58:55 MSK 2019
On 2019-09-03 01:25:00 +0300, Paul Wolneykien wrote:
>>> Он при всем желании не может стартануть раньше, чем ядро
>>> скажет run_init_process("/sbin/init");
> Означает ли это, что в ядре есть код, который сперва ждёт
> накопления N байт хорошей энтропии, и только после этого
> выполняет run_init_process("/sbin/init") ?
В ядре такой проверки нет. И вероятность ее появления лично я
оцениваю как пренебрежимо малую.
>>> 2. к моменту начала использования недоверенного RNG пул
>>> должен быть заполнен данными из других источников.
> Когда читаешь "должен быть заполнен" как отдельное условие,
> то кажется, что тут есть элемент желательности. Мол, должен
> быть заполнен, если всё идёт по плану.
Именно так. Потому что если он не будет заполнен - недоверенный
источник может выдать детерминированную последовательность и тем
самым ослабить криптозащиту.
> А если не заполнен, то значит вы это не обеспечили, должным
> образом не настроили и т.д.
Разумеется.
> Если это так, то мне стало интересно, почему это сделано так
> сложно, что изначально содержит в себе потенциальную возможность
> race и deadlock?
Строго наоборот: очень долгое время (много лет) проблемы просто не
возникали, так как ядро успевало набрать энтропию всеми четырьмя
возможными способами - add_device_randomness(), add_disk_randomness(),
add_input_randomness() и add_interrupt_randomness(). Сейчас компутеры
стали производительнее и загружаются быстрее, да еще и люди мешают:
источники энтропии инициализируют поздно, а данные из ГСЧ хотят рано.
> По описываемым симптомам, проблема явно в том, что PID 1 стартует
> раньше, чем заполнен пул энтропии (необходимым и достаточным её
> количеством). Но поскольку за запуск PID 1 и за энтропию отвечает
> одно и то же ядро, то непонятно, почему нельзя сначала накопить
> энтропию (послушать диски, сеть и т.п.), и только потом уже
> запустить PID 1?
Почему нельзя-то? Можно. Но, похоже, никому не нужно.
--
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
Подробная информация о списке рассылки Devel