/dev/random: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 17:
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 belben inizializzato. In alcuni casi un attaccante potrebbe avere un considerevole controllo sull'entropia, per esempio i server senza disco potrebbepotrebbero prendere gran parte della propria entropia dalla rete, e questo lirimanendo rendecosì vulnerabili a un attacco man-in-the-middle. Yarrow mette molta attenzione nell'evitare che un pool sia compromesso e sul suo rapido ripristino. Il seme dell'algoritmo è periodicamente rigenerato; nei sistemi con bassa attività di rete e di disco, questo viene fatto dopo una frazione di secondo.
 
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 dicembre 2010}}</ref> Simili difetti furono trovati nell'implementazione di <code>/dev/random</code> di [[Linux]] 2.4.21-20, [[Oracle Solaris (sistema operativo)|Solaris]] patch 8 108528-18 e [[macOS]] 10.3.5.
 
FreeBSD fornisce inoltre supporto per un [[Generatore hardware di numeri casuali|generatore di numeri casuali hardware]].
 
== Altri sistemi operativi ==
<code>/dev/random</code> e <code>/dev/urandom</code> sono disponibili su [[Oracle Solaris (sistema operativo)|Solaris]], [[macOS]], [[NetBSD]], [[OpenBSD]], [[UNIX 5.1B]], [[AIX 5.2]] e [[HP-UX 11i v2]]. Come in FreeBSD, AIX implementa un proprio algoritmo Yarrow. Tuttavia AIX usa una quantità di entropia considerevolmente minore allodello standard e smette di riempire il pool quantoquando pensa che contenga abbastanza entropia..<ref>{{Cita web|url=http://lists.gnupg.org/pipermail/gnupg-devel/2003-April/019954.html |titolo=AIX 5.2 /dev/random and /dev/urandom devices |editore=Lists.gnupg.org |autore=Iain Roberts|data=25 aprile 2003 |accesso=18 settembre 2008}}</ref>
 
In [[Windows NT]], una funzione simile è fornita da <code>ksecdd.sys</code>, ma la lettura del file speciale <code>\Device\KsecDD</code> non funziona come in UNIX. I metodi documentati per generare bytes crittograficamente sicuri sono [[CryptGenRandom]] e [[RtlGenRandom]].