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:
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