Mobile Transport Protocol (en español: Protocolo de transporte móvil, abreviado: MTProto) es el nombre del protocolo de datos de Telegram con que gestiona, cifra y transporta los mensajes, contactos y metadatos del servicio de mensajería. 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. Fue anunciado en 2013 por la antes empresa estadounidense Digital Fortess, ahora desarrollada por Telegram FZ-LLC.

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.

Cabe señalar, sin embargo, que el código fuente no afecta a los servidores de MTProto que no son de código abierto.A 2020 no existe intenciones de librerar la plataforma completa hasta que este se descentralice y tenga un propósito benigno.

Versiones

MTProto v1 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. Más adelante el medio De Welt en 2016 señaló un posible reemplazo SHA-2.

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

Desarrollo Infraestructura y financiamiento Digital Fortress fue una empresa estadounidense fundada por David "Alex" Neff, quien trabajó anteriormente como Director Asistente de Relaciones Internacionales de VK. Como socio de QBC Systems, la compañía adquirió 96 terabytes de infraestructura para el almacenamiento de datos. 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.

En 2014 las sucursales Telegram LLC y Digital Fortress fueron adquiridos por United Capital Partners, exdueño de VK, 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. Esto obligó a crear una nueva organización externa llamada Telegram Messenger LLP, cuya sede se mantuvo indefinida hasta 2017.

Central de datos

thumb|200px|Ilustración simplificada del sistema de cifrado en las conversaciones normales de la nube. 200px|thumb|Ilustración técnica del tráfico en los chats normales, por defecto. Nótese el resultado obtenido: mensaje cifrado, clave de cifrado y firma de verificación. 200px|thumb|Ilustración del tráfico en los chats secretos. Las claves se almacenan únicamente en el dispositivo local. El protocolo MTProto se desarrolló desde cero y difiere de XMPP para la creación de centrales de datos.

A diferencia de XMPP por las limitaciones para iniciar sesión con números, 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, 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. Los contenidos escritos, enviados o en borrador, son codificados en bloques usando las claves o llaves de cifrado ofrecidas del canal de conversación con casos diferentes entre conversaciones de uno a uno. Bajo eficacia cada mensaje almacenado en la central de datos, o 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. Para los enlaces, el servidor se encarga de previsualización las fotos o vídeos de los sitios web.

Aparte, los receptores llevan una clave compartida firmada en SHA-256 para garantizar la seguridad de los mismos. La clave varía en cada conversación y estos se separan del centro de datos de los destinatarios, asegurando su descentralización. Para dificultarlo, no se relaciona la llave de cifrado (msg_key), la firma (auth_key_id) y el mensaje codificado al desgranarlos. Esto evita que desconocidos accedan a la nube y descifren las comunicaciones, a excepción del usuario (o el grupo, según el caso) que puede recuperar la firma para ver sus mensajes al iniciar sesión sin recurrir a servicios de terceros. En 2021 Pável Dúrov recalcó que si alguna parte de los centros de datos es confiscada o irrumpida los mensajes no se descifrarán.

En otra nota de Pável Dúrov de 2017 aclaró que el cifrado para los cloud chats garantiza el reenvío inmediato de los mensajes a otros contactos. En consecuencia, evita que el contenido origen se descargue y vuelva a subir, lo que ahorra consumo de datos. Aclara también que este tipo de cifrado ayuda a visualizar los mensajes de los grupos con miles de integrantes en tiempo real. No obstante, señala que los chats secretos cumplen el propósito de evitar filtraciones de contenido al usar otro tipo de cifrado.

Para los chats secretos se codifican 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. Al almacenarse los mensajes temporalmente, las claves de cifrado solo se guardan en los dispositivos locales. Además, se usa una figura que identifica la conversación. Por defecto, las previsualizaciones de los enlaces están desactivadas.

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.

CDN thumb|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 y no está relacionado con los centros de datos, 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.

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. En la sección de preguntas y respuestas en farsi, se planea mejorar el servicio para evitar la censura del gobierno iraní.

Transporte de datos MTProto admite transporte de datos en relación con 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.

Bot API thumb|350px|Un esquema ejemplificativo de un bot escrito en Python. Nótese el cuadro gris que engloba los procesos realizados por un servidor. Bot API es el nombre de la plataforma de aplicativos externos. A diferencia de los usuarios, los bots cumplen la función de software como servicio mediante la conversación (uno a uno) o la interacción (uso de botones, comandos, etcétera).

Siendo creados y controlados por los desarrolladores (algunos externos) el alias distintivo termina en bot. La primera versión, Bot API 1, fue anunciado oficialmente en junio de 2015 e incorporado desde la versión 3.0 de Telegram para Android y clientes afines. En abril de 2016, con Bot API 2, la interfaz puede distribuir 19 tipos de comunicación multimedia. Para la interacción los bots pueden usar geolocalización y callback. Adicionalmente, los bots pueden personalizarse a gusto del usuario y vincular cuentas de otros servicios.

Los servidores son conectados por medio de la API. Para ello el @botfather es que administra los tókenes y permisos. El lenguaje de programación para conectar con la interfaz es a libre elección. En abril de 2016 Dúrov ofreció donaciones individuales de 25 000 dólares por cada bot desarrollado de forma útil y rápida.

A diferencia de las conversaciones privadas, chats y grupos, el responsable necesita usar los certificados para cifrar contenido ya que las peticiones se transmiten por webhook. El requisito obligatorio es que el servidor use el cifrado estándar HTTPS bajo TLS versión 1.2 o posterior.

Características

Uso de órdenes

MTProto permite el uso de bot conversacionales o chatbots. Los desarrolladores pueden asignar una lista de comandos (/función subfunción). Para hacer más interactiva en las conversaciones, se añadió a los bots un teclado diseñado para respuestas u órdenes instantáneas. En la Bot API 2 se añadió un teclado adicional ubicado en la parte inferior de las conversaciones y que se interactúa al momento. Los teclados interactivos permiten mostrar resultados de reacciones (por ejemplo, el bot oficial @like), votaciones (@vote) u operaciones matemáticas en tiempo real.

Administración en grupos

Opcionalmente, los bots pueden controlar contenido y expulsar a integrantes de grupos. También, en la segunda versión, los bots son capaces de generar datos estadísticos de grupos públicos para una abierta interacción con los integrantes.

Bots integrados

En enero de 2016 se implementó los Inline Bots orientado a la entrega de información de sitios web sin salir de la aplicación. Para buscar o compartir información de un determinado bot es necesario mencionarlo por su alias en el cuadro de texto. Las primeras funciones fueron proveídas de Bing, Yandex, Youtube, IMDb, Wikipedia y Giphy. También se incluyó un bot que permite añadir cursiva y negrita en las conversaciones.

El desarrollo de los inline bots es distinto a los conversacionales. Los mensajes compartidos están atribuidos por el bot que el usuario utilizó. Además, no son configurables ni pueden ver información de los grupos.

Tienda de bots

La comunidad añadió una tienda dedicada llamada StoreBot (cuyo alias es @StoreBot) que es accesible como página web.

Avance y reportes de su seguridad