Como a entropia é reunida para / dev / random no Precise

7

Com uma instalação padrão do Ubuntu 12.04, como está a entropia para /dev/random reunida?

A instalação é inteligente o suficiente para configurar qualquer geração de hardware disponível? Por padrão, usará fontes baseadas no usuário, como interrupções de teclado?

Editar: Só para esclarecer, estou procurando a configuração específica que vem com a instalação (ou como encontrá-la), não estou olhando como isso pode ser feito na teoria .

    
por Lucas 13.05.2014 / 06:24

2 respostas

2

Esta é uma questão complicada. Eu responderei citando algumas fontes.

De página do Linux

% bl0ck_qu0te%

No kernel padrão do Ubuntu 12.04 é 3.11 .

Em wiki

% bl0ck_qu0te%

Do Linux página de manual

% bl0ck_qu0te%

Cite de random sources, do kernel 3.11.10.10

 * Theory of operation
 * ===================
 *
 * Computers are very predictable devices.  Hence it is extremely hard
 * to produce truly random numbers on a computer --- as opposed to
 * pseudo-random numbers, which can easily generated by using a
 * algorithm.  Unfortunately, it is very easy for attackers to guess
 * the sequence of pseudo-random number generators, and for some
 * applications this is not acceptable.  So instead, we must try to
 * gather "environmental noise" from the computer's environment, which
 * must be hard for outside attackers to observe, and use that to
 * generate random numbers.  In a Unix environment, this is best done
 * from inside the kernel.
 *
 * Sources of randomness from the environment include inter-keyboard
 * timings, inter-interrupt timings from some interrupts, and other
 * events which are both (a) non-deterministic and (b) hard for an
 * outside observer to measure.  Randomness from these sources are
 * added to an "entropy pool", which is mixed using a CRC-like function.
 * This is not cryptographically strong, but it is adequate assuming
 * the randomness is not chosen maliciously, and it is fast enough that
 * the overhead of doing it on every interrupt is very reasonable.
 * As random bytes are mixed into the entropy pool, the routines keep
 * an *estimate* of how many bits of randomness have been stored into
 * the random number generator's internal state.

Sim, é inteligente o suficiente para usar fontes baseadas no usuário , mas você pode configurar mais se quiser.

Existem núcleos com geradores aleatórios que têm mais fontes de entropia, incluindo ruído em entradas de áudio e outros, como vídeo, censores de coolers, etc. aqui se for interessante em entropia de áudio. Espero que você encontre outros kernels sozinho.

Mas /dev/random deve ser suficiente para a maioria das tarefas por padrão.

Leia também esta questão em stackoverflow

    
por c0rp 13.05.2014 / 08:39
2

A aleatoriedade verdadeira vem do mundo físico, não de geradores de números pseudo-aleatórios determinísticos. O kernel do Linux coleta temporizações aleatórias e adiciona informações ao seu pool de entropia. Eu recomendaria ir para as fontes do kernel

Entropia de entrada refere-se à chamada da função: Os manipuladores add_interrupt_randomness (irq) registraram SA_SAMPLE_RANDOM, o tempo entre as interrupções é a fonte de ruído, add_keyboard_randomness (scancode) e add_mouse_randomness (mouse_data) === > todas essas funções chamam add_timer_randomness ()

Entropia de saída: Espaço do kernel:     [get_random_bytes (buf, number)] ( Consulte LXR = > linux / drivers / char / random.c Espaço do usuário:     / dev / random     / dev / urandom

Consulte LXR = > linux / drivers / char / random.c

    
por askb 14.05.2014 / 06:58