Re: linux /dev/random initialization CVE-2018-1108
On Tue, 18 Dec 2018 13:30:06 +0300
Artem Chuprina <ran@lasgalen.net> wrote:
> > Получается проблема курицы и яйца. Чтобы набрать энтропию, системе
> > требуется начать работать - обрабатывать какие-то сетевые запросы,
> > шуршать диском и т.д.
>
> > Но она не может стартовать ни одного сетевого сервиса, не набрав
> > достаточно энтропии хотя бы для urandom, потому что все сервисы
> > нынче хотят какие-нибудь эфемерные ключи. А следовательно - и
> > проявить хоть какую-то сетевую активность, равно и локальный
> > ввод-вывод. Поскольку клиентов нет, а любая имитация нагрузки
> > будет все равно иметь проблемы со своей случайностью.
>
> Отчасти да. Но энтропию оно набирает, сколь я помню, не только с
> сетевых запросов к себе, но и вообще со всего, что пролетает мимо
> сетевки.
Ага щаз, так уж в эпоху управляемых свитчей и полетит что-нибудь
мимо сетевки, что этому хосту не адресовано. ARP-запросы разве что. Но
много ли их в типичной серверной стойке?
(а уж если это у нас виртуальный эзернет какой-нибудь системы
управления виртуальными машинами...)
> А сетевую активность без проблем со случайностью можно сделать,
> например, так: взять совсем уже псевдослучайное число, например,
> 8.8.8.8, пингануть его, таймингом ответа зарядить обычный дешевый
> PRNG, который не криптографического качества, а дальше в параллель
> попинговать его следующие значения, периодически подмешивая тайминги
> ответов. С этого ядро наберет уже вполне вменяемую энтропию.
Интересная идея. Может такую утилитку написать и запускать из post-up
в /etc/network/interfaces?
Только стартовый адрес надо конфигурируемым сделать. А то вдруг из
этого датацентра нет роутинга до 8.8.8.8.
--
Reply to: