Sintaxis de registro SPF: estructura y componentes | EasyDMARC

Sintaxis de registro SPF: estructura y componentes

12 min de lectura
Lock and key images on a blue background

Comprender qué es un registro SPF y ponerlo en uso es un paso importante para las empresas que dependen de su presencia en línea para su operatividad; lamentablemente en la actualidad los ataques cibernéticos siguen en aumento, con el phishing y suplantación de identidad haciendo estragos, es por eso que los registros SPF, o los registros del marco de políticas del remitente, son necesarios para el cumplimiento de DMARC, ya que ambos protocolos funcionan en conjunto para evitar la falsificación de correos electrónicos de tu dominio o subdominios. 

Los registros SPF son complejos y pueden generar problemas de implementación si con configurados de forma incorrecta, la sintaxis de los registros SPF requiere del uso de ciertas terminologías que pueden ser difíciles de entender, pero no hay razón para preocuparse, ya que con este blog vas a aprender todo lo necesario sobre la estructura de registros SPF.

Registros SPF: sintaxis básica

Un registro SPF es un archivo que debe ser agregado en tu DNS cuya función es enumerar todas las IP que tienen permitido enviar correos electrónicos a nombre de tu dominio de forma específica. Si algún servidor fuera de esta lista intenta enviar correos utilizando tu dominio, dicho mensaje será marcado como no autorizado y rechazado por el buzón del destinatario.

Por lo tanto, las organizaciones deben crear registros SPF para mejorar su seguridad cibernética.

Este estándar de autenticación es solo una de múltiples formas para proteger tu dominio contra la suplantación de identidad y los ataques phishing, también evita que los buzones de correo de los destinatarios marquen tus campañas de correo como spam. Implementar SPF y DKIM junto con DMARC es la mejor manera de proteger tu dominio.

Los registros SPF contienen instrucciones que le indican a los servidores receptores cómo validar los correos que son enviados desde tu dominio y qué deben hacer estos cuando falla el proceso de autenticación; cada instrucción del proceso está representada por un componente determinado.

Vamos a analizar cada elemento usando algunos ejemplos de registros SPF, en principio podemos mostrarte cómo luce la sintaxis básica de un registro SPF:

v=spf1 ip4=192.0.2.0 ip4=192.0.2.1 include:examplesender.net -all

El ejemplo anterior nos indica con qué tipo de registro estamos lidiando, también enumera las direcciones IP aprobadas para el dominio e incluye un servicio de terceros autorizado. Este registro les indica a los servidores de tus destinatarios cómo deben manejar los correos si estos no cumplen con los requisitos de la verificación, siguiendo el procedimiento que se describe a continuación con cada comando: 

  • v=spf1 le dice al servidor del destinatario que este es un registro SPF. Todos los registros SPF deben comenzar de la misma forma.
  • La siguiente parte de la sintaxis del registro SPF indica las direcciones IP autorizadas para enviar correos electrónicos por parte de este dominio. En el ejemplo anterior, podemos apreciar ip4=192.0.2.0 e ip4=192.0.2.1.
  • La parte “include:examplesender.net” del ejemplo anterior indica los servicios de terceros autorizados para enviar correos por parte del dominio, la etiqueta “include” le indica a los servidores destinatarios que verifiquen el registro SPF del dominio incluido (examplesender.net) para las direcciones IP que también están autorizadas, en esta sección puedes incluir numerosos dominios dentro de un registro SPF, pero únicamente para dominios válidos.
  • Por último, la etiqueta -all indica a los servidores receptores que deben rechazar los correos electrónicos con direcciones IP o dominios que no figuran en el registro SPF (ya que estos no están autorizados).

Veamos dos ejemplos más: la siguiente sintaxis DNS SPF autoriza a todos los servidores con una dirección IP entre 192.168.0.0 y 192.168.255.255, así como las cuentas de Gmail que usa Google.com.

v=SPF1 ip4:192.168.0.0/16 include:_SPF.google.com ~all

La siguiente sintaxis de registro DNS SPF es similar, pero aquí se autoriza a los servidores entre 192.168.0.0 y 192.168.255.255, las cuentas de Gmail, e incluye un servicio de terceros: Send Your Mail.

v=SPF1 ip4:192.168.0.0/16 include:_SPF.google.com include:sendyourmail.com ~all

Si deseas que solo las cuentas de Gmail envíen correos por parte de tu organización, la sintaxis del registro SPF debería lucir así:

v=SPF1 a mx include:_SPF.google.com ~all

Esta sintaxis de registro SPF les indica a los servidores de tus destinatarios que los correos enviados desde cualquier host, cuya dirección IP termine en Google.com deben considerarse válido (m), mientras que todos los demás mensajes deben descartarse (a).

Puedes utilizar la herramienta gratuita de EasyDMARC para generar registros SPF, pero primero debes comprender cada componente, cómo funciona y qué significa su posicionamiento; vamos a dar un vistazo a la estructura de sintaxis en un registro SPF avanzado.

Registros SPF: sintaxis avanzada

Las sintaxis de todos los registros SPF generalmente se definen mediante un registro DNS TXT que contiene una sola cadena de texto. Como ya hemos mencionado esta cadena comienza con el elemento “v=” el cual indica la versión SPF que está siendo utilizada, ten presente que en la actualidad solo hay una versión, por lo que siempre se usa “SPF1”.

Cada registro SPF tiene términos específicos que funcionan similar a una serie de reglas que determinan para cuales hosts pueden enviar correos electrónicos desde un dominio específico o mostrar información adicional.

La sintaxis de registros SPF más complejos consta de tres elementos principales: Mecanismos SPF, Calificadores SPF y Modificadores SPF.

Mecanismos SPF

Los mecanismos son las etiquetas que se utilizan en la estructura de los registros SPF para indicarles a los servidores receptores qué es lo que deben hacer coincidir y cómo tratar los correos de acuerdo a una línea de acción específica.

  1. ALL: Siempre coincide y debe ser el último mecanismo listado al final del registro SPF, cualquier mecanismo que se coloque después de este comando será ignorado; también sirve para mostrar resultados predeterminados como “-all” para direcciones IP que no coinciden.
  2. A: Esta etiqueta define el nombre del dominio con un registro de dirección A o AAAA como una coincidencia, para resolver la dirección del remitente. Si no se especifica esta sintaxis en el registro DNS SPF, se utiliza el dominio actual por defecto; esta etiqueta es comúnmente utilizada para generar consultas de registros A o AAAA para dominios específicos que tienen la dirección IP de un remitente.
  3. ip4: Una coincidencia es exitosa cuando el remitente está vinculado al rango de las direcciones ipv4 que ofrece el registro SPF, la etiqueta se agrega con un prefijo que especifica la longitud del rango, en caso de que no exista prefijo, se usa /32 por defecto.
  4. ip6: Una coincidencia es exitosa si el remitente pertenece al rango de direcciones ipv6 que están incluidas en el registro, esta etiqueta se agrega con la directiva ip4 junto con un prefijo que especifica la longitud del rango, en caso de que no exista prefijo alguno, se usa /128 por defecto.
  5. MX: Este mecanismo autoriza a los remitentes con una dirección IP que coincida con la dirección contenida en el registro MX especificado. Los registros MX constan de una dirección IP y un valor en base a su prioridad para cada servidor que está destinado a aceptar mensajes.

Si el registro MX de un dominio contiene una dirección IP que coincide con la dirección IP del remitente, este remitente tiene permiso para enviar correos electrónicos usando el mismo dominio.

  1. PTR: Esta etiqueta define el dominio autorizado mediante registros PTR para que resuelvan las direcciones IP en subdominios o dominios (lo opuesto a lo que hacen los registros A de DNS). Con esta etiqueta el servidor receptor realiza un mapeo inverso de la dirección IP que hace el envío para encontrar los nombres de dominio asociados.

Para cada coincidencia exacta del dominio o subdominios, se realiza una búsqueda directa con el fin de encontrar la dirección IP. Si la dirección IP de envío es la misma que cualquier dirección IP encontrada durante la búsqueda, entonces se toma como una coincidencia y el correo electrónico es validado.

El mecanismo PTR es lento y no muy confiable, ya que requiere realizar múltiples búsquedas, razón por la cual no es muy recomendado de acuerdo a las pautas RFC 7208. Algunos servidores receptores ignoran el mecanismo PTR o incluso el registro SPF completo al toparse con el mecanismo PTR.

  1. EXISTS: Este mecanismo SPF ejecuta una búsqueda del registro del DNS A para el dominio que se le ha proporcionado, solo se obtienen coincidencias cuando se encuentra un registro A válido, independientemente del resultado real de la búsqueda, si se hace uso de macros, es posible configurar excepciones de usuario con este mecanismo.
  2. INCLUDE: Este mecanismo es usado para autorizar a los remitentes de tus correos electrónicos enviados a través de terceros especificando tus dominios. Un remitente está autorizado cuando su dirección IP coincide con las direcciones IP o los dominios que están contenidos en los registros SPF del dominio enumerado; si no se encuentra ningún registro SPF para el dominio del tercero enumerado, el correo es devuelto arrojando un resultado de error permanente.

Calificadores SPF

Un calificador SPF es un prefijo opcional que se le añade a un mecanismo, si agregamos un registro SPF a nuestro DNS con un calificador SPF, este les dice a los servidores de los receptores cómo deben tratar un correo electrónico cuando este contenga una coincidencia con un valor de mecanismo.

Los mecanismos se verifican en el orden en el que aparecen en el registro SPF, si un mecanismo carece de calificador y hay una coincidencia, la autenticación SPF pasa. Sin embargo, cuando no hay coincidencia, la acción predeterminada es neutral; lo que significa que el mensaje de correo no pasa ni falla la autenticación.

Cada mecanismo se puede combinar con uno de cuatro calificadores.

Calificador Resultado Acción realizada por el servidor receptor con una coincidencia
+ Pasa el mensaje de correo pasa la autenticación y el servidor puede enviar más mensajes, los cuales son autenticados dejando esta acción con configuración predeterminada a tomar en caso de que no haya Calificador.
Fallo El mensaje de correo falla el proceso de autenticación ya que el servidor de envío no está autorizado para enviar correos para el dominio, aquí el registro SPF le indica al servidor receptor que debe rechazar el correo electrónico.
~ Fallo suave El buzón del destinatario acepta el mensaje, sin embargo, este es marcado como sospechoso y desviado a la carpeta de correo no deseado.
? Neutral El mensaje de correo neutral no pasa ni falla la autenticación, ya que el registro SPF no establece explícitamente si la dirección IP está autorizada, sólo indica que no se encontró ninguna coincidencia para el remitente cuando esté comparó sus direcciones IP y dominios autorizados.

Otros resultados que devuelven los correos incluyen:

  • None: no se encontró ningún registro SPF para el dominio o el registro SPF no arrojó ningún resultado.
  • TempError: indica la presencia de un error transitorio, generalmente debido a problemas de configuración en el DNS.
  • PermError: indica la presencia de un error permanente, generalmente debido a la sintaxis del registro SPF o a errores en el formato de este.

Modificadores de SPF

Los modificadores de SPF son los que deciden los parámetros de trabajo de las sintaxis del registro DNS SPF, generalmente consisten en un par de nombres o valores separados por el símbolo “=”, que señalan la presencia de información adicional, especifican excepciones a las reglas, o cambian ciertos valores predeterminados.

Los modificadores solo pueden aparecer una vez en cada registro SPF y posicionarse solo al final de este, cualquier modificador desconocido se ignora.

El modificador de «redireccionamiento» es el que dirige a otros registros SPF para la debida autenticación de los mensajes, estos son usados por expertos cuando requieren que más de un dominio tenga el mismo contenido del registro SPF.

Solo debes usar este modificador SPF si controlas todos los dominios del sitio web, el mecanismo SPF «include» es el que debe usarse para dominios autorizados que no están bajo tu control.

Si el mecanismo «all» aparece en el registro SPF, entonces debes ignorar el modificador «redireccionar».

El modificador “exp” se utiliza para proporcionar las razones por las cuales el servidor receptor devuelve un calificador SPF fallido cuando se topa con mecanismos de coincidencia.

Consejos para el manejo debido de los registros SPF

Antes de verificar tu registro SPF, ten en cuenta los siguientes consejos:

  • Un dominio no puede tener más de un registro SPF.
  • Un registro SPF no puede contener caracteres en mayúsculas.
  • Los registros SPF tienen un límite de caracteres de 255 caracteres, cualquier cadena que exceda este número traerá como resultados autenticaciones fallidas.
  • Elimina cualquier mecanismo SPF que se resuelva en el mismo dominio.
  • Elimina cualquier mecanismo SPF “ip4” e “ip6” que no esté en uso y ve si puedes fusionar los rangos de las direcciones.
  • Puedes crear un subdominio con el fin específico de almacenar información de tu registro SPF usando “_spf.domain.com.” lo cual es ideal para empresas u organizaciones grandes que usan múltiples direcciones IP que necesitan ser incluidas en un solo registro SPF.

Resumen

El registro SPF es una parte crucial del registro DNS de tu dominio, ya que este les indica a los servidores de correo cómo deben autenticar los mensajes que provienen de tu dominio. Los propietarios de empresas que dependen de la tecnología deben aprender a combinar el uso de SPF con DKIM y DMARC para aumentar sus niveles de protección contra ataques de suplantación de identidad y phishing a su nombre.

La herramienta EasySPF de EasyDMARC te asiste con la gestión de fuentes de envíos de correo a un nivel superior; te invitamos a comunicarte con nosotros si tienes otras dificultades para implementar SPF, estamos aquí para asistirte.