Le monde selon Telegram

bfmnawakTelegram est souvent présentée comme l’alpha et l’oméga du terrorisme de la messagerie cryptée. Nombreux sont ceux qui voient son utilisation par des djihadistes comme la conséquence logique des ses supposées qualités cryptographiques, de la personnalité libertarienne de son fondateur, Pavel Durov, ou encore de la nature insaisissable de son infrastructure juridique et technique.

Un intéressant article du Monde décortique l’architecture fiscale et juridique de l’organisation. L’un des développeurs de Telegram y explique, parlant de son infrastructure technique, qu’elle serait «répartie sur plusieurs points de la planète, pour des raisons de vitesse et de sécurité ». Telegram se mettrait ainsi « hors de portée des États », non seulement en s’abritant derrière une structure juridique complexe et par l’usage du chiffrement, mais aussi par le truchement d’une infrastructure distribuée. Les membres de Telegram ayant la fâcheuse habitude d’attendre que nous les croyions sur parole tout en étant très discrets sur les « détails » techniques, ça nous démangeait d’aller vérifier.

Pour rappel, seuls les « secret chats » sont chiffrés de bout en bout, chiffrés et déchiffrés sur les terminaux des utilisateurs, illisibles pour les serveurs de Telegram. Dans tous les autres cas (chat normaux, groupes et chaînes), les messages sont chiffrés uniquement pendant leur transport entre les terminaux et les serveurs, ils sont accessibles aux serveurs de Telegram. La confidentialité des messages et autres données personnelles est ainsi directement corrélée à la sécurité de ces derniers. Mais où sont-ils donc hébergés, et comment les données des utilisateurs sont-elles réparties ?

Coding Dojo

D’abord, allons faire un petit tour dans le code source d’une application client Telegram (ici, Telegram Desktop). Le code nous apprend sur quelles adresses IP les applications Telegram peuvent trouver un serveur MTProto auquel se connecter (MTProto est le nom du protocole de communication). Il s’agit de cinq adresses (il existe aussi cinq adresses IPv6, mais cela ne change rien ici) :

149.154.175.50
149.154.167.51
149.154.175.100
149.154.167.91
149.154.171.5

Le code source et la documentation de Telegram les surnomme tendrement DC1, DC2, DC3, DC4 et DC5. Il s’agit bien sûr de l’abréviation de « Data Center », ou « centre de données » en bon français. Telegram fait ici dans la métonymie, chacun de ces « DC » désignant en fait une grappe de serveurs (un cluster), hébergée dans centre de données particulier, et dont l’adresse IP indique le point d’entrée.

Telegram a prévu de pouvoir ajouter des DC ultérieurement. Le hic, c’est que, comme nous l’avons vu, les adresses des DC sont définies dans le code des applications. Or ces dernières doivent, le cas échéant, découvrir l’adresse des nouveaux DC sans que l’utilisateur n’ait à effectuer une mise à jour. Les développeurs de Telegram ont donc mis en place un mécanisme qui permet aux applications, à partir d’une connexion à l’une des 5 adresses de départ choisie au hasard, de télécharger une liste à jour des adresses à utiliser.

Nous devons donc nous assurer, avant d’aller plus loin dans notre analyse, que de nouveaux DC n’ont pas été ajoutés. Ne reculant devant aucun sacrifice pour étancher la soif de connaissance de ses lecteurs, votre serviteur a bricolé vite-fait-sur-le-gaz un petit logiciel basé sur MTProto, le protocole de communication de Telegram. Après moult tâtonnements, nous réussissons à connecter ce dernier à l’un des serveurs MTProto afin de récupérer cette fameuse liste :

149.154.175.50
149.154.167.51
149.154.175.100
149.154.167.91
91.108.56.165

Nous avons donc confirmation qu’aucun DC n’a été ajouté, il y en a toujours cinq. En revanche, le lecteur attentif se sera aperçu que l’adresse du dernier DC a été modifiée. La raison de cette modification nous échappe encore (les deux adresses pointant au même endroit, nous avons pu le vérifier par la suite), mais passons. Nous disposons de la bonne liste, c’est là tout ce qui compte.

Internet vu du ciel

Ne sachant pas où les machines ayant ces adresses se situent, nous essayons de déterminer, grâce au logiciel traceroute, les trajets empruntés par nos paquets lors des communications avec les serveurs de Telegram, plus exactement par quels équipements ils transitent. Malheureusement sans grand succès, la quasi-totalité de ces équipements sur ces routes restant muets. Il nous faut donc adapter notre stratégie.

Nombreux sont ceux qui se représentent Internet comme un réseau en étoile, avec un centre où transitent (ou résident) les informations, et une périphérie par laquelle les terminaux se connectent. Au contraire, Internet est décentralisé. Il s’agit d’un maillage de réseaux interconnectés entre eux. Par exemple, lorsque vous lancez une recherche sur Google, les paquets passent par le réseau de votre fournisseur d’accès, puis par les réseaux de différents intermédiaires — des opérateurs de transit ou des points d’échange, sautent de réseau en réseau jusqu’à arriver sur le réseau interne de l’un des centres de données de Google, qui s’occupera de les acheminer à destination. La légende veut qu’ils n’oublient jamais de faire un petit coucou aux copains de la DGSE, du GCHQ et de la NSA au passage, à chaque extrémité des câbles sous-marins. Mais nous digressons, revenons-en à nos moutons.

Chacun de ces réseaux, qui peuvent être gérés par des opérateurs de télécommunication, des hébergeurs, des universités, des fournisseurs de contenus, etc., est intégré à un AS — un Autonomous System — identifié par un nombre (AS4826 ou AS6461 par exemple). Pour que les informations puissent circuler d’un réseau à un autre, il faut pouvoir déterminer la route à emprunter. Pour ce faire, chaque AS annonce l’ensemble des adresses IP qu’il contrôle (on parle de « préfixes » IP, qui peuvent correspondre à des milliers d’adresses individuelles) et les AS discutent entre eux, via le protocole BGP, pour se mettre d’accord sur des routes. Telegram possède trois AS en utilisation : AS59930 auquel sont rattachés DC1 et DC3, AS62041 qui annonce DC2 et DC4, et AS62014 dont dépend DC5. Le dernier, AS44907, n’est pas — ou plus — utilisé. Au total, les AS de Telegram annoncent un peu plus de 8000 adresses IPv4.

Deux des AS de Telegram, AS62014 et AS62041, sont appairés à l’AS6939 d’Hurricane Electric. Le dernier, AS59930, est appairé à l’AS1273 de CW Vodafone Group PLC. Ces deux AS proposent des outils (par exemple le « Looking Glass » d’Hurricane Electric ici, celui de Vodafone, ) qui permettent facilement de déterminer des routes BGP depuis différentes implantations. Certaines de ces routes nous permettent de déduire approximativement l’emplacement des DC de Telegram. DC1 et DC3 semblent se situer aux États-Unis, DC2 et DC4 aux Pays-Bas, et DC5 à Singapour.

Hurricane Electric Looking Glass
Hurricane Electric (AS6939) – Looking Glass

Les noms de certains équipements de Telegram confirment ces déductions. Le « ams » de « ams-ix-gw.telegram.org » signifie bien sûr Amsterdam, le « sin3 » de « telegram-corp.10gigabitethernet1-1-1.switch1.sin3.he.net » désigne Singapour, quand au « mna » de « telegram-gw-mna.cw.net », il fait apparemment référence au « Miami Nap of the Americas », un centre de données basé en Floride.

 

AS6939
Hurricane Electric (AS6939) – Route Monitor

 

Atlas to the rescue

Pour vérifier notre hypothèse, nous utilisons RIPE Atlas. Il s’agit d’un réseau de mesure, composé de milliers de sondes installées dans (presque) tous les pays. Ces sondes, que l’on peut interroger à distance, sont capables d’effectuer quelques mesures basiques sur Internet : accessibilité, latence, routes ou résolution de noms de domaine. Ces opérations n’ont rien de très élaboré, mais l’intérêt réside dans la possibilité de se projeter grâce aux sondes dans une « partie » spécifique d’Internet, comme un pays ou un AS particulier, pour les y effectuer. Par exemple, on peut l’utiliser pour vérifier si tel pays ou tel opérateur censure tel site Web.

Le logiciel ping, disponible sur les sondes RIPE Atlas, permet de mesurer le round-trip vers une machine donnée, c’est à dire le temps nécessaire pour obtenir une réponse de sa part. Plus ce temps d’aller-retour est court, plus il est probable que nous soyons proches des DC de Telegram. Notre stratégie consiste donc à « pinger » les centre de données depuis différents pays voisins. Par exemple, pour Singapour :

ripe-atlas measure ping --target=91.108.56.165 --from-country=MY
ripe-atlas measure ping --target=91.108.56.165 --from-country=AU
ripe-atlas measure ping --target=91.108.56.165 --from-country=TH
ripe-atlas measure ping --target=91.108.56.165 --from-country=JP
ripe-atlas measure ping --target=91.108.56.165 --from-country=HK
...
ripe-atlas measure ping --target=91.108.56.165 --from-country=SG
Sondes RIPE Atlas - Singapour
Sondes RIPE Atlas – Singapour

Depuis les sondes situées à Singapour, nous obtenons les round-trips les plus courts, souvent inférieurs à 3 millisecondes, bien en dessous de ce que nous observons depuis la Malaisie, la Thaïlande, l’Australie, le Japon, Hong-Kong, etc. Sur deux des sondes singapouriennes, ils descendent même en dessous d’une milliseconde. Selon toute probabilité, DC5 se trouve donc bien à Singapour.

En répétant le processus pour les 4 autres « DC » de Telegram, nous pouvons confirmer avec une assez grande certitude ce que l’observation des routes BGP avait suggéré :

Data Center Adresse IP Localisation
DC1 149.154.175.50 USA
DC2 149.154.167.51 Pays-Bas
DC3 149.154.175.100 USA
DC4 149.154.167.91 Pays-Bas
DC5 91.108.56.165 et 149.154.171.5 Singapour

Éparpillé façon puzzle

La documentation décrit la procédure d’activation ou d’authentification d’un compte utilisateur. Nous avons pu vérifier que la documentation est exacte sur ce point grâce au code source des applications Telegram, ainsi qu’à notre petit logiciel qui nous a permis d’expérimenter le processus. Lorsqu’une personne souhaite connecter un appareil à son compte Telegram, l’application qu’elle utilise transmet son numéro de mobile à un serveur Telegram. Ce dernier envoie alors un SMS contenant un code d’authentification permettant de vérifier que l’utilisateur est bien le propriétaire de cet appareil, en tout cas qu’il y a accès. Au démarrage de cette séquence, l’application se connecte à un DC choisi au hasard. Le serveur dispose alors de codes d’erreur pour demander à l’application de « migrer » vers un autre DC. Par exemple, le code NETWORK_MIGRATE est utilisé lorsque le numéro de mobile est inconnu, que l’utilisateur n’a pas de compte Telegram. Dans ce cas, le serveur essaye de déterminer la localisation de la personne à partir de l’adresse IP de son terminal, et lui propose le DC le plus proche. Si au contraire le numéro de téléphone est connu, le serveur renvoie le code PHONE_MIGRATE, et impose l’utilisation du DC auquel l’utilisateur est associé.

sniffogram-annot
Authentification MTProto

Ces différents DC ne sont pas des « proxies », des intermédiaires qui iraient éparpiller façon puzzle les données de chaque utilisateur dans plusieurs lieux physiques. Les données sont stockées dans le DC choisi, la documentation de MTProto l’indique très clairement : « les données de l’utilisateur s’accumulent dans le DC avec lequel l’utilisateur est associé ».

doc-mtproto
Documentation MTProto

L’emploi du terme « hosted », dans ce tweet de Telegram, va également dans le sens de cette hypothèse.

tweet-tg

En résumé, le serveur Telegram auquel vous vous connectez choisit pour vous le DC le plus proche de votre localisation géographique. Il s’agit ainsi d’un partitionnement horizontal des données, effectué en fonction du lieu depuis lequel votre compte utilisateur a été créé. Ensuite, tout ce qui vous concerne y sera stocké. Vous avez activé votre compte à Hong Kong ? Cela se passera à Singapour. À Washington ou à Rio ? Aux États-Unis. À Paris, Tripoli, Londres, Téhéran, Rome, Madrid, Marrakech, Berlin, Beyrouth, Lisbonne, Alger, Bucarest, Damas, Genève, Athènes ou au Caire ? Dans tous ces cas vos données seront stockées dans l’un des deux DC néerlandais.

Distribuée, l’infrastructure de Telegram ? C’est techniquement exact, les données que stocke et manipule Telegram sont exploitées en différents lieux. En revanche, du point de vue d’une (très grande) région du monde, elles sont concentrées géographiquement. On pourrait dire que pour Telegram, le monde est coupé en trois : il y a des Telegram distincts, qui opèrent relativement indépendamment les uns des autres.

Pataphysique des câbles

Ces choix d’implantation n’ont rien de surprenant sur un plan technique. Singapour est idéalement placé pour servir la zone Asie-Pacifique — Chine y compris, est doté d’une excellente connectivité et d’une forte densité de centres de données. D’après Cloudscene, on y en compte 57 (un pour 100 000 habitants) contre 207 en France (1 pour 320 000 habitants). La situation est analogue aux Pays-Bas, qui sont bien situés géographiquement et sont tout aussi fournis en connectivité et en centres de données. La Floride est, quand à elle, un point d’où partent un nombre important de câbles sous-marins reliant l’Amérique Latine aux États-Unis.

Câbles sous-marins
Câbles sous-marins – Floride et Amérique Latine

Les Pays-Bas disposent peu ou prou du même arsenal juridique que les autres pays européens dès lors qu’il s’agit de télécommunications. Les saisies de matériel ou de données y sont bien sûr possibles, tout comme sont prévues les interceptions ou l’obligation de déchiffrement, par exemple. Par le biais d’une modification en 2016 de l’Intelligence and Security Services Act de 2002, le pays a considérablement renforcé les pouvoirs des grandes oreilles hollandaises. Le contenu de ce texte n’est, d’ailleurs, pas sans rappeler les lois françaises sur le renseignement ou la surveillance internationale (attention, instant nostalgie). Aux États-Unis, les search warrants, subpoenas et autres gag orders sont monnaie courante, les capacités techniques de la NSA, du FBI ou d’autres agences gouvernementales ne sont plus à démontrer. La République de Singapour est régulièrement épinglée par l’ONG Human Rights Watch pour ses atteintes aux « droits civiques et politiques fondamentaux ». Le magazine Foreign Policy n’hésite pas à dépeindre cette riante contrée comme « un laboratoire non seulement pour tester comment la surveillance de masse et l’analyse des big data pourraient prévenir le terrorisme, mais aussi pour déterminer si la technologie peut être utilisée pour concevoir une société plus harmonieuse ». On notera également que Singapour est un client de Qosmos. Véritablement l’endroit idéal pour installer l’infrastructure d’une messagerie soucieuse de la vie privée de ses utilisateurs…

Ainsi, Telegram n’a pas choisi de répartir ses « serveurs » aux « quatre coins du monde » pour brouiller les pistes, comme on peut lire ici ou là. Telegram a sélectionné trois zones d’implantation pour des raisons techniques. En particulier, placer ses serveurs au plus proche des utilisateurs permet d’améliorer leur expérience en réduisant les temps de réponse. C’est d’ailleurs ce que font tous les gros fournisseurs de services Internet. Enfin, la capacité d’opérer des centres de données indépendants les uns des autres permet une plus grande résilience, puisque l’indisponibilité d’un DC n’empêchera pas les autres des fonctionner. Mais ces choix n’apportent absolument rien sur le plan de la sécurité.

Le développement du chiffrement en transit rend progressivement les interceptions de données pendant leur transport sur les réseaux, par les FAI et autres opérateurs de télécommunication, de plus en plus inefficaces, y compris en ce qui concerne les métadonnées. Les tuyaux exsudant de moins en moins d’informations croustillantes, il est logique que l’œil de Sauron des services de police ou de renseignement se tourne vers d’autres types d’acteurs, qu’il se focalise sur les extrémités de ces tuyaux où les données rejaillissent en clair. On peut donc s’attendre à ce que la pression sur les fournisseurs de services ou les hébergeurs s’accentue. Le système de scan d’emails qui aurait été mis en place par Yahoo! à la demande d’une agence gouvernementale US s’inscrit dans cette logique, et il est assez probable que nous assistions à l’avenir au développement de ce genre de pratiques. Face à une coalition d’états en pétard, le mille-feuille de sociétés offshores de M. Durov risque fort de s’avérer un rempart en carton.

En réponse aux critiques que lui adressait Edward Snowden, Pavel Durov conseillait aux utilisateurs qui ne feraient pas confiance à Telegram de n’utiliser que les secrets chats, c’est à dire le chiffrement de bout en bout.durov-trustExcellent conseil.

Twitter Facebook Google Plus email

13 thoughts on “Le monde selon Telegram”

  1. M’oui …

    C’est comme tou(te)s ce(tte)s terroristes ou supposées tel(le)s qui se sont fait chopper pour avoir utilisé Telegram.
    Un je veux bien mais deux, trois et plus … ils sont (heureusement) cons car ça sent la porte dérobée et/ou tout autre moyen utilisé par les « services » pour faire sauter les protections annoncées par le Pavel.

    1. Ou bien, ils ont pas la connaissance et la rigueur nécessaire pour bien manipuler des outils de chiffrement. Es-ce qu’il suffit de pirater le téléphone pour accéder aux données de Télégram ??
      Sans parer de techniques d’intrusion informatique, savent-ils se protéger de l’ingéneurie sociale dont tous les services de renseignements sont experts depuis des décennies. En effet, leur métier c’est comme même d’infiltrer un groupe +/- connu d’individus et d’en retirer des informations.
      Vu la jeunesse des personnes inculpées, je pencherais pour la seconde hypothèse, ou un mix des 2 (un compte Télégram qui suit le forum d’un propagandiste en Syrie et qui se connecte toujours à la même IP d’Orange).

  2. Merci pour la leçon !

    Si Telegram n’est pas l’outil parfait pour les communications chiffrées, il est perçu comme tel (par un majorité du public). Du coup, ses détracteurs sont plus sur une ligne idéologique que technique ! (et ton expérience va dans ce sens)

  3. Bonjour,

    Je suis passé à Riot maintenant, pourriez-vous faire la même analyse avec Riot. https://riot.im/ (anciennement https://vector.im/)
    C’est une nouvelle messagerie sécurisé avec chiffrement de bout en bout.
    Ce que je voudrais savoir c’est si ce chiffrement est activé par défaut pour les messages, mais aussi pour les appels audio et vidéo.

  4. J’ai du mal à comprendre l’étape IP->AS.
    Quel type d’outil permet de révéler ce lien?

    Je ne suis pas sûr de bien comprendre:
    Une IP est toujours liée à un unique AS?
    Un AS regroupe un ensemble d’IP, donc un ensemble d’équipement réseau derrière, tous situé physiquement au même endroit?

    J’ai essayé d’utiliser https://www.ultratools.com/tools pour récupérer un AS à partir d’une IP, mais bizarement pour la liste d’IP donnée, le résultat est toujours AS62041

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *