La sicurezza dei dati è una priorità assoluta per molte aziende, soprattutto quando si tratta di crittografia. Una delle componenti fondamentali dei processi di cifratura dei dati consiste nella generazione di numeri casuali.
In un altro articolo abbiamo visto come funzionano i generatori di numeri casuali e la loro importanza in ambito informatico.
Generare dati casuali: Cloudflare usa lampade lava
Da tempo Cloudflare, azienda leader nelle soluzioni per l'erogazione e l'ottimizzazione di contenuti, con una particolare attenzione alla sicurezza, ha adottato un approccio unico per generare numeri casuali, utilizzando sia il software che l'entropia dell'ambiente circostante.
Nel cuore dell'ufficio di Cloudflare a San Francisco, si trova una struttura chiamata LavaRand. Esiste da anni ma la società d'Oltreoceano ne ha nuovamente parlato in un video pubblicato a marzo 2024.
Nell'immagine, una vista della struttura LavaRand dalla videocamera installata nei locali Cloudflare.
LavaRand è un insieme di lampade lava (o lampade Astro), dispositivi luminosi che contengono sostanze galleggianti come acqua colorata e olio, racchiusi in un contenitore.
Il calore generato dalle lampade induce il fenomeno di convezione, dando vita a movimenti irregolari e imprevedibili all'interno del fluido. Tali movimenti sono catturati da una telecamera, che fornisce dati di casualità al generatore di numeri pseudo-casuali (CSPRNG).
Perché generare numeri davvero casuali in ambito informatico, ad esempio per le esigenze crittografiche, è difficile?
Generare numeri veramente casuali in ambito informatico, soprattutto per le esigenze crittografiche, è una sfida complessa per diversi motivi.
I computer sono macchine deterministiche, il che significa che seguono istruzioni precise e riproducibili. È difficile ottenere casualità pura da sistemi così progettati.
I generatori di numeri casuali (RNG) tradizionali utilizzano algoritmi per generare sequenze di numeri che sembrano casuali ma discendono appunto da un approccio che è deterministico. Se l'algoritmo e il seed inizialmente utilizzati sono noti, è teoricamente possibile prevedere la sequenza successiva di numeri generati.
Nei contesti crittografici, è essenziale che i numeri casuali siano veramente imprevedibili e non influenzabili. Se i numeri non sono casuali, l'algoritmo potrebbe essere vulnerabile ad attacchi che sfruttano schemi prevedibili o debolezze nei generatori di numeri pseudo-casuali.
Casualità ed entropia
La casualità, quindi la generazione di numeri davvero randomici, richiede entropia, cioè un grado di disordine o imprevedibilità nel sistema. Ottenere un'adeguata entropia può essere difficile senza l'uso di fonti di casualità esterne, come dispositivi hardware specializzati o fenomeni naturali.
Per la cifratura dei dati, la casualità deve essere garantita non solo in fase di generazione, ma anche durante l'utilizzo e la trasmissione dei numeri casuali. Inoltre, devono essere disponibili meccanismi per la verifica della casualità e la gestione degli errori.
Come funziona la tecnologia LavaRand
La tecnologia LavaRand si basa sull'idea di utilizzare il caos per generare casualità. Nonostante il nome sia associato principalmente a Cloudflare, il concetto originale non è frutto dell'azienda di San Francisco ma è stato sviluppato da Silicon Graphics. Il brevetto originale è però ormai scaduto.
LavaRand è un generatore di numeri casuali che utilizza, come modello, una serie di immagini acquisite in ingresso. Anche se la parte secondaria della generazione sfrutta un generatore di numeri pseudo-casuali, il processo nel suo complesso si qualifica essenzialmente come un generatore di numeri casuali "vero" a causa del seed casuale.
Il doppio pendolo come alternativa
L'ufficio di Cloudflare a Londra ha adottato un approccio simile. Al posto delle lampade lava, utilizza tuttavia un doppio pendolo.
Un doppio pendolo è un sistema dinamico costituito da due pendoli collegati in serie, ognuno dei quali può oscillare liberamente lungo una traiettoria. Questi pendoli sono solitamente costituiti da un filo o una sbarra leggera, con un peso alla fine.
Il doppio pendolo presenta un movimento non-lineare a causa dell'interazione tra i due pendoli. Questo può portare a comportamenti complessi e caotici nel corso del tempo: i movimenti imprevedibili del doppio pendolo offrono uno spettacolo unico che Cloudflare utilizza per generare casualità.
Perché Cloudflare usa questi sistemi apparentemente così insoliti?
La presenza di lampade lava e doppi pendoli negli uffici di Cloudflare si basa sulla necessità di garantire la massima sicurezza dei dati. Utilizzare fonti di casualità imprevedibili come lampade lava e pendoli dà a Cloudflare la certezza di poter proteggere adeguatamente i dati dei suoi clienti.
Basti pensare che i numeri casuali generati da LavaRand alimentano ad esempio drand, un set di strumenti scritto in Go e distribuito con licenza MIT, proposto da Cloudflare.
drand è un servizio di livello infrastrutturale Internet che fornisce casualità alle applicazioni, simile a NTP per la sincronizzazione degli orologi.
La soluzione presentata da drand è sfruttata anche da League of Entropy, consorzio di organizzazioni distribuite che collaborano per fornire una fonte di entropia affidabile e casuale per scopi crittografici. Ne abbiamo parlato nell'articolo sulla creazione di una capsula del tempo informatica, illeggibile fino alla data impostata dall'utente.
Maggiori informazioni sono disponibili sul blog di Cloudflare.
Credit immagine utilizzata come apertura: Martin J. Levy.