[devel] [sisyphus] Не переключается в графический режим
Leonid Krivoshein
klark.devel на gmail.com
Пн Ноя 5 19:42:39 MSK 2018
05.11.2018 11:23, Alexey V. Vissarionov пишет:
> > В любом случае получается некое подобие псевдослучайности
> > /dev/urandom, что по идее может быть менее секьюрно, чем
> > /dev/random.
>
> /dev/urandom намного лучше любого усерспейсного угробища.
Вот поэтому...
> > А хотелось бы решить проблему так, чтобы:
> > 1) не ухудшать безопасность -- на большинстве машин проблема
> > никак не проявляется, чтение из /dev/random не приводит к
> > подвисаниям на раннем старте;
>
> Одно только это требование полностью исключает любые костыли в
> усерспейсе.
...и поэтому вопрос перенесён в devel@ для общего так сказать обсуждения.
> > 3) в идеале со временем найти и заменить все
> > места с чтением из /dev/random на вызов getrandom(2).
>
> Это влияет только на переносимость кода, но не на безопасность:
>
> By default, getrandom() draws entropy from the urandom source
> (i.e., the same source as the /dev/urandom device).
>
> Угадаешь, откуда цитата? :-)
Там же написано, что зависит от флагов. Да, по умолчанию из того же
неблокирующего пула, это регулируется флагами. Один нюанс: данный вызов
сам умеет учитывать факт раннего старта, размер имеющейся и запрошенной
энтропии, этим он лучше простого чтения из /dev/urandom, но есть и
минус: требуется ядро 3.17+.
> > Исходя из этого нужно:
> > 1) определить значение длины минимально необходимой энтропии;
> > 2) сделать тест длины энтропии и добавить его в systemd-unit
> > для haveged;
> > 3) включить haveged во все дистрибутивы.
>
> А можно просто использовать специально для этого предназначенный
> источник - /dev/urandom; когда энтропии достаточно, он работает
> точно так же, как /dev/random, а когда не хватает - ну, хотя бы
> что-то более-менее приемлемое выдаст.
А есть мнение, что простое чтение из /dev/urandom не настолько безопасно
на раннем старте. И стоит почитать про haveged -- это не просто
юзерспейсный костыль. Кстати, на данный момент на некоторых железках без
существенного погружения в код ничего лучше haveged проблему не решает.
When read during early boot time, //dev/urandom/ may return data prior
to the entropy pool being initialized. If this is of concern in your
application, use getrandom(2)
<http://man7.org/linux/man-pages/man2/getrandom.2.html> or //dev/random/
instead.
--
Best regards,
Leonid Krivoshein.
Подробная информация о списке рассылки Devel