[devel] rngd vs haveged vs crng (khwrngd)
Paul Wolneykien
manowar на altlinux.org
Вт Сен 3 11:49:20 MSK 2019
03.09.2019 08:58, Alexey V. Vissarionov пишет:
>> Если это так, то мне стало интересно, почему это сделано так
> > сложно, что изначально содержит в себе потенциальную возможность
> > race и deadlock?
>
> Строго наоборот: очень долгое время (много лет) проблемы просто не
> возникали, так как ядро успевало
Вот это ненадёжное слово — "успевало"! Оно мне страшно не нравится.
> набрать энтропию всеми четырьмя
> возможными способами - add_device_randomness(), add_disk_randomness(),
> add_input_randomness() и add_interrupt_randomness(). Сейчас компутеры
> стали производительнее и загружаются быстрее, да еще и люди мешают:
> источники энтропии инициализируют поздно, а данные из ГСЧ хотят рано.
>
> > По описываемым симптомам, проблема явно в том, что PID 1 стартует
> > раньше, чем заполнен пул энтропии (необходимым и достаточным её
> > количеством). Но поскольку за запуск PID 1 и за энтропию отвечает
> > одно и то же ядро, то непонятно, почему нельзя сначала накопить
> > энтропию (послушать диски, сеть и т.п.), и только потом уже
> > запустить PID 1?
>
> Почему нельзя-то? Можно. Но, похоже, никому не нужно.
Я так подумал, что ведь и сам PID 1 можно модифицировать
соответствующим образом, чтобы он адекватно говорил, чего ему не хватает
и корректно ждал накопления шума.
Вот тот же GnuPG, когда генерирует ключи, пишет сообщение вида: "Мне
не хватает случайных чисел — будь добр, посовершай какие-нибудь
действия". Мне кажется, что если энтропия действительно нужна при
загрузке, то подобное сообщение тоже должно быть. С той лишь разницей,
что обращено оно должно быть больше не к пользователю, а к
администратору и содержать в себе вероятные рецепты увеличения энтропии.
Вроде: подключите компьютер к локальной сети, подключите аппаратный
генератор СЧ и т.п.
Подробная информация о списке рассылки Devel