Client e Server Telegram: Come comunicano ?
Tech Hub italia
Vi ricordiamo di iscrivervi al canale Telegram Tech Hub Italia. Detto ciò, buona lettura!
Prima di parlare di come funziona nello specifico la connessione fra un client Telegram e i loro server, vediamo di spiegare con un pratico schema, come funziona in generale un collegamento fra un qualsiasi client e un server
Come funziona un collegamento fra Client e Server?

Lo schema riportato qua sopra, spiega in modo semplice il collegamento che c'è fra un client e un server.
Il client si interfaccia con il server tramite un collegamento di rete, che sfrutta un protocollo per instaurare il collegamento con il server che a sua volta gestirà la richiesta del client e gli invierà la risposta.
Es: Quando noi scriviamo sulla barra di ricerca Google del nostro client browser "Facebook", la richiesta verrà inviata ai server Google, che verrà elaborata e ci risponderà facendoci visualizzare ciò che gli abbiamo chiesto, in questo caso i risultati di ricerca con la parola "Facebook".
Ovviamente tutto questo è spiegato in modo semplificato, senza citare protocolli di rete, tipi di connessione, tipologie diverse di Server e Client che renderebbero il tutto molto più complesso e dinamico, ma per adesso limitiamoci a sapere come funziona in grandi linee un collegamento fra Client e Server.
Telegram invece come funziona?

Il collegamento fra Client e Server Telegram è differente dal classico collegamento che siamo abituati a conoscere, infatti Telegram gestisce tutte le sue richieste su un Server Cloud, e questo è un fattore molto importante, in quanto vuol dire che tutti i nostri dati non sono salvati in uno spazio di archiviazione in locale, bensì sono salvati su degli spazi di archiviazione virtuali, a cui possiamo accedere tramite il nostro Client ed avere accesso ai dati, in questo caso i nostri dati conterranno le chat, gruppi, canali e molto altro.
Questo consente di avere una sincronizzazione immediata al primo accesso a Telegram con il nostro account, indipendentemente dal tipo di dispositivo che stiamo utilizzando.
Il collegamento fra Client-Server sfrutta la crittografia AES simmetrica a 256-bit e la crittografia RSA 2048.
Per quanto riguarda il Client Telegram, disponibile per diverse piattaforme, il team di sviluppo dell'applicazione di messaggistica ha deciso di utilizzare il protocollo MTProto.
MTProto è un protocollo sviluppato appositamente per Telegram, ed è divisa sostanzialmente in 2 livelli, la parte che gestisce la connessione Client-Server, e la parte che gestisce la connessione end-to-end (chat segrete).
Il lavoro che svolge MTProto è molto complesso, e ci vorrebbero vari articoli per la spiegazione del suo funzionamento, se però siete interessati a questo protocollo, vi consiglio di visitare la sezione apposita scritta dal team di Telegram, che spiega il funzionamento del protocollo, sia il livello per il Client-Server che quello end-to-end.
Tecnologie end-to-end
Le chat segrete sfruttano una tecnologia end-to-end per la salvaguardia della privacy, insieme all'utilizzo del protocollo per la criptazione dei dati che sfrutta il sistema di chiavi denominato "Diffie-Hellman key Exchange". Non sfruttando i Server Cloud di Telegram, a queste chat non è possibile accedere da ogni dispositivo, e le conversazioni non vengono salvate all'interno dei dischi di archiviazione virtuali.
Anche per questa sezione, per approfondimenti consiglio la lettura del manuale scritto, come i precedenti, dal team di sviluppo di Telegram, per capire il corretto funzionamento della tecnologia end-to-end con MTProto applicata (La lettura del paragrafo è consigliata alle persone che hanno già una conoscenza del mondo end-to-end e della criptografia).
Discorso Privacy?

Per il team di Telegram, la Privacy è sempre stato un punto molto importante da rispettare, ed è proprio questo punto che rende Telegram un'app di messaggistica diversa da molte altre presenti sul mercato, in quanto fa leva su due importanti fondamenti:
- Proteggere le tue conversazioni private dalla curiosità di terzi, come funzionari, impiegati.
- Proteggere i tuoi dati personali da terzi come manager, pubblicitari.
Telegram ha deciso di fondare la sua impresa su queste fondamenta, realizzando un'applicazione che non si impone fini commerciali, rendendola più libera possibile. Per quanto riguarda quest'ultimo punto, si parla proprio di libertà, in quanto il Client Telegram è open-source: ciò significa che è possibile reperire il codice sorgente del Client (Ovviamente solo di quest'ultimo, ciò non vale con il codice sorgente che gestisce il lato server).
Proxy

Dato che Telegram è bloccato in vari paesi, è stato introdotto nel suo Client l'opzione di connessione tramite Proxy, con cui è possibile scegliere 3 opzioni di collegamento:
- MTProto
- SOCKS5
- HTTP
Grazie ad una configurazione Proxy è possibile accedere a Telegram anche da paesi in cui altrimenti non sarebbe possibile accedervi per ragioni spesso politiche.
La configurazione più semplice da seguire è il metodo MTProto, sviluppato appositamente da Telegram per la propria app di messaggistica, ed è possibile creare un server Proxy su un VPS Linux tutto vostro (Non vi spiegherò come fare ad installare un Server Proxy su VPS Linux in questo articolo, in quanto sono numerosi passaggi di righe di comando da terminale, e l'articolo diverrebbe davvero lungo e non adatto a tutti).
La Community di Telegram ha creato un canale basato sulla condivisione di Server Proxy basati su MTProto: potete trovarli scrivendo semplicemente MTProto sulla barra di ricerca del client, qui verranno postati tutti i Proxy per stabilire una connessione.
In fatto di Privacy non si può dire molto, in quanto la vostra connessione passerà prima da un Server non ufficiale di Telegram che gestirà la vostra richiesta e la inoltrerà direttamente ai Server di Telegram. Acquistare un VPS Linux, anche da pochi euro, ed installarla da voi, renderà il tutto più sicuro (e divertente).
Per il momento ci fermiamo qua, seguiranno approfondimenti sui vari temi trattati nei prossimi articoli, alla prossima!
Continuate a seguirci sul canale telegram Tech Hub Italia!