Números aleatorios utilizados en TLS

1

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?

    
pregunta M-elman 15.05.2017 - 19:08
fuente

1 respuesta

2

La derivación de clave maestra a trabajo se define como parte del protocolo de registro en la sección 6 y, por lo tanto, solo utiliza los 'parámetros' que se pasan a través de una API teórica del protocolo de protocolo de enlace en la sección 7.3 y 7.4 (y 8) que puede procesar directamente los mensajes de intercambio que incluyen tanto el contenido de Hello como de KeyExchange (s) y / o el (los) certificado (s). Sospecho que esta idea puede provenir, al menos en parte, de IPSec, donde el procesamiento del "portador" de nivel de datos está bastante aislado del procesamiento de configuración / administración. En la práctica, ninguna implementación de SSL / TLS que he observado impone esta separación; Normalmente hay bloques de código (métodos, etc.) para los dos niveles de protocolo que se pueden usar por separado (y deben ser) pero comparten sesión / conexión / estado criptográfico.

Además, no está claro en absoluto por la notación, pero el premaster-to-master ocurre solo cuando se realiza un apretón de manos completo (intercambio de claves), mientras que master-to-working se repite cada vez que se realiza una sesión. reanudó el uso de un apretón de manos abreviado, utilizando las nuevas letras del nuevo apretón de manos abreviado, no las del saludo de manos completo original; ver F.1.4.

    
respondido por el dave_thompson_085 16.05.2017 - 08:12
fuente

Lea otras preguntas en las etiquetas