Qué función se usa para generar un cliente aleatorio en TLS

1

He estado aprendiendo TLS. Durante el Cliente-Servidor, se comparten sus valores aleatorios. El cliente genera un byte aleatorio de 28 bytes y lo combina con 4 bytes de tiempo de época para generar un token aleatorio de 32 bytes. ¿Cómo calculan estos al azar?

¿Simplemente llama a los generadores aleatorios del sistema como / dev / random o hay alguna otra función en el navegador para hacer esto? ¿Qué pasa con el servidor al azar?

    
pregunta Anonymous Platypus 03.07.2018 - 14:22
fuente

1 respuesta

5

La fuente no se especifica en el estándar, por lo que depende de la implementación.

De acuerdo con RFC 5246 § 7.4.1.2 para TLS 1.2, la aleatoriedad solo se describe como :

  

28 bytes generados por un generador seguro de números aleatorios.

Esto significa que será completamente dependiente de la implementación. Se puede utilizar cualquier función que produzca datos aleatorios seguros. Para muchos navegadores modernos, la implementación implica solicitar una semilla aleatoria del sistema operativo (por ejemplo, usar /dev/urandom en Linux) y luego usarla para alimentar un generador de números aleatorios criptográficamente en proceso.

Lo que realmente constituye "números aleatorios seguros" se especifica en BCP 106 , un documento que proporciona consejos para generar números aleatorios , la fuente de los números aleatorios, cómo probar los números aleatorios, etc. Esto se entiende simplemente como una declaración de las mejores prácticas y no es obligatorio. Sin embargo, los sistemas operativos comunes tienden a seguir estas prácticas al recopilar números aleatorios que se exportan a aplicaciones de espacio de usuario, como los navegadores web.

    
respondido por el forest 04.07.2018 - 05:06
fuente

Lea otras preguntas en las etiquetas