Se abre en una pestaña nueva

SPF, DKIM y DMARC: qué son, cómo funcionan y cómo configurarlos correctamente

Portátil con un panel DNS abierto junto a una libreta con un esquema de servicios de correo.

Configurar el correo de un dominio ya no consiste únicamente en crear buzones y conseguir que los mensajes salgan.

Cuando envías desde nombre@tuempresa.es, el servidor que recibe ese correo necesita responder a varias preguntas:

  • ¿este servidor está autorizado para enviar mensajes utilizando tuempresa.es?
  • ¿el mensaje ha sido firmado por un sistema autorizado?
  • ¿el dominio que aparece como remitente coincide realmente con el dominio que se está autenticando?
  • ¿qué debe hacerse si estas comprobaciones fallan?

SPF, DKIM y DMARC responden precisamente a esas preguntas.

Son tres mecanismos diferentes, pero funcionan mejor juntos. Microsoft los considera componentes interdependientes de la autenticación del correo y Google recomienda configurar los tres en los dominios de envío. Además, Gmail exige actualmente SPF o DKIM a los remitentes y SPF, DKIM y DMARC a determinados remitentes de gran volumen.

Para una pequeña empresa tienen dos funciones especialmente importantes:

  1. dificultar que terceros suplanten tu dominio para enviar correos falsos;
  2. facilitar que Gmail, Outlook y otros sistemas puedan verificar los mensajes legítimos que realmente envías.

Pero configurar estos registros mal también puede provocar justo lo contrario: correos que terminan en spam o incluso mensajes legítimos rechazados.

SPF, DKIM y DMARC no son lo mismo

Una forma sencilla de diferenciarlos es esta:

Sistema Qué comprueba
SPF Desde qué servidores está autorizado a enviarse correo para el dominio
DKIM Si el mensaje contiene una firma digital válida asociada al dominio
DMARC Si SPF o DKIM autentican correctamente el dominio que el destinatario ve en el campo From y qué hacer cuando no ocurre

Hay un detalle importante.

DMARC no sustituye a SPF y DKIM. Se apoya en ellos.

Y tampoco basta necesariamente con que SPF o DKIM indiquen PASS. Para superar DMARC tiene que existir además lo que se denomina alineación.

Más adelante veremos por qué esto es importante.

Antes de tocar SPF, DKIM o DMARC: averigua quién gestiona tus DNS

Los tres sistemas dependen del DNS del dominio.

Esto provoca uno de los errores más frecuentes: entrar en la empresa donde compraste el dominio y añadir allí los registros, aunque los DNS estén realmente gestionados en otro proveedor.

Puedes tener:

  • el dominio registrado en una empresa;
  • la web alojada en otra;
  • los DNS gestionados en una tercera;
  • el correo en Microsoft 365;
  • newsletters enviadas desde otra plataforma;
  • formularios de WordPress utilizando otro servicio.

El registro debe modificarse donde estén alojadas las DNS autoritativas del dominio.

Si no tienes clara esta diferencia, conviene revisar antes nuestra guía sobre cómo cambiar registros DNS sin romper la web ni el correo.

Añadir un TXT correcto en la zona DNS equivocada no servirá de nada.

Qué es SPF

SPF significa Sender Policy Framework.

Su función es indicar qué servidores están autorizados para enviar correo utilizando un determinado dominio en la identidad SMTP utilizada por SPF.

Para ello se publica un registro TXT en DNS.

Una configuración sencilla podría parecerse a esta:

v=spf1 include:SERVICIO-DE-CORREO -all

No copies este ejemplo literalmente. El valor que debes utilizar depende de quién envía realmente correo por tu dominio.

Por ejemplo, el proveedor puede pedirte autorizar:

  • Microsoft 365;
  • Google Workspace;
  • el servidor del hosting;
  • una plataforma de newsletters;
  • un CRM;
  • un servicio transaccional utilizado por WordPress.

Cómo funciona SPF

Supongamos que un servidor recibe un mensaje relacionado con empresa.es.

El servidor receptor puede consultar el SPF publicado para comprobar si la infraestructura que está intentando entregar ese mensaje está autorizada.

Si coincide con una de las fuentes permitidas, SPF puede devolver PASS.

Si no coincide, el resultado dependerá de la configuración y de cómo gestione el receptor ese resultado.

La sintaxis SPF permite distintos calificadores. Entre los más habituales están:

-all

y:

~all

-all indica fail para las fuentes que no hayan sido autorizadas anteriormente.

~all indica softfail.

El estándar SPF define además otros resultados, como neutral.

Un ejemplo práctico

Una empresa puede enviar correo desde varios lugares:

  • empleados desde Microsoft 365;
  • formularios de WordPress mediante un proveedor SMTP;
  • facturas desde un ERP;
  • newsletters desde una plataforma de email marketing.

El SPF debe contemplar las fuentes legítimas que lo necesiten.

El problema aparece cuando alguien configura únicamente Microsoft 365 y meses después conecta otra plataforma.

El correo corporativo puede seguir funcionando perfectamente mientras las newsletters o los formularios fallan SPF.

Por eso un SPF no debería diseñarse preguntando:

¿Dónde tengo mis buzones?

La pregunta correcta es:

¿Qué sistemas envían correo utilizando mi dominio?

Problema habitual 1: crear varios registros SPF

Otro error típico consiste en ir añadiendo un SPF independiente cada vez que aparece un proveedor.

Por ejemplo:

v=spf1 include:proveedor-a.example -all

y además:

v=spf1 include:proveedor-b.example -all

No deberías resolver de esta manera la incorporación de nuevos remitentes.

Normalmente hay que integrar las fuentes autorizadas dentro de la política SPF correspondiente, siguiendo las instrucciones de los proveedores implicados.

Añadir registros sin comprender el que ya existe es una de esas modificaciones DNS aparentemente pequeñas que puede afectar al correo de toda la empresa.

Problema habitual 2: olvidar un servicio externo

Este caso es muy frecuente en WordPress.

El correo habitual de la empresa utiliza Microsoft 365 o Google Workspace, pero:

  • WooCommerce envía pedidos;
  • el formulario envía solicitudes;
  • una academia online manda avisos;
  • un sistema de reservas envía confirmaciones;
  • un CRM envía mensajes comerciales.

Si alguno de esos sistemas utiliza una infraestructura diferente, debes revisar cómo autentica su correo.

No des por hecho que tener correctamente configurado el buzón info@empresa.es significa que cualquier sistema que utilice esa dirección como remitente está automáticamente autorizado.

Problema habitual 3: superar el límite de consultas DNS de SPF

SPF tampoco puede crecer indefinidamente.

El estándar limita a 10 las consultas DNS provocadas por determinados mecanismos y modificadores durante la evaluación SPF. Superar ese límite debe producir un permerror.

Esto puede convertirse en un problema cuando el registro acumula numerosos:

include:

y cada uno de esos proveedores realiza a su vez otras consultas.

Por eso no conviene añadir servicios indefinidamente al SPF sin revisar el resultado final.

SPF tiene una limitación importante

SPF no verifica por sí mismo que el dominio que ve la persona en:

From: ventas@empresa.es

sea necesariamente el mismo que SPF está autenticando.

Esta diferencia es una de las razones por las que SPF, utilizado aisladamente, no resuelve completamente la suplantación del remitente visible.

Ahí empieza a ser importante DMARC.

Qué es DKIM

DKIM significa DomainKeys Identified Mail.

En lugar de basarse principalmente en qué servidor entrega el mensaje, DKIM utiliza una firma criptográfica.

Cuando el proveedor envía un correo, añade una firma DKIM a sus cabeceras.

El servidor receptor puede consultar el DNS del dominio, obtener la clave pública correspondiente y comprobar esa firma.

Esto permite verificar que determinados elementos firmados del mensaje no han sido alterados después de generarse.

Microsoft describe DKIM precisamente como un mecanismo para firmar digitalmente elementos importantes del mensaje y permitir que el destinatario compruebe esa firma.

Clave privada y clave pública

Puedes pensar en DKIM como un sistema formado por dos piezas.

El servicio que envía el mensaje conserva una clave privada.

En tus DNS se publica la información necesaria para acceder a la clave pública.

El receptor utiliza esa información para validar la firma.

La clave privada no debes publicarla en DNS.

Qué es el selector DKIM

DKIM introduce además otro concepto: el selector.

Puedes encontrarte registros como:

selector1._domainkey.empresa.es

o:

google._domainkey.empresa.es

El selector permite identificar qué clave debe utilizarse para comprobar la firma.

Esto hace posible, entre otras cosas, utilizar distintas claves y rotarlas sin tener que alterar el funcionamiento global del dominio.

El proveedor de correo debe indicarte:

  • selector;
  • nombre del registro;
  • tipo de registro;
  • valor que debes publicar.

No deberías inventarlos.

DKIM puede utilizar TXT o CNAME según el proveedor

No existe una receta única para copiar y pegar.

Algunos proveedores te pedirán crear un TXT.

Otros utilizan CNAME.

Microsoft 365, por ejemplo, utiliza CNAME para determinados registros DKIM de dominios personalizados.

Por eso una guía que te diga simplemente:

«Crea este DKIM»

sin saber qué proveedor utilizas es incompleta.

Publicar el registro no siempre activa DKIM

Este matiz provoca bastantes errores.

Puedes añadir correctamente el registro DNS y, aun así, que tus mensajes todavía no estén siendo firmados.

En muchos servicios hay dos pasos:

  1. publicar el registro DNS;
  2. activar la firma DKIM dentro del panel del proveedor.

Por tanto, después de configurarlo debes enviar un mensaje real y comprobar sus cabeceras.

Lo importante no es que el TXT o CNAME exista.

Lo importante es que el mensaje salga realmente firmado y que la validación indique:

dkim=pass

Problemas habituales de DKIM

Los más frecuentes son:

  • selector equivocado;
  • registro publicado en una zona DNS que no es autoritativa;
  • error al copiar el nombre o valor;
  • DKIM publicado pero firma no activada;
  • claves antiguas después de cambiar de proveedor;
  • problemas durante una rotación de claves;
  • un servicio externo enviando sin firmar con tu dominio;
  • modificación del mensaje durante determinados procesos de reenvío.

Google recomienda actualmente claves DKIM de 2048 bits cuando el proveedor las admite, y exige al menos 1024 bits para determinados mensajes dirigidos a Gmail.

Qué es DMARC

DMARC significa Domain-based Message Authentication, Reporting and Conformance.

Es la pieza que conecta SPF y DKIM con el dominio que realmente ve el destinatario.

También permite decirle al receptor qué quieres que haga cuando el mensaje no cumple la política.

Un registro DMARC sencillo puede tener este aspecto:

v=DMARC1; p=none; rua=mailto:dmarc@empresa.es

Se publica como TXT en:

_dmarc.empresa.es

Pero, de nuevo, es solo un ejemplo.

No deberías copiar una política DMARC sin comprender primero qué sistemas envían correo con tu dominio.

La idea más importante de DMARC: la alineación

Aquí está uno de los puntos que más confusión provoca.

Supongamos que recibes un mensaje que visualmente muestra:

From: facturacion@empresa.es

Puede ocurrir que SPF haya validado otro dominio utilizado durante la conversación SMTP.

O que DKIM haya firmado utilizando el dominio de la plataforma que envía el correo.

SPF podría indicar:

spf=pass

y DKIM:

dkim=pass

pero eso no significa automáticamente que DMARC tenga que aprobar el mensaje.

DMARC comprueba también la relación entre esos dominios y el dominio visible en From:. Microsoft describe DMARC precisamente como una comprobación de alineación entre las identidades autenticadas y el dominio mostrado al usuario.

Simplificando:

para superar DMARC, SPF o DKIM deben aprobar y además estar adecuadamente alineados con el dominio From.

No es obligatorio que pasen los dos.

Puede superar DMARC gracias a SPF correctamente alineado aunque falle DKIM, o gracias a DKIM alineado aunque SPF falle.

Esta segunda situación tiene especial importancia en determinados reenvíos de correo.

Las tres políticas principales de DMARC

DMARC permite especificar qué política quieres aplicar cuando los mensajes no cumplen sus requisitos.

Las tres más conocidas son:

p=none

Ejemplo:

v=DMARC1; p=none;

Es básicamente una política de observación.

Los receptores pueden evaluar DMARC y generar informes, pero tú no estás pidiendo que los mensajes que fallen sean puestos en cuarentena o rechazados por esa política.

Suele ser el punto adecuado para empezar.

p=quarantine

Ejemplo:

v=DMARC1; p=quarantine;

Estás solicitando que los mensajes que no superen DMARC sean tratados como sospechosos.

Dependiendo del receptor, pueden acabar por ejemplo en spam o cuarentena.

p=reject

Ejemplo:

v=DMARC1; p=reject;

Estás solicitando que los mensajes que fallen DMARC sean rechazados.

Es una política fuerte contra la suplantación, pero configurarla antes de identificar todos tus remitentes legítimos puede bloquear tus propios mensajes.

No empieces directamente con p=reject

Este es probablemente el error DMARC más peligroso.

Una empresa configura:

p=reject

porque parece la opción «más segura».

Pero nadie ha comprobado todavía:

  • la web;
  • las newsletters;
  • el ERP;
  • las facturas;
  • el CRM;
  • los formularios;
  • la herramienta de marketing;
  • sistemas antiguos que continúan enviando mensajes.

Resultado: algunos correos legítimos empiezan a ser rechazados.

Google recomienda desplegar DMARC gradualmente: primero p=none, analizar los informes y después avanzar hacia políticas de cuarentena o rechazo una vez comprobados los distintos flujos de correo.

Ese enfoque tiene mucho más sentido que publicar una política estricta a ciegas.

Los informes DMARC: una de sus funciones más útiles

DMARC no solo permite establecer una política.

También puede proporcionar información sobre quién está enviando correo utilizando tu dominio.

Para solicitar informes agregados se utiliza habitualmente la etiqueta:

rua=

Por ejemplo:

v=DMARC1; p=none; rua=mailto:dmarc@empresa.es;

Estos informes pueden ayudarte a detectar:

  • proveedores legítimos que habías olvidado;
  • servicios mal configurados;
  • mensajes que fallan SPF;
  • mensajes que fallan DKIM;
  • problemas de alineación;
  • posibles intentos de suplantación.

Google recomienda utilizar informes DMARC precisamente para monitorizar el correo que se envía —o parece enviarse— desde tu dominio.

El inconveniente es que los informes agregados suelen llegar en XML y pueden resultar poco manejables directamente.

Para organizaciones con bastante correo suele ser más práctico utilizar herramientas que los interpreten y agrupen.

Cómo configurar SPF, DKIM y DMARC sin romper tu correo

No existe un único registro válido para todas las empresas.

La configuración depende de tu infraestructura.

Un procedimiento razonable sería este.

1. Haz inventario de todos los sistemas que envían correo

No empieces por DNS.

Empieza con una lista.

Incluye:

  • correo de los empleados;
  • WordPress;
  • formularios;
  • WooCommerce;
  • facturación;
  • ERP;
  • CRM;
  • newsletters;
  • herramientas comerciales;
  • sistemas de reservas;
  • plataformas de cursos;
  • aplicaciones externas;
  • servidores antiguos que todavía puedan estar enviando.

Si olvidas un sistema legítimo, una política posterior puede acabar perjudicándolo.

2. Averigua quién gestiona realmente los DNS

Comprueba los nameservers del dominio.

Eso te permite saber dónde debes publicar los registros.

No confundas:

  • registrador;
  • hosting;
  • proveedor DNS;
  • proveedor de correo.

Pueden ser cuatro empresas distintas.

3. Configura SPF

Consulta la documentación de todos los servicios que deban incluirse.

Construye una única política coherente para ese dominio y comprueba que no exceda los límites técnicos de SPF.

No elimines el registro existente simplemente porque un nuevo proveedor te entregue otro ejemplo.

Primero entiende qué autoriza el anterior.

4. Configura DKIM para cada servicio relevante

Genera o activa las claves desde el proveedor.

Publica los TXT o CNAME que te facilite.

Después activa la firma si el proveedor exige un paso adicional.

5. Comprueba mensajes reales

Envía correos a cuentas externas y revisa las cabeceras.

Busca resultados como:

spf=pass
dkim=pass
dmarc=pass

Pero no te limites a comprobar un mensaje enviado manualmente desde Outlook o Gmail.

Prueba también:

  • formulario;
  • newsletter;
  • factura;
  • reserva;
  • pedido de WooCommerce;
  • cualquier otro sistema importante.

6. Publica inicialmente DMARC en modo de monitorización

Una configuración básica podría partir de:

v=DMARC1; p=none; rua=mailto:DIRECCION-PARA-INFORMES;

La dirección debe existir o gestionarse mediante un servicio preparado para recibir esos informes.

7. Analiza los resultados

Busca remitentes desconocidos y, sobre todo, remitentes legítimos que todavía estén fallando.

Corrige primero esos problemas.

8. Avanza progresivamente

Cuando conozcas bien los sistemas de envío y hayas comprobado que la autenticación funciona, puedes valorar políticas más estrictas.

El objetivo razonable no es llegar a p=reject cuanto antes.

Es llegar a una política estricta sin bloquear el correo legítimo.

SPF, DKIM y DMARC no garantizan que tu correo llegue a la bandeja de entrada

Otro error frecuente consiste en interpretar:

SPF PASS
DKIM PASS
DMARC PASS

como:

Mi correo nunca irá a spam.

No funciona así.

La autenticación es muy importante, pero la entregabilidad también puede depender de otros factores:

  • reputación del dominio;
  • reputación de la IP;
  • volumen de envío;
  • quejas de los destinatarios;
  • patrones de spam;
  • listas de bloqueo;
  • contenido;
  • comportamiento histórico;
  • políticas específicas del receptor.

Microsoft advierte expresamente que autenticar correctamente el correo no garantiza su entrega.

SPF, DKIM y DMARC permiten al receptor responder a una pregunta concreta:

¿Puedo comprobar que este mensaje está autorizado y relacionado correctamente con el dominio que afirma representarlo?

No obligan al receptor a colocarlo en la bandeja de entrada.

El caso de WordPress merece atención especial

En una pyme es muy habitual encontrar esta combinación:

Correo corporativo → Microsoft 365
Web → otro hosting
Formularios → WordPress
Newsletter → plataforma externa

El propietario cree que solo utiliza Microsoft 365 porque ahí lee su correo.

Pero técnicamente hay tres o cuatro infraestructuras enviando mensajes.

Este tipo de dependencias es una de las razones por las que el mantenimiento de WordPress debería incluir también la revisión de formularios e integraciones importantes, no solamente actualizaciones de plugins.

Cuando hagas cambios técnicos importantes conviene probar estas funciones igual que probarías reservas, pagos o accesos. Nuestra guía sobre cómo actualizar WordPress sin romper la web explica precisamente la importancia de validar los procesos críticos después de una intervención.

Errores que veo especialmente arriesgados

Si tuviera que reducir todos los problemas anteriores a una lista de comprobación, prestaría atención a estos:

  1. Añadir registros DNS en el proveedor equivocado.
  2. Sobrescribir un SPF existente sin comprobar qué servicios autorizaba.
  3. Acumular varios SPF independientes en lugar de construir la política correctamente.
  4. Superar el límite de consultas DNS de SPF.
  5. Publicar DKIM y olvidar activar la firma en el proveedor.
  6. Configurar solo el correo de los empleados y olvidarse de WordPress, CRM, newsletters o facturación.
  7. Confundir SPF PASS o DKIM PASS con DMARC PASS.
  8. Activar p=reject sin haber monitorizado antes los remitentes legítimos.
  9. Dar por terminada la configuración porque el registro aparece en DNS, sin comprobar mensajes reales.
  10. Pensar que autenticación correcta equivale automáticamente a buena entregabilidad.

También merece la pena tratar estos registros como parte de la infraestructura de la empresa.

Los accesos al proveedor DNS, al correo, al dominio y a WordPress deberían estar controlados y documentados. En nuestra guía sobre seguridad WordPress para empresas explicamos por qué la seguridad depende también de saber quién controla cada componente y cada acceso.

Cómo comprobar si SPF, DKIM y DMARC están funcionando

Una configuración no está terminada hasta que la pruebas.

El procedimiento más útil consiste en enviar un correo real y revisar sus cabeceras.

En muchos proveedores encontrarás un bloque parecido a:

Authentication-Results:
spf=pass
dkim=pass
dmarc=pass

Comprueba además qué dominios están implicados.

No busques únicamente la palabra pass.

Especialmente con DMARC interesa verificar que la autenticación está alineada con el dominio que utiliza el remitente visible.

Y realiza pruebas desde cada sistema que envía correo.

Que un mensaje enviado desde tu buzón corporativo supere SPF, DKIM y DMARC no demuestra que el formulario de WordPress haga lo mismo.

Una configuración correcta empieza por conocer tu correo

SPF, DKIM y DMARC parecen inicialmente tres registros DNS que hay que copiar.

Ese enfoque es demasiado simple.

Para configurarlos bien necesitas saber:

  • quién envía;
  • desde dónde envía;
  • qué dominio autentica;
  • con qué dominio firma;
  • qué dirección ve finalmente el destinatario;
  • qué servicios deben seguir autorizados;
  • qué política quieres aplicar cuando algo no coincide.

La parte complicada rara vez es escribir un TXT.

Lo difícil es conocer toda la infraestructura de envío y evitar que queden sistemas legítimos fuera de ella.

Por eso, si estás configurando el correo de una empresa, empieza haciendo inventario.

Después configura SPF y DKIM.

Comprueba mensajes reales.

Activa DMARC en modo de observación.

Analiza.

Y solo entonces endurece la política.

Es menos espectacular que copiar tres registros DNS en cinco minutos, pero reduce considerablemente la posibilidad de descubrir el error cuando una factura, una reserva o una solicitud de un cliente ya se ha perdido.

Autor/a:

Deja el primer comentario

Contenidos relacionados