/ dev / buchi di sicurezza casuali

4

Sto facendo un po 'di lettura sui problemi di sicurezza che circondano / dev / random ma sta dimostrando di essere difficile trovare buone fonti di informazione. Qualcuno può aiutare? Ho chiesto a Google e ricevuto un sacco di articoli dal 2006, quindi presumo che molti dei problemi indicati siano stati risolti. Ho anche cercato la fonte ma non sono un esperto di crittografia o sicurezza, quindi ci sono buone probabilità che la mia analisi personale non sia sufficiente. Qualsiasi aiuto o direzione sarebbe molto apprezzato.

EDIT: per rendere la mia domanda più specifica, quello che voglio sapere è come il pool di entropia è misto, come viene stimato il livello del pool e come / dev / random calcola effettivamente i suoi valori in base a ciò che è in la piscina. Voglio sapere perché le cose sono fatte come sono fatte e quali sono i punti deboli dei metodi usati. So come viene compilata la piscina.

Il mio obiettivo finale è implementare un TRNG che popolerà / dev / random. Ora, posso ottenere il suo output (bello e bianco) per il pool, voglio solo sapere se vale la pena bypassare completamente il pool e scrivere un modulo per popolare direttamente / dev / random. Presumo qui che un aggressore possa avvelenare la piscina per incasinare l'output casuale del dispositivo.

Al momento sto lavorando con Ubuntu, la versione del kernel è 2.6.32

    
posta Sheena 12.09.2011 - 09:36
fonte

2 risposte

3

Per molte applicazioni crittografiche, / dev / random è un modo sicuro per raccogliere dati casuali (pseudo). Ci sono, tuttavia, diversi problemi chiave che sembrano essere in linea con ciò che stai chiedendo.

Uno dei problemi è che è possibile scrivere su / dev / random. Secondo Wikipedia,

It is also possible to write to /dev/random. This allows any user to mix random data into the pool. Non-random data is harmless, because only a privileged user can issue the ioctl needed to increase the entropy estimate. The current amount of entropy and the size of the Linux kernel entropy pool are available in /proc/sys/kernel/random/.

Questo ha senso per una macchina non compromessa, tuttavia se qualcuno ha rootato una scatola, potrebbero teoricamente scrivere dati non casuali (che appaiono casuali) in / dev / random e causare problemi con le chiavi crittografiche generate da quel punto in avanti . È difficile determinare la gravità di un simile attacco, poiché se la root fosse già stata compromessa, sarebbero sicuramente esistiti vettori di attacco più significativi (tutto il software potrebbe, a quel punto, essere backdoor).

La seconda serie di problemi, descritta nel documento Analisi del generatore di numeri casuali di Linux (marzo 2006) , si concentra sui problemi con le macchine salvate. Questo si trova principalmente nei live-cd di Linux che hanno la stessa entropia incorporata (di sola lettura) all'avvio, ma nel mondo di oggi possono anche applicarsi a macchine virtualizzate che hanno ripristinato stati o macchine che usano software che può tornare a un " noto bene "stato al momento dello spegnimento. Se l'entropia può essere determinata all'avvio, allora / dev / random può essere compromesso (dato che è un valore iniziale noto).

Ci sono diversi modi per migliorare lo standard / dev / random, il più noto dei quali può essere il Daemon di Entropia Gathering (http://egd.sourceforge.net/). EGD può funzionare come "sostituto dello spazio utente" per / dev / random, che può consentire alle applicazioni di avere un PRNG molto più sicuro.

Infine, se sei interessato all'entropia "true random", considera l'utilizzo di un servizio come Random.org che utilizza l'atmosfera rumore per creare vero , non pseudo, numeri casuali.

Spero che questo aiuti!

    
risposta data 22.11.2011 - 21:21
fonte
1

Risorse:

Puoi scegliere la versione che ti interessa dall'alto. La fonte per il software RNG è ben commentata, quindi lascerò l'interpretazione a te.

    
risposta data 22.11.2011 - 21:52
fonte

Leggi altre domande sui tag