¿Qué es un número al azar vulnerabilidad?
Las computadoras son deterministas y, por tanto, previsibles. Los ordenadores no puede, en sí mismas, generar números realmente aleatorios.
A falta de las aportaciones del exterior, las computadoras sólo pueden crear pseudo-números aleatorios.
Un número al azar vulnerabilidad se produce cuando un programa utiliza un método de generación de números aleatorios que sean:
- No aleatorio
- Previsible
Para generar buenos números aleatorios, el equipo debe tener dos cosas:
- Un buen algoritmo de generación de números aleatorios
- Se seleccionará al azar una unpredicatable y semillas para el algoritmo de generación de números aleatorios
Ejemplos de números aleatorios de Vulnerabilidad
Considere el siguiente fragmento de código:
x = rand ();
Este código genera números aleatorios malo porque cuando usted llama rand () antes de una semilla se ha establecido con srand (), se utiliza el valor por defecto 1 como semilla. Cualquier otra persona en la misma máquina con el mismo compilador que llama rand () con una semilla de 1 tendrán el mismo número aleatorio como usted acaba de hacer.
Veamos otro fragmento de código:
srand (time (0)); x = rand ();
Este código hace llamar srand () con el tiempo actual como una semilla. Sin embargo, este código sigue siendo inseguro debido a que:
- La hora del sistema es una muy mala semilla, porque es previsible dentro de un pequeño rango.
- El ANSI C rand () la función en sí no genera buenos números aleatorios.
Vamos a examinar un tercero fragmento de código:
srandom (tiempo (0)); x = aleatorio ();
Este código utiliza la BSD aleatorio () y srandom () funciones, que genera números aleatorios mucho mejor que sus predecesores ANSI C. Sin embargo, todavía utiliza este código de tiempo () para generar el número de semillas. Un mejor fuente de números aleatorios en BSD y sistemas Linux es el / dev / random dispositivo.
Número de semillas y de números aleatorios Vulnerabilidades
Buen número de las semillas proceden de acontecimientos imprevisibles, como las pulsaciones de teclado del usuario o movimientos de ratón. Estos no son perfectas fuentes de la aleatoriedad, sin embargo. El comportamiento humano es algo previsible y hardware puede amortiguación interrumpe el teclado y el ratón, reduciendo su aleatoriedad.
Muchos otros son los generadores de números aleatorios disponibles para varias plataformas y entornos de desarrollo. Es muy difícil crear una buena, y aún más difícil determinar si el generador de números aleatorios que ha creado es en realidad la generación de números aleatorios e imprevisibles. El mejor camino para la mayoría de las aplicaciones es implementar un generador de números aleatorios que ha sido objeto de criptoanálisis público.
Número aleatorio vulnerabilidades son de interés para los hackers cuando se puede utilizar para determinar los valores de entrada a criptográficas funciones. Esto puede ser utilizado en criptoanálisis.
Uso indebido de la función de llamadas de rand () y azar () son las causas normales de número aleatorio vulnerabilidades.
Otras fuentes de información sobre generación de números aleatorios
Para obtener más información en la generación de números aleatorios, leer el RFC 1750 - Recomendaciones para la Seguridad aleatoriedad.
|
Guardar ¿Qué es un número al azar vulnerabilidad?





