Algunos procesadores de AMD tienen un error de RNG de hardware, perdiendo aleatoriedad después de suspender el currículum

El desarrollador principal de Red Hat Systemd (administrador de sistemas y servicios), Lennart Poettering, descubrió que el SoC “Beema” AMD A6-6310, que es popular entre los portátiles de bajo costo, tiene una implementación defectuosa de la instrucción de generación de números aleatorios de RdRand. El generador de números aleatorios de hardware del procesador (RNG) pierde “aleatoriedad” después de que la máquina se reanuda desde un estado suspendido (es decir, despertando la notebook del modo de suspensión abriendo la tapa mientras está encendida). Las computadoras modernas se basan en RNG para la “entropía”, fundamental para la generación de claves impredecibles sobre la marcha para SSL. Sin embargo, la fuente de entropía no necesita ser hardware, y no lo es por defecto. Los RNG de software existen y, de forma predeterminada, el kernel de Linux no usa RdRand para generar entropía. No se conoce que Windows use RdRand para funciones básicas de ACPI como suspender / reanudar;

Los usuarios de GitHub y Bugzilla informan que con este error, no puede hacer que una máquina se suspenda por segunda vez después de despertarla de un estado suspendido, si su kernel usa RdRand. Commit cc83d51 para Systemd introdujo la generación de aleatoriedad opcional basada en la instrucción RdRand. Entonces, si la instrucción RdRand está presente, se utiliza para generar UUID para ID de invocación. Michael Larabel de Phoronix comenta que el error RdRand solo se encuentra en las generaciones anteriores de procesadores AMD, “Excavator” y anteriores; y no afecta a los últimos procesadores “zen”. Este informe de errores describe lo que está mal con RdRand en los procesadores afectados, al igual que este subproceso de bugzilla del kernel de Linux.. Al evitar el uso de RdRand en el sistema como parte de la generación de un UUID, el problema del sistema reportado ya no ocurre. Red Hat está trabajando en una solución a este error.