miércoles, 20 de enero de 2016

Redondeando el tema "In Memoriam Revival Project"

In Memoriam

La recuperación de la infraestructura necesaria para jugar al juego "In Memoriam" (rebautizado como "Missing since January" en EEUU) del extinto estudio francés Lexis Numérique ha sido el primer gran proyecto abordado en el blog. 

In Memoriam

Allá por septiembre de 2014 comenzaron una serie de entradas en el blog con el objetivo de documentar las tareas realizadas para poder permitir que un videojuego lanzado en el año 2003, y fuertemente basado en Internet, pudiera volverse a jugar a pesar de que prácticamente toda la infraestructura online desplegada por Lexis Numérique para el soporte del juego ya no estaba online. Poco después descubrí que este cierre parcial de los servidores del juego se debía a la liquidación judicial de la compañía desarrolladora anunciada en julio de 2014. A finales de agosto de 2014, lo poco que quedaba online fue definitivamente desconectado.

El fruto de este proyecto, del cual un servidor aprendió bastante realizando cosas que nunca había hecho antes, se plasmó en un página web que denominé "In Memoriam Revival Project". Desde entonces y hasta ahora, aunque el tráfico ha sido todo lo escaso que se podía esperar de un antiguo videojuego que ya no está en venta, sí que algunos jugadores me han escrito agradecidos por poder jugarlo, o por poder volverlo a rejugar.
Logo "In Memoriam Revival Project"
Y afortunadamente no ha sido grande el tráfico generado por los jugadores, porque la infraestructura que da soporte a "In Memoriam Revival Project" se reduce prácticamente a un pequeño servidor dedicado junto con cuentas de hospedaje gratuitas, una infraestructura insuficiente para poder dar servicio a todos los jugadores que tuvo el juego en su día. En algo más de un año, apenas llegan al centenar de cuentas las que se han registrado en el juego utilizando la nueva infraestructura.

Como proyecto cuya finalidad es aprender cosas de interés a la vez que se hace algo que tenga utilidad los resultados han sido muy satisfactorios. El despliegue dispuesto tan solo tiene un pero, que es el que ha provocado la mayor parte de los contactos que he recibido de usuarios. Y por la forma en la que se ha diseñado el videojuego, en un problema que lo convierte en injugable: no llegan los mensajes de correo enviados por el juego.

Hay que recordar que en el juego, el jugador se enfrenta a un CD-ROM enviado por un asesino en serie que ha secuestrado a un periodista de investigación y su colaboradora que seguían sus pasos. El objetivo del juego es, de alguna manera, analizar el contenido del CD-ROM enviado por el secuestrador, reconstruyendo los fragmentos de la investigación realizada por los secuestrados que el asesino ha incluído en el CD-ROM, lo que le obligará a buscar pistas y respuestas a acertijos en internet. Además recibirá en su correo electrónico real mensajes de otros jugadores y personajes "virtuales" que prestan su colaboración a lo largo de la investigación, y algunos de estos mensajes son esenciales para continuar el juego.

Políticas anti-spam

El videojuego "In Memoriam" fue lanzado en el año 2.003, que medido en términos de la evolución de internet es como si decimos que se lanzó allá por la prehistoria. Obviamente el spam es un fenómeno que ya existía por entonces, precisamente en el año 2.003 se cumplían 25 años del primer spam, que no fue otro que un anuncio dirigido en 1.978 a los usuarios de la entonces ARPANET realtivo a una presentación de Digital Equipment Corporation, más conocida por sus siglas DEC. También ese año 2.003 se cumplió otra efeméride en lo relativo al fenómeno spam: por primera vez el número de correos spam superó al número de correos legítimos.

Desde octubre de 2.003, el personal conectado a la red de redes se ha quintuplicado, pasando la penetración de internet en la población mundial del 10,7% al 46,4% según datos del sitio Internet World Stats.

Evolución del número de usuarios de Internet
A nadie se le escapa que desde entonces hasta ahora, el correo spam también ha crecido. Ya en 2.010 Symantec estimaba que el 88% del tráfico generado por el correo electrónico era debido al spam. Y como es lógico, las políticas anti-spam de los grandes proveedores de correo electrónico como Yahoo, Hotmail o Gmail también han evolucionado.... aunque aquí cabe nombrar otra salvedad: en octubre de 2.003 cuando se lanzó el videojuego, el servicio de Gmail aún no existía ya que Google lo lanzó en fase beta en abril de 2.004.

El crecimiento desbordado del spam ha obligado a los proveedores de correo electrónico a endurecer sus políticas anti-spam, de tal manera que lo que en el momento del lanzamiento del videojuego no era spam, con el paso de los años la evolución de dichas políticas lo ha colocado en el otro lado de la orilla.

Impacto de las políticas anti-spam

Esta evolución de las políticas anti-spam ha impactado lógicamente en el funcionamiento del videojuego. Desde que aún era mantenido por la extinta Lexis Numérique, algunos mensajes de correo que el servidor del juego enviaba a las cuentas de correo de los jugadores eran incluídos por el proveedor de correo del jugador en la carpeta de spam, cuando no era directamente rechazado. Esto provocaba quejas de los jugadores relativos a la imposibilidad de seguir avanzando en el juego al no recibir mensajes de correo importantes.
Uno de los encontronazos de los correos del videojuego con las nuevas políticas anti-spam es la dirección del remitente del correo electrónico. El protocolo SMTP usado para el transporte del correo electrónico no admite la autenticación entre los distintos servidores involucrados, lo cual inicialmente permite que un atacante malintencionado pueda modificar el dominio de la dirección de correo del remitente a su antojo. Así, cualquiera desde su máquina podría enviar correos remitidos por remitentes con dirección '@gmail.com', '@hotmail.com'... o lo que es peor, con dominios '@congreso.es', '@policia.es' o '@cni.es'.

Y esto fue así hasta las aparición del Sender Policy Framework o SPF, cuya primera versión se liberó en diciembre de 2.014, un año después del lanzamiento del juego. Resumiendo el tema, este esquema de protección permite definir en el DNS de cada dominio registros de texto que listan las direcciones IP de servidores autorizados para remitir correos electrónicos de dicho dominio. Cuando un servidor SMTP recibe un correo electrónico con un remitente '@dominio.com' revisa los registros DNS de dicho dominio a ver si la IP de la máquina que le está remitiendo dicho correo aparece entre las autorizadas. Si está autorizado añade una cabecera en el correo indicándolo. El contenido de dicha cabecera es uno de los factores que puede determinar que el correo quede clasificado como spam.

Poco a poco los proveedores de correo principales comenzaron a implementarlo, y poco a poco los jugadores de "In Memoriam" comenzaron a perder correos electrónicos del juego. Como se dijo anteriormente, los jugadores reciben correos de colaboradores "virtuales", y obviamente cada colaborador tiene una dirección de correo virtual para meter en el campo "FROM" de los correos que envía. Uno de estos colaboradores resulta que tenía una dirección de correo '@hotmail.com', con lo que tras la implantación del SPF podemos imaginar lo que ocurría con los mensajes de este colaborador virtual al llegar al servidor SMTP del correo del jugador...

Posteriormente, allá por mayo de 2.007 surgió una alternativa más segura denominada DomainKeys Identified Mail o DKIM. Usando criptografía asimétrica, se firman los mensajes al enviarlos con una clave privada propia del servidor que lo envía. Esta firma se añade como una cabecera adicional del correo. El servidor SMTP receptor consulta al servidor DNS del dominio del remitente el registro DKIM que contiene la clave pública correspondiente, lo que le permite verificar si la firma del mensaje es correcta o no, permitiendo discriminar correos legítimos de correos con el campo de remitente falseados.

Desde entonces lucha contra el spam continúa evolucionando. Actualmente hay muchos otros factores que pueden hacer que los correos sean considerados como spam, aunque la lista de requisitos comienza a ser desesperadamente larga, como se puede ver en este listado de recomendaciones de un foro celebrado a principios de 2.009 con representantes de Yahoo Mail, Hotmail y Gmail. Con semejante listado lo que sorprende es que aún nos lleguen correos...

Impacto en In Memoriam Revival Project

Los mismos problemas que tenía Lexis Numérique para que sus jugadores recibieran los correos remitidos por el juego también los tiene el nuevo servidor implementado, pero aún más graves.

Finalizar el juego implica la recepción de unos 65 mensajes de correo (pueden ser menos o más según la velocidad con la que el jugador consiga superar determinadas fases), de unos ocho remitentes distintos. Estos ocho remitentes escriben desde direcciones de correo pertenecientes a cinco dominios distintos, y de esos cinco dominios solo dos no estaban registrados y controlados por Lexis Numérique. Eso significa que los desarrolladores del juego podían controlar los registros SPF de tres de los cinco dominios involucrados, y por tanto podían cumplir las exigencias de las nuevas políticas anti-spam en una buena parte de los mensajes remitidos por el juego.

En el caso de "In Memoriam Revival Project", no se posee ninguno de los dominios involucrados con el juego. Y esto es por dos razones. La primera es gran parte de los dominios relacionados con el juego están registrados por terceros. A partir del anuncio de liquidación de Lexis Numérique en junio de 2.014, la compañía dejo de renovar los nombres de dominio que poseía, y conforme los registros ya abonados iban caducando, los "subastadores de dominios" que acechan en internet esperando que alguna empresa olvide renovar algún dominio para "secuestrarlo" iban tomando posiciones, con lo que gran parte de dichos dominios no están disponibles salvo que se quiera abonar el "rescate" que sus actuales dueños propongan.

La otra gran razón es de índole económica. "In Memoriam Revival Project" es completamente gratuito para el usuario del juego. Puesto que no se poseen los derechos de explotación del juego, requerir un pago adicional a los propietarios del juego para el uso de la nueva infraestructura, aunque desde un punto de vista ético puede parecer apropiado (estudiar la comunicaciones del juego para programar desde cero un servidor que pueda darle soporte lleva su tiempo, además del desplegado y mantenimiento de la red de webs relacionadas, etc...), desde un punto de vista legal podría tener repercusiones negativas. Cierto es que podría haberse colocado un botón para donaciones voluntarias, o incluso algún pequeño baner publicitario, pero se ha preferido evitar problemas legales, y el precioso tiempo que estos problemas legales pueden absorber. Por ello, "In Memoriam Revival Project" no recibe ningún tipo de ingreso por parte de los jugadores, ni directo ni indirecto.

Puesto que no hay ingresos, sufragar el gasto de los dominios involucrados (algo más de treinta dominios) nunca se ha contemplado. De ahí, que el proyecto tenga que usar distintos "trucos" para que cuando el usuario acceda a un sitio web relacionado con el juego éste aparezca correctamente en su navegador web, a pesar de que en realidad dicho nombre de dominio apunta a otro sitio distinto, o incluso puede que no esté registrado.

Al no tener registrados los dominios, no es posible definir registros SPF que apunten a la dirección IP del nuevo servidor del juego, ni mucho menos definir un registro DKIM, lo que se traduce en que prácticamente todos los correos enviados a proveedores como Gmail son rechazados y no se muestran al usuario, ni siquiera en la carpeta de correos spam. Además se da el agravante de que el primer correo que envía el juego es el que contiene las credenciales (usuario y contraseña) de la cuenta que ha creado el jugador, y esa contraseña es necesaria para comenzar a jugar...

Primera solución: un cliente de correo web

La primera aproximación a una solución fue crear un rudimentario cliente de correo web en el propio sitio de "In Memoriam Revival Project". Si el correo no llegaba hasta el usuario, entonces que el usuario viniera a buscarlo. Usando como credenciales el correo electrónico registrado en el juego así como la contraseña generada por el mismo, el usuario podía autenticarse y revisar todos los correos electrónicos remitidos por el juego.

Cliente de correo web
Posteriormente se extendió el formulario de autenticación de este cliente de correo para solucionar el primer problema con el que se topaban los jugadores: no recibir el primer correo con la contraseña que genera el juego para la cuenta que han registrado. Si esa contraseña, tampoco podían autenticarse en el cliente de correo web.

Actualmente el formulario permite autenticarse con la tradicional pareja "correo electrónico - contraseña" o bien con el par "correo electrónico - nombre de usuario". Esta última permite a los jugadores que no han recibido el correo con las credenciales completas, autenticarse en el cliente de correo web con los datos que han introducido en el juego para registrar la cuenta del jugador, accediendo así a sus mensajes de correo incluído el primero que les informaba sobre la contraseña generada. Posteriormente, una vez conocida la contraseña, pueden autenticarse de ambas maneras.

Esta primera solución, aunque funcional, no era la mejor. El juego tras realizar una acción puede enviar al jugador uno o varios correos para su recepción inmediata, o bien puede que algunos se remitan con un retardo que puede ser de minutos, horas o incluso días. Obligar al jugador a acceder repetidamente al cliente de correo web para ver si ha recibido novedades es cansado, no es cómodo, ni da la sensación de inmersión en el juego que puede dar el recibir de repente un aviso de tu lector habitual de correo electrónico tanto en un ordenador como en un dispositivo móvil, indicando que has recibido un nuevo correo electrónico remitido por un personaje del juego a pesar de que hace un par de días que no lo tocas...

Había que buscar otra solución.

La solución definitiva: un servidor POP

La solución ideal sería que los jugadores reciban en sus clientes de correo los mensajes enviados por el juego, junto al resto de sus mensajes de correo normales. Desgraciadamente la conjunción de las políticas anti-spam de los proveedores de correo junto con la naturaleza gratuita del proyecto que impide tomar las medidas adecuadas para salvar esos filtros anti-spam generan un problema inicialmente insalvable.

Pues como antes, si los correos no llegan a las cuentas de los jugadores para que sean accesible desde sus clientes de correo, que sean los clientes de correo los que vengan al servidor del juego a buscar los mensajes.

Para ello se programó una aplicación servidor que exponen siguiendo el protocolo de correo POP los mensajes que el servidor ha remitido (o intentado remitir) a cada jugador. Obviamente como son mensajes de correo que son generados por el juego, no existe información personal del jugador que proteger, por lo que los comandos admitidos por el servidor POP son los mínimos imprescidibles para dar el servicio. No existe métodos de autenticación avanzados, ni encriptación SSL, etc... 

Se han implementado los comandos mínimos que exige el RFC 1081 junto con el comando opcional TOP, a los que se ha añadido el comando UIDL de la revisión posterior RFC 1939. Es de suponer que con esta implementación, practicamente cualquier cliente de correo podrá ser configurado añadiendo una cuenta adicional de correo con los datos necesarios para conecterse al servidor y leer los correos remitidos por el juego. Con esto se logra que el usuario pueda recibir los correos en los dispositivos de lectura que desee, por ejemplo puede configurar el lector de correo electrónico de su móvil para ir leyendo los correos que reciba sin necesidad de minimizar el juego para visualizarlos en el mismo ordenador.

Pero configurar un cliente de correo para acceder a los mensajes del juego no es la única posibilidad que ofrece esta solución. Muchos proveedores de correo como Gmail permiten importar en la cuenta de correo mensajes de otras cuentas y proveedores distintos siempre y cuando el proveedor externo permita el acceso usando los protocolos POP o IMAP. Si el proveedor de correo del jugador admite esta posibilidad tan solo tiene que configurar la funcionalidad en la web de su proveedor de correo. En la sección FAQ de la web se indican los pasos necesario para hacerlo en Gmail. Al hacer esto, automáticamente los clientes de correo que el jugador ya tenga debidamente configurados para acceder normalmente a su proveedor de correo, también mostrarán los correos enviados por el juego sin necesidad de configurarles nada, puesto que los filtros anti-spam no se aplican a correos importados de un proveedor externo. Por así decirlo, metemos los correos del juego con calzador en Gmail, y ya podemos decir aquello de "donde las dan..."

Mensajes del juego en Gmail
Con esto se puede considerar ya que "In Memoriam Revival Project" ha conseguido recrear completamente la experiencia que el juego ofrecía en sus buenos momentos, he incluso mejor ya que con el servidor POP se asegura que no se perderán mensajes de correo por las políticas anti-spam o modificaciones de las mismas que puedan producirse en el futuro.

No hay comentarios:

Publicar un comentario