/dev/random: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m r2.7.1) (Bot: Tolgo: it:/dev/random |
Gran numero di fix |
||
Riga 6:
La generazione di numeri casuali dal [[kernel]] è stata implementata per la prima volta in [[Linux]]<ref>{{cite web|url=http://www.randombit.net/bitbashing/security/syllable_dev_random.html |title=On Syllable's /dev/random |author=Jack Lloyd |date=December 9, 2008 |accessdate=2009-04-27|archiveurl=http://www.webcitation.org/5gOzG0qvc|archivedate=2009-04-29|deadurl=no}}</ref> nel 1994 da [[Theodore Ts'o]].<ref>{{cite web|url=http://everything2.com/title/%252Fdev%252Frandom |title=/dev/random |date=June 8, 2003 |publisher=everything2.com |accessdate=2009-04-27|archiveurl=http://www.webcitation.org/5gOzGLECz|archivedate=2009-04-29|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]]s di rumore nella [[entropy pool]]. Da questa entropy pool i numeri casuali sono creati. Quando viene letto, <code>/dev/random</code> ritorna solo byte casuali ll'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.
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</ref>) che riusa il pool interno per produrre bits pseudocasuali aggiuntivi. Questo significa che la richiesta non si blocca, ma il risultato potrebbe contenere meno entropia rispetto a <code>/dev/random</code>. Nonostante sia un generatore di numeri pseudocasuali adatto per la maggior parte delle applicazioni crittografiche, non è raccomandato per la generazione di chiavi crittografiche a lunga scadenza.
Riga 19:
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 potrebbere prendere gran parte della propria entropia dalla rete e questo li rende 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>{{
FreeBSD fornisce inoltre supporto per [[Generatore hardware di numeri casuali|generatore di numeri casuali hardware]].
== Altri sistemi operativi ==
▲[http://software.hp.com/portal/swdepot/displayProductInfo.do?productNumber=KRNG11I HP-UX 11i v2]. Come in FreeBSD, AIX implementa un proprio algoritmo Yarrow. Tuttavia AIX usa una quantità di entropia considerevolmente minore allo standard e smette di riempire il pool quanto pensa che contenga abbastanza entropia..<ref>{{cite web|url=http://lists.gnupg.org/pipermail/gnupg-devel/2003-April/019954.html |title=AIX 5.2 /dev/random and /dev/urandom devices |publisher=Lists.gnupg.org |author=Iain Roberts|date=April 25, 2003 |accessdate=2008-09-18}}</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]].
Line 35 ⟶ 31:
== EGD come alternativa ==
Il software
== Voci correlate ==
Line 51 ⟶ 47:
== Note ==
<references />
==
* [http://msdn2.microsoft.com/en-us/library/aa379942.aspx CryptGenRandom]
* [http://msdn2.microsoft.com/en-us/library/aa387694.aspx RtlGenRandom]
* [http://www.suse.de/~thomas/papers/random-analysis.pdf Biege, Thomas; Analysis of a strong Random Number Generator] [http://www.suse.de/~thomas/papers/23c3-random-analysis.pdf Slides]
[[Categoria:Unix|Dev Random]]
{{Portale|Informatica}}
|