GNU/Linux >> Linux Esercitazione >  >> Linux

Come determinare quali processi utilizzano quanta entropia da /dev/urandom

La risposta breve è 0, perché l'entropia non viene consumata.

C'è un malinteso comune secondo cui l'entropia viene consumata:ogni volta che leggi un bit casuale, questo rimuove parte dell'entropia dalla fonte casuale. Questo è sbagliato. Non "consumi" entropia. Sì, la documentazione di Linux sbaglia.

Durante il ciclo di vita di un sistema Linux, ci sono due fasi:

  1. Inizialmente, non c'è abbastanza entropia. /dev/random si bloccherà finché non penserà di aver accumulato abbastanza entropia; /dev/urandom felicemente fornisce dati a bassa entropia.
  2. Dopo un po', nel pool del generatore casuale è presente abbastanza entropia. /dev/random assegna un tasso fasullo di "entropia porro" e blocchi di tanto in tanto; /dev/urandom fornisce felicemente dati casuali di qualità crittografica.

FreeBSD ha ragione:su FreeBSD, /dev/random (o /dev/urandom , che è la stessa cosa) si blocca se non ha abbastanza entropia e, una volta che lo fa, continua a vomitare dati casuali. Su Linux, né /dev/random/dev/urandom è la cosa utile.

In pratica, usa /dev/urandom e assicurati, durante il provisioning del tuo sistema, che il pool di entropia sia alimentato (dall'attività del disco, della rete e del mouse, da una fonte hardware, da una macchina esterna, ...).

Mentre potresti provare a leggere quanti byte vengono letti da /dev/urandom , questo è completamente inutile. Lettura da /dev/urandom non esaurisce il pool di entropia. Ogni consumatore utilizza fino a 0 bit di entropia per qualsiasi unità di tempo che desideri nominare.


Linux
  1. Come generare una password casuale in Linux usando /dev/random

  2. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  3. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0?

  4. Quanto sono portatili /dev/stdin, /dev/stdout e /dev/stderr?

  5. Quando usare /dev/random vs /dev/urandom?

Come si scambia /dev/sda con /dev/sdb?

Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

Linux:differenza tra /dev/console , /dev/tty e /dev/tty0

Come Linux usa /dev/tty e /dev/tty0

echo o print /dev/stdin /dev/stdout /dev/stderr

Perché sono necessari < o > per usare /dev/tcp