SPF: Sender Policy Framework



 



¿Qué es el SPF?

El SPF se trata de un protocolo de libre uso para el correo electrónico el cual permite verificar, al que recibe un correo, si la maquina (Servidor) desde dónde se envío ese correo es una maquina autorizada para enviar correo por el dominio que figura como remitente.
 
El principal propósito de este protocolo es impedir que los usuarios de Internet reciban correos que dicen provenir de un determinado dominio o de una compañía pero que en realidad no han sido enviados por ellos.

Para poder utilizar esta técnica es necesario primero que los propietarios de dominios publiquen en el registro DNS la lista de Servidores desde los que envían correo y segundo actualizar los programas que leen correo para que puedan activar esta funcionalidad.

Se utiliza en conjunción con el protocolo de envío de correo electrónico SMTP, tiene la ventaja frente a otras técnicas de filtrado que puede detectar los correos que no cumplen antes de empezar a recibirlos en el Servidor que recibe el correo.

Enlaces con información general sobre SPF en inglés:
http://www.spf.pobox.com
http://spfwiki.infinitepenguins.net/wiki/SenderPermittedFrom/IntroducingSpf


¿Para qué sirve y cómo funciona el SPF?

El principal uso de este protocolo SPF es el de verificar la identidad del remitente de un correo electrónico. Para ello hay recuerda que hay que hacer dos cosas distintas primero publicar en el DNS los servidores y dominios desde los que envias e-mail y , en segundo lugar, actualizar tus programas de gestión de correo en esos servidores.

Publicar en el DNS mis servidores

  • El primer paso (publicar en el DNS) es gratuito, no tiene complejidad y permite a aquellos que tengan activado el SPF rechazar correos que les llegue con remite de tu dominio que no se ha enviado desde tus maquinas. Por ello te recomendamos que hables con tu registrador de dominio y que des este paso que no conlleva cambiar software y que permite a otros dar más calidad.

En estos enlaces puedes dar los datos de tu dominio y generar el registro de DNS que necesitarías para tu servidor de correo:
http://www.spf.pobox.com/wizard.html
http://www.infinitepenguins.net/SPF/create.php

Verificar si los correos que te llegan cumplen el protocolo SPF

El segundo paso es actualizar los programas de tu servidor de correo SMTP con una versión que controle los registros SPF. En ese momento pueden darse los siguientes casos:

  • Recibo un correo de un dominio que tiene registro SPF y el servidor  que envía SI esta registrado. Claramente es un correo que debes aceptar porque cumple los requisitos que establece el protocolo.
     
  • Recibo un correo de un dominio que tiene registro SPF y el servidor  que envía NO esta registrado. Claramente es un correo que puedes rechazar porque se ha enviado desde un servidor no autorizado por el propietario del dominio que figura como remitente.
     
  • Recibo un correo de un dominio que NO tiene registro SPF. Claramente es un correo que debes aceptar porque no puedes verificar su identidad ni su validez, aunque si puedes marcarlo para que el receptor pueda separarlo de los demás.

Enlace con direcciones para descargar versiones actualizadas de los Servidores de correo más conocidos (Sendmail, Postfix, Qmail, .... ):
http://www.spf.pobox.com/downloads.html

Preguntas más frecuentes (en inglés):
http://www.spf.pobox.com/faq.html



Puesta en marcha del SPF

  1. Publicación de los registros en el DNS

    Para la autorización de los hosts que pueden mandar correo diciendo proceder de un determinado dominio, el administrador de ese dominio tiene que informar a su DNS de cuales son las IPs que están autorizadas. En el DNS esta información se almacena como registros de tipo TXT con una nomenclatura especial.
    Consulta este tema con el registrador dónde tengas alojado tu dominio antes de modificar nada.

    ¿Cómo crear este registro para informar al DNS? (enlaces en inglés):
    http://www.spf.pobox.com/wizard.html
    http://www.infinitepenguins.net/SPF/create.php

    Significados de los registros SPF (enlace en inglés):
    http://www.spf.pobox.com/mechanisms.html
     

  2. Validación del correo en el servidor SMTP

    Por parte del administrador de correo, el SPF le permite validar el origen de un correo cuando llega al servidor SMTP, y en función del resultado aceptarlo, rechazarlo o hacerle un tratamiento especial. Esto se llevará a cabo consultando los registros que hay almacenados en el DNS correspondiente.

    Parches del SPF para los diferentes servidores de correo (enlace en inglés):
    http://www.spf.pobox.com/downloads.html

    Enlace para comprobar manualmente como se valida un correo con SPF (en inglés):
    http://www.infinitepenguins.net/SPF/check.php

    Implementación SPF (Enlace en inglés):
    http://spfwiki.infinitepenguins.net/wiki/SenderPermittedFrom/EasyImplementation


¿Qué comprueba del correo el protocolo SPF?

El protocolo SPF se basa en las cabeceras del correo electrónico para verificar la procedencia del mensaje: cabeceras Received y Return Path. En ningún momento se hace uso del cuerpo del mensaje

Como ves el sistema se basa en la premisa de que los registros de DNS son confiables y por tanto son más complicados de falsificar (al menos de momento).


¿Qué problemas me puede plantear el uso de SPF?

Evidentemente no todo funciona a la primera y SPF plantea algunas objeciones que podéis leer en:
http://www.spf.pobox.com/objections.html

Una de las más importantes es el redireccionamiento de correo (Forwarding y Return Path). Esto se produce cuando tengo una cuenta en mi servidor que re-dirige los correos automáticamente a otra que esta fuera de mi servidor (Forward). En este caso el correo sale de mi maquina pero con una dirección de remitente que no es mía y por tanto no pasaría el control SPF si el receptor lo tiene activado.

Para resolver este problema puedes ver algunas soluciones que se proponen en estas FAQ:
http://spf.pobox.com/faq.html

Para solucionar este problema se están proponiendo algunas soluciones más de fondo como la que propone SRS. La cual básicamente propone unos cambios para saber por donde ha ido pasando el mensaje de forma que mantengamos la información del primer dominio y por tanto podamos verificar si cumple SPF.
http://www.spf.pobox.com/srs.html

El resto de objeciones afectan a aquellos que tienen un servidor de correo implementado en su ordenador el cual cambia habitualmente de ubicación y por tanto de IP.


 

Operación SMTP+SPF

Como se ha comentado se trata de un protocolo para el correo electrónico, por lo que se utiliza conjuntamente con el protocolo SMTP (protocolo simple de transferencia de correo).

Se basa en tres datos de la información intercambiada en la transacción SMTP:

  1. Datos del remitente de correo dados en MAIL FROM:
  2. El parámetro HELO o EHLO del servidor SMTP remitente.
  3. La dirección IP del servidor SMTP remitente.

Enlaces de interés: