¿Dónde se usa el hash en el protocolo de enlace TLS?

0

Entiendo los pasos básicos en el protocolo de enlace TLS. Mi pregunta es, ¿dónde y cómo encaja el hashing unidireccional en los pasos a continuación? ¿Es la clave de sesión que está hash? Muchos textos mencionan que el "mensaje" original se envía para verificar la integridad, pero ¿qué es este "mensaje" exactamente? He consultado documentación de IBM sobre el tema, pero todavía estoy confundido en cuanto a cómo encaja el hashing en los pasos a continuación. Cualquier ejemplo, mostrado en los pasos a continuación, sería apreciado.

  1. El navegador se conecta al servidor protegido con TLS (https)
  2. El navegador solicita que el servidor se identifique a sí mismo
  3. El servidor envía una copia de su certificado TLS que incluye el clave pública del servidor
  4. El navegador comprueba la raíz del certificado contra una lista de CA confiables
  5. Si el navegador confía en el certificado, crea, cifra y envía respalde una clave de sesión simétrica usando la clave pública del servidor
  6. El servidor descifra la clave de sesión simétrica usando su clave privada y envía un acuse de recibo cifrado con la clave de sesión a iniciar la sesión encriptada
  7. El servidor y el navegador ahora cifran todos los datos transmitidos con la clave de sesión
pregunta 03.06.2018 - 07:06
fuente

2 respuestas

3

Hay varios usos de las funciones hash dentro del protocolo de enlace TLS.

  • Creando el secreto maestro a partir de la información intercambiada en la clave intercambiada, consulte TLS 1.2 sección 8.1 . Esto no utiliza la función hash directamente, pero se crea una PRF (función pseudoaleatoria) utilizando hashes (consulte sección 5 ).
  • El material clave utilizado para el cifrado simétrico y el HMAC se obtiene utilizando el PRF, consulte sección 6.3 .
  • Y el PRF se usa nuevamente en el mensaje Finalizado para asegurarse de que el protocolo de enlace TLS no fue manipulado.
  • En varios lugares se realizan firmas digitales que también incluyen hashes. Encontrará estos, por ejemplo, para proteger ServerDHParams para el intercambio de claves DH ( sección 7.4.3 ).
  • Otra firma se realiza en CertificateVerify para asegurarse de que el cliente posee la clave privada para el certificado de cliente.
  • Y, por supuesto, las firmas digitales se utilizan en los propios certificados, por lo que los hashes están involucrados al validar la cadena de certificados .

Y una vez que termine el protocolo de enlace TLS, volverá a encontrar funciones hash utilizadas para el HMAC o en AE para proteger los datos de la aplicación (encriptados) contra manipulaciones.

    
respondido por el Steffen Ullrich 03.06.2018 - 09:19
fuente
1

El TLS1.2 RFC describe el protocolo de protocolo de enlace TLS en la sección 7.4 .

Como indica el RFC, el cliente y el servidor acuerdan un algoritmo de hash / firma, que se utiliza en todo el protocolo. El algoritmo se utiliza para garantizar la autenticidad y la integridad de los mensajes en el protocolo de intercambio.

Un ejemplo de uso del algoritmo hash / firma es la firma del certificado del servidor ( sección 7.4.2 ):

  

Si el cliente proporcionó una extensión "signature_algorithms", entonces todos      Los certificados proporcionados por el servidor DEBEN estar firmados por un      par de algoritmo hash / firma que aparece en esa extensión.

Además, el hashing se usa en el mensaje Finished del TLS Handshake para verificar que el intercambio de claves y el proceso de autenticación fueron correctos. Por lo tanto, el hash de la transcripción de los mensajes de intercambio entre el cliente y el servidor se incluye en el mensaje Finalizado y debe ser verificado por el otro lado ( section 7.4.2 ).

Seguramente hay más casos de uso para funciones hash en el protocolo de enlace TLS. Todos se describen en el RFC .

    
respondido por el fgk 03.06.2018 - 08:44
fuente

Lea otras preguntas en las etiquetas