SSL / TLS: ¿El cliente selecciona una clave simétrica para el cifrado de datos?

0

Después de leer las excelentes respuestas aquí y documents sobre cómo funciona SSL. Tengo una duda sobre cuál es la función del paso ClientKeyExchange. En la respuesta y el documento vinculados anteriores, se dice que la parte del cliente de la clave se envía encriptada a través de la clave pública del servidor.

¿Eso significa que el cliente es responsable de seleccionar la clave simétrica que se utiliza para cifrar / descifrar los datos reales?

Si es así, ¿puede el cliente ser lo suficientemente confiable como para generar una clave de cifrado segura?

¿Cuál es la función del servidor en la generación de claves simétricas?

    
pregunta ng.newbie 11.12.2017 - 13:13
fuente

1 respuesta

2
  

... que el cliente es responsable de seleccionar la clave simétrica ...

Las claves utilizadas para el cifrado simétrico no son creadas solo por el cliente. Con el intercambio de claves RSA, el cliente crea el secreto maestro previo y lo transfiere cifrado con la clave pública del servidor al servidor. El secreto maestro se calcula en función de los datos del cliente y del servidor. De la sección 8.1 de RFC 5246 (TLS 1.2) :

  master_secret = PRF(pre_master_secret, "master secret",
                      ClientHello.random + ServerHello.random)
                      [0..47];

Y de este secreto maestro se derivan las claves para el cifrado y el MAC y el IV, como se especifica en sección 6.3 " Cálculo de clave ".

Para el intercambio de claves DH, el secreto pre-maestro ya se genera al combinar la información del cliente y el servidor. La generación del secreto maestro desde el pre-maestro permanece igual.

    
respondido por el Steffen Ullrich 11.12.2017 - 13:47
fuente

Lea otras preguntas en las etiquetas