Telegram, ¿es tan seguro como pensamos?

Telegram, ¿es tan seguro como pensamos?

Seguro que todos nosotros hemos oído hablar de Telegram, esa aplicación que en solo unos días está consiguiendo cientos de miles de descargas solo en España. Nuestros compañeros de Andro4all ya hicieron una comparativa de Telegram frente a Whatsapp, en el que podréis ver cómo funciona la app, su interfaz, velocidad, etc. Además, desde Applesencia también nos mostraban los puntos principales que debemos saber sobre su política de privacidad. Pero el tema del que vamos a hablar hoy nosotros es la seguridad, ¿es Telegram tan seguro como dicen?

iphone con app Telegram

No sé si conoceréis el reciente concurso de criptografía que anunció Telegram, en el que ofrecen 200.000 dólares al que sea capaz de comprometer la seguridad de la aplicación. Este concurso debería provocar que un gran número de personas intenten comprometer su seguridad, pero, ¿por qué no lo hacen o lo han hecho ya? La respuesta es sencilla, el concurso no es tan bueno como lo plantea Telegram. Pero para saber por qué este concurso no es tan bueno tendremos que entender primero cómo funciona la seguridad en la criptografía.

¿Qué significa exactamente "seguro"?

Como ya sabemos, la criptografía se basa principalmente en alterar o modificar mensajes para hacerlos ininteligibles a intrusos que intercepten dichos mensajes, por lo que la criptografía y la seguridad están completamente unidas, cuanto mejor sea el método de encriptación, mejor será su seguridad. Esta seguridad será medida dependiendo de las capacidades que tenga la persona (o ordenador) que trate de romper nuestro sistema. Para ello tendremos que conocer los medios de los que dispone dicha persona, los datos a los que tiene acceso o los que puede modificar, etc.

Con los años, los expertos en criptografía han ido dando nombre a los diferentes tipos de usuarios y a los tipos de ataque que éstos pueden realizar. La mejor forma de comprobar la seguridad de un sistema es atacándolo de todas las formas posibles. Esto se hace dejando que un atacante intente burlar tu seguridad, para ello hay diferentes métodos en los cuales puedes proporcionarle a dicho atacante más o menos información o privilegios sobre tu sistema.

Por eso para comprobar la seguridad de un sistema de criptografía actual se suele realizar el ataque Chosen Ciphertext Attack o CCA. Este sistema consiste en dejar que el atacante pueda hacer prácticamente lo que quiera, desde obtener el cifrado de cualquier mensaje hasta modificar los que hay en tráfico, si un sistema no es seguro con un ataque CCA no es un sistema válido, o por lo menos, no tiene un buen nivel de seguridad.

Por tanto, la seguridad de un sistema dependerá del tipo de ataque que hagas contra el mismo. Si un atacante tiene mucha información sobre tu sistema pero aún así no es capaz de comprometer tu seguridad, tu sistema será bastante seguro.

El concurso de Telegram

Concurso de seguridad de Telegram

Volviendo al tema principal, el concurso de Telegram funciona de la siguiente manera:

Todos los días, Paul envía un mensaje a Nick que contiene una dirección de correo electrónico. Usted gana el concurso si envía un correo electrónico a dicha dirección. Además recibimos una transcripción del tráfico de red que entra y sale de Paul. Según el faq, podemos enviar paquetes arbitrarios al servidor, pero no podemos interceptar o modificar la comunicación.

Pero, ¿por qué el concurso no es tan bueno como dice Telegram? Como hemos dicho antes, un sistema es más seguro cuanto más datos tiene un atacante. En este caso el usuario no recibe ningún tipo de texto ni su cifrado, no puede modificar el tráfico de red, etc. En resumen, no tiene apenas información sobre su sistema, por lo que se queda muy lejos del ataque CCA visto anteriormente, de hecho, el concurso se queda casi en un ataque de comprobación básica de seguridad.

Si nadie gana el concurso, no significa que Telegram sea completamente seguro, sino que Telegram es seguro a niveles básicos de seguridad, pero habría que ver lo que pasa cuando se somete a un ataque CCA.

Por tanto, ¿como es de buena la criptografía de Telegram?

El protocolo de criptografía de Telegram no es tan seguro como pensamos, podemos ver el diagrama de su cifrado a continuación.

MTProto Telegram

Si observamos el protocolo detenidamente nos damos cuenta de algunos problemas de inmediato. Lo primero que vemos es que usan la función SHA-1 en vez de SHA512 o BLAKE2 (las recomendadas), ya que SHA-1 está criptográficamente rota. Además, a la hora de cifrar mensajes, ellos lo hacen con Mac and Encrypt (que no es seguro) en vez de hacer Encrypt then Mac con HMAC-SHA512. Otro de los problemas que presenta es que el protocolo hace cosas realmente extrañas con la factorización de enteros de 64 bits. Éstos son solo algunos de los problemas que presenta el protocolo a simple vista, aunque seguro que en la complejidad de su sistema pueden encontrarse algunos más.

La verdad es que el protocolo de Telegram no presenta la estructura básica que recomienda cualquier persona que entienda algo de criptografía, por lo que si su protocolo es seguro, es por accidente y no porque tenga un buen diseño. Además, ¿que pasaría si Telegram permitiera un ataque de CCA?, ¿seguiría siendo tan seguro?

Para ti
Queremos saber tu opinión. ¡Comenta!