Domanda

Come faccio a disattivare fonti di entropia?

Ecco un po ' di background su quello che sto cercando di fare.Sto costruendo un piccolo dispositivo che parla al mio PC tramite USB.Io voglio essere l'unica fonte di entropia utilizzato.Io uso rngd per aggiungere il mio dispositivo come una fonte di entropia.

È stato utile?

Soluzione

La risposta rapida è "Non lo fai".

Non rimuovere mai le fonti di entropia. I progettisti del generatore di numeri casuali lo hanno truccato in modo che qualsiasi nuovo bit casuale si mescoli con lo stato attuale.

Avere più fonti di entropia non indebolisce mai l'output del generatore di numeri casuali, solo rafforzarlo.

L'unica ragione per cui riesco a pensare di rimuovere una fonte di entropia è che fa schifo alla CPU o al tempo di clock che non puoi permetterti. Lo trovo altamente improbabile, ma se questo è il caso, allora la tua unica opzione è l'hacking del kernel. Per quanto riguarda l'hacking del kernel, questo dovrebbe essere abbastanza semplice. Basta commentare tutte le chiamate alle funzioni ADD _*_ Randomness () in tutto il codice sorgente del kernel (le funzioni stesse si trovano in driver/char/random.c). Potresti semplicemente commentare il contenuto delle funzioni ma stai cercando di risparmiare tempo in questo caso e il tempo minuscolo che la chiamata di funzione extra potrebbe essere troppo.

Altri suggerimenti

Una soluzione è quella di eseguire un'istanza Linux separata in una macchina virtuale.

Ho il sospetto che si potrebbe desiderare un veloce generatore casuale.

Modifica Ho dovuto leggere la domanda meglio

Comunque, frandom viene fornito con un completo archivio tar per il modulo del kernel per cui si potrebbe essere in grado di imparare a costruire il proprio modulo di tutto il dispositivo USB.Forse, si può anche avere per sostituire/spostare /dev/urandom in modo arbitrario le applicazioni di lavoro, invece di /dev/urandom (ovviamente, dato abbastanza autorizzazioni, si potrebbe rinominare il dispositivo nodi e 'pazzo' la maggior parte delle applicazioni).


Si poteva guardare http://billauer.co.il/frandom.html, che implementa tale.

  • Non è /dev/urandom abbastanza?
    • Discussioni circa la necessità di una più veloce kernel generatore di numeri casuali ascesa e la caduta dal 1996 (che io sappia).La mia opinione è che /dev/frandom è necessaria come /dev/zero, che si limita a creare un flusso di zeri.Il comune parere opposto, di solito, dice:Farlo in spazio utente.
  • Qual è la differenza tra /dev/frandom e /dev/erandom?
    • All'inizio ho scritto /dev/frandom.Poi si è scoperto che uno dei vantaggi di questa suite è che si salva kernel entropia.Ma /dev/frandom consuma 256 byte di kernel di dati casuali (che, a sua volta, mangia un po ' di entropia) ogni volta che un dispositivo viene aperto il file, al fine di seme generatore casuale.Così ho fatto /dev/erandom, che utilizza un interno un generatore casuale per la semina.La "F" in frandom sta per "fast" e "E" per "economico":/dev/erandom non utilizza il kernel di entropia a tutti.
  • Quanto veloce è?
    • Dipende dal tuo computer e la versione del kernel.Test mostrano costantemente da 10 a 50 volte più veloce di /dev/urandom.
  • Funzionerà sul mio kernel?
    • Probabilmente si, se è > 2.6
  • È stabile?
    • Dal momento che il rilascio della versione iniziale nell'autunno del 2003, almeno 100 persone hanno provato (probabilmente molti di più) su i686 e x86_64 sistemi simili.Successo i rapporti di prova sono arrivati e reclami zero.Quindi sì, è molto stabile.Come per casualità, non vi sono state denunce sia.
  • Come si è dati casuali generati?
    • frandom è basato sull'algoritmo di crittografia RC4, che è considerato sicuro, e viene utilizzato da diverse applicazioni, tra cui la crittografia SSL.Cominciamo da come RC4 opere:Ci vuole una chiave, e genera un flusso di byte pseudo-casuali.La corrente di crittografia è una operazione di XOR tra questo flusso di byte e il testo non crittografato flusso di dati.
    • Ora per frandom:Ogni volta che /dev/frandom è aperto, un netto flusso pseudo-casuale viene inizializzato utilizzando una chiave a 2048 bit, che viene raccolto facendo qualcosa di equivalente a leggere la chiave da /dev/urandom.Il flusso pseudo-casuale è quello che si legge da /dev/frandom.
    • frandom è solo RC4 con una chiave casuale, senza le XOR alla fine.
  • Non frandom generano numeri casuali?
    • Grazie alle sue origini, i numeri casuali non può essere troppo male.Se lo fossero, RC4 non sarebbe degno di nulla.Come per il test:Dati direttamente "copiato" da /dev/frandom è stato testato con gli "Irriducibili" batteria di test, sviluppato da George Marsaglia.Superati tutti i test, che è considerato essere una buona indicazione.
  • Può frandom essere utilizzato per creare one-time pad (crittografia)?
    • frandom non è mai stato inteso per crypto scopi, né pensiero speciale dato agli attacchi.Ma c'è poco spazio per attaccare il modulo, e dato che il modulo è basato su RC4, abbiamo le seguenti realtà:Utilizzando i dati da /dev/frandom come un one-time pad è equivalente all'utilizzo dell'algoritmo RC4 con una chiave a 2048 bit, lette da /dev/urandom.

Linea di fondo:Probabilmente è OK per utilizzare frandom per crypto scopi.Ma non.Non era questa l'intenzione.

Nota aggiuntiva, troppo grande per il commento:

A seconda delle sue impostazioni, RNGD può dominare il pool di entropia del kernel, alimentando così tanti dati, così spesso, che altre fonti di entropia sono per lo più ignorate o perse. Non farlo a meno che non ti fidi della fonte di dati casuali di RNGD.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top