DKIM: la huella digital de tus correos electrónicos
DomainKeys Identified Mail (DKIM) es un protocolo de autenticación de correo electrónico que utiliza criptografía de clave pública para garantizar que un correo no ha sido alterado durante el tránsito. A diferencia de SPF, que solo verifica la IP del servidor remitente, DKIM firma criptográficamente el contenido del correo, permitiendo al destinatario verificar su integridad y autenticidad. Cada correo firmado con DKIM contiene una cabecera DKIM-Signature con la firma digital calculada sobre el cuerpo del mensaje y algunas cabeceras seleccionadas.
El mecanismo funciona con dos claves: una clave privada (custodiada por el servidor de correo que envía) y una clave pública (publicada en el DNS del dominio). Cuando el servidor envía un correo, calcula un hash del contenido y lo cifra con la clave privada. El servidor receptor recupera la clave pública del DNS, descifra la firma y compara el hash con el calculado localmente. Si coinciden, el mensaje es auténtico e íntegro.
Cómo funciona el selector DKIM
Cada registro DKIM se identifica mediante un selector, un prefijo que permite tener múltiples claves DKIM para el mismo dominio. El registro se encuentra en selector._domainkey.dominio.com. Por ejemplo, si Google Workspace usa el selector "google", la clave pública se encuentra en google._domainkey.ejemplo.com. Este sistema permite usar claves diferentes para diferentes servicios: una para el servidor corporativo, otra para la plataforma de marketing y otra para el sistema de tickets.
En la cabecera DKIM-Signature, los parámetros clave son: d= (dominio firmante), s= (selector), h= (cabeceras incluidas en la firma), bh= (hash del cuerpo), b= (la firma propiamente dicha). El parámetro a= especifica el algoritmo (rsa-sha256 es el estándar actual). El parámetro c= especifica la canonicalización: relaxed es más tolerante con cambios menores en los espacios en blanco, strict requiere coincidencia exacta.
Diagnóstico y resolución de problemas DKIM
El problema DKIM más común es una firma que no supera la verificación. Las causas principales son: clave pública faltante o incorrecta en el DNS (verifícala con nuestro DKIM Lookup), modificaciones al mensaje durante el tránsito (listas de correo que alteran el asunto o el cuerpo), clave privada que no corresponde a la pública, y registros DNS con errores de formato. Las listas de correo son particularmente problemáticas porque a menudo añaden pies de página o modifican la cabecera Subject, invalidando la firma DKIM original.
Para diagnosticar problemas DKIM, analiza las cabeceras del correo recibido con el Email Header Analyzer. Busca el campo Authentication-Results que muestra el resultado de la verificación DKIM: dkim=pass significa que la firma es válida, dkim=fail indica un problema. La cabecera DKIM-Signature del correo contiene el selector (s=) y el dominio (d=) necesarios para la verificación manual.
Tamaño de la clave y rotación
El tamaño de la clave DKIM es un aspecto crucial para la seguridad. Las claves de 1024 bits, que antes eran el estándar, ahora se consideran vulnerables a ataques de factorización con hardware moderno. La recomendación actual es usar claves de 2048 bits, que ofrecen un nivel de seguridad adecuado para los próximos años. Algunos proveedores admiten claves de 4096 bits, pero estas pueden causar problemas con los límites de tamaño de los registros TXT en DNS (255 caracteres por cadena).
La rotación periódica de las claves DKIM es una buena práctica que a menudo se pasa por alto. Consiste en generar un nuevo par de claves, publicar la nueva clave pública con un nuevo selector, configurar el servidor para firmar con la nueva clave privada y, tras un período de transición, eliminar la antigua clave pública del DNS. Se recomienda la rotación cada 6-12 meses para limitar la exposición en caso de compromiso de la clave privada.
DKIM en el contexto de la autenticación de correo
DKIM es el segundo pilar de la autenticación de correo electrónico, entre SPF y DMARC. Mientras SPF verifica quién envía (la IP del servidor), DKIM verifica qué se envía (la integridad del mensaje). DMARC luego combina los resultados de ambos verificando la alineación del dominio: el dominio en la cabecera From debe coincidir con el dominio autenticado por SPF (envelope from) o DKIM (dominio de la firma). Sin DKIM, DMARC depende únicamente de SPF, lo que reduce significativamente la protección.
Para una verificación completa de tu configuración DKIM, usa nuestro DKIM Lookup especificando el dominio y el selector. La herramienta muestra la clave pública, el tamaño en bits, el algoritmo y señala cualquier problema. Combina el resultado con las verificaciones de SPF Lookup y DMARC Lookup para obtener un panorama completo de tu autenticación de correo.