Quelqu'un vous a envoyé trois lignes au lieu d'un lien. La première ressemble à une adresse de site ou à des chiffres séparés par des points, la deuxième est un nombre, et la troisième une longue suite de lettres et de chiffres, comme si un chat avait marché sur le clavier. Ou bien il y avait un lien, il ne s'est pas ouvert, et on vous a conseillé de « tout saisir à la main ». Vous ouvrez donc les paramètres de Telegram, vous voyez les champs « Serveur », « Port » et « Secret », et vous ne savez pas quelle ligne va où.
Je le dis tout de suite : nous vendons nous-mêmes des proxys, gardez-le en tête. J'ai vérifié les intitulés des champs ci-dessous sur la plateforme officielle de traduction de Telegram, et leur comportement dans le code source de Telegram Desktop et de Telegram pour Android.
Ce que Telegram fait de ces trois lignes
Un serveur proxy se place entre Telegram et le réseau : l'application ne se connecte pas directement, elle passe par cet ordinateur. Les trois champs indiquent à Telegram où se trouve cet ordinateur et comment lui dire bonjour.
Dans le champ « Serveur », on saisit l'adresse de cet ordinateur, soit une IP faite de chiffres et de points, soit un nom comme proxy.example.com, sans https:// devant. Dans Telegram Desktop, ce champ s'appelle « Hôte », dans les autres applications « Serveur ». Le port indique à quelle porte de ce serveur frapper. C'est un nombre jusqu'à 65535, et le guide de Telegram pour les propriétaires de serveurs prend 443 en exemple, le même numéro que celui des sites HTTPS ordinaires.
La troisième ligne est plus délicate, et presque toute la confusion vient d'elle. Seul un proxy MTProto a besoin d'un secret. Un proxy SOCKS5 n'en a pas, il peut avoir à la place les champs « Nom d'utilisateur » et « Mot de passe ». Le secret est créé par le propriétaire du serveur : selon les instructions de MTProxy, il prend 16 octets aléatoires, les écrit sous forme de 32 caractères et lance le serveur avec exactement ce secret. C'est pourquoi, sans le secret, le serveur ne vous laissera pas entrer, et un secret qu'un propriétaire a défini pour son serveur ne marchera pas sur celui d'un autre, même si tous les secrets se ressemblent. Dans l'interface française, le champ s'appelle « Secret » partout, sur le téléphone comme sur l'ordinateur.
Il n'y a dans ces champs ni identifiant Telegram, ni numéro de téléphone, ni code de connexion. Telegram demande de ne jamais communiquer votre code de connexion à personne, donc si l'on vous réclame ce code en même temps que l'adresse, cela n'a rien à voir avec le proxy. Le canal sponsorisé qui apparaît parfois dans la liste des discussions n'est pas caché dans le secret non plus : c'est le propriétaire du serveur qui l'active de son côté quand il enregistre le proxy. Le propriétaire du serveur ne peut pas lire vos messages, mais, comme le dit l'aide de Telegram, il voit votre IP et l'heure de vos connexions. Où trouver un serveur proxy pour Telegram et à qui faire confiance, je l'explique dans un article à part.
Où saisir tout cela
Dans Telegram pour Android, le formulaire s'ouvre par Paramètres → Données et stockage → Paramètres de proxy → Ajouter un serveur proxy, et le type à choisir est « Proxy MTProto ». Sur iPhone, le début est le même, dans Données et stockage, puis l'écran « Proxy » et « Ajouter un proxy ». Telegram Desktop le cache plus loin : Paramètres → Avancé → Type de connexion → Utiliser un proxy personnalisé, puis « Ajouter un serveur proxy ». Dans Telegram pour macOS, le formulaire se trouve lui aussi dans les réglages des données et du stockage. Si une instruction vous donne pour un Mac le chemin de Telegram Desktop, elle a confondu les deux applications.
- Ouvrez le formulaire d'ajout de proxy.
- Choisissez le type MTProto (dans Telegram Desktop, il est déjà sélectionné pour un nouveau proxy).
- Dans le champ « Serveur » ou « Hôte », saisissez l'adresse de la première ligne.
- Dans le champ « Port », saisissez le nombre de la deuxième.
- Dans le champ « Secret », collez la troisième ligne en entier et vérifiez sa longueur, j'y reviens plus bas.
- Enregistrez et regardez l'état dans la liste des proxys.
Dans le formulaire de Telegram Desktop, les champs « Hôte » et « Port » sont sous l'intitulé « Adresse socket », le champ « Secret » sous « Identifiants », et sous le choix du type figure un avertissement : « Ce proxy peut afficher un canal sponsorisé dans votre liste d'échanges. Votre utilisation de Telegram ne sera pas divulguée. » Il fait partie du formulaire lui-même et ne concerne pas le proxy précis qu'on vous a envoyé.
Si vous avez quand même un lien, il est plus simple de le toucher, car il contient les trois mêmes valeurs. Dans Telegram pour Android, quand un lien de proxy est dans le presse-papiers, l'écran d'ajout affiche l'option « Coller depuis le presse-papier », qui remplit les trois champs toute seule. Telegram Desktop a une option semblable, « Ajouter un proxy depuis le presse-papiers ». Et un lien avec un long secret qui ne s'ouvre pas dans le navigateur peut être collé dans n'importe quelle discussion Telegram, puis touché directement dans la discussion.
Comment savoir si le secret a été copié en entier
Un secret s'abîme facilement à la copie : la fin n'a pas été sélectionnée, ou la ligne a été coupée en deux. Mais cela se voit à la longueur. Un secret ordinaire fait 32 caractères, des chiffres et des lettres latines de a à f. S'il commence par dd, il en a 34, et ce préfixe active un remplissage aléatoire des paquets. Avec ee au début, le secret est plus long, 42 caractères ou plus, parce qu'un nom de site est inscrit à la fin.
Prenons un exemple inventé de secret qui commence par ee avec le nom www.example.com à la fin : ee000000000000000000000000000000007777772e6578616d706c652e636f6d.
Il fait 64 caractères : ee, puis les 32 caractères du secret lui-même, et tout ce qui vient après le 34e caractère, c'est www.example.com écrit en chiffres et en lettres. Un vrai secret sera différent, mais construit de la même façon. Compter les caractères du doigt sur l'écran n'a rien d'amusant, mais une fois, ça se supporte.
Les règles de Telegram Desktop sont les suivantes. Un secret de la bonne longueur avec le bon début est accepté, et un secret d'une autre longueur ou avec un autre début est considéré, selon la longueur, comme non pris en charge ou invalide. Si vous coupez le dernier caractère d'un secret inventé de 32 caractères, d'après ces règles il devient « non pris en charge », et s'il n'en reste que la moitié, « invalide ».
Il y a encore un piège, et c'est à cause de lui que je vérifierais la longueur après chaque collage. Le champ « Secret » de Telegram Desktop ne laisse passer que les lettres latines, les chiffres, - et _, et jette sans rien dire tout le reste. Un espace en trop à la fin, il le supprimera simplement. Mais une lettre tapée avec une autre disposition de clavier, par exemple un « а » cyrillique qui ressemble trait pour trait au « a » latin, disparaîtra, et le secret aura un caractère de moins. Il en va de même pour + et / tapés à la main : un secret qui contient ces caractères se connecte plus sûrement par un lien.
À l'enregistrement, Telegram Desktop vérifie les champs. Un « Hôte » vide ou un port 0 est signalé comme une erreur, un mauvais secret est signalé dans le champ « Secret », et la fenêtre ne se ferme pas. Si le proxy est arrivé sous forme de lien, le message « Ce lien proxy utilise un paramètre secret invalide… » veut dire que Telegram a refusé précisément le secret. Et une fois que tout est accepté, la liste des proxys affiche un état : « en ligne », « disponible (ping : … ms) » ou « indisponible », et une icône de bouclier apparaît en haut de la liste des discussions.
Ce que Telegram corrige pour vous, et ce qu'il ne corrige pas
Telegram Desktop a quelques petites tolérances. Si vous tapez une virgule au lieu d'un point dans l'adresse, le champ « Hôte » la remplace tout seul par un point. Si vous collez dans « Hôte » une IP faite de chiffres et de points avec le port après deux-points, comme l'exemple inventé 1.2.3.4:443, le port passe tout seul dans le champ « Port ». Avec un nom de serveur à la place des chiffres, cela ne marche pas, et il faudra saisir le port à part. Le champ « Port » accepte un nombre qui ne dépasse pas 65535. Sur Android, on ne peut y taper que des chiffres, et tout ce qui dépasse 65535 devient 65535.
Telegram ne réparera pas pour vous un secret qui vient d'un autre serveur. Cela arrive quand vous prenez l'adresse et le port dans un message et le secret dans un autre, juste à côté : les lignes se ressemblent, mais le serveur attend son propre secret. Prenez donc les trois valeurs d'un même serveur, idéalement dans un même message. Telegram ne complétera pas non plus un secret tronqué, il se contentera de le refuser. Et si l'on vous a envoyé un nom d'utilisateur et un mot de passe avec l'adresse et le port, il s'agit très probablement d'un proxy SOCKS5 : choisissez ce type, et le champ « Secret » ne vous servira pas.
Et si vous préférez ne rien saisir
Pour finir, comme promis, un mot sur nous. FreeGate fournit un proxy MTProto personnel, et on le connecte avec un bouton, pas avec trois champs. Vous touchez « Connecter dans Telegram » ou scannez le QR code, Telegram vous demande de confirmer le proxy, et vous touchez « Connecter le proxy ». Chaque appareil a son propre lien, qui ne fonctionne que pour vous. S'il a fuité, vous pouvez le changer dans votre espace en un clic, et l'ancien cesse aussitôt de fonctionner.
Vous pouvez essayer gratuitement : 1 jour après l'inscription avec votre e-mail et sa confirmation, sans paiement et sans prélèvement automatique. Ensuite, c'est 1,00 € pour 30 jours ou 2,50 € pour 90 jours, prix par appareil : pour un téléphone et un ordinateur, choisissez 2 à l'achat. Le proxy fonctionne dans les applications Telegram officielles, et la version web de Telegram ne prend pas en charge les proxys. Tous les détails sur freegate.app/world.