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.