Informatica per script kiddies 2 – Le VPN

È il terzo mercoledì del mese, e quindi rieccoci con Informatica per script kiddies. Sì, esce il terzo mercoledì di ogni mese, non temete. Trovate qui tutti gli articoli della rubrica.

Oggi, invece, parliamo di VPN. Trovo sia un argomento utile anche a molte persone non così vicine al mondo informatico, ma che sono costantemente bombardate da pubblicità su questo o quel servizio per la privacy senza che si capisca di cosa si parli.

Le reti e la Rete

Ad un certo punto della storia dell’informatica, dovendo passare informazioni da un computer all’altro, ci si è ingegnati per trovare un sistema universale per collegare macchine diverse tra loro.

Da allora, le tecnologie sono molto cambiate (meno di quanto si creda, comunque), ma la sostanza è ancora quella: i computer possono collegarsi tra loro in una rete, una struttura tecnologicamente complessa ma idealmente molto semplice che permette a più macchine di trasmettersi informazioni.

Ognuno di noi, molto probabilmente, ha una piccola rete a casa. Più o meno abbiamo tutti quanti almeno un PC o un dispositivo mobile, collegati in qualche maniera ad un router. Sia il PC che il dispositivo mobile, così come il router, pur con compiti diversi, sono macchine che comunicano tra loro utilizzando un’infrastruttura (dei cavi, delle antenne…), e formano quindi una rete.

Questo tipo di rete generalmente piccola, composta da pochi dispositivi connessi attraverso un mezzo dedicato solo a quello, sono in generale chiamate LAN, o reti locali.

Molto presto le reti locali non sono bastate più, in parte perché non sempre le macchine da collegare tra loro sono a portata di cavetto o antenna, e in parte perché il collegamento tra computer è subito diventato assai comodo per far comunicare tra loro gli utenti dei computer stessi. Si sono iniziate così a collegare reti locali tra loro, creando reti locali molto estese, e anche oggetti che locali non erano più.

Attraverso un modem, infatti, si è potuto far passare informazioni da una rete all’altra attraverso una rete molto più capillare e molto più antica: la rete telefonica.

Così, dopo un po’ di passaggi, è arrivata Internet, per gli amici “la Rete”, che altro non è che una rete di reti più piccole, interconnesse tra loro grazie alla rete telefonica1 e a sistemi che governano il tutto.

Le reti private

Le LAN casalinghe (ma anche quelle assai meno casalinghe) hanno in genere una struttura semplice. Uno o più dispositivi sono connessi, con il cavo o con il Wi-Fi, ad uno scatolotto centrale che tendiamo a chiamare router. Tale scatolotto, in realtà, contiene un po’ di roba. Le componenti che ci interessano di più qui però sono due.

La prima è il router/switch, appunto, che è quello a cui stanno connessi i dispositivi della rete, e che serve a passare a ogni dispositivo solo le cose che gli interessano: se mando un documento alla stampante, il router lo riceverà e si prenderà la briga di mandarlo alla stampante, senza che arrivi a tutti gli altri dispositivi intasandoli inutilmente. Parlo di router/switch come se fosse una sola cosa, ma sono due oggetti leggermente diversi: il router passa dati da una rete all’altra (wifi, cavo, esterna), mentre lo switch manda i dati alla singola macchina.

La seconda è il modem, che come abbiamo già visto trasforma le comunicazioni che il router/switch vuole inviare all’esterno in qualcosa che possa transitare sulla linea telefonica, e vice versa trasforma le comunicazioni provenienti dalla linea telefonica in cose che possano transitare sulla rete.

Il router/switch, affiancato in questo spesso da altre componenti, permette alla LAN di essere una rete privata. La sua componente router, infatti, separa rigidamente la rete interna, dentro la quale le informazioni passano da una macchina all’altra senza uscire dalla rete, da quella esterna.

È il motivo per cui possiamo permetterci di avere in rete una stampante sempre in attesa senza che qualcuno da fuori stampi cose, o di condividere file o directory senza eccessive precauzioni per accedere dagli altri computer. Da fuori, la nostra rete sarà un oggetto unico, con un solo indirizzo, a cui mandare messaggi che il router tratterà come crede e ignorerà se crede.

Le reti private, ma virtuali

Comodo, no? No. O meglio, talvolta no.

Spesso è estremamente utile che una o più computer distanti da una rete LAN vedano senza problemi tutte le altre macchine della rete stessa.

Si pensi ad esempio a situazioni molto semplici, come una persona che lavora da remoto ma deve avere disponibili dati e risorse presenti nell’ufficio della sua azienda, o a situazioni estremamente complesse, come due edifici di uffici troppo distanti per essere collegati in un’unica LAN.

L’idea trovata per risolvere questo problema prende il nome di rete privata virtuale, o VPN (virtual private network). Consiste nel mettere dentro la LAN (talvolta direttamente dentro lo scatolotto del router) un sistema che si chiama VPN server.

Se un computer deve comunicare con una LAN dotata di VPN server, può richiedere all’inidirizzo della LAN di poter accedere, identificandosi. Il modem inoltrerà la richiesta al router, che la manderà al VPN server, il quale, se accetta l’identificazione, autorizza l’accesso.

Da quel momento in poi, ogni messaggio in uscita dal computer remoto verrà cifrato dal computer stesso, instradato dalla sua rete locale verso la linea telefonica, e ricevuto dal VPN server, che si occuperà di decifrarlo e instradarlo a sua volta verso la macchina destinataria all’interno della LAN.

Allo stesso modo, tutte le macchine della LAN vedranno, attraverso il VPN server, il computer remoto come uno di loro, e potranno inviargli messaggi.

Insomma, abbiamo una LAN e un computer. Tra la LAN e il computer si viene a creare un collegamento che genera una sorta di rete che è la somma delle due entità. Si tratta di una rete privata, perché mentre il messaggio viaggia fuori dalla LAN è cifrato, e perché nessun computer non autorizzato può comunicare con gli altri appartenenti alla rete. Si tratta di una rete virtuale perché non è un entità fisica, ma un insieme di macchine appartenenti a reti fisiche diverse.

Privato e privacy

Un sacco di marketing gioca tantissimo sulla confusione generata dalle parole “privata” e “cifrata”. Sì, le VPN sono private, e sì, le VPN usano la cifratura.

Questo però non significa neanche lontanamente che utilizzare una VPN sia sinonimo di proteggere la propria privacy. Come abbiamo visto, le VPN sono un semplice strumento di lavoro, che serve a far parte di una rete privata quando si è lontani dall’accesso diretto.

E allora perché ci vendono accessi VPN per proteggere la nostra privacy? È una buona domanda, e ha diverse risposte, a seconda di quello che ci interessa, e nessuna ovvia.

  • Se vogliamo proteggere la nostra privacy dal sistema a cui ci stiamo connettendo (un sito, ad esempio), una VPN ha senso. Da casa, possiamo collegarci attraverso una VPN a una rete che non è quella di casa, e da lì connetterci al sistema in questione. Il sistema non vedrà noi, ma la rete di chi ci dà l’accesso VPN. Alcune informazioni su di noi (browser, caratteristiche del computer) potrebbero comunque passare, a seconda di come è configurata la VPN.
  • Se vogliamo proteggere la nostra privacy dal nostro provider di servizi Internet (o da quello del bar da cui ci connettiamo, o dal gestore del bar stesso), anche in questo caso la VPN ha senso: il provider ci vedrà solo connetterci alla VPN, e non saprà cosa facciamo e quali risorse utilizziamo.
  • Se vogliamo proteggere la nostra privacy dallo Stato, ancora una volta la VPN ha senso, se risiede in un altro stato (di cui ci fidiamo). Allo stesso modo, ha senso se vogliamo accedere a risorse alle quali lo Stato ci nega l’accesso (talvolta è legale, ad esempio è di solito tollerato in alcuni stati illiberali che accolgono lavoratori esteri i quali hanno bisogno di risorse all’estero della loro azienda).
  • Se vogliamo proteggere la nostra privacy dai Poteri Forti™, dipende. Chi ci fornisce la VPN non è necessariamente affidabile. Magari è un Potere Forte™.

Insomma, l’uso della VPN fornita “per proteggere la privacy” ci protegge da chi gestisce la rete in cui ci troviamo, e nasconde la nostra identità al destinatario reale della nostra connessione (il quale vedrà la rete del VPN server e non il nostra reale LAN). Se ci fidiamo di chi gestisce la nostra rete e del destinatario (o diamo al destinatario i nostri dati direttamente a mano) non ha il minimo senso utilizzare un servizio di questo genere.

OpenVPN

Una domanda molto comune, e quella da cui scaturisce questo articolo, è: “ho una Raspberry Pi o un altro piccolo oggetto calcolatore, ha senso usarlo come server OpenVPN dentro casa mia per proteggere la mia privacy? E come faccio a far passare per OpenVPN le connessioni degli altri computer?”

A questo punto del discorso dovrebbe essere chiaro a tutti voi che no, non ha senso alcuno. Prima di tutto perché nonostante una VPN sia “privata” e “cifrata” non lo è nel senso di “protegge la privacy” sempre e comunque. E poi, ovviamente, perché se sei già nella tua rete, non hai bisogno di uno strumento per… stare nella tua rete.

Un server OpenVPN, a patto di sapere (e potere) configurare il router per indirizzarci opportunamente le connessioni dall’esterno, può servire per accedere da fuori alla nostra rete di casa. L’esempio classico è volersi sentire la musica del proprio media server dall’ufficio, o voler utilizzare la stampante di casa da fuori.

Qualunque uso troppo distante da questo è privo di ogni fondamento logico e tecnico.

Una cosa diversa ma mica tanto: i proxy

Prima che le VPN fossero di larghissima diffusione, parte delle loro finalità sono state assolte dai proxy server, oggetti un po’ diversi e assai più semplici, ma con molti punti in comune.

Un proxy server è un server di solito mono-protocollo (quasi sempre http) che interroga altri server “su commissione”.

Assumiamo che un proxy server http risieda in una LAN, e che il router gli giri le richieste a lui destinate. Un altro computer, dall’esterno, può chiedergli “mi passi la risorsa http del server tale che è nella tua LAN ma che io non posso raggiungere”? Il proxy server richiederà tale risorsa al server interno alla LAN, e la girerà al computer esterno.

Nell’ambito del protocollo che il proxy server gestisce, quindi, si ottiene un effetto analogo a quello delle VPN: accedere a risorse altrimenti irraggiungibili perché parte di una rete privata. Inoltre, a patto di fidarsi del proxy, permettono come le VPN di nascondersi dietro un’altra entità, che sarà l’unica vista dal reale destinatario della richiesta.

Non gestiscono però mai l’intera connessione e non permettono alle altre macchine della rete di vedere quella remota.

Note

1 Questa prendetela con le dovute pinze: le connessioni FTTH non sono esattamente linee telefoniche, ma possiamo agevolmente fingere di sì, agli effetti del capire cosa sia una VPN.