¿Qué es DKIM?
DKIM (DomainKeys Identified Mail) es un método de autenticación de correo electrónico definido en el RFC 6376. Utiliza criptografía asimétrica: una clave privada firma los mensajes salientes en tu servidor de correo y una clave pública publicada en el DNS permite a cualquier servidor receptor verificar esa firma. Si el mensaje fue manipulado después de ser firmado, la firma se rompe.
A diferencia de SPF, DKIM autentica el contenido del mensaje en sí (encabezados y/o cuerpo), no solo la IP de envío. Esto lo hace resistente a escenarios de reenvío de correo donde la IP del remitente cambia.
¿Por qué necesita DKIM?
1Integridad del mensaje
Prueba que el cuerpo y los encabezados del correo no han sido modificados desde que salieron de tu servidor.
2Sobrevive al reenvío
La firma está incrustada en el correo, no ligada a la IP de envío — permanece válida a través de repetidores.
3Requerido para DMARC
DMARC puede usar la alineación DKIM como base para decisiones de aprobación o rechazo.
4Impulso a la entregabilidad
Gmail, Outlook y otros valoran positivamente el correo firmado con DKIM en tus decisiones de filtrado.
Cómo funciona DKIM — paso a paso
Generas un par de claves pública/privada y configuras tu servidor de correo para usar la clave privada.
Publicas la clave pública como un registro DNS TXT en `selector._domainkey.sudominio.com`.
Cuando envías un correo, el servidor de correo genera un hash de los encabezados seleccionados y del cuerpo, luego firma ese hash con la clave privada.
La firma se añade como un encabezado `DKIM-Signature` en el correo electrónico.
El servidor receptor lee el `DKIM-Signature`, obtiene la clave pública del DNS, descifra la firma y vuelve a calcular el hash del mensaje para comparar.
Una coincidencia significa que el mensaje es auténtico e inalterado. Una discrepancia indica manipulación o configuración incorrecta.
Registro DNS DKIM (clave pública)
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADC...AQABCampos clave
v=DKIM1— identificador de versiónk=rsa— tipo de clave (rsa o ed25519)p=— clave pública codificada en base64h=— algoritmos de hash aceptables (sha256)s=— tipo de servicio (email o *)t=s— bandera de modo estrictoEncabezado DKIM-Signature (en el correo)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=sudominio.com; s=mail2024;
h=from:to:subject:date:message-id;
bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;
b=mY93xZ...Significado de los campos de la firma
Problemas comunes de DKIM
Modificación del cuerpo
Algunas listas de correo o escáneres de virus alteran el cuerpo, rompiendo el hash bh=.
Falta el registro DNS
Verifica que tu registro TXT esté publicado y propagado antes de realizar envíos.
Selector incorrecto
El s= en la firma debe coincidir exactamente con el selector en el nombre del registro DNS.
Longitud de clave insuficiente
Use claves RSA de al menos 2048 bits. Las claves de 1024 bits se consideran inseguras y son rechazadas por algunos proveedores.
Preguntas Frecuentes
DKIM añade una firma digital a tus correos. Permite a los servidores verificar que el correo fue autorizado por el dueño del dominio y que el contenido no fue alterado en el tránsito.
Es una cadena única para localizar la clave pública en tu DNS. Se encuentra en la configuración de tu proveedor de correo (ESP) o en el encabezado 's=' de un correo enviado.
Puede ser por un selector incorrecto, falta de propagación del DNS o que el registro TXT se añadió al nivel de dominio equivocado.
Sí, es recomendable si usa varios servicios de correo. Cada uno usará un selector único para coexistir en tu DNS sin conflictos.
El selector es el prefijo de tu registro DNS de DKIM (selector._domainkey.yourdomain.com). Google Workspace suele usar google, Microsoft 365 usa selector1 y selector2, y SendGrid usa s1 y s2. También puedes leer la cabecera DKIM-Signature de un correo enviado y fijarte en la etiqueta s= para encontrarlo.
Significa que el verificador no pudo encontrar una clave válida en el selector que consultaste, normalmente porque el registro no se publicó, el selector es incorrecto o el DNS aún no se ha propagado. Confirma el selector exacto con tu proveedor de correo, vuelve a publicar el registro TXT o CNAME en el DNS y verifica de nuevo tras la propagación.