MTProto

MTProto

From

Mobile Transport Protocol (en español: Protocolo de transporte móvil, abreviado: MTProto) es el nombre del protocolo de datos de Telegram. Está desarrollado bajo un estándar abierto, a base de API Java, desarrollado por el matemático Nikolái Dúrov y financiado por Pável Dúrov.[1]​ Fue anunciado en 2013 por la antes empresa estadounidense Digital Fortess, ahora desarrollada por Telegram FZ-LLC.[2]

A diferencia de XMPP, MTProto está enfocado en la multisesión multiplataforma y el transporte de archivos sin importar su formato o capacidad. El tráfico tiene dos tipos de cifrados, ambos con AES de base, siendo los chat secretos para el envío de mensajes de forma restrictiva contra la filtración de información sensible. Es una de las pocas aplicaciones desarrollados fuera de los Estados Unidos tras el incidente del cíberespionaje.[3]

Cabe señalar, sin embargo, que el código fuente no afecta a los servidores de MTProto que no son de código abierto.[nota 1]

Versiones[editar]

MTProto v1[editar]


La primera versión se estrenó en 2014. Los mensajes en MTProto fueron cifrados con el algoritmo SHA-1. Tras un reporte en enero de 2015, en donde el investigador Juliano Rizzo reveló un error en el funcionamiento de SHA-1 que originó una vulnerabilidad al interceptar los mensajes.[4]​ Más adelante el medio De Welt en 2016 señaló un posible reemplazo SHA-2.[5]


MTProto v2[editar]


En 2017, se lanza la segunda versión. El cifrado se reemplazó a SHA-256 con mayor cantidad de bytes de carga útil.[6]​ También está protegido de ataques IND-CCA.[7]


Desarrollo[editar]

Infraestructura y financiamiento[editar]


Digital Fortress fue una empresa estadounidense fundada por David "Alex" Neff, quien trabajó anteriormente como Director Asistente de Relaciones Internacionales de VK.[8]​ Como socio de QBC Systems, la compañía adquirió 96 terabytes de infraestructura para el almacenamiento de datos.[9]​ El protocolo MTProto fue implementado en 2013 de forma experimental; al tener éxito, el proyecto se masificó y la organización fue independizada como Telegram LLC.[2][10]

En 2014 las sucursales Telegram LLC y Digital Fortress fueron adquiridos por United Capital Partners, exdueño de VK,[11]​ generando una disputa legal sobre su auditoría con Pável. En simultáneo, la matriz empresa Mail.ru prohibió usar el término Telegram como nombre de la empresa.[12]​ Esto obligó a crear una nueva organización externa llamada Telegram Messenger LLP, cuya sede se mantuvo indefinida hasta 2017.


Central de datos[editar]


Véase también: Anexo:Sesiones de usuario de Telegram


Ilustración del tráfico en los chats normales, por defecto.
Ilustración del tráfico en los chats secretos.

El protocolo MTProto se desarrolló desde cero y difiere de XMPP para la creación de centrales de datos.[13]

A diferencia de XMPP por las limitaciones para iniciar sesión con números,[nota 2]​ la ID no proviene de la IMEI y cada dispositivo es asignado por una ID unificada. Para establecer el dispositivo activo es necesario una confirmación vía SMS o llamada telefónica por única vez, cuyo código lleva 5 dígitos,[15]​ con la posibilidad de asegurar con autentificación en dos pasos.

Para los chats normales, llamados cloud chats, se usa como cifrado cliente-servidor-cliente.[16]​ Los contenidos escritos, enviados o en borrador,[17]​ son codificados en bloques usando las claves ofrecidas del canal de conversación (con casos diferentes entre conversaciones de uno a uno).[16]​ Bajo eficacia cada mensaje almacenado en la nube es codificado simétricamente con AES-256. Para los archivos, se dividen en unidades de 1KB (si pesa menos de 10MB) o de 512KB (hasta 1.5GB) para mejor rendimiento en subida y descarga.[18]​ Para los enlaces, el servidor se encarga de previsualización las fotos o vídeos de los sitios web.[19]

Aparte, los receptores llevan una clave compartida firmada en SHA-256 para garantizar la seguridad de los mismos.[20][21]​ La clave varía en cada conversación solo se conservan en el centro de datos de los destinatario, asegurando su descentralización.[22][23]​ Con esta tecnología, el usuario puede recuperar sus mensajes al iniciar sesión en sin recurrir a servicios de terceros.[24]​ Además de garantizar el reenvío de los mensajes a otros contactos sin descargar su contenido.[24]

Para los chats secretos se cifran de extremo a extremo bajo el mismo algoritmo y con cifrado XOR de 128 bits para la firma digital. El mecanismo para los archivos varía según el tipo de metadato.[25]​ Para identificar la conversación se usa una figura. Por defecto, las previsualizaciones de los enlaces están desactivadas.[19]

En diciembre de 2014 se implantó en los chats secretos la tecnología Perfect forward secrecy para renovar las claves a medida que pase el tiempo sin comprometer a los mensajes antiguos.[26][27]


CDN[editar]


Esquema sobre el cifrado en servidores CDN. De acuerdo a este, el usuario recibirá las claves para descifrar los mensajes

En 2017 se implementó la infraestructura CDN para canales con más de 100 mil suscriptores. Sirve de caché de contenido, aunque cifrado antes de ser recibido en el dispositivo. Los mensajes son autenticados para evitar algún intento de manipulación. Dicha infraestructura no forma parte de las centrales de datos de Telegram y está enfocado en países con mayor demanda de usuarios.[28]

Desde la versión 4.2 de las aplicaciones se emplean algunas API para agilizar el funcionamiento de subida y bajada de datos. Por ejemplo, se usa upload.getFile para subir contenido y upload.getCdnFile para agilizarla.[29]​ En la sección de preguntas y respuestas en farsi, se planea mejorar el servicio para evitar la censura del gobierno iraní.[30]


Transporte de datos[editar]


MTProto admite transporte de datos en relación a la carga útil: Ligero para cobertura baja. Elevado para generar ofuscación que evita el bloqueo de las ISP. Ese último es sugerido para conectar con servidores MTProxy.[31]


Bot API[editar]
Un esquema ejemplificativo de un bot escrito en Python. Nótese el cuadro gris que engloba los procesos realizados por un servidor.

Artículo principal: Telegram Bot API



Read Next page

Report Page