Linux 6.0 continua avançando em seu gerador de números aleatórios (RNG)

Controladora da TikTok usou IA para otimizar o kernel Linux
tux

Além de estar ocupado liderando o WireGuard, Jason Donenfeld continua trabalhando intensamente no código do gerador de números aleatórios (RNG) do kernel Linux. Para o próximo Linux 6.0, uma série de melhorias RNG já estão a caminho. Assim, o Linux 6.0 continua avançando em seu gerador de números aleatórios (RNG).

Para esta próxima versão do kernel Linux, o teste de tempo de inicialização x86 RdRand ficou mais robusto para determinar se deve ou não desabilitar o uso dessa extensão se parecer defeituoso. as opções “nordrand” e “CONFIG_ARCH_RANDOM” foram descartadas em favor das opções “random.trust_cpu” e “CONFIG_RANDOM_TRUST_CPU” e outras melhorias do RNG.

Linux 6.0 continua avançando em seu gerador de números aleatórios (RNG)

O que mais empolga Donenfeld com as mudanças do Linux 6.0 RNG é um mecanismo para bootloaders, hypervisors e Kexec para passar uma semente aleatória para o kernel para inicializar o gerador de números aleatórios. 

Linux 6.0 continua avançando em seu gerador de números aleatórios (RNG)
Linux 6.0 continua avançando em seu gerador de números aleatórios (RNG).

Ele explica no pull request:

em x86 e m68k, agora existe um mecanismo para bootloaders, hypervisors e kexec para passar uma semente aleatória ao kernel para inicializar o RNG. Esses mecanismos específicos da plataforma não estão realmente neste pull, mas virão por meio da árvore x86 e da árvore m68k, mas vale a pena mencioná-los mesmo assim.

As arquiteturas baseadas em árvore de dispositivos têm esse recurso desde 2019, por meio do parâmetro “rng-seed” pouco usado no FDT, e a EFI tem sua própria coisa semelhante desde 2016, mas as plataformas sem FDT nem EFI foram deixadas de fora.Essas mudanças correspondem ao trabalho relacionado no QEMU, previsto para lançamento em 7.1, bem como no kexec-tools, que adiciona suporte para esses mecanismos de seed do bootloader RNG, ambos os novos para x86 e m68k, além de finalmente fazer uso do Parâmetro FDT “rng-seed” em plataformas aplicáveis ausentes.

Juntos, eles representam um pequeno passo para eliminar o problema da entropia do tempo de inicialização, pelo menos da perspectiva do kernel, fornecendo um meio de passar a responsabilidade um nível acima na cadeia. Os hipervisores e o kexec estão obviamente em uma excelente posição para fornecer isso, e é por isso que o adicionei primeiro. 

Mas também, isso abre oportunidades para os bootloaders gerenciarem com segurança os arquivos de semente, assim como tem sido feito nos BSDs e vários outros sistemas operacionais por um longo tempo. E alguns firmwares arm64 já estão fornecendo isso através do parâmetro FDT “rng-seed”.

Mais detalhes sobre as alterações do RNG para o ciclo do kernel Linux 6.0 pode acontecer por meio desta solicitação de pull.