En TLS , los mensajes de intercambio se codifican en registros . Cada registro tiene su propio encabezado. Un determinado mensaje de reconocimiento puede extenderse a varios registros, y un registro puede contener varios mensajes de reconocimiento.
Los cálculos de hash para CertificateVerify
y Finished
mensajes sobre los mensajes de handshake only : ingresas los mensajes sucesivos de handshake en la función hash, en el debido orden; cada mensaje de intercambio comienza con un encabezado de cuatro bytes (un byte para el tipo de mensaje, tres bytes para la longitud del mensaje de reconocimiento) y estos encabezados también van a la función de hash. Los encabezados de registro no no ingresan a la función hash.
En otras palabras, la fragmentación en registros se ignora en los cálculos de hash. El valor hash resultante no depende de cómo se transmiten los mensajes de intercambio, en particular, cualquier tipo de fragmentación. EAP / TLS define que los mensajes EAP contienen registros TLS . Ni los encabezados de Ethernet, los encabezados de paquetes EAP, ni siquiera los encabezados de registro TLS, ingresan a la función hash. Solo el propio mensaje de intercambio de manos está marcado.
(Esto permite una implementación limpia en capas: la biblioteca SSL / TLS produce mensajes de intercambio que se envían uno tras otro en un flujo de bytes conceptual sin fin; el flujo está en hash; la biblioteca sí no tiene que preocuparse por cómo se divide el flujo en registros encapsulados en mensajes EAP fragmentados en marcos Ethernet individuales.)