¿Puede una tercera parte validar el origen de una sesión HTTPS?

1

Me pregunto si se puede usar HTTPS como prueba de que un servidor informó una respuesta.

Si entiendo correctamente, el protocolo inicial para HTTPS es la única vez que se usa la clave pública / privada del servidor. Después de ese punto, se usa una clave simétrica, por lo que los datos pasados no están firmados por el origen, solo se encriptan. ¿Es esto correcto? Si es así, ¿hay alguna forma de obtener firmas de sitios arbitrarios, dado que admiten HTTPS?

Si como cliente grabo la sesión HTTPS completa, ¿hay alguna manera de que pueda demostrarle a un tercero que los datos que digo que recibí realmente fueron enviados por el servidor?

    
pregunta Steve Ellis 05.05.2016 - 22:38
fuente

1 respuesta

4

Posiblemente, a veces.

Lo que se intercambia en el protocolo inicial no es solo una clave simétrica, sino una "clave maestra" para la sesión desde la cual las implementaciones de cliente y servidor del conjunto de cifrado seleccionado pueden extraer claves para varios propósitos.

Un conjunto de cifrado se divide en varios algoritmos para diferentes funcionalidades:

  • cambio de clave
  • cifrado masivo
  • Autenticidad del mensaje

Por ejemplo, TLS_DHE_RSA_AES_256_CBC_SHA256 usaría Diffie-Hellman y RSA efímeros para el intercambio de claves, AES-256 para el cifrado masivo y HMAC-SHA256 para la autenticidad del mensaje.

Cuando el intercambio de claves se produce al inicio, la clave RSA a largo plazo del certificado se utiliza para firmar los parámetros de intercambio de claves Diffie-Hellman. El intercambio de claves DH se utiliza para acordar una clave maestra. Luego, la clave maestra se utiliza para derivar otras claves, incluidos 256 bits para la clave AES (clave de cifrado) y varios bits para la clave de autenticación (utilizada en HMAC-SHA256, en este caso).

Cada registro se autentica utilizando el algoritmo de autenticación definido en el conjunto de cifrado. Por lo general, este es un hash HMAC.

Ahora, en términos de probar que los datos se recibieron después del hecho , hay dos casos:

  • Si se usa un intercambio de claves no efímero (por ejemplo, intercambio de claves RSA, no DHE o ECDHE), el tráfico capturado puede recuperarse por completo, incluida la validez de los hashes de autenticidad, dada la clave privada del certificado del servidor.
  • Si se usa un intercambio de clave efímero, incluso si obtiene la clave a largo plazo (clave privada del servidor) después de que se haya producido una conexión, no podrá recuperar la clave maestra y, por lo tanto, no podrá recuperar los mensajes. o probar la validez de los mensajes. Esto se debe a una propiedad conocida como "secreto hacia adelante", que surge debido al hecho de que los elementos privados del intercambio de claves se generan específicamente para esa sesión y se descartan cuando se completa el intercambio de claves.

Si, en el momento de la conexión, decide que do desea probar el contenido en una fecha posterior, puede guardar la clave maestra de la sesión en algún lugar. Al dar esta clave a la tercera parte que capturó la conversación, usted podría mostrarles el contenido y podrían ver que los registros de autenticidad eran válidos.

    
respondido por el Polynomial 05.05.2016 - 23:01
fuente

Lea otras preguntas en las etiquetas