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.