SPF, DKIM y DMARC: cómo funcionan los tres protocolos que evitan que suplanten tu dominio
Si alguien puede enviar emails haciéndose pasar por tu dominio, el problema no es de tu servidor de correo sino de la ausencia de tres registros DNS. SPF, DKIM y DMARC son protocolos complementarios que juntos hacen que falsificar el remitente de un email con tu dominio sea prácticamente imposible para los receptores que los verifican.
El problema que resuelven: el spoofing de correo
El protocolo SMTP original, diseñado en los años 80, no tiene ningún mecanismo de autenticación del remitente. Cualquier servidor de correo puede enviar un email declarando como remitente cualquier dirección, incluyendo la tuya. Los receptores no tienen forma nativa de verificar si el email realmente vino de tu servidor o de cualquier otro.
Esto lo explotan los atacantes para enviar phishing usando dominios de empresas reales y para hacer spam usando tu dominio como remitente, lo que acaba dañando tu reputación de envío. Ya escribimos en detalle sobre qué hacer si alguien envía correos usando tu dominio.
SPF: la lista de servidores autorizados a enviar por tu dominio
SPF (Sender Policy Framework) es un registro TXT en tu zona DNS que lista los servidores IP autorizados a enviar correo en nombre de tu dominio. Cuando el servidor receptor recibe un email de tu dominio, consulta el registro SPF y verifica que la IP del servidor que lo envió está en esa lista.
Un registro SPF típico para un dominio que solo envía desde ISPACTIVO tiene esta estructura:
v=spf1 include:ispactivo.com ip4:185.x.x.x -all
El -all al final significa «rechazar todos los envíos que no vengan de las fuentes listadas». Es la política más estricta. ~all (softfail) marca los envíos no autorizados pero no los rechaza, dejando la decisión al receptor. Para dominios en producción con envíos bien controlados, -all es lo correcto.
Una limitación importante de SPF: solo valida la IP del servidor que envía el email (el «envelope from» o MAIL FROM), no la dirección que el usuario ve en el campo «De:». Un atacante puede cumplir SPF de su propio dominio pero poner tu dirección en el campo De visible. Ahí es donde entra DKIM.
DKIM: firma criptográfica del contenido del email
DKIM (DomainKeys Identified Mail) añade una firma digital a cada email enviado desde tu servidor. El servidor de correo firma el mensaje (headers y cuerpo) con una clave privada que solo él conoce, e incluye esa firma en un header del email. El receptor verifica la firma usando la clave pública correspondiente, que está publicada en un registro DNS TXT de tu dominio.
Si alguien intercepta el email y modifica su contenido, la firma DKIM ya no coincide con la clave pública y el receptor lo detecta. Si alguien intenta crear un email falso con tu dominio, no tiene la clave privada para generar una firma válida.
El registro DNS de DKIM tiene un selector (un identificador del par de claves) para permitir múltiples claves activas simultáneamente y rotaciones de clave sin interrumpir el servicio. En ISPACTIVO el servicio de correo configura DKIM automáticamente con claves RSA de 2048 bits.
DMARC: la política que une SPF y DKIM
SPF valida la IP del servidor enviador. DKIM valida que el contenido no fue alterado. Pero ninguno de los dos solo es suficiente para proteger la dirección visible al usuario. DMARC (Domain-based Message Authentication, Reporting and Conformance) añade la capa que faltaba: exige que al menos uno de los dos (SPF o DKIM) pase y que el dominio autenticado coincida con el del campo «De:» visible.
Un registro DMARC se publica en _dmarc.tudominio.com como TXT:
v=DMARC1; p=reject; rua=mailto:dmarc@tudominio.com; pct=100
El campo p define la política: none solo monitoriza sin actuar, quarantine manda los emails que fallan a spam, y reject los rechaza completamente. El campo rua indica a dónde enviar los informes agregados de resultados de autenticación, que son muy útiles para identificar fuentes de envío legítimas que no están configuradas correctamente antes de pasar a una política estricta.
El orden de implementación correcto
El error más frecuente es configurar DMARC con política reject antes de tener SPF y DKIM bien configurados para todas las fuentes de envío. Si usas herramientas de email marketing (Mailchimp, Brevo), CRM con envío de correo o plataformas de ecommerce, todos esos sistemas necesitan estar incluidos en tu SPF y firmando con DKIM antes de activar reject.
El proceso correcto es: primero SPF incluyendo todas las fuentes, luego DKIM en todas las fuentes, luego DMARC con p=none para monitorizar durante 2 a 4 semanas analizando los informes, y finalmente subir a quarantine o reject cuando los informes confirman que todo el correo legítimo pasa la autenticación.