OpenSSL RAND_poll 'suficientemente bueno'

7

Estamos utilizando OpenSSL para generar IV y otros datos aleatorios. Lo inicializamos usando RAND_poll y, en Windows, RAND_screen .

La pregunta es, sin embargo, si la semilla generada por esos métodos es lo suficientemente buena ( RAND_screen al menos me suena como es). Además, me preguntaba cómo funciona exactamente RAND_poll , ya que no pude encontrar mucha documentación al respecto si no se comporta de manera diferente según la plataforma, como RAND_screen , que solo está disponible en Windows.

    
pregunta inflagranti 29.09.2011 - 16:43
fuente

1 respuesta

8

RAND_bytes() llama automáticamente a RAND_poll() si no se ha hecho al menos una vez. Así que no tienes que llamarlo tú mismo. RAND_poll() se alimenta de lo que proporciona el sistema operativo: en Linux, Solaris, FreeBSD y sistemas similares Unix similares, utilizará /dev/urandom (o /dev/random si no hay /dev/urandom ) para obtener una inicialización inicial segura criptográficamente ; en Windows, llamará a CryptGenRandom() para el mismo efecto.

OpenSSL proporciona

RAND_screen() solo para compatibilidad con versiones anteriores (mucho) código antiguo que puede llamarlo (que era antes OpenSSL usó la inicialización de inicialización basada en el sistema operativo adecuada).

Por lo tanto, la forma "normal" de tratar con RAND_poll() y RAND_screen() es llamar a ninguno. Solo usa RAND_bytes() y sé feliz.

    
respondido por el Thomas Pornin 29.09.2011 - 17:32
fuente

Lea otras preguntas en las etiquetas