[devel] [sisyphus] Не переключается в графический режим

Leonid Krivoshein klark.devel на gmail.com
Сб Ноя 3 14:43:55 MSK 2018


03.11.2018 07:01, Denis Medvedev пишет:
> On суббота, 3 ноября 2018 г. 4:05:07 MSK Leonid Krivoshein wrote:
>> [...]
>> В этой связи возникла мысль использовать haveged только там, где
>> действительно без него не обойтись. Следуя букве,
>> /proc/sys/kernel/random/entropy_avail показывает размер уже накопленной
>> энтропии в битах. Если данных в пуле мало, запускаем haveged. То есть
>> это д.б. тест перед запуском haveged, прописанный где-то в его
>> systemd-юните.
>>
>> man 4 random и
>> https://pthree.org/2014/07/21/the-linux-random-number-generator/
>   А если энтропии мало, может ее добавить естественным образом? Перед стартом X
> запустить какую-нибудь штуку, которая случайно почитает-попишет (с пользой или
> нет) с диска, к примеру? Что-нибудь типа легкого диск оптимизатора или fsck на
> раздел /boot (он маленький)?

haveged именно этим и занимается. Точнее, он это делает при фейле ioctl 
(RNDADDENTROPY), что на раннем старте значительно нагружает процессор 
прерываниями и диск фейковым вводом/выводом. В любом случае получается 
некое подобие псевдослучайности /dev/urandom, что по идее может быть 
менее секьюрно, чем /dev/random. А хотелось бы решить проблему так, чтобы:

1) не ухудшать безопасность -- на большинстве машин проблема никак не 
проявляется, чтение из /dev/random не приводит к подвисаниям на раннем 
старте;
2) на тех машинах, где проблема всё же проявляется, запускать haveged 
автоматически, но именно автоматика должна определять необходимость 
запуска при каждом старте.
3) в идеале со временем найти и заменить все места с чтением из 
/dev/random на вызов getrandom(2).

Исходя из этого нужно:

1) определить значение длины минимально необходимой энтропии;
2) сделать тест длины энтропии и добавить его в systemd-unit для haveged;
3) включить haveged во все дистрибутивы.


-- 
Best regards,
Leonid Krivoshein.



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