diagnóstico · respuesta con fuentes

Error DKIM «body hash did not verify»: diagnóstico

El error DKIM «body hash did not verify» se produce cuando el cuerpo del correo se modifica después de aplicar la firma DKIM. El servidor receptor vuelve a calcular el hash del cuerpo recibido y comprueba que no coincide con el hash almacenado en el encabezado DKIM-Signature, lo que provoca un fallo de verificación.

Causas de la modificación del cuerpo

La causa más habitual es un servidor de correo intermedio o un dispositivo de seguridad que altera el contenido del mensaje. Esto incluye agregar espacios en blanco al final, insertar píxeles de seguimiento, incorporar avisos legales o cambiar los finales de línea de CRLF a LF. Incluso el cambio de un solo carácter en el cuerpo o en la estructura MIME invalida el hash criptográfico y produce un resultado fail.

Configuración de la canonicalización

DKIM usa algoritmos de canonicalización para determinar cuánta modificación se tolera antes de que falle un hash. La canonicalización simple es estricta y falla ante cualquier cambio. La canonicalización relaxed ignora ciertos cambios de espacios en blanco y las diferencias de mayúsculas y minúsculas en los encabezados. Si los relays modifican sus mensajes con frecuencia, cambiar a la canonicalización relaxed puede evitar fallos innecesarios.

Problemas de MIME y codificación

Un manejo incorrecto de Content-Transfer-Encoding puede provocar discrepancias en el hash. Si un relay convierte un mensaje de quoted-printable a 8bit o modifica el charset, el hash del cuerpo resultante cambiará. Asegúrese de que el agente de firma y las capas de transporte cumplan los estándares definidos en la RFC 2045 para mantener la integridad del cuerpo.

Pasos de diagnóstico

Para resolverlo, examine los encabezados sin procesar del mensaje que falló. Compare el cuerpo enviado originalmente con el cuerpo recibido para identificar exactamente dónde se produjo la modificación. Puede usar SendHQ o sus herramientas gratuitas (https://sendhq.cc/tools) para verificar la configuración actual de su registro DKIM y asegurarse de que la clave pública esté bien publicada en su DNS.

Estrategias de prevención

Evite los relays de correo que modifican el contenido. Si debe usar un servicio que agrega pies de página, asegúrese de que la firma se produzca en el último salto de la cadena de entrega. Otra opción es implementar ARC (Authenticated Received Chain) para conservar los resultados de autenticación originales a lo largo de varios saltos, de modo que el receptor final pueda confiar en la firma original.

Preguntas habituales de los equipos

¿Un fallo del hash del cuerpo afecta a SPF?

No, SPF y DKIM son independientes. Un fallo del hash del cuerpo de DKIM no invalida un resultado pass de SPF, pero puede afectar a la alineación DMARC si DKIM era el método de autenticación principal.

¿Agregar un pie de página puede causar este error?

Sí, agregar un aviso legal corporativo o el pie de página de una lista de correo después de firmar el mensaje cambia el contenido del cuerpo, lo que invalida el hash del cuerpo de DKIM.

¿Qué diferencia hay entre la canonicalización simple y la relaxed?

La simple es estricta y falla ante cualquier cambio. La relaxed tolera pequeños cambios en los espacios en blanco y en las mayúsculas de los encabezados, por lo que resiste mejor las modificaciones de los relays.

¿Cambiar el asunto provoca un fallo del hash del cuerpo?

No, el asunto forma parte del encabezado. Un cambio en el asunto provocaría un fallo del hash de los encabezados, no del hash del cuerpo.

Fuentes primarias