jueves, 3 de febrero de 2011

Complicando el correo electrónico (1) Teoria : SPF y SenderID

Después de leer el pasado mes un par de posts en el blog del Maligno, y de asistir en la Gira Up to Secure a su ponencia, me quedé, como seguramente le pasó a muchos, con ganas de investigar y probar un poco más y de manera práctica el funcionamiento de estos dos protocolos que parece que se pelean sin demasiados resultados en la lucha contra el Spam.

Primero un poco de teoría:

SPF (Sender Policy Framework)

Su funcionamiento está definido principalmente en el RFC 4408 del 2006 aunque se empezó su desarrollo en 2003; podemos encontrar referencia también en RFC 4405, RFC 4406, RFC 4407, y por supuesto en wikipedia. Decir de todas formas que todos estos RFC´s son experimentales y por lo tanto se podría decir que no son reglas "oficiales" ni tampoco son obligatorias en cuanto a su implementación.

El objetivo original de este protocolo fue combatir el spam, partiendo de la base de que cada administrador iba a limitar los servidores que tiene permitido el envío de correos de su dominio en particular. En el caso de que el servidor de correo saliente esté excluido explícitamente de la entrada SPF del DNS, el destinatario podrá si lo desea desechar ese mensaje. El uso de SPF implica principalmente a los administradores de dominio y DNS, debiendo estos añadir la configuración adecuada en el DNS de su dominio.

Un registro típico SPF podría tener el siguiente formato:

"v=spf1 mx ptr:host.dominio.com +a:spf.dominio.es ip4:11.22.33.44/24 ~all"

Existen muchos asistentes en internet que para la creación de registros y mucha documentación, solamente voy a incidir en los Indices que se le pueden aplicar a cada uno de los modificadores:


"+"

Pass

Es opcional, se aplica por defecto.

"-"

Fail

Se debería rechazar a menos que esté en la lista de servidores permitidos

"~"

SoftFail

Aconseja rechazar si no figura en la lista de servidores permitidos

"?"

Neutral

Sugiere no aceptar el correo, pero lo normal es marcarlo y aceptarlo.


SenderID

Su funcionamiento está definido en el RFC 4406 principalmente (también experimental) y hay referencias en los RFC 4405, RFC 4407 y RFC 4408.

Está basado en gran parte en SPF, pero mientras este último sólo comprueba de la cabecera del correo el MAIL FROM y al HELO, SenderID utiliza para la comprobación del remitente un algoritmo definido en el RFC4407 llamado PRA y que también estará incluído en la cabecera del correo. La sintaxis en los DNS será la misma a excepición que las entradas deberán empezar con:

"spf2.0/pra", "spf2.0/mfrom", ó "spf2.0/mfrom,pra"

en función de los campos que queramos comprobar.

Decir que este protocolo fué promovido por microsoft y es el que usa por ejemplo, Hotmail. Para los administradores de dominios puede ser interesante este enlace, donde se puede encontrar información para la implementación de SenderID y la comunicación con hotmail.

Bien, no voy a ser yo el que entre en un debate SPF vs SenderID, ya que hay y habrá opiniones de todos los gustos, ejemplo 1 o ejemplo 2. Lo cierto es que independientemente de gustos, son protocolos de distinta capa. SPF pertenece a la capa de protocolos SMTP mientras que SenderID pertenece a la capa de protocolos IMF (Internet Message Format) definida en el RFC 2822.

El caso, y despues de este pequeño "rollo" que he soltado, ningúno de los dos es de aplicación obligatoria. Lo cúal es algo importante, pues que aunque yo haya configurado mi SPF/SenderID de una manera estupenda si tu como receptor de mi email quieres ignorarlo puedes. Y de ahí es de donde surgen los problemas.

Bueno aqui lo dejo y para el próximo día si el tiempo me lo permiete un post un poco más práctico de SPF y SenderID.

Salu2!

No hay comentarios: