/dev/random: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Sistemo note con collegamenti esterni senza titolo (documentazione) |
Corretti numerosi refusi ortografici e di traduzione |
||
Riga 6:
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 è durabile 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]]
Una controparte di <code>/dev/random</code> è '''/dev/urandom''' (sorgente causale non bloccata "unlocked" <ref>[http://www.kernel.org/doc/man-pages/online/pages/man4/random.4.html random(4) - Linux manual page<!-- Titolo generato automaticamente -->]</ref>) che riusa il pool interno per produrre
È 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 [[
==FreeBSD==
Il sistema operativo [[FreeBSD]] implementa una variante a 256 bit dell'[[algoritmo Yarrow]] che ha lo scopo di fornire un [[generatore di numeri pseudocasuale crittograficamente sicuro]] che sostituisce il dispositivo random di Linux. A differenza di <code>/dev/random</code> di Linux, <code>/dev/random</code> di FreeBSD non è bloccante. Il suo comportamento è simile a <code>/dev/urandom</code> di Linux e <code>/dev/urandom</code> è collegato a <code>/dev/random</code>.
L'algoritmo Yarrow è basato sull'assunzione che i moderni generatori di numeri pseudocasuali sono molto sicuri se il loro stato rimane sconosciuto all'attaccante. Mentre un metodo basato su una entropy pool è completamente sicuro se implementato correttamente, non rimane sicuro se la quantità di entropia viene sovrastimata ed è più debole di un generatore basato su un seme bel inizializzato. In alcuni casi un attaccante potrebbe avere un considerevole controllo sull'entropia, per esempio i server senza disco
Nel 2004 [[Landon Curt Noll]] testò <code>/dev/random</code> di FreeBSD 5.2.1 e concluse che non era crittograficamente sicuro perché il suo output aveva difetti multipli e uniformi.<ref>{{Cita web|titolo=How good is LavaRnd?: Detailed Description of Test Results and Conclusions |url=http://www.lavarnd.org/what/nist-test.html |data=22 settembre 2004 |opera=LavaRnd |editore=LavaRnd |accesso=22 Dec. 2010}}</ref> Simili difetti furono trovati nell'implementazione di <code>/dev/random</code> di [[Linux]] 2.4.21-20, [[Solaris_(sistema_operativo)|Solaris]] patch 8 108528-18 e [[Mac OS X]] 10.3.5.
|