È stata proposta un'implementazione di /dev/random per il kernel Linux, libera dal legame con SHA-1

Jason A. Donenfeld, autore di VPN WireGuard, ha proposto un'implementazione aggiornata del generatore di numeri pseudo-casuali RDRAND responsabile del funzionamento dei dispositivi /dev/random e /dev/urandom nel kernel Linux. Alla fine di novembre Jason è stato incluso nel numero dei manutentori del driver casuale e ora ha pubblicato i primi risultati del suo lavoro sulla sua elaborazione.

La nuova implementazione si distingue per il passaggio all'utilizzo della funzione hash BLAKE2s anziché SHA1 per le operazioni di miscelazione entropica. La modifica ha migliorato la sicurezza del generatore di numeri pseudo-casuali eliminando il problematico algoritmo SHA1 ed eliminando la sovrascrittura del vettore di inizializzazione RNG. Poiché l'algoritmo BLAKE2s è superiore a SHA1 in termini di prestazioni, il suo utilizzo ha avuto un effetto positivo anche sulle prestazioni del generatore di numeri pseudocasuali (il test su un sistema con processore Intel i7-11850H ha mostrato un aumento della velocità del 131%). Un altro vantaggio del trasferimento della miscelazione entropica a BLAKE2 è stata l'unificazione degli algoritmi utilizzati: BLAKE2 è utilizzato nel cifrario ChaCha, già utilizzato per estrarre sequenze casuali.

Inoltre, sono stati apportati miglioramenti al generatore di numeri pseudocasuali crittografati CRNG utilizzato nella chiamata getrandom. I miglioramenti si riducono alla limitazione della chiamata al lento generatore RDRAND durante l'estrazione dell'entropia, che migliora le prestazioni di 3.7 volte. Jason ha dimostrato che chiamare RDRAND ha senso solo in una situazione in cui il CRNG non è stato ancora completamente inizializzato, ma se l'inizializzazione del CRNG è completa, il suo valore non influisce sulla qualità della sequenza generata e in questo caso la chiamata a RDRAND se ne può fare a meno.

Le modifiche dovrebbero essere incluse nel kernel 5.17 e sono già state riviste dagli sviluppatori Ted Ts'o (secondo manutentore del driver random), Greg Kroah-Hartman (responsabile del mantenimento del ramo stabile del kernel Linux) e Jean-Philippe Aumasson (autore degli algoritmi BLAKE2/3).

Fonte: opennet.ru

Aggiungi un commento