On Mon, 5 Nov 2018 20:25:26 +0300 Andrey Savchenko wrote: [...] > > > А есть мнение, что простое чтение из /dev/urandom не настолько безопасно > > > на раннем старте. И стоит почитать про haveged -- это не просто > > > юзерспейсный костыль. Кстати, на данный момент на некоторых железках без > > > существенного погружения в код ничего лучше haveged проблему не решает. > > > > Давай исходить из задачи. Нужно просто случайные числа или > > криптографически стойкие (т.е. алгоритмически неповторяемые > > равномерно распределённые) случайные числа? > > > > Если второе, то только /dev/random (или getrandom() с флагом > > GRND_RANDOM, что есть точно то же) и *ничего* другого ни при каких > > обстоятельствах и ни под каким предлогом. Иначе получится к с Debian > > и "улучшением" в OpenSSL. > > > > Если первое, то /dev/urandom (или getrandom() без GRND_RANDOM). > > > > Насколько я понял текущую проблему, инициализируется gcrypt random > > pool, ему нужна криптостойкая инициализация. Как решения данную > > инициализацию нужно отложить (да, придётся лезть в кишки systemd). > > Вот здесь поясняется, почему havaged нельзя использовать в > криптографических целях: > https://crypto.stackexchange.com/questions/8083/quality-of-randomness-on-a-linux-system-with-haveged Ещё статьи: https://lwn.net/Articles/525459/ https://security.stackexchange.com/questions/34523/is-it-appropriate-to-use-haveged-as-a-source-of-entropy-on-virtual-machines В общем, для задачи получения критографически стойких случайных чисел havaged не пригоден. > В общем, urandom < havaged < random. > > Реальная проблема в том, что на обсуждаемом этапе загрузки random > ещё не нужен, но используется. Очередная глупость от systemd. > > Best regards, > Andrew Savchenko Best regards, Andrew Savchenko