LUCA Talk: SafePost, publica en RRSS sin conexión a internet

Wednesday, January 17, 2018

LUCA Talk: SafePost, publica en RRSS sin conexión a internet

Hace unas semanas, desde la unidad de datos de Telefónica, hemos lanzado un servicio llamado SafePost. Aunque ya se ha hablado de él en otras ocasiones en este blog, en este post vamos a darle una vuelta más y vamos a analizar este servicio desde un punto de vista más técnico, recorriendo cada una de las tecnologías que utiliza.

Figura 1 : SafePost: Publica en redes sociales sin conexión a internet


 
Lo primero de todo, para los que no conozcan este servicio, ¿qué es SafePost? De manera general, SafePost es una solución propuesta por Telefónica para publicar en redes sociales, enviar emails o comunicarse a través de internet utilizando nuestro smartphone en situaciones en las que no tenemos conexión a internet pero si tenemos la posibilidad de enviar SMS. Esta aplicación tiene una gran utilidad en situaciones excepcionales como terremotos en las que la red de internet puede fallar. La configuración y uso de la herramienta es bastante sencilla. Solamente tienes que registrarte con tu número de teléfono en la página web, https://SafePost.luca-d3.com, y descargar la aplicación de SafePost en tu teléfono para poder comenzar a enviar mensajes. En otros posts de este blog podéis ver como configurar vuestra aplicación. Además, podéis seguir el tutorial que se muestra nada más registrarse en la página web. En el vídeo a continuación puedes ver el webinar que realizamos el martes 16 de enero:



Una vez explicado de forma genérica que es SafePost y para que sirve, vamos a meternos en detalle con las tecnologías que utiliza.  Iremos recorriendo cada una de las partes relevantes del sistema y explicando los detalles técnicos de cada una de ellas.

Autenticación y creación de una cuenta


Vamos a comenzar por la autenticación y creación de una cuenta en SafePost.  La primero que vemos cuando entramos por primera vez a la página web es que lo único que tenemos que rellenar para registrarnos y poder utilizar este servicio es nuestro número de teléfono.















La autenticación y creación de cuentas están diseñadas para ser sencillas y eficientes, y no requerir más información personal que tu número teléfono, el cual es necesario para identificar los mensajes de los usuarios. La tecnología que nos permite hacer esto posible es Mobile Connect.

Mobile Connect es una iniciativa de la GSMA (Global System for Mobile Communications Association) válida para distintos operadores que permite a los usuarios autenticarse en aplicaciones de terceros mediante una cuenta de usuario vinculada a su número de teléfono móvil. El proveedor de autenticación de Mobile Connect es el operador de red móvil del usuario y la autenticación es más segura que la que ofrecen los esquemas normales de nombre de usuario y contraseña, porque el acceso a la cuenta se asegura a través del dispositivo móvil del usuario. En definitiva, es una forma muy sencilla y segura de autenticación que pretende convertirse en el nuevo estándar de autenticación digital. Os dejamos este post de ElevenPaths donde encontraréis más detalles técnicos y de implementación de esta tecnología.

Aplicación móvil y vinculación de nuestra cuenta


El siguiente punto que queremos tratar en el post, es la relación que existe entre la aplicación móvil y la página web, y la vinculación que hay que realizar entre ambas. Esta parte del funcionamiento del sistema tiende a ser la más conflictiva para los usuarios, por lo tanto, vamos a comenzar por explicar de manera muy general los pasos que se deben realizar y seguidamente veremos por qué este paso es necesario.

Lo primero que debemos hacer, una vez hemos introducido nuestro número de teléfono en la página web y Mobile Connect nos ha autenticado correctamente, es descargarnos la aplicación móvil de SafePost en nuestro teléfono. Cuanto tengamos la aplicación instalada, debemos avanzar hasta la siguiente pantalla en la página web:

Figura 3 : Pantalla de vinculación.


 
En este punto, utilizaremos nuestra aplicación móvil para escanear el código QR que se muestra. Una vez hecho esto, la aplicación nos mostrará lo siguiente:

Figura 4 : Introducción del PIN temporal.

Lo único que debemos hacer ahora es avanzar a la siguiente pantalla de la página web e introducir la secuencia de dígitos que nos proporciona la aplicación móvil (en este caso 123456).

Una vez explicado el proceso a alto nivel, vamos a introducirnos un poquito más en los detalles técnicos y vamos a ver que es ese número aleatorio y para qué sirve.

Cuando escaneamos con nuestra aplicación móvil el código QR que nos muestra la página web, lo que realmente estamos haciendo es compartir una clave entre ambos dispositivos (el servidor donde esta albergado SafePost, y el teléfono móvil del usuario). Esta clave será utilizada por un algoritmo denominado TOTP (Time-based One-Time Password) que, junto con la hora en ese momento, generará una clave temporal cada 30 segundos. ¿Para qué queremos realizar este paso y generar claves temporales cada 30 segundos? La razón es sencilla, por seguridad de los usuarios. Cada 30 segundos se generará la misma clave temporal en el servidor de SafePost y en el teléfono móvil del usuario, la aplicación móvil de SafePost, introducirá esta clave temporal en cada uno de los mensajes que envíe el usuario, y el servicio de SafePost, se encargará de comprobar si esta clave es correcta. De esta forma, evitamos que un atacante suplante nuestro número de teléfono y envíe mensajes en nuestro nombre, ya que el atacante no ha hecho el intercambio de la clave secreta mediante el código QR y por lo tanto, no puede generar las claves temporales que se incluyen en los mensajes.

Autorización en las RRSS


Una de las partes importantes del sistema es la autorización que el usuario le da a SafePost para que pueda publicar en cada una de sus redes sociales. El proceso de autorización es bastante sencillo. SafePost nos mostrará una página similar a la siguiente:

 Autorización de RRSS.
Figura 5: Autorización de RRSS.









Pulsando en cualquiera de las opciones nos redirigirá a la página oficial de cada uno de los proveedores para que introduzcamos nuestras claves y aceptemos los permisos para que SafePost pueda publicar.

En este punto es importante destacar algunos aspectos:
  • SafePost no almacena tu usuario y contraseña.
  • SafePost no tiene acceso a todos los recursos de tu cuenta.
  • En cualquier momento el usuario puede revocar los permisos a SafePost desde su perfil en una red social determinada.

Para garantizar los puntos anteriores, la aplicación utiliza lo que se conoce como OAuth 2.0. OAuth es un protocolo estandarizado que básicamente permite a un tercero (SafePost) acceder a contenidos que sean propiedad de un usuario (publicación en una red social) sin necesidad de conocer su usuario y contraseña. Para ello, utiliza una clave larga y aparentemente aleatoria llamada token de acceso.

Cuando el usuario autoriza a que SafePost publique en una red social determinada, lo que SafePost almacena es un token de acceso que le proporciona la red social. Este token tiene una serie de permisos asociados, en este caso publicación, y servirá únicamente para realizar las acciones para las que tiene permiso. El usuario siempre puede revocar este token de acceso desde su perfil en la red social.


Envío y publicación de mensajes


Por último, vamos a hablar sobre el envío y publicación de mensajes. Cuando hemos autorizado una determinada red social en la página web de SafePost, ya podemos comenzar a publicar en ella a través de nuestro smartphone y en concreto, a través de la aplicación móvil de SafePost.

Figura 6 : Pantalla de introducción del texto del mensaje.



 
La página web ya no es necesaria para nada más, a no ser que queramos autorizar otra red social o eliminar la autorización. Aunque el usuario no percibe nada, la aplicación realiza una serie de acciones por debajo, vamos a verlas en más detalle.

Cuando el usuario rellena los campos de envío para una red social determinada a través de la aplicación móvil de SafePost y pulsa el botón de enviar, la aplicación recopilará esta información y compondrá un SMS. Este SMS contiene la siguiente información:

  • La clave temporal para ese instante de tiempo generada por el TOTP.
  • Una etiqueta de la red social a la que se dirige el mensaje.
  • El mensaje del usuario.

Una vez creado este SMS, SafePost utilizará de nuevo la clave temporal generada por el TOTP (de la que hemos hablado en el punto anterior) para derivar otra clave más grande y con ella cifrar todo el SMS. Este SMS cifrado se enviará a una plataforma que simplemente lo convertirá a un formato adecuado para ser enviado por internet y lo enviará a nuestros servidores de SafePost. En nuestros servidores, se derivará la clave de descifrado a partir de la clave temporal generada mediante el TOTP, se descifrará el mensaje, se comprobará de nuevo que la clave temporal que acompaña al mensaje es correcta y, por último, se enviará el mensaje a la red social seleccionada por el usuario.


Conclusión


Como podemos observar, SafePost es un servicio sencillo pero que incorpora nuevas tecnologías que pretenden facilitar tanto el uso del sistema como la seguridad de los usuarios que lo utilizan. Cómo bien se comenta en la nota de prensa emitida por Telefónica, SafePost no pretende ser una aplicación de uso diario, ni sustituir la publicación en redes sociales a través de Internet, más bien, pretende ser una solución alternativa para esas situaciones extraordinarias en las que no disponemos de conexión a internet y necesitamos enviar un correo o publicar en una de nuestras redes sociales para avisar a nuestra familia, a nuestros compañeros de trabajo o a nuestros amigos.


Santiago Hernández Ramos - Equipo SafePost, Telefónica CDO

No comments:

Post a Comment