The Lost Papers - The Telegram Incident.


============================================


THE TELEGRAM INCIDENT


============================================

Han pasado algunos años ya desde la irrupción del smartphone aunque no me gusta esa acepción porque es errónea. Un terminal telefónico no es inteligente menos que su propietario demuestre serlo en su uso diario, me gusta más mirarlo de una manera global diciendo que no se trata de otra cosa sino de una computadora de bolsillo.

Pasado un tiempo aprovechando las posibilidades y características técnicas del hardware acabaron naciendo infinidad de proyectos que culminaron, unos con más éxito que otros, en un gran número de aplicaciones de mensajería instantánea. Lo que ofrecían era en cierto modo evitar costes adicionales en la factura utilizando como todos sabemos las nuevas características de conectividad incorporadas a los terminales.

Las ideas principales eran incorporar las características del "boom messenger" que vivimos a finales de los años noventa sumándole el no no contar con las limitaciones del envío de SMS, los cuales actualmente todos sabemos que se encuentra en una situación de claro desuso. Todos aquellos proyectos competían y siguen haciéndolo por las cotas de mercado y el número de usuarios que utilicen sus servicios. Desde el punto de vista de las finanzas e inversiones no tiene el mismo valor una empresa que ofrezca sus servicios a mil usuarios que la que ofrece y utilizan su servicio un millón. Por contra podemos analizar la calidad de servicio, la seguridad e integridad de los datos y el feedback entre usuarios y la empresa que presta el servicio. En este punto se encuentra Telegram. Aunque muchas personas solamente consideren su uso en el momento en que WhatsApp tiene una caída generalizada y no puede prestar sus servicios como ha ocurrido en varias ocasiones durante los últimos tiempos. Por lo general prima la popularidad a la estabilidad del servicio y a la seguridad relegando a Telegram a la opción B.

Una de esas valoraciones positivas que tiene en mi caso es la de utilizar software libre en ciertos aspectos y que cualquiera pueda corregir infinidad de fallos de programación. Con respecto al cifrado, es evidente que vá por delante de otras aplicaciones similares pero ocurre como con todo y debemos de ser conscientes de que todo sistema informático es vulnerable; por lo tanto también los tipos de cifrado.

Nos podríamos echar horas hablando de MTProto, de la criptografía simétrica, de AES, implementaciones de hash, de claves públicas y privadas, de certificados digitales y demás. Por ello esta entrada la quiero orientar al entorno de la experiencia personal utilizando durante años la aplicación empleando un lenguaje de lo más sencillo para llegar a más gente sin centrarme en tecnicismos. Hasta aquí ha quedado claro en mayor o menor medida que Telegram siempre ha sido más estable en prestación de servicio y "seguro" que WhatsApp tanto en su concepto como en todos esos bloques fundamentales que hacen que la aplicación funcione. Todo esto es como una obra de arte en el momento que te colocas frente a ella en un Museo, tienes una visión de conjunto para a continuación tener ese acercamiento que te hace apreciar los pequeños detalles que para otras personas permanecerían ocultos.

Aún recuerdo cuando comencé a utilizar WhatsApp y la lista de contactos que aparecían como usuarios no llegaba a quince personas. De mi círculo habitual más bien pocas por lo tanto intentas contarles un poco las ventajas que tenía con respecto a los SMS, que era una buena forma de aprovechar el plan de datos que tenían contratado; por ejemplo.

Pasó un tiempo y luego por circunstancias que no vienen a cuento comencé a utilizar LINE. De LINE ni me gustaba el interfaz y por supuesto su forma de funcionar, hasta que con el tiempo por recomendación de un buen amigo que es tan "friki" yo terminé utilizando Telegram. Comienzas a descubrir ciertas bondades por tu cuenta y no por lo que puedas leer, comienzas a sentirte cómodo con su cliente para PC y su disponiblidad para varios sistemas operativos, comienzas, comienzas, comienzas por hacerlo cuasi que imprescindible.

Luego comenzó a llegar la fama de Telegram en ese momento en que WhatsApp no comenzaba a gozar de mucha popularidad debida a los fallos de seguridad constantes, las caídas del servicio, la incompatibilidad con ciertos terminales y con ciertas versiones de Android hicieron que me decantase por la aplicación del icono con el avión de papel como primera opción.

Comienzas a descubrir que con cada dispositivo vinculado existe una notificación la cual actúa a modo de aviso de que están intentando "espiarte" si no eres tú. Ya no a nivel de una persona que quiera explotar una vulnerabilidad de la aplicación, de ser así no aparecería dicho aviso; sino alguien de tu entorno que lo desea hacer. Por contra todos sabemos lo fácil que es espiar a alguien a través de WhatsApp Web sin una verificación en dos pasos por defecto. Simplemente escanear un código QR para el inicio de sesión y nada más, Demasiado grave comprometer la privacidad de los usuarios de esa manera con tener en un descuido un terminal telefónico y un PC cerca. Tampoco sin mediar ninguna herramienta maliciosa. Siempre id al apartado de sesiones iniciadas a través de WhatsApp Web cuando notéis cosas raras. Consejo del día.

Por circunstancias que tiene la vida en un momento dado comienzas a indagar y a buscar la forma de llevar a cabo una copia de seguridad de todos los mensajes contenidos en las conversaciones activas. Desde el primer hola hasta el último adiós. Las circunstancias te obligan a buscar soluciones a un problema determinado, lo que conlleva el aprendizaje.

Una vez planteada la necesidad comenzó la búsqueda de las opciones de dichos clientes de mensajería en cuanto a hacer copias de seguridad. En las dos primeras estaba totalmente claro como llevarlas a cabo, pero con Telegram era una opción un tanto difusa. No deseaba que la información fuese un sencillo copiar y pegar. ¿Texto plano? De ninguna manera.

Teniendo en cuenta la cantidad ingente de información contenida, del planteamiento y funcionamiento de la plataforma de mensajería basado en servidores Cloud podría haber algún proyecto relacionado al respecto. Ante todo necesitaba que a dicha copia de seguridad fuese aplicable una comparación por valores Hash o MD5SUM. Sine qua non dicha comprobación entre los datos contenidos en la nube y los descargados no tendría validez alguna. He de reconocer que me llevó unos cuantos días afinando las búsquedas para encontrar la herramienta que precisaba para tal fín y acabó apareciendo una entrada en un blog haciendo referencia a una aplicación llamada telegram_backup.

Como me urgía realizar dicha copia de seguridad la probé y el resultado fué magnífico. Tanto que he creado un servicio que ejecute dicha tarea semanalmente para realizar una copia de seguridad y generar tanto la comprobación a través de Secure Hash Algorithm o MD5SUM con la información anexada a la base de datos con carácter incremental.

En primer lugar antes de ejecutarla por primera vez debemos de tener varias consideraciones en cuenta:

La primera es la no coexistencia de varias versiones tales como Java 7 y Java 8 en el mismo sistema operativo. Debido a que en la máquina encargada de realizar las copias de seguridad he tenido dicho problema de que no se ejecutaba correctamente telegram_backup. La solución al mismo pasa por desinstalar Java 8, a continuación desinstalar Java 7, reiniciar la máquina y realizar una instalación nueva de Java 8. Hasta aquí todo en orden y solucionado.

La segunda es que con dicha aplicación solamente podemos trabajar a través del intérprete de comandos tanto en Microsoft Windows, GNU/Linux y otros. En realidad para realizar dicha tarea es más que suficiente. Otro de los errores bastante comunes sobre todo en las instalaciones de Windows 7 y 8 es la configuración de la variable de entorno JAVA_HOME. Dicho fallo en ejecución tambien tiene una rápida y extremadamente fácil solución:

El primer paso y creo que resulta obvio es localizar la ruta de instalación de Java, lo habitual si no hemos cambiado el directorio por defecto durante el proceso de instalación sería C:\Archivos de prorama\Java\jre1.8.0_144 que es la versión que estoy utilizando en este momento en dicha máquina tras haberla actualizado recientemente.

Para solucionar el problema en Windows 7 haremos click con el botón derecho en Mi PC > Avanzado > Variables de Entorno > Variables del Sistema. Una vez ahí situados creamos una nueva variable de entorno, en el campo del nombre asignado a la misma escribimos JRE_HOME y en el valor de la variable escribimos la ruta del directorio en el cual se ha instalado Java.

En el caso de Windows 8 accedemos al Panel de control > Sistema > Ajustes Avanzados del Sistema > Variables de Entorno > Variables del Sistema. Crearemos la nueva variable de la misma manera que en el caso anterior. Y la guardamos.

Dependiendo de si tenemos instalado JRE o JDK la variable cambia un poco. Debemos darle el nombre de variable JRE_HOME si tenemos instalado el primero o JAVA_HOME si tenemos instalado el segundo.

El siguiente paso es descargar telegram_backup desde el espacio en GitHub del desarrollador. En la página principal encontraréis alguna información adicional de uso. ( https://github.com/fabianonline/telegram_backup )

Lo primero que hemos de hacer para ejecutar la aplicación es iniciar un intérprete de comandos y acceder al directorio en el cual hemos realizado la descarga. Una recomendación adicional es la creación de un directorio en el que guardaremos toda la información. En mi caso en otra partición del disco duro.

En mi modesta opinión considero que el manejo de la aplicación es bastante sencillo aunque explicaré brevemente las fases del proceso y las opciones básicas que debemos utilizar:

Ejecutamos telegram_backup e incluímos la opción --login para solicitar el acceso a los datos relacionados con nuestro número de teléfono y --target para indicarle cual es la ruta al directorio en el cual queremos realizar la copia de seguridad.

A continuación requerirá el número de teléfono asociado a la cuenta de Telegram y nos enviarán al cliente que utilizamos habitualmente el código de validación para vincular el dispositivo.

Como podemos apreciar en la captura sobre estas líneas esta vez ejecutamos la aplicación con la opción --account precediendo al número de teléfono en vez de --login. Una vez en ejecución llevará a cabo una serie de comprobaciones y comenzará a descargar toda la información en varias fases bien definidas. La primera es crear la base de datos sqlite en la cual se almacenarán los mensajes, tras ello comenzará a tener acceso en bloques de 400 y los irá descargando. Si por alguna razón tenemos la salida en el intérprete de comandos indicando timeout no es necesario detener la ejecución y reanudarla. Transcurrirá un instante en volver a tener acceso a nuestros mensajes y solicitará otro bloque para descargarlo.

Una vez finalizado el proceso de recuperación de mensajes comenzará la fase de recuperación de ficheros multimedia. Tanto imagenes como videos e incluso otro tipo de elementos. En esta si que debemos de tener bastante paciencia porque en ocasiones nos muestra bastantes mensajes de error relacionados con el timeout.

Lo que está claro es que le llevará varias horas la recuperación por lo tanto si no disponemos de tiempo o no queremos estar con una máquina encendida quizá un día entero podemos ejecutarlo cuando usemos el equipo mientras hacemos otro tipo de tareas y se continuará sincronizando la base de datos con los servidores de Telegram.

Una vez terminado el proceso de descarga podemos generar tanto SHA como MD5SUM y acto seguido crear un documento de texto plano con las mismas. Otra recomendación por mi parte es el uso de cualquier tipo de algoritmo de encriptación para el tratamiento y manejo de este tipo de datos actuando como medida preventiva siendo de esta manera frustrado cualquier tipo de intento de acceso a los mismos. Sobre todo en entornos de uso compartido.

Esta entrada quiero categorizarla como una experiencia personal con el trasfondo debido de manual ciertamente instructivo ante una necesidad concreta, cotidiana y más común de lo que pensamos. Ciertamente quién piense que no le puede hacer falta está tremendamente equivocado.

Por contra Facebook nos lo pone más fácil todavía dándonos la opción de descargar toda la información de nuestro perfil.

Aguardo de buen agrado que le resulte de ayuda a más de una persona, que no os intenten tomar por el pito del sereno.

That's all folks!