Il kernel potrà generare entropia al boot

L’elenco delle modifiche e aggiunte per il prossimo kernel (5.4) è piuttosto lungo: come al solito, il blog Phoronix ne offre un riassunto.
Oltre alla funzione di lockdown, un’altra innovazione può essere interessante: la nuova versione del kernel avrà delle procedure interne per generare l’entropia necessaria al boot.

Talvolta, per crittografia o simulazioni, è richiesta la generazione di un numero casuale. Ma, in informatica, questa è una delle operazioni più complicate: è facile generare una serie di numeri che sembrano a caso, ma che in realtà sono calcolati – e quindi, sapendo come, prevedibili.
Per ovviare al problema i (moderni) sistemi riescono a raccogliere dei valori da eventi ambientali: temperatura delle componenti del sistema, ma anche voltaggio della RAM o velocità delle ventole, oppure input dell’utente. La misura di disponibilità di questi valori è definita entropia.

La raccolta di entropia è passiva, legata al verificarsi degli eventi; può succedere che gli eventi siano estremamente pochi, specialmente in un datacenter: temperatura controllata, velocità ventole costante, alimentazione stabilizzata… troppo ordine, insomma.
Anche i processi attivi sul sistema sono una fonte di entropia, ma in fase di boot questi processi, semplicemente, ancora non ci sono. Nei casi in cui sia richiesta l’uso dell’entropia al boot, come fatto da un bug di GDM (componente di login GNOME) per il login, il processo di boot rimane in attesa che ci sia abbastanza entropia da usare; cosa che potrebbe non capitare mai. Risultato: sistema fermo.

Come rimediare? Con l’entropia, ovvio! Dal commento al commit del kernel:

The approach here-in is to decide to not just passively wait for entropy
to happen, but to start actively collecting it if it is missing.

L’approccio qui è decidere di non star solo ad aspettare passivamente perché l’entropia si formi, ma cominciare a produrla attivamente se manca.

Quindi, più che altro, si tratta di un cambio di atteggiamento, non di meccanismo. Ma comunque interessante.

I metodi per produrre attivamente questa entropia sono vari, e ancora non del tutto individuati. E pare che Meltdown e Spectre abbiano lasciato inaspettate applicazioni: l’uso dei meccanismi di speculazione sarebbe in grado di dare risultati abbastanza casuali velocemente, risultando un buon candidato per questo compito al boot.

Ho coltivato la mia passione per l'informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.

Tags: , ,