Re: linux /dev/random initialization CVE-2018-1108
Victor Wagner -> Artem Chuprina @ Tue, 18 Dec 2018 12:52:11 +0300:
>> Как интересно... Хотя, если по уму, то urandom'у бы тоже сначала
>> набрать энтропию, и только потом уже раскручивать псевдорандомизацию.
>> А прикапывать ее между перезагрузками чревато тем же боком. Так-то
>> считается, что urandom — псевдослучайный, но с криптографическим
>> качеством. А значит, должен иметь в виду криптографическую модель
>> угроз.
> Получается проблема курицы и яйца. Чтобы набрать энтропию, системе
> требуется начать работать - обрабатывать какие-то сетевые запросы,
> шуршать диском и т.д.
> Но она не может стартовать ни одного сетевого сервиса, не набрав
> достаточно энтропии хотя бы для urandom, потому что все сервисы нынче
> хотят какие-нибудь эфемерные ключи. А следовательно - и проявить хоть
> какую-то сетевую активность, равно и локальный ввод-вывод. Поскольку
> клиентов нет, а любая имитация нагрузки будет все равно иметь проблемы
> со своей случайностью.
Отчасти да. Но энтропию оно набирает, сколь я помню, не только с сетевых
запросов к себе, но и вообще со всего, что пролетает мимо сетевки.
А сетевую активность без проблем со случайностью можно сделать,
например, так: взять совсем уже псевдослучайное число, например,
8.8.8.8, пингануть его, таймингом ответа зарядить обычный дешевый PRNG,
который не криптографического качества, а дальше в параллель попинговать
его следующие значения, периодически подмешивая тайминги ответов. С
этого ядро наберет уже вполне вменяемую энтропию.
Reply to: