Уязвимость в генераторе случайных чисел ядра Linux
Как сообщает opennet.ru Раскрыты сведения об уязвимости (CVE-2018-1108) в реализации генератора случайных чисел, предлагаемого в ядре Linux. Уязвимость охватывает несколько проблем, выявленных в процессе аудита, проведенного инженерами компании Google. Найденные проблемы снижают уровень энтропии при инициализации и приводят к ухудшению качества генерации случайных чисел через /dev/urandom в процессе загрузки системы и спустя короткое время после загрузки (от нескольких секунд до минуты). Уязвимость проявляется только для ключей, создаваемых на раннем этапе загрузки (до стадии инициализации RNG crng_init=2), так как на данной стадии параметры случайных чисел не отвечают требованиям, предъявляемым для криптографических операций.
Из проблем отмечается игнорирование некоторых источников энтропии на ранней стадии загрузки, ненадлежащее взаимодействие между ядром и пространством пользователя, отсутствие передачи энтропии в NUMA CRNG на стадии инициализации. Для демонстрации проблемы на системе Intel Grass Canyon продемонстрировано создание условий, при которых уровень энтропии на стадии загрузки составил 105 бит вместо ожидаемых 4096 бит. Информация о проблеме раскрыта после публикации патчей к ядру Linux, устраняющих выявленные недостатки. Внесенные исправления приостанавливают выдачу значений /dev/urandom до накопления должной энтропии, что может привести к зависанию процесса загрузки из-за блокировки приложений, обращающихся к /dev/urandom на ранней стадии загрузки.