Encontré en la RFC sobre TLS v1.2 que master_secret se calcula de esta manera :
master_secret = PRF(pre_master_secret, "master secret",
ClientHello.random + ServerHello.random)
mientras que, posteriormente, los bloques clave necesarios que componen el material clave se generan a través de
key_block = PRF(SecurityParameters.master_secret,
"key expansion",
SecurityParameters.server_random +
SecurityParameters.client_random);
Y aquí está mi pregunta: ¿hay alguna diferencia entre SecurityParameters.server_random y ServerHello.random o entre los números aleatorios del cliente correspondiente? Y si es así, ¿cuál es esta diferencia?
Mi opinión: creo que SecurityParameters.master_secret es el que se calcula con el primer PRF que se muestra arriba: así que, suponiendo esta "asimetría" de notación, quizás, también los números aleatorios en el segundo PRF son el mismo usado en el primero? Pero, si es así, ¿por qué esta notación diferente?