¿Cuál es la longitud correcta del mensaje de latido entre 2 ^ 14 y 2 ^ 16 ?
El RFC enlace dice que
La longitud total de un HeartbeatMessage NO DEBE exceder de 2 ^ 14 o
max_fragment_length cuando se negocia como se define en [RFC6066].
En este PoC Heartbleed el tamaño es 40 00
en hexadecimal, por lo que 16 384 - > 2 ^ 14
Pero si reviso estas explicaciones (dos de muchas):
Entonces, la longitud máxima es 65 535 - > 2 ^ 16
EDITAR SOLUCIONADO?
Probé el código PoC de Heartbleed, el código hb es:
hb = h2bin('''
18 03 02 00 03
01 40 00
''')
40 00
- > 16 384 - > 2 ^ 14
Si imprimo la longitud recibida, muestra 16 384
Si sustituyo 40 00
por FF FF
- > 2 ^ 16, la longitud de los datos recibidos sigue siendo 16 384 cuatro veces.
16 384
16 384
16 384
16 384
= > 2 ^ 16
Interesante
Entonces, el máximo es 2 ^ 16 pero se dividirá en paquetes de 2 ^ 14