/dev/casual vs/dev/urandom e sono sicuri?

/dev/casual vs/dev/urandom e sono sicuri?

Iniziare

Chi avrebbe pensato che generare un numero casuale sarebbe stato un tale casino, dovrebbe essere altrettanto diretto come indovinare un numero tra un determinato intervallo. Ma non è così semplice come sembra e fino ad ora anche tutte le macchine non sono in grado di generare un vero numero casuale da solo.

Perché le macchine non possono generare un vero numero casuale da solo?

Le macchine sono ancora appena istruite set di meccanismi e circuiti, e quindi non possono essere istruiti a pensare a un numero casuale da solo senza alcun aiuto. Ed è per questo che fino ad ora e più, abbiamo coinvolto la natura o gli esseri umani con macchine per generare un vero numero casuale. Non discuteremo qui come generare un vero numero casuale, ma discuteremo dei generatori di numeri casuali già implementati e dei loro lavori e di debolezza.

Perché generare un vero numero casuale è così importante?

Si pone la domanda che perché sono importanti la generazione di veri numeri casuali e la risposta a causa di problemi di sicurezza. La maggior parte degli algoritmi crittografici si basano sulla generazione di numeri casuali poiché questi numeri casuali vengono utilizzati per creare chiavi crittografiche e se i numeri casuali generati non sono veramente casuali di natura, questi rendono più deboli di quelle tecniche crittografiche e quelle chiavi possono essere previste relativamente più facili Usando l'algoritmo utilizzato per generare quelle chiavi casuali. Questo è il motivo più importante per un vero numero casuale, oltre alle applicazioni come il gioco d'azzardo.

Generatore di numeri casuali nei kernel Linux:

L'argomento per la nostra discussione oggi si basa sul generatore di numeri casuali Linux, su quali fattori si basa su questo generatore ed è davvero così casuale o è solo un altro numero casuale tipicamente inaffidabile.

Linux utilizza pseudo generatore di numeri casuali (PRNG) o generatore di numeri casuali pseudo crittograficamente sicuro (CSPRNG), il che significa che utilizza formule matematiche complesse e proprietà ambientali per ottenere la massima casualità. Linux è stato il primo sistema operativo a includere PRNG nel suo spazio del kernel. Questo è stato implementato da Theodore Ts'o nel 1994.

Linux ha tre categorie di generatori di numeri casuali, /dev /casual, /dev /urandom, /dev /arandom. Questi tutti e tre sono i file in cui Linux memorizza numeri casuali. I numeri casuali in questi file vengono generati utilizzando il rumore ambientale dai driver del dispositivo e altre fonti. Inoltre, per garantire la casualità nei suoi numeri casuali, Linux utilizza l'entropia che è l'entità dell'incertezza o del disturbo tra loro. Puoi anche trovare la pagina manuale per il generatore di numeri casuali Linux (RNG) qui:

http: // man7.Org/Linux/Man-Pages/Man4/Random.4.html

/Dev/Random versus /dev /urandom contro /dev /arandom:

Le principali differenze tra /dev /casuale, /dev /urandom e /dev /arandom sono che /dev /casuali blocchi se l'entropia non indica casualità sufficiente, /dev /urandom non si blocca mai, anche quando il generatore di numeri casuali pseudo non viene completamente seminato quando si avvia e infine /dev /arandom blocca solo quando il generatore di numeri casuali pseudo non è ancora completamente seminato. In breve, /dev /casual è il più sicuro di tutti, quindi arriva /dev /arandom e il meno sicuro è /dev /urandom. Normalmente /dev /casual e /dev /urandom sono usati perché /dev /arandom in molti termini è simile a /dev /urandom. La stima dell'entropia per il pool di numeri casuali in breve viene utilizzata per determinare la casualità dei numeri generati. Più entropia è, più casualità si ottiene e migliore è. La quantità corrente di entropia e dimensioni del suo pool entropia è disponibile su/proc/sys/kernel/casuale/denominato come entropy_avail e pool_size, rispettivamente, che possono essere visualizzati nel terminale utilizzando i comandi:

Cat/Proc/sys/kernel/random/entropy_avail

E:

Cat/Proc/sys/kernel/casual/pool_size

Sia gli Urandom che i casuali sono usati in diversi scenari. "Urandom" è usato in cui è necessario un costante bisogno di numeri casuali e la sua casualità non è molto importante mentre si usa "casuale" in cui esiste una preoccupazione di sicurezza e la sua casualità dovrebbe essere affidabile in quanto blocca i numeri casuali di uscita se l'entropia non è fino a il segno. Sebbene l'entropia per urandom (casuale illimitato) non sia molto più debole, ma si raccomanda di utilizzare casuale quando è richiesta una maggiore sicurezza a causa della possibilità di attacchi al numero generato da Urandom.

Debolezze nei generatori di numeri casuali Linux

Per hardware di memoria non volatile:

Per i kernel Linux, il generatore di numeri casuali non è buono per hardware incorporato come i router, in cui lo stato avviabile è prevedibile e la fonte per l'entropia sufficiente è limitata. Per questo tipo di hardware, si consiglia di salvare e utilizzare lo stato del generatore di numeri casuali (RNG) prima dell'arresto che verrà utilizzato nel avvio successivo. In tali casi di router, gli aggressori possono scendere a compromessi e prevedere i numeri casuali generati se hanno accesso a tutti i collegamenti del router e stanno interrompendo i suoi collegamenti di comunicazione o se hanno acceduto direttamente allo stato RNG salvato dal router stesso.

Per questo difetto di RNG in caso di hardware, i generatori entropici di terze parti vengono in soccorso. Questi generatori di entropia come "HASGED" utilizzano temporizzazione della cache del processore, dispositivi di input audio e video esterni per aumentare l'entropia a un grado accettabile.

Stima dell'entropia:

Come accennato prima, il kernel Linux determina la casualità in termini di entropia, ma in realtà non calcola l'entropia ogni volta e utilizza invece le stime dell'entropia. Diverse ricerche hanno anche rivelato che la stima dell'entropia dei numeri casuali utilizzati in Linux non sono stime adatte o più strette, rendendo così debole la casualità complessiva dei numeri.

Sebbene ci siano alcuni punti deboli nel generatore di numeri casuali Linux, ma è un'opzione molto migliore rispetto ad altri RNG, per non dimenticare le patch in corso fornite da collaboratori e sviluppatori Linux.

Concludendo:

Questo era tutto dalla mia parte sul generatore di numeri casuali nel kernel di Linux. Mi sono divertito a diffondere questa conoscenza con te. Spero che tu abbia imparato qualcosa di nuovo attraverso di esso e anche che condividerai ulteriormente le conoscenze al mondo. Infine, grazie per aver investito tempo in questo articolo.