Cómo construir Pre-Master Secret [duplicado]

1

Estoy implementando un sistema similar a TLS, que utiliza ECDHE-RSA-AE-GCM-SHA , y me he enfrentado a dos interrogatorios.

Al final del protocolo de enlace (y antes del mensaje ChangeCipherSpec ), tanto el cliente como el servidor deben crear el mismo Pre-Master Secret .

¿En qué datos se basa este secreto? Ya no he encontrado la respuesta en los RFS ( 4492 y 5246 ), diría esto:

  • la clave pública del servidor ECDHE (enviar dentro de ServerKeyExchange message)
  • la clave ECDHE pública del cliente (enviada, cifrada, con el mensaje ClientKeyExchange )

Son, para mí, los componentes lógicos, ya que Mallory no pudo recuperar la clave ECDHE pública del cliente, porque estaba cifrada con el servidor PublicKey. En caso afirmativo, la firma del mensaje ServerkeyExchange sería incorrecta y el Cliente sabría ese intento.

Soy consciente de que esto no es una justificación adecuada y, cuando se habla de criptografía, este tipo de razonamiento es malo (cuando no está mal), pero como no he encontrado la respuesta en La RFC, todo lo que queda está aquí ...

Y además, ¿qué algoritmo usamos para construir el secreto Pre-Master? ¿Es una función hash clásica (SHA, ...)?

Sé que se usa SHA para expandir el MasterSecret (de los números aleatorios y el Pre-Patser Secret ), pero para su hermano pequeño, estoy en la niebla ...

    
pregunta EisenHeim 10.09.2015 - 17:42
fuente

1 respuesta

4

"ECDHE" significa "efímero Diffie-Hellman (con curvas elípticas)". De esto es de lo que viene el secreto pre-maestro. El cliente genera un par de claves DH aleatorias (una clave privada DH y la clave pública correspondiente). El servidor también genera un par de claves DH aleatorias. Se envían entre sí las partes públicas de sus respectivos pares de claves.

El cliente utiliza su clave DH privada, combinada con la clave pública DH del servidor, para obtener el secreto del maestro del maestro.

El servidor utiliza su clave DH privada, combinada con la clave pública DH del cliente, para obtener el secreto del premaster.

Por la magia de Diffie-Hellman, ambos obtienen el mismo valor para el secreto premaster. Pero, aún con esa magia, los intrusos, que solo vieron las claves públicas tanto del cliente como del servidor pero no tienen ninguna clave privada de DH, no pueden reconstruir el secreto del premaster.

("cifrado" no es una palabra; probablemente quieras decir "cifrado". Pero no, no hay cifrado aquí. Las claves públicas DH son públicas y, de hecho, se envían tal como están el cable.)

    
respondido por el Thomas Pornin 10.09.2015 - 18:32
fuente

Lea otras preguntas en las etiquetas