Qué es un registro SPF y cómo está evitando que suplanten tu identidad

En este artículo voy a explicarte qué es, para qué se usa y cómo funciona un registro SPF.

Cuando envías un correo electrónico entran en juego muchas medidas de seguridad: encriptación SSL/TLS, DKIM, DMARC, SPF… y tantas otras. Todas tienen en común que intentan evitar que otros hagan envíos en tu nombre de forma fraudulenta y que tengan acceso a los correos que envías que, se entiende, son privados.

¿Por qué tantas medidas de seguridad? Bueno, los correos electrónicos funcionan de forma muy similar a los correos tradicionales: alguien hace un envío a través de un sistema de transporte y un receptor lo recibe. Sin embargo, la naturaleza electrónica y automática de los emails frente a (por ejemplo) una carta física hace que sea mucho más fácil y barato enviar cantidades masivas de correos en poco tiempo y suplantar la identidad de otro con fines ilícitos. Vamos, que se pueden usar fácilmente para timar a la gente. Nada que no supieras 

Por eso la industria de Internet lleva prácticamente desde sus inicios luchando contra el spam con medidas de seguridad que, entre otras cosas, garanticen que un email es enviado por quien dice que lo envía. Y el registro SPF de un dominio pretende esto precisamente: garantizar al receptor que el correo que recibe proviene del remitente correcto.

Pero, como siempre, lo primero es lo primero.

¿Por qué un registro SPF? Cómo funciona un correo electrónico

Si quieres saber cómo funciona un registro SPF, antes de nada debes entender el contexto en el que se aplica. Y para eso tienes que saber cómo funciona una transacción SMTP.

Como te comentaba al principio, un correo electrónico funciona de forma parecida a una carta física. En concreto, se parece mucho al envío de un paquete certificado. Y, por obvio que parezca, voy a repasar cómo enviarías un paquete certificado; por ejemplo, cómo enviarías un regalo de cumpleaños por paquetería a un amigo que vive lejos:

1 – Antes de nada pondrías el regalo en un paquete y lo cubrirías con un papel chulo. Y seguramente le pegarías una tarjeta con un mensaje, tipo “¡Felicidades, Paco!” y con la fecha de hoy.

2 – Llevarías el paquete a Correos, donde lo embalarían en un sobre o caja protectora. En dicho “envoltorio” pondrías los datos del destinatario de forma más formal (la calle, código postal, etc.).

3 – Además, en ese “envoltorio” tendrías que poner tus datos de remitente.

4 – Con el paquete ya enviado, solo falta que llegue a su destino. Cuando tu amigo Paco lo reciba verá un “envoltorio” más bien feo que pone que el paquete es para él. Entonces, lo abrirá y dentro encontrará ya tu regalo envuelto con papel de colores y tu tarjeta de felicitación, que efectivamente está dirigida a él.


Hasta aquí todo bien. Es un proceso bastante sencillo que casi todos hemos hecho alguna vez. Y como los informáticos somos más bien vagos, cuando se diseñó el protocolo SMTP (el idioma que hablan los servidores de correo) allá por 1982 lo que hicieron sus creadores fue básicamente copiar esta realidad.

Cuando envías un correo desde tu gestor de correo (Outlook , Thunderbird o el que uses), aunque tú no lo veas, ese programa “habla” con un servidor para pedirle que haga el envío y, para entenderse con él, tiene que utilizar unas palabras concretas. Este conjunto de palabras es lo que se llama “protocolo SMTP” (Simple Mail Transfer Protocol). Y aquí puedes verlo en todo su esplendor:


Algo confuso, ¿no? No voy a explicártelo en profundidad porque no es el objetivo de este artículo, pero sí que voy a analizar algunos puntos concretos y sus similitudes con el envío del paquete que vimos antes:

MAIL FROM:<dani@lucusterra.es>

Al igual que en el envío del paquete certificado, en los correos electrónicos existen el “mensaje” y el “envoltorio”; esto da flexibilidad para conseguir comportamientos de correo complejos cuando hacen falta. Con este comando estás diciendo que en el envoltorio, el remitente será dani@lucusterra.es
RCPT TO:<javi@lucusterra.es>

Aquí estás definiendo el destinatario que figura en el “envoltorio”, en este caso javi@lucusterra.es
DATA

Con este comando estás diciéndole al servidor “A partir de aquí va el cuerpo del mensaje”. Es decir, a partir de este comando vamos a definir qué va en el “mensaje”, dentro del “envoltorio”.

Y después de este comando “DATA” puedes poner cosas como las siguientes:

Date: 25 Sep 18 22:33:44

From: Daniel <daniel@lucusterra.es>

Subject: Noticias frescas

To: javi@lucusterra.es

¡Un momento, estás volviendo a poner el correo origen y el correo destino! ¡Y la fecha! ¿Pero cómo puedes definir la fecha? ¿No debería el sistema coger la fecha actual, y que no la tengas que poner tú?

Bueno, volvamos al envío del paquete certificado. Cuando le miras el seguimiento en la web de Correos verás fechas reales; pero dentro del “envoltorio”, en la tarjeta que le pusiste al paquete en casa, nada te impide poner una fecha falsa si quieres. Y en el caso del correo electrónico es lo mismo, en el cuerpo del correo puedes poner lo que tú quieras. De hecho, si te fijas en mi ejemplo el remitente del envoltorio es “dani@lucusterra.es”, pero en el cuerpo del correo he puesto “daniel@lucusterra.es”; una diferencia sutil, pero que demuestra que el “envoltorio” del email es completamente independiente del cuerpo del correo.


Vaya lío, ¿no? Pues te lo resumo rápidamente:
Podemos decir que un correo electrónico tiene dos partes: el “envoltorio”, que es la información que usa el servidor de correo para mover el mensaje, y el “mensaje”, que es la información que llega al usuario final.
En líneas generales, al servidor le da igual lo que vaya dentro del “mensaje”, y el destinatario del correo nunca llega a ver la información del “envoltorio”.

La información del “envoltorio” y del “mensaje” no tiene por qué ser la misma. Esto se ha diseñado así para permitir comportamientos complejos en el sistema, como por ejemplo reenvíos de correo (al hacer un reenvío de un email la información del “envoltorio” cambia para que el correo llegue a su nuevo destino, pero el “mensaje” se mantiene intacto del original).


¿Qué es un registro SPF?

Vale, ¿y qué pinta el registro SPF en todo esto? Bueno, una de las primeras formas que se descubrieron para suplantar la identidad de otros al enviar correos electrónicos, fue …. mentir. Duh.

Si eres mala persona, al enviar un correo nada te impide decir en el “envoltorio” que eres quien no eres. En el ejemplo del paquete postal sería algo equivalente a dar los datos de otro cuando en correos te preguntan quien es el remitente del certificado.

El registro SPF (de Sender Policy Framework) es un tipo especial de registro DNS (bueno, en realidad es un registro de tipo TXT con un formato muy concreto) que permite a los dueños de dominios luchar contra la suplantación de identidad.

Normalmente tu proveedor de hosting creará un registro SPF adecuado para tu dominio, y tú no tendrás que hacer nada más. Pero de todos modos es importante que sepas cómo funciona por si tuvieras que modificarlo, o si tuvieras que crearlo tú.

Mediante el uso de registros SPF los dominios pueden declarar desde qué direcciones IP envían correos. Es decir, el objetivo de un registro SPF es dejar claro a todo aquel que lo consulte desde qué servidores un dominio envía correos, y desde cuáles no.


¿Cómo funciona un registro SPF?

Un registro SPF funciona exactamente igual que cualquier registro DNS: cuando se consulta devuelve un resultado.

Pero este resultado tiene una estructura muy precisa, indicando desde qué servidores el correo está autorizado a enviar, y desde cuáles no.

El funcionamiento de esta medida de seguridad es bastante simple. Cuando un correo electrónico llega a un servidor, dicho servidor compara la dirección IP desde la que ha recibido el envío con las IPs declaradas en el registro SPF del dominio que figura en el remitente del “envoltorio”; si el en el registro está declarada esa IP significa que el dominio la está autorizando a enviar correos en su nombre, y sino no.

Es decir:
Un registro SPF no es más que un registro TXT con un formato específico.
Está diseñado para garantizar que el correo que recibes ha salido de un servidor “autorizado”.
La comparación de la IP del remitente con el registro SPF del dominio la ha de hacer el servidor que recibe el correo; es decir, es una comprobación que recae en el destinatario del email, no en el origen.
Existen pautas aconsejadas a seguir cuando una IP “pasa” el test, y pautas aconsejadas para cuando lo “falla”; pero en último término son eso, pautas aconsejadas, y la última palabra sobre qué hacer con los correos según el resultado del registro SPF depende del receptor del correo.


Estructura de un registro SPF

Antes te comentaba que un registro SPF no es más que un registro TXT con una estructura muy específica. Bien, ¿y cuál es esta estructura?

Un registro SPF es, como cualquier registro TXT, una simple cadena de caracteres; pero en este caso esos caracteres se dividen en mecanismos, que no son otra cosa que partículas que contienen información contra la que se puede comparar la IP desde la que el servidor ha recibido el correo.

Actualmente los mecanismos que se pueden utilizar en un registro SPF son 8:
ip4

Este es el mecanismo más sencillo y directo. Con él puedes declarar una IP específica.
ip6

Básicamente lo mismo que el mecanismo anterior, pero declarando una IPv6 en lugar de una IPv4.
a

Con este mecanismo puedes declarar la IP a la cual resuelve un dominio específico. Si no indicas ningún dominio, estarás declarando la IP del dominio actual (que realmente es lo más común).
mx

A través de este mecanismo estarás declarando la IP a la que resuelve el registro MX de un dominio específico, o del dominio actual si no especificas ningún otro.
ptr

Este mecanismo es un poco más complicado, ya que implica saber qué es un registro PTR y cómo una IP puede tener una resolución inversa. Como no es el objetivo de este artículo profundizar tanto en el tema, vamos a dejarlo en que este mecanismo se asegura de que la IP desde la que llega el correo está bien configurada según varios estándares de Internet.
exists

Con este mecanismo siempre has de especificar un dominio; si dicho dominio resuelve a alguna IP (cualquiera) el resultado del test es correcto, y sino es incorrecto. Este mecanismo es bastante especial ya que realmente la consulta no es “¿Está mi IP en esta lista?”, sino “¿Este dominio resuelve a alguna IP?”.
include

Este mecanismo tiene como objetivo incluir el registro SPF de un dominio en otro dominio. Si en tu dominio usas este mecanismo especificando otro dominio, será lo mismo que si añades todos los mecanismos de este segundo dominio al tuyo..
all

Finalmente está el mecanismo “all”, que básicamente significa “todo lo que no haya declarado ya”. Normalmente se usa para decir qué hacer con cualquier correo que llegue desde una IP que ningún otro mecanismo del registro ha mencionado explícitamente.

Estos 8 mecanismos son modificados por 4 elementos a los que llamamos calificativos:
+

El símbolo “+” significa “pass”; es el calificativo por defecto, por lo que si al añadir un mecanismo a un registro SPF no le pones ningún calificativo se supone que lleva este. Las IPs que declara el mecanismo que lleve este calificativo están autorizadas para enviar correos del dominio, y sus correos deben aceptarse.

El símbolo “-” significa “fail”. Cualquier IP declarada en un mecanismo que lleve este calificativo NO está autorizada a enviar correos desde el dominio, y sus correos deben rechazarse.
~

El símbolo “~” significa “softfail”. Las IPs declaradas con este calificativo no están autorizadas para enviar correos desde este dominio, pero quizá lo estén en un futuro; se aconseja aceptar sus correos, pero marcarlos como sospechosos.
?

El símbolo “?” significa “neutral”. El registro SPF no da información sobre las IPs declaradas en el mecanismo con este calificativo, por lo que no se sabe si están autorizadas o no. Se recomienda aceptar sus correos, para evitar rechazos indeseados.


Ejemplos de registro SPF

Y después de toda esta teoría, la mejor forma de que entiendas cómo funciona un registro SPF es ver algunos ejemplos:
“v=spf1 a mx include:lucusterra.es ~all”

Este es un registro bastante estándar. Está permitiendo el envío desde las IPs del registro A del dominio, desde el MX, y además está incluyendo el registro SPF de un segundo dominio. Sobre todo es típico en planes de hosting compartido, donde el proveedor suele utilizar ese segundo dominio para añadir IPs de su propia plataforma de correo.

El resto de las IPs devolverían un “softfail”, para recibir sus correos pero marcarlos como sospechosos.
“v=spf1 mx:lucusterra.es exists:lucusterra.es ?all”

Este registro solo permite el envío desde la IP del registro MX de lucusterra.es, y sólo si lucusterra.es está resolviendo a alguna dirección IP. Como es algo bastante estricto, el resto de IPs devuelven un “neutral” para permitir su entrega de todos modos; esto es algo bastante típico de dominios efímeros, que sólo van a tener servicio de correo durante unos días por ejemplo.
“v=spf1 -all”

Con esta configuración del registro SPF, directamente estarías deshabilitando el uso de correo electrónico del dominio; todos los servidores considerarían cualquier IP como no autorizada para enviar correos del dominio.
“v=spf1 +all”

Si pones esta configuración en el registro SPF de tu dominio, es que no le das mucha importancia a esta medida de seguridad … ya que estarías haciendo que cualquier IP pudiese enviar desde el dominio.


Registro SPF en Raiola Networks

En Raiola Networks normalmente no tienes por qué preocuparte del registro SPF de tu dominio; a menos que estés utilizando una solución a medida, tanto en nuestros hosting web como en nuestros hosting correo o nuestros VPS SSD Optimizados el propio panel se encargará de configurar el registro SPF automáticamente.

Registro SPF en cPanel

En los planes de hosting web de Raiola Networks el panel le asignará por defecto a tu dominio el siguiente registro:

“v=spf1 a mx ptr include:spf.raiolanetworks.com ~all”


En él se habilitan para el envío las IPs del registro A del dominio, del mx, y todas las incluidas en el SPF de “spf.raiolanetworks.com”; esto último lo usamos para incluir todas las IPs que vayamos utilizando en nuestra plataforma de correos propia. Y además se realiza la verificación de PTR, claro.


Registro SPF en VestaCP

En los VPS SSD Optimizados el registro que se genera automáticamente es más sencillo que en hosting web:

“v=spf1 a mx ip4:193.70.65.155 ~all”


El motivo es que sencillamente, un servicio privado como es un VPS es más sencillo que un servicio compartido como un hosting web normal, y por tanto las reglas de seguridad también se simplifican. En este registro se permiten las IPs del registro A, MX, y luego además se menciona específicamente la IP del propio VPS para garantizar que los envíos siguen pudiendo salir de él en caso de que cambies manualmente los registros A o MX.

Los correos llegados desde el resto de IPs serán marcados como “softfail”.


Comprobar un registro SPF

Si quieres hacer una comprobación rápida del registro SPF de un dominio, puedes usar la herramienta de diagnóstico de DNS de Raiola:

https://dnslookup.es/

Si consultas un dominio en ella verás que abajo del todo se muestran sus registros TXT, y entre ellos el registro SPF. La herramienta también te da información sobre qué IPs está declarando el registro, etc.



Conclusión

El registro SPF es una medida de seguridad muy importante en todos tus dominios, y tienes que asegurarte de que lo tienes bien configurado; pero eso sí, si no sueles cambiar a menudo de servidor o de empresa de hosting normalmente una vez que lo tengas bien, no tendrás que volver a tocarlo.

Además, no debes perder de vista que esta medida de seguridad no es la única necesaria para garantizar la seguridad de tus correos. Es muy útil y a día de hoy se considera un estándar, pero siempre debe estar acompañada por otras como DKIM, DMARC, etc …

¿Sabías ya cómo funcionaba el registro SPF? ¿Te interesa que te expliquemos cómo funcionan las principales medidas de seguridad de correos electrónicos? ¡Cuéntanoslo en los comentarios!

TODO EN UNO.NET

Queremos darle a conocer nuestra EMPRESA creada en 1995. Todo En Uno.Net S.A.S es fundadora de la Organización Empresarial Todo En Uno.NET. Todo En Uno.Net S.A.S. es una empresa especializada en brindar CONSULTORIAS Y COMPAÑAMIENTO en el área tecnológica y administrativa basándonos en la última información tecnológica y de servicios del mercado, además prestamos una consultoría integral en varias áreas como son: CONSULTORIAS TECNOLOGICAS, CONSULTORIAS EMPRESARIALES, CONSULTORIA MERCADEO TECNOLÓGICO, CONSULTORIA EN TRATAMIENTO DE DATOS PERSONALES, Y con todos nuestros aliados en la organización TODO EN UNO.NET

Publicar un comentario

Esperamos sus comentarios

Artículo Anterior Artículo Siguiente