/dev/random: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Botcrux (discussione | contributi)
m Bot: fix sezioni standard
Riga 4:
 
==Linux==
La generazione di numeri casuali dal [[kernel]] è stata implementata per la prima volta in [[Linux]]<ref>{{Cita web|url=http://www.randombit.net/bitbashing/security/syllable_dev_random.html |titolo=On Syllable's /dev/random |autore=Jack Lloyd |data=9 dicembre 2008 |accesso=27 aprile 2009|urlarchivio=http://www.webcitation.org/5gOzG0qvc|dataarchivio=29 aprile 2009|deadurl=no}}</ref> nel 1994 da [[Theodore Ts'o]].<ref>{{Cita web|url=http://everything2.com/title/%252Fdev%252Frandom |titolo=/dev/random |data=8 giugno 2003 |editore=everything2.com |accesso=27 aprile 2009|urlarchivio=http://www.webcitation.org/5gOzGLECz|dataarchivio=29 aprile 2009|deadurl=no}}</ref>. L'implementazione usa [[SHA-1|hash sicuri]] al posto di un [[cifrario]] per evitare problemi legali che erano presenti al momento del progetto. L'implementazione tiene anche conto del fatto che un certo hash o cifrario potrebbe essere scoperto essere debole, e quindi il progetto è durabileprotetto contro ogni tale debolezza. <!--Fast recovery from [[pool compromise]] is not considered a requirement, because the requirements for pool compromise are sufficient for much easier and more direct attacks on unrelated parts of the operating system.-->
 
In questa implementazione, il generatore mantiene una stima del numero di [[bit]] di rumore nella [[entropy pool]]. Da questa entropy pool i numeri casuali sono creati. Quando viene letto, <code>/dev/random</code> restituisce solo byte casuali all'interno della stima del numero di bit di rumore nell'entropy pool. <code>/dev/random</code> può essere adatto per gli utenti che necessitano di una casualità di ottima qualità come per la creazione di [[one time pad]] o [[chiave pubblica|chiavi pubbliche]]. Quando l'entropy pool è vuota, la lettura di <code>/dev/random</code> si interrompe fino a quando non viene accumulato nuovo rumore ambientale. Il motivo è di fornire un [[generatore di numeri pseudocasuale crittograficamente sicuro]], fornendo un output con un'entropia il più grande possibile.
Riga 12:
È inoltre possibile scrivere su <code>/dev/random</code>. Questo consente ad ogni utente di mischiare i dati casuali all'interno del pool. L'attuale ammontare dell'entropia e la dimensione dell'entropy pool del kernel Linux è disponibile attraverso <code>/proc/sys/kernel/random/</code>.
 
Nel marzo 2006 Gutterman, Pinkas, & Reinman hanno pubblicato un'analisi dettagliata del generatore di numeri casuali di Linux<ref>{{Cita web|url=http://www.pinkas.net/PAPERS/gpr06.pdf |titolo=Analysis of the Linux Random Number Generator |autore=Zvi Gutterman |coautori=Benny Pinkas, Tzachy Reinman |data=6 marzo 2006 |formato=PDF |accesso=18 settembre 2008}}</ref> nel quale descrivono alcune debolezze. Probabilmente il problema più importante riportato è quello che si verifica con sistemi [[sistema embedded|embedded]] o con i [[Live CD]] nel quale lo stato di avvio del sistema è prevedibile e l'entropia disponibile dall'ambiente potrebbe essere limitata. Per i sistemi con memoria non volatile, è raccomandato salvare qualche stato del generatore allo spegnimento in modo da poterlo usare come stato al successivo avvio. Nel caso dei router nei quali il traffico di rete rappresenta la sorgente primaria di entropia, gli autori notano che salvare lo stato tra riavvii "richiederebbe a un potenziale attaccante di spiare su tutto il traffico di rete" che passa per il router, e ottenere un accesso diretto allo stato interno del router. Questo problema è particolarmente critico nel caso di router wireless il cui traffico di rete può essere catturato a distanza, il quale puòed essere utilizzato per generare chiavi crittografiche.
 
==FreeBSD==