/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
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
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]].
|