Journal d'investigation en ligne et d'information‑hacking
par Jef Mathiot

Telegram : DNS over Google

Le domain fronting du pauvre

Pour se prémunir du blocage et de la censure, Telegram a mis en œuvre un système de contournement… Assez ébouriffant.

Dans un précédent épisode, nous vous expliquions qu'il allait être difficile pour la messagerie Telegram de contourner le blocage imposé par le sympathique Vladimir Poutine.

C'était aller un peu vite en besogne (personne n'est parfait), car nous avons depuis découvert dans le code source de l'application que des mesures de contournement avait en réalité déjà été mises en place : une sorte de domain fronting du pauvre.

En effet, lorsque, sur le terminal d'un utilisateur, l'application de messagerie ne parvient pas — à cause du blocage — à se connecter aux serveurs de Telegram via les adresses IP préconfigurées, elle émet des requêtes HTTP vers google.com pour récupérer une nouvelle liste d'adresses IP.

En réalité, la véritable destination des requêtes n'est pas google.com, mais dns.google.com ou dns-telegram.appspot.com. google.com ne fait que les relayer. On trouve aussi une seconde « facade » dans le code source de Telegram, en l'occurrence le centre de téléchargement de Microsoft (software-download.microsoft.com), mais contrairement à la première, nous n'avons pas réussi à la faire fonctionner.

Lorsque l'on interroge l'un de ces deux URL, Telegram nous renvoie un charabia, apparemment encodé en base 64. Vous pouvez essayer par vous même sur Appspot ou sur le service dns.google.com.

Une fois les données en base 64 décodées, nous nous retrouvons avec des données chiffrées grâce à la clé privée RSA de Telegram. Nous...