[devel] rngd vs haveged vs crng (khwrngd)

Alexey V. Vissarionov gremlin на altlinux.org
Вт Сен 3 12:54:06 MSK 2019


On 2019-09-03 11:49:20 +0300, Paul Wolneykien wrote:

 >>> Если это так, то мне стало интересно, почему это сделано
 >>> так сложно, что изначально содержит в себе потенциальную
 >>> возможность race и deadlock?
 >> Строго наоборот: очень долгое время (много лет) проблемы
 >> просто не возникали, так как ядро успевало
 > Вот это ненадёжное слово — "успевало"! Оно мне страшно не
 > нравится.

Наполнение пула энтропии джля ГСЧ - вопрос времени. Если нет
специализированного оборудования (вроде моего клона ChaosKey),
для нормальной инициализации хватает примерно 10 секунд при
условии, что ядро начинает накачку энтропии за 5 секунд до
запуска /sbin/init (с аппаратным ГСЧ - 200...300 миллисекунд).

А у нас пул энтропии начинает наполняться уже _после_ запуска
/sbin/init - но всем пофигу.

 >> набрать энтропию всеми четырьмя возможными способами

Очень прошу по возможности избегать фигурной нарезки цитат -
это искажает их смысл. Или хотя бы явно обозначать это.

 >>> По описываемым симптомам, проблема явно в том, что PID 1
 >>> стартует раньше, чем заполнен пул энтропии [...]
 >>> Но поскольку за запуск PID 1 и за энтропию отвечает одно и
 >>> то же ядро, то непонятно, почему нельзя сначала накопить
 >>> энтропию (послушать диски, сеть и т.п.), и только потом уже
 >>> запустить PID 1?
 >> Почему нельзя-то? Можно. Но, похоже, никому не нужно.
 > Я так подумал, что ведь и сам PID 1 можно модифицировать
 > соответствующим образом, чтобы он адекватно говорил, чего
 > ему не хватает и корректно ждал накопления шума.

Можно. Более того, можно смонтировать /proc и ждать появления в
/proc/sys/kernel/random/entropy_avail четырехзначного числа:

% egrep '[0-9]{4}' /proc/sys/kernel/random/entropy_avail
3749

 > Вот тот же GnuPG, когда генерирует ключи, пишет сообщение
 > вида: "Мне не хватает случайных чисел — будь добр, посовершай
 > какие-нибудь действия".

Генерация ключевой пары - дело ответственное, и блокировка до
получения качественных случайных битов здесь не только допустима,
но и полностью оправдана.

 > Мне кажется, что если энтропия действительно нужна при загрузке,
 > то подобное сообщение тоже должно быть. С той лишь разницей, что
 > обращено оно должно быть больше не к пользователю, а к
 > администратору и содержать в себе вероятные рецепты увеличения
 > энтропии. Вроде: подключите компьютер к локальной сети,
 > подключите аппаратный генератор СЧ и т.п.

Пользователь от такой заявки вообще припухнет мрачно, а 95% админов
(http://lurkmore.to/95) снесут нахрен всю систему по причине "лучше
%s поставлю, там такой ботвы нет и все работает".


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


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