Linux e numeri casuali

L’importanza della generazione dei numeri random in un sistema operativo server è tale che non può più essere lasciata al caso.

Linux utilizza /dev/random e /dev/urandom per fornire ai programmi una fonte di numeri pseudo-casuali. L’entropia di /dev/random deriva dall’interazione dell’utente (mouse e tastiera), dall’attività del disco e dagli interrupt di sistema. Purtroppo nei server headless parte delle fonti di entropia non sono disponibili, diminuendo la casualità dei numeri generati.

Una delle caratteristiche di /dev/random è che può essere anche scritto per alimentare il generatore con dell’entropia. Esistono alcune soluzioni che si basano su dispositivi hardware esterni, sul rumore termico della scheda audio, o su altri sistemi che generano grandezze non deterministiche legate a fattori esterni. La dipendenza da un hardware dedicato o specifico e la scarsa disponibilità di questi tipi di soluzioni sui server virtuali o in hosting ha portato Gary Wuertz e Jirka Hladky a trovare una soluzione alternativa.

I due hanno creato havaged, un programma che si basa su HAVEGE per alimentare /dev/random con la giusta dose di entropia al fine di migliorare la casualità dell’output.

Su un normale Linux CentOS la sequenza configure-make-make install funziona alla perfezione; il processo di make crea anche lo script da mettere in init.d per poter avviare il programma in modalità demonica.

La pagina di man di haveged contiene anche alcuni esempi di utilizzo interattivo del programma per generare password o per sovrascrivere file o partizioni con dati veramente casuali.

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

5 pensieri riguardo “Linux e numeri casuali”

Spazio per un commento