Telegram está causando una gran revolución en la red. Para aquellos que no lo conozcan, es un cliente de mensajería, clon de WhatsApp pero medio OpenSource (el cliente está abierto pero el servidor no). Dispone de bastantes ventajas frente a WhatsApp, una mayor seguridad, es gratuito, funciones de chat seguras, etc. Según los desarrolladores, Telegram es una aplicación muy segura y prácticamente imposible de romper pero ¿esto es realmente así o es una excusa para ganar usuarios?
Telegram utiliza un algoritmo desarrollado por sus investigadores y, según afirman en su FAQ, es mucho más seguro que los algoritmos utilizados por otras plataformas como WhatsApp o Line. Esto es cierto, especialmente teniendo en cuenta la debilidad del algoritmo de WhatsApp, aunque no es tan seguro como sus desarrolladores afirman.
El protocolo que utilizan es MTProto. Este protocolo está desarrollado, como afirman, por un grupo de matemáticos (que no son criptógrafos) pertenecientes al propio grupo de desarrollo de Telegram. Una ventaja (o inconveniente) es que este protocolo es OpenSource, por lo que se pueden analizar sus características fácilmente para saber hasta qué punto llega su seguridad.
¿En qué se basa la arquitectura de Telegram?
Toda la red de Telegram se basa en disponer de varios servidores repartidos alrededor del mundo y conexiones de enrutamiento entre los clientes. Esto asegura aleatoriedad y dificultad a la hora de intentar interceptar los mensajes. Sin embargo, la autenticación y el cifrado únicamente se realiza entre cliente y servidor (y no utiliza TLS), no entre ambos clientes. El cifrado se realiza entre ambos clientes, pero sin autenticación por lo que puede permitir que, de cara al servidor, se lleven a cabo ataques MITM y tener acceso así a los contenidos de los mensajes. Puedes ver en qué consiste el protocolo de correo SMTP.
Todos aquellos que utilicen Telegram deberán «confiar en el servidor». No sabemos absolutamente nada sobre este, sus interconexiones ni su sistema de almacenamiento de datos ya que no han facilitado el código fuente de este. No sabemos qué ocurre dentro y, en caso de que se lance un ataque MITM contra este, no tendremos conocimiento de ello en ningún momento.
En qué se basa el protocolo de red de Telegram
El protocolo de red consta de 2 partes: intercambio de claves y comunicación.
El intercambio de claves se utiliza para registrar el dispositivo en el servidor. TLS es un protocolo algo lento y complicado de implementar (aunque es lo más seguro), por ello, los desarrolladores desarrollaron su propio algoritmo. Este algoritmo exige tres idas y vueltas de datos utilizando RSA, AES-IGE y Diffie-Hellman, junto con una prueba de seguridad procesada en los dispositivos (para evitar ataques DoS).
A continuación se crea la clave. AES-IGE no es un cifrado autenticado, por lo que Telegram no verifica la integridad de la misma. Para el cifrado de texto se utiliza SHA1 simple almacenado como texto plano. La clave DH se almacena (probablemente en texto plano ya que no tenemos acceso al código fuente del servidor) en el cliente y en el servidor como texto plano.
Conclusión
Aunque Telegram es bastante más seguro que WhatsApp, también tiene sus puntos débiles. Los desarrolladores han intentado dar muchas vueltas para, finalmente, terminar ofreciendo una seguridad mas bien baja, aunque superior a la media.
El hecho de no liberar el código impide saber con certeza qué ocurre con nuestros datos allí ni la seguridad que utiliza. Telegram aún sigue en desarrollo, por lo que es posible que con el tiempo se mejoren estos aspectos y lleguen a ofrecer una seguridad realmente alta. Por el momento, la seguridad continuará siendo un punto débil del nuevo cliente de mensajería instantánea que tanto está dando que hablar en los últimos días.
¿Qué opinas de Telegram?