videos que puedes poner pelĂ­cula para how hashtags google como adulto random prng

que - diferencias entre aleatorio y urandom



youtube google videos (4)

¿Cuáles son las diferencias entre /dev/random y /dev/urandom ?

/dev/random y /dev/urandom son interfaces para el generador de números aleatorios del kernel:

  • La lectura devuelve una secuencia de bytes aleatorios lo suficientemente fuerte para su uso en criptografía
  • Escribirles proporcionará los datos del kernel para actualizar el grupo de entropía

Cuando se trata de las diferencias, depende del sistema de operación:

  • En Linux, la lectura de /dev/random puede bloquear, lo que limita su uso en la práctica considerablemente
  • En FreeBSD, no hay ninguno. /dev/urandom es solo un enlace simbólico a /dev/random .

¿Cuándo debería usarlos? ¿Cuándo no debería usarlos?

Es muy difícil encontrar un caso de uso en el que deba usar /dev/random sobre /dev/urandom .

Peligro de bloqueo:

  • Este es un problema real que tendrá que enfrentar cuando decida usar /dev/random . Para usos únicos como ssh-keygen , debería estar bien esperar unos segundos, pero para la mayoría de las otras situaciones no será una opción.
  • Si usa /dev/random , debe abrirlo en modo no bloqueante y proporcionar algún tipo de notificación al usuario si la entropía deseada no está disponible de inmediato.

Seguridad:

La interfaz /dev/random se considera una interfaz heredada, y /dev/urandom es preferible y suficiente en todos los casos de uso, con la excepción de las aplicaciones que requieren aleatoriedad durante el arranque temprano; para estas aplicaciones, se debe usar getrandom (2), porque se bloqueará hasta que se inicialice el grupo de entropía.

Si se guarda un archivo semilla durante el reinicio como se recomienda a continuación (todas las distribuciones principales de Linux lo han hecho desde 2000 al menos), la salida es criptográficamente segura contra atacantes sin acceso raíz local tan pronto como se recarga en la secuencia de arranque, y es perfectamente adecuada para claves de sesión de encriptación de red. Como las lecturas de /dev/random pueden bloquearse, los usuarios generalmente querrán abrirlo en modo no bloqueante (o realizar una lectura con tiempo de espera), y proporcionar algún tipo de notificación al usuario si la entropía deseada no está disponible de inmediato.

Recomendación

Como regla general, /dev/urandom debe usar para todo excepto para las claves GPG / SSL / SSH de vida larga.

Estoy tratando de descubrir las diferencias entre los archivos /dev/random y /dev/urandom

  1. ¿Cuáles son las diferencias entre /dev/random y /dev/urandom ?
  2. ¿Cuándo debería usarlos?
  3. ¿cuándo no debería usarlos?

Respuesta corta

Usa /dev/urandom

Respuesta larga

Ambos están alimentados por el mismo generador de números pseudoaleatorios criptográficamente seguro (CSPRNG). El hecho de que /dev/random espera la entropía (o más específicamente, espera que la estimación del sistema de su entropía alcance un nivel apropiado) solo hace la diferencia cuando se usa un algoritmo de seguridad teórica de la información, a diferencia de una seguridad computacionalmente segura algoritmo. El primero abarca algoritmos que probablemente no esté utilizando, como Shamir''s Secret Sharing y One-time pad. Este último contiene algoritmos que realmente usa y le interesan, como AES, RSA, Diffie-Hellman, OpenSSL, GnuTLS, etc.

Por lo tanto, no importa si usa números de /dev/random ya que están siendo extraídos de un CSPRNG de todos modos, y es "teóricamente posible" romper los algoritmos con los que probablemente los esté usando.

Por último, ese bit "teóricamente posible" significa exactamente eso. En este caso, eso significa usar toda la potencia de computación en el mundo, por la cantidad de tiempo que ese universo ha existido para descifrar la aplicación.

Por lo tanto, no tiene sentido usar /dev/random

Entonces usa /dev/urandom

Fuentes

1 2 3


Siempre use / dev / urandom.

/ dev / urandom y / dev / random usan el mismo generador de números aleatorios. Ambos están sembrados por el mismo grupo de entropía. Ambos darán un número igualmente aleatorio de un tamaño arbitrario. Ambos pueden dar una cantidad infinita de números aleatorios con solo una semilla de 256 bits. Siempre que la semilla inicial tenga 256 bits de entropía, puede tener un suministro infinito de números aleatorios arbitrariamente largos. No obtienes nada por usar / dev / random. El hecho de que haya dos dispositivos es un defecto en la API de Linux.

Si le preocupa la entropía, usar / dev / random no va a arreglar eso. Pero ralentizará tu aplicación sin generar números aleatorios más que / dev / urandom. Y si no le preocupa la entropía, ¿por qué está usando / dev / random en absoluto?

Aquí hay una explicación mucho mejor / más profunda sobre por qué siempre debes usar / dev / urandom: 2uo.de/myths-about-urandom


Usar /dev/random puede requerir la espera del resultado, ya que utiliza el denominado pool de entropía , donde los datos aleatorios pueden no estar disponibles en este momento.

/dev/urandom devuelve tantos bytes como el usuario solicitó y, por lo tanto, es menos aleatorio que /dev/random .

Como se puede leer en la página del manual:

aleatorio

Cuando se lee, el dispositivo /dev/random solo devolverá bytes aleatorios dentro del número estimado de bits de ruido en el grupo de entropía. /dev/random debe ser adecuado para usos que requieren una aleatoriedad de muy alta calidad, como la generación de un pad o llave de una sola vez. Cuando el grupo de entropía está vacío, las lecturas de /dev/random se bloquearán hasta que se recopile ruido ambiental adicional.

urandom

Una lectura del dispositivo /dev/urandom no bloqueará la espera de más entropía. Como resultado, si no hay suficiente entropía en el conjunto de entropía, los valores devueltos son teóricamente vulnerables a un ataque criptográfico en los algoritmos utilizados por el controlador. El conocimiento de cómo hacer esto no está disponible en la literatura actual no clasificada, pero es teóricamente posible que tal ataque pueda existir. Si esto es una preocupación en su aplicación, use /dev/random lugar.

Para fines criptográficos, realmente debería usar /dev/random por la naturaleza de los datos que devuelve. La posible espera debe considerarse como una compensación aceptable en aras de la seguridad, OMI.

Cuando necesite datos aleatorios rápidamente , debe usar /dev/urandom por supuesto.

Fuente: página de Wikipedia , página de man