La crittografia spiegata alla mia ragazza


Navigare su internet è molto simile a un servizio postale, in cui voi date un pacchetto all’ufficio delle poste per mandarlo al giusto destinatario
Quando siete su internet inviate sempre dati (upload) e ricevete sempre dati (download).
La prima volta che ho visto i dati della mia connessione mi sono detto “Wow! Stavo solamente controllando Wikipedia, che diavolo di dati ho mandato su internet ?!”.
La curiosità ha preso il sopravvento, ed ho iniziato ad informarmi leggendo i siti più disparati. In quelle letture ho trovato per la prima volta un riferimento alla crittografia.
Crittografare qualcosa significa “rendere un messaggio “offuscato” in modo da non essere comprensibile/intelligibile a persone non autorizzate a leggerlo” (wikipedia)
Per crittografare si usano “chiavi di crittografia” che variano per complessità e protezione.
Maggiore è il numero di dati usati per crittografare, più difficile sarà violare la misura di sicurezza.


Whatsapp, come Telegram prima di lui, e come altri sistemi di chat, usano ora una crittografia end-to-end per i messaggi inviati.
Questo significa che solo tu e chi riceve i messaggi li potete leggere — nessuno può decifrarli o intercettarli
Più leggevo e più mi rendevo conto di come il sistema fosse solo apparentemente complesso, e l’argomento tremendamente interessante e utile
Il passo successivo è stato controllare come viene applicata la crittografia end-to-end.
Il fatto che il messaggio sia criptato non implica infatti che questo non sia ricevuto da terzi


Alle poste, il Mittente da il pacchetto alle poste perché venga dato al Destinatario.
Ciò che manda/riceve il messaggio (Whatsapp, ad esempio) viene chiamato “client”, mentre l’ufficio delle poste si chiama “server”, ed è un grosso computer che gestisce la ricezione e l’invio di dati, e fa solo quello.
Uno dei modi in cui le chat possono mandare i messaggi crittografati è usare una crittografia client-server/server-client, dove il messaggio viene prima mandato al server e dal server mandato all’altro client.
È proprio il caso delle poste : do il mio pacchetto al servizio postale perché lo spedisca per me.
L’altro modo è usare una crittografia client-client, dove invece manca il “passaggio” dal server, e il dato viene spedito direttamente da un client all’altro.


È come dare il pacchetto a mano perché temo che le poste possano perderlo o rovinarlo.
In via teorica una crittografia client-client è più sicura rispetto una crittografia client-server/server-client dato che nessun “terzo” sarà mai, legalmente, in contatto con il messaggio — indipendentemente dal fatto che il terzo possa o meno leggere l’informazione.


Di contro, una crittografia client-client è definitiva. Una volta che il messaggio viene cancellato dal client, non sarà più possibile ritrovarlo, mentre una crittografia client-server/server-client ha (si spera per breve tempo) una copia crittografata del messaggio mandato.
Oltre al messaggio vengono inviate altre informazioni chiamate metadati.
I metadati non sono il messaggio, ma tutti quei dati “corollario” al messaggio stesso.
Sapere se il vostro contatto è online, o l’ultima volta che si è connesso.
Se ha letto il messaggio, o ha cambiato la foto del profilo.
Tutti questi sono metadati, e potrebbero dare informazioni che non avete interesse a diffondere.
I metadati, diversamente dalle conversazioni, non sono crittografati.
Questo significa che non solo il gestore del server potrebbe raccogliere e leggere queste informazioni su di voi, ma potrebbe anche qualunque malintenzionato che possa accedere alla rete.
Tutti quei dati che risultavano controllando la mia connessione e che non riuscivo a spiegarmi erano proprio metadati, informazioni su cui non avevo controllo ma scaricavo come parte dei siti che visitavo (cache) o di informazioni che fornivo (cookies).


Da quando ho letto e studiato queste cose ho fatto molto più caso ai sistemi di sicurezza e ai dati che fornivo tranquillamente in giro per internet, e sono felice che finalmente anche servizi come Whatsapp e Telegram stiano in qualche modo venendo incontro alle esigenze di sicurezza e privacy.
A te che leggi faccio una domanda : “quelle” foto che mandi alla tua ragazza, le mandi da un sistema sicuro?
Aggiornamento :
Ho recentemente letto questa notizia pubblicata oggi da Androidiani per cui Telegram starebbe studiando l’implementazione di una crittografia p2p. Chi ha un minimo di esperienza con emule o torrent sa già di che si tratta, per chi non ne avesse dico che si tratta di un protocollo crittografico più sicuro del end-to-end perché le informazioni non solo non possono essere “prese” da terzi, ma renderebbe di fatto Telegram una chat imbloccabile e incensurabile da parte di chiunque, non dipendendo più da server per nessun tipo di comunicazione. Se ci riuscissero, di fatto Telegram diventerebbe una chat totalmente libera, meno costosa per i gestori, e uno standard per le comunicazioni informatiche.


Per maggiori informazioni:
Guida tecnica alla crittografia di Whatsapp
Guida tecnica alla crittografia di Telegram
Spiegazioni sul funzionamento della crittografia (dal sito di Telegram)