¿Cuál es el propósito de Server Key Exchange cuando se usa Ephemeral Diffie-Hellman?

4

¿Cuál es el propósito de ServerKeyExchange cuando se usa el efímero Diffie-Hellman? En este caso, el ClientHello anunció EDH y EECDH (y no los protocolos anónimos), y el servidor seleccionó TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA en su ServerHello .

Según RFC 5246 , Sección 7.4.3:

  This message will be sent immediately after the server Certificate
  message (or the ServerHello message, if this is an anonymous
  negotiation).

  The ServerKeyExchange message is sent by the server only when the
  server Certificate message (if sent) does not contain enough data
  to allow the client to exchange a premaster secret. This is true
  for the following key exchange methods:

     DHE_DSS
     DHE_RSA
     DH_anon

Entiendo que RSA se está utilizando para la autenticación (y no para el transporte de claves). Pero como se está utilizando Diffie-Hellman, ambas partes contribuyen con material al master_secret final. Así que no hay necesidad de un mensaje que le permita al cliente contribuir más material antes para el premaster_secret .

¿Cuál es el propósito de ServerKeyExchange cuando se usa el efímero Diffie-Hellman?

    
pregunta jww 19.01.2015 - 03:10
fuente

1 respuesta

9

En Diffie-Hellman, el cliente no puede calcular un secreto premaster por sí solo; ambas partes contribuyen a su cálculo, por lo que el cliente necesita obtener una clave pública Diffie-Hellman del servidor. En el efímero Diffie-Hellman, esa clave pública no está en el certificado (eso es lo que significa efímero Diffie-Hellman ). Por lo tanto, el servidor debe enviar al cliente su clave pública DH efímera en un mensaje separado para que el cliente pueda calcular el secreto del maestro de memoria (recuerde, ambas partes deben conocer el secreto del maestro de maestro, porque así es como derivan el secreto maestro). Ese mensaje es el ServerKeyExchange .

No estoy seguro de lo que quiere decir con "un mensaje que le permite al cliente contribuir más material antes" con respecto al ServerKeyExchange . El ServerKeyExchange no permite al cliente aportar más material; el cliente envía un ClientKeyExchange en todas las suites TLS. El punto del ServerKeyExchange es permitir que el servidor contribuya más material al intercambio de claves, al permitirle enviar información adicional que no esté en el certificado.

Acerca del "retroceso al secreto de premaster:" El premaster_secret es el resultado inmediato del intercambio de claves. El intercambio de claves en TLS nunca produce un master_secret directamente; Esto se debe a que los diseñadores de TLS querían que el secreto maestro tuviera una extensión consistente con la difusión de entropía, de modo que su código de derivación de claves no tuviera que preocuparse por cómo sucedió el intercambio de claves. Los diferentes métodos de intercambio de claves producen secretos compartidos con un formato diferente, por lo que siempre tiene que convertir el secreto de premaster en un secreto maestro de 48 bytes. No hay un concepto real de "retroceso", ya que el secreto principal no se deriva hasta que finaliza el intercambio de claves.

    
respondido por el cpast 19.01.2015 - 03:51
fuente

Lea otras preguntas en las etiquetas