Además de estando ocupado liderando WireGuard, Jason Donenfeld continúa trabajando intensamente en el código del generador de números aleatorios (RNG) del kernel de Linux. Para Linux 6.0, están listas una serie de mejoras de RNG.

Para esta próxima versión del kernel de Linux, la prueba de tiempo de arranque x86 RdRand se ha hecho más robusta para determinar si se deshabilita o no el uso de esta extensión si parece defectuosa. las opciones”nordrand”y”CONFIG_ARCH_RANDOM”se han eliminado en favor de las opciones”random.trust_cpu”y”CONFIG_RANDOM_TRUST_CPU”, y otras mejoras de RNG.

Lo que más emociona a Donenfeld con los cambios RNG de Linux 6.0 es un mecanismo para cargadores de arranque, hipervisores y Kexec para pasar una semilla aleatoria al kernel para inicializar el generador de números aleatorios. Explica en la solicitud de extracción:

en x86 y m68k, ahora hay un mecanismo para cargadores de arranque, hipervisores y kexec para pasar una semilla aleatoria al kernel para inicializar el RNG. Estos mecanismos específicos de la plataforma no están realmente en este tirón, pero vendrán a través del árbol x86 y el árbol m68k, pero vale la pena mencionarlos, no obstante.

Las arquitecturas basadas en árboles de dispositivos han tenido esta capacidad desde 2019, a través del parámetro”rng-seed”poco utilizado en FDT, y EFI tiene algo similar desde 2016, pero las plataformas sin FDT ni EFI quedaron fuera.

Estos cambios se corresponden con el trabajo relacionado en QEMU, cuyo lanzamiento está previsto en 7.1, así como en kexec-tools, que añaden soporte para estos mecanismos de inicialización RNG del gestor de arranque, tanto los nuevos para x86 y m68k, como así como finalmente hacer uso del parámetro FDT”rng-seed”en las plataformas aplicables faltantes.

Tomados en conjunto, estos representan un pequeño paso hacia la eliminación del problema de la entropía del tiempo de arranque, al menos desde la perspectiva del kernel, al proporcionar un medio para pasar la responsabilidad a un nivel superior en la cadena. Los hipervisores y kexec obviamente están en una excelente posición para proporcionar esto, por lo que lo agregué allí primero. Pero también, esto abre oportunidades para que los cargadores de arranque administren de manera segura los archivos semilla, como se ha hecho en los BSD y otros sistemas operativos durante mucho tiempo. Y algunos firmware arm64 ya están proporcionando esto a través del parámetro FDT”rng-seed”.

Más detalles sobre los cambios de RNG para el ciclo del kernel de Linux 6.0 a través de esta solicitud de extracción.

Categories: IT Info