Naast Jason Donenfeld is druk bezig met het leiden van WireGuard en blijft zwaar werken aan de RNG-code (Random Number Generator) van de Linux-kernel. Voor Linux 6.0 zijn een aantal RNG-verbeteringen gereed.
Voor deze volgende versie van de Linux-kernel is de x86 RdRand-opstarttest robuuster gemaakt om te bepalen of het gebruik van deze extensie al dan niet moet worden uitgeschakeld als deze defect blijkt te zijn. de opties”nordrand”en”CONFIG_ARCH_RANDOM”zijn verwijderd ten gunste van de opties”random.trust_cpu”en”CONFIG_RANDOM_TRUST_CPU”, en andere RNG-verbeteringen.
Het meest opwindende Donenfeld met de Linux 6.0 RNG-wijzigingen is een mechanisme voor bootloaders, hypervisors en Kexec om een willekeurige seed door te geven aan de kernel voor het initialiseren van de generator voor willekeurige getallen. Hij legt uit in het pull-verzoek:
op x86 en m68k is er nu een mechanisme voor bootloaders, hypervisors en kexec om een willekeurige seed door te geven aan de kernel voor het initialiseren van de RNG. Deze platformspecifieke mechanismen zitten niet echt in deze pull, maar zullen via de x86-tree en de m68k-tree komen, maar ze zijn toch het vermelden waard.
Op apparaatboomstructuren gebaseerde architecturen hebben deze mogelijkheid sinds 2019, via de weinig gebruikte”rng-seed”-parameter in de FDT, en EFI heeft zijn eigen soortgelijk ding sinds 2016, maar platforms zonder FDT of EFI werden weggelaten.
Deze veranderingen komen overeen met gerelateerd werk in QEMU, gepland voor release in 7.1, evenals in kexec-tools, die ondersteuning toevoegen voor deze bootloader RNG seed-mechanismen, zowel de nieuwe voor x86 als m68k, en en om eindelijk gebruik te maken van de”rng-seed”FDT-parameter op ontbrekende toepasselijke platforms.
Samen vertegenwoordigen deze een kleine stap in de richting van het elimineren van het probleem van de opstarttijd entropie, althans vanuit het perspectief van de kernel, door een middel te bieden om de verantwoordelijkheid een niveau hoger in de keten te leggen. Hypervisors en kexec zijn uiteraard in een uitstekende positie om dit te bieden, daarom heb ik het daar als eerste toegevoegd. Maar dit opent ook mogelijkheden voor bootloaders om seed-bestanden veilig te beheren, net zoals dat al heel lang is gedaan op de BSD’s en verschillende andere besturingssystemen. En sommige arm64-firmware biedt dit al via de”rng-seed”FDT-parameter.
Meer details over de RNG-wijzigingen voor de Linux 6.0-kernelcyclus via dit pull-verzoek.