El correo electrónico se diseñó sin ninguna comprobación de que un mensaje venga realmente de la dirección que dice. Cualquiera puede escribir From: [email protected]. Tres estándares basados en DNS cierran esa brecha: SPF, DKIM y DMARC. Funcionan juntos y cada uno responde a una pregunta distinta. Sin ellos, su correo tiene más probabilidades de acabar en spam y los delincuentes pueden suplantar su dominio.
SPF: ¿qué servidores pueden enviar en nombre de este dominio?
El titular de un dominio publica una lista de servidores de envío permitidos como registro TXT:
example.com. IN TXT "v=spf1 ip4:203.0.113.0/24 include:_spf.example.net -all"
Cuando llega un mensaje, el servidor receptor busca el registro SPF del dominio del remitente del sobre (la dirección oculta MAIL FROM, no la línea From visible) y comprueba si la IP del servidor que se conecta figura en la lista. El final indica qué hacer con todo lo demás:
| Prefijo | Significado |
|---|---|
+all |
Pasa (valor por defecto si se omite) |
-all |
Fallo: rechaza el correo de otras fuentes |
~all |
Fallo suave: acepta pero lo trata como sospechoso |
?all |
Neutral: sin opinión |
SPF tiene dos límites famosos: un registro puede provocar como máximo 10 consultas DNS (cuentan cada include: y a/mx) y un dominio debe publicar un solo registro SPF. SPF también se rompe cuando el correo se reenvía, porque la IP del reenviador no está en su lista.
Construya un registro con el Generador de Registros SPF.
DKIM: ¿se alteró el mensaje y el dominio responde por él?
El servidor emisor firma con una clave privada cabeceras seleccionadas y el cuerpo, y añade una cabecera como esta:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=example.com;
[email protected]; q=dns/txt; s=selector1; t=1791022872; h=from : to :
subject : date; bh=Ba3gj8+xBPQLJTahTfzW6RbWQ/XPgESxkCi2B66PSQg=;
b=<signature>
d= es el dominio firmante, s= el selector que indica qué clave pública usar, h= las cabeceras firmadas, bh= un hash del cuerpo y b= la firma. La clave pública correspondiente está en el DNS en selector._domainkey.dominio:
selector1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."
El receptor obtiene la clave y verifica la firma. Cambie un solo carácter del cuerpo firmado y la verificación falla, así se detecta la manipulación. DKIM sobrevive al reenvío, porque la firma viaja con el mensaje. Cree un par de claves y su registro con el Generador de Registros DKIM.
DMARC: ¿qué debe ocurrir cuando fallan las comprobaciones?
SPF y DKIM prueban un dominio, pero no necesariamente el que el lector ve en la línea From. DMARC lo une con la alineación: para que el correo pase, SPF o DKIM deben pasar y el dominio que autenticaron debe coincidir con el dominio visible de From. El registro está en _dmarc.dominio:
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100"
Política p= |
Efecto sobre el correo que falla |
|---|---|
none |
Solo vigilar: no actuar, pero enviar informes |
quarantine |
Tratar el correo que falla como sospechoso (normalmente a spam) |
reject |
Rechazar sin más el correo que falla |
rua= indica adónde se envían los informes agregados diarios, que muestran quién envía correo como su dominio y si pasa. Haga un registro con el Generador de Registros DMARC.
Un despliegue seguro
- Haga inventario de todo lo que envía correo para el dominio: su proveedor de correo, el servicio de boletines, el CRM, el sistema de facturación, los formularios web.
- Publique SPF listándolos y active la firma DKIM en cada servicio.
- Publique DMARC con
p=noney una direcciónrua, y lea los informes durante unas semanas. - Corrija cualquier remitente legítimo que falle la alineación.
- Pase a
p=quarantiney después ap=reject, idealmente subiendopctpoco a poco.
Leer el resultado de un mensaje real
En un mensaje recibido, la cabecera Authentication-Results muestra los veredictos, por ejemplo spf=pass dkim=pass dmarc=pass. Pegue las cabeceras completas en el Analizador de Cabeceras de Correo para leerlas, o pruebe toda su configuración con el Verificador de Entregabilidad de Correo.