Perplejidades sobre el protocolo de enlace TLS

1

Analicé el protocolo de enlace TLS (1.2) y no logré entender el mensaje después de Change Chipher Spec

Aquí está:

Wiresharklollama"Mensaje de Apretón de manos cifrado" y el servidor lo envía al cliente y viceversa. ¿Cuál es el contenido de este mensaje? Debería ser el mensaje Finished pero ¿cuál es su contenido específico? También noté que la longitud es diferente para cada conjunto de cifrado diferente, así que, ¿se especifica esta longitud en algún lugar?

    
pregunta Steve 12.04.2014 - 19:58
fuente

1 respuesta

4

El mensaje Change Cipher Spec significa: a partir de ahora, los registros se cifrarán con el conjunto de cifrado y las claves recién negociados. Por lo tanto, todos los registros subsiguientes se se cifrarán, y eso es lo que observa: un registro encriptado. Por supuesto, no puede ver el contenido: ese es el punto de cifrado.

Justo después de que Change Cipher Spec sigue un mensaje Finished , que sirve como confirmación de que el protocolo de enlace funcionó correctamente. Los contenidos sin procesar tienen una longitud de 12 bytes, y se calculan como una especie de hash de todos los mensajes de reconocimiento anteriores. Estos 12 bytes se cifrarán, lo que implica agregar el valor MAC de registro, luego posiblemente un relleno (si se usa un cifrado de bloque en modo CBC).

Por ejemplo, si, en su ejemplo, utilizó un conjunto de cifrado con 3DES en modo CBC como cifrado de bloque, y SHA-1 para integridad, se agregan 20 bytes para el MAC, luego entre 1 y 8 bytes para el relleno , de modo que la longitud total sea un múltiplo de 8 (3DES usa bloques de 8 bytes). Esto produce 40 bytes, y eso es precisamente lo que observas.

Consulte el estándar , en particular sección 7.4.9 para el mensaje Finished ; Consulte también esta respuesta para obtener una guía de SSL / TLS.

    
respondido por el Thomas Pornin 12.04.2014 - 20:10
fuente

Lea otras preguntas en las etiquetas