Anonimato

Anonimato

(english version)

I link ai documenti citati in lingua inglese si trovano alla versione inglese di questa pagina.

Anonimato è una parola che ha molti significati, dunque chiariamo subito a quale tipo di anonimato ci riferiamo. Noi intendiamo la protezione dei metadati in una costellazione sociale di chi sta comunicando e con chi, che difenda il principio di libertà di associazione in un mondo sempre più sorvegliato.

Perché secushare utilizza GNUnet invece di Tor o tecnologie simili?

La scalabilità sociale è il problema

La ragione più importante per usare GNUnet si basa sulla necessità per secushare di avere una strategia a lungo termine di «scalabilità» molti-a-molti. Sia Tor che I2P possono adattarsi bene nell'ambito delle comunicazioni uno-a-uno, ma ciò rinforzerebbe il paradigma client/server che sta minando la privacy e i diritti civili democratici di miliardi di esseri umani. Un'interazione sociale veramente scalabile, senza server e distribuita, necessita di un sistema «pubsub» (pubblicazione/registrazione) su un'infrastruttura multicast, in grado di supportare nativamente alberi di distribuzione come BitTorrent. Puoi confrontarla anche con la tecnologia cloud, solo che il cloud è diverso e appartiene ai suoi utenti (facile da dire ma difficile da implementare). Stiamo lavorando insieme al gruppo GNUnet su questo. Se l'obiettivo non è l'anonimato, cjdns potrebbe essere una soluzione intermedia su questo fronte.

Gli attacchi di Sybil ti colpiscono quando è troppo tardi per cambiare l'intera architettura

Come già discusso su «Confronto», sia «I2P» che «Tor» hanno problemi irrisolti con l'uso della Hashtable Distribuita (DHT), tecnologia sensibile agli «attacchi di sybil». GNUnet ha creato un suo sistema di instradamento (core) ed un «sistema dei nomi GNU» (GNS) in modo da risultare resistente a questi attacchi.

Delineare il traffico delle applicazioni basate su socket

Inoltre, sia «Tor» che «I2P» soffrono per «la loro volontà di» fornire un «servizio più efficiente possibile ed in tempo reale», rendendo il «traffico suscettibile al riconoscimento di "impronte"» e quindi «tracciabile da un attaccante globale attivo» tipo alcune losche agenzie. Le misure discusse all'interno della comunità di Tor per affrontare questo problema sono già risolte in GNUnet fin dall'inizio: un flusso costante di banda tra i nodi, che in Tor verrebbe considerato un peso sulla Rete, mentre in GNUnet verrebbe usato per inviare informazioni non correlate ma utili, come la replica di file condivisi oppure chat di social network con bassa priorità. Queste misure possono far parte del percorso all'interno del «circuito onion» resistente ai tracciamenti. Esiste anche una proposta per migliorare la resistenza di Tor al tracciamento del traffico chiamato «alpha mixing», ma è rimasta non implementata dal 2006. Pertanto ricordiamo alla fondazione Tor che non esiste altro compito da finanziare più urgente di questo. Considerando che la maggior parte degli altri strumenti, tra cui cjdns, non forniscono affatto protezione su questo fronte.

Dunque, GNUnet è più anonima rispetto a Tor o I2P?

Sia Tor che GNUnet ci forniscono codice di eccellente qualità e solide basi concettuali provenienti da una formazione scientifica. Una strategia di instradamento a cipolla (onion routing) libera dalle autorità per GNUnet è ancora in sviluppo. Questo non significa che GNUnet non stia già realizzando progressi nell'anonimato. La strategia di anonimato secondo secushare/GNUnet si regge su quattro pilastri:

  1. un traffico di copertura tramite la condivisione dei file, DHT ed eventualmente tramite multicast,
  2. il framing dei dati delle applicazioni (spiegato qui sotto),
  3. mixnet per le applicazioni con elevata latenza (vedi sotto),
  4. instradamento non prevedibile fornito per ora da «CADET» e successivamente dal sistema di instradamento a cipolla.

Mentre Tor punta tutto sulla strategia 4 e I2P tende maggiormente alla strategia 2, noi pensiamo che il miglior modo per raggiungere l'anonimato è quello di usare tutte le strategie e tralasciarne alcune solo se è inevitabile.

Per esempio, possiamo permetterci di non avere un'allocazione di banda permanente se abbiamo il framing e l'instradamento a cipolla, rendendo così possibili le applicazioni distribuite dei social network sugli smartphone.

Oppure possiamo decidere di limitare l'instradamento a cipolla al traffico in tempo reale, se lo potessimo frammentare e mescolare con i dati di condivisione dei file, in modo da sconfiggere gli attacchi basati sulla rilevazione dei fonemi sul traffico di voce.

Oppure ancora possiamo navigare sul Web non sicuro e rischiare attacchi di tracciamento, se tramite gli instradamenti a cipolla il traffico dovesse finire su un canale a banda costante.

C'è un vantaggio nella sinergia se usiamo uno stack coerente per rimpiazzare quello "rotto" di Internet, piuttosto che provare, attraverso strumenti separati, a risolvere separatamente la sfida dell'anonimato in tempo reale e dello scambio di dati in massa.

E niente può impedirci di mettere in sicurezza i nostri segreti come le scelte politiche, i commenti e le intimità personali utilizzando tutte le strategie in una sola volta.

Siccome GNUnet sta già implementando due di queste strategie (la #1 e la #2 di quelle indicate sopra), non è ancora scientificamente ovvio se serve un lavoro migliore o peggiore per raggiungere l'anonimato rispetto a Tor, alla condizione che non si disattivi il servizio anonimo di condivisione dei file (che è attivo di default, volutamente).

Noi abbiamo ragione di credere che una volta che l'instradamento a cipolla attraverso GNUnet diventa disponibile, GNUnet dovrebbe diventare più sicuro dei suoi predecessori, anche con la condivisione dei file disattivata.

Instradamento a cipolla libero da autorità

Mentre Tor attualmente «dipende da una stretta cerchia di amici» per decidere quali nodi di scambio sono affidabili per promuoverli a nodi guardia, nodi uscita o a nodi di stato di un server di directory, noi stiamo lavorando in modo che il software prenda tali decisioni autonomamente.

Dato un grande, distribuito e privato «grafo sociale», ci aspettiamo di far emergere strategie basate su instradamenti a cipolla e libere da autorità al di là dei dati disponibili per secushare. I documenti «PISCES» hanno mostrato che le «strategie di questo tipo possono funzionare», comunque è meglio se il grafo sociale rimane privato.

Nello stesso tempo il team di GNUnet sta perseguendo una strategia basata sul consenso dei generali bizantini chiamato «BRAHMS». Se ti è sconosciuto, pensa per esempio a cosa succede quando i "minatori" (miner) dei Bitcoin si mettono d'accordo su ciò che va nel prossimo blocco dati. Semplicemente, nel prossimo futuro, abbiamo due possibili strategie per ottenere l'instradamento a cipolla libero da autorità nella rete GNUnet. Il trucco finale potrebbe essere quello di combinarle insieme (PISCES e BRAHMS).

Quali sono gli aspetti negativi di GNUnet?

La dimensione della community. Inoltre, nell'ambito delle tecnologie che soddisfano un obiettivo nella vita di molte persone, molta attenzione è stata posta alle tecnologie già consolidate piuttosto che su quelle in arrivo che stanno cercando di risolvere gli obiettivi che quelle consolidate non possono risolvere. Ed ancora, tanti finanziamenti ed interessi sono stati condotti nella direzione sbagliata per la natura di un'economia basata sulla prudenza. Intanto, se ti unisci a noi, stai già lavorando per il miglioramento di GNUnet e secushare.

Altri aspetti che possono disturbare sono il modo piuttosto superficiale con cui si è scelto il linguaggio di programmazione principale, la struttura del progetto, ecc. Sfortunatamente molti sviluppatori scelgono di contribuire al progetto più per un fattore di svago piuttosto che per risolvere un problema efficientemente, così stiamo lavorando per rendere secushare e GNUnet più divertenti da programmare.

Un altro fattore che potresti vedere come un aspetto negativo consiste nella necessità degli sviluppatori dell'applicazione di cambiare le loro abitudini per ottenere meglio l'anonimato, ma questo non è un problema specifico di GNUnet:

Framing dei dati per rilevare attacchi di tracciamento

Le API non dovrebbero essere tanto semplici da usare come quelle di Tor e I2P. Dato che il problema dell'urgenza per una consegna più efficiente è già introdotto dal «socket API di POSIX». Consideriamo l'idea che puoi semplicemente immettere qualsiasi cosa dentro quel socket con qualsiasi frequenza desideri e che questa in qualche modo potrà essere recuperata dall'altra parte della connessione. Questo crea già un potenziale per tracciare il traffico: il momento in cui vengono generati pacchetti non cifrati non è lo stesso tra la macchina e il router con anonimato, come normalmente accade tra siti Web e nodi di uscita; oppure se la controparte della tua interazione sta intenzionalmente cercando di de-anonimizzarti.

Quindi tutti gli eleganti servizi nascosti di mappatura delle porte e dell'emulazione delle connessioni proxy fornite da Tor e I2P potrebbero essere un problema. GNUnet offre un servizio simile sempre basato sulla maggior efficienza chiamato gnunet-vpn, ma utilizzarlo può comportare l'introduzione di queste vulnerabilità per la sicurezza delle tue applicazioni su GNUnet. La scelta più sicura consiste nel progettare le applicazioni in modo che i tuoi messaggi vengano «impacchettati» (framed) opportunamente e che GNUnet possa ottimizzarli per trasmettarli come pacchetto completo, senza mai essere confuso da dati in arrivo sul socket con bit legati ad un tracciamento basato sulla temporizzazione, forzando l'intero sistema di anonimato a fornire in qualche modo una… "consegna più efficiente".

Sapendo esattamente quanto bisogna impacchettare e trasmettere è meglio che doverlo indovinare, così GNUnet può fornire lo stesso servizio veloce con bassa latenza, senza essere vulnerabile al tracciamento mentre lo fa. Inoltre, se un protocollo richiede una certa forma strutturata di contenuto, il backend di GNUnet di un nodo sotto attacco può rilevare un tentativo di invio ad esso di informazioni di tracciamento tipo "molliche di pane" e rifiutarsi di interagire con l'attaccante da quel momento in poi.

Questo significa che non navigheremo sul Web tramite GNUnet?

Forse Tor rimarrà lo strumento da scegliere per accedere all'insicuro World Wide Web e non sarà mai più possibile navigare il Web dando la garanzia dell'anonimato. O forse, se combiniamo le altre due strategie che si occupano del traffico e dell'instradamento a cipolla, potremmo permetterci di lasciar perdere il framing.

Quel che possiamo certamente fare è creare un nuovo tipo di Web sicuro che fa leva sulla filosofia «pubsub» di secushare. Un Web che non ha requisiti artificiosi basati sulla miglior efficienza. Questo viene un po' spiegato nel documento «business», ma in realtà si può applicare a qualsiasi contenuto che desideriamo condividere con altre persone.

Come possiamo celare le relazioni sociali ad un avversario che vede tutto il traffico che sta nel mezzo?

Dipende dal grado di offuscamento che configuriamo sul nostro software. Ogni messaggio può essere inviato direttamente o attraverso nodi intermediari. Se usi secushare correttamente, hai a disposizione un grande social network di secondo grado, anche se conosci solo una o due persone in qualità di nuovo arrivato. Quindi ci sono sempre persone che chiacchierano della festa della notte precedente e si scambiano foto. Esiste un grado minimo basilare per la copertura dei dati che girano, almeno tra quei nodi che servono a fornire l'offuscamento (forse non vuoi partecipare a tutto questo con il tuo smartphone, o forse sì). Inoltre, avremo dei nodi server che ricevono e trasmettono più di altri nodi. Quando questi ritrasmetteranno dati, lo faranno con un po' di ritardo, in modo da confonderli in mezzo a tutto il resto del traffico.

Come descritto sopra, la consuetudine di GNUnet di allocare una banda fissa di scambio dati tra nodi lo rende resistente agli attacchi basati sulla forma e le tracce del traffico a cui Tor e I2P sono soggetti. GNUnet non fornisce ancora l'instradamento a cipolla, tuttavia, un nodo che partecipa abbastanza a lungo nella dorsale GNUnet potrebbe de-anonimizzare i partecipanti col tempo. Per mitigare questo rischio, l'applicazione secushare può comunque scegliere di inviare dati verso persone fidate, fornendo idealmente un'instradamento a cipolla basato su un grafo sociale.

Il modo in cui secushare realizza l'instradamento a cipolla per i social

Quando si utilizza l'instradamento a cipolla, ogni persona viene indirizzata tramite l'altra estremità di uno dei suoi circuiti, piuttosto che tramite la posizione del suo attuale nodo. Nel codice sorgente questo addirittura non fa alcuna differenza: in entrambi i casi esiste un "PeerID" che sa come trasmettere i dati alla sua destinazione, indipendentemente da quanto sia lunga o corta una rotta a cipolla. Perciò nel nostro codice il PeerID può contenere il punto di incontro piuttosto che il nodo effettivo dell'indirizzo della persona (a meno di una comunicazione diretta utile per alcuni scopi, ma "diretta" è un caso molto speciale in un instradamento a cipolla che avrebbe zero salti (hop) nel mezzo, dunque non dovrebbe fare nessuna differenza nel codice e ovviamente nemmeno per osservatori esterni che vorrebbero cogliere qualche differenza).

Inoltre il nostro instradamento a cipolla non ha bisogno necessariamente di utilizzare il sistema a tre salti (hop) di Tor. Anche se abbiamo un solo salto a cipolla, in quel salto non si saprebbe che il prossimo nodo è ormai l'ultimo. Non si è ancora fatta ricerca su quanto questo possa ridurre l'anonimato, ma ciò affligge solo le persone che hanno scelto la comodità all'anonimato, benché alcune applicazioni come la video telefonia possano lasciarci seriamente senza altra scelta.

Altri circuiti possono avere più salti del normale con Tor. Il documento PISCES menzionato sopra elabora un metodo per un miglior instradamento a cipolla che si avvale del grafo sociale ed un numero maggiore di salti (hop) piuttosto che i tre tradizionali. All'interno di Tor non è raccomandato usare circuiti a quattro salti, perché il comportamento inusuale di un singolo potrebbe farlo emergere dalla massa. Questa preoccupazione certamente non si pone se tutti i nodi utilizzassero un numero non prevedibile di salti per i loro circuiti. Ciò che rimane sono i circuiti, le parti esterne della cipolla sono opzionali.

secushare è uno strumento inteso a realizzare un ragionevole livello di anonimato, dove risulta facilmente realizzabile, e a fornire alle persone un'esperienza utente propria di un Internet performante. Ora le persone hanno la necessità di usare strumenti separati e decidere se fare qualcosa attraverso Tor o senza protezioni, in secushare questa scelta è intelligentemente automatizzata e non si è mai completamente senza protezioni. Persino quando due nodi GNUnet si stanno scambiando un grande blocco di dati, questi dati possono ancora avere un "sotto invio" ad una rete mista (mixnet) il cui nodo ricevente inoltrerà tali dati altrove e in un tempo completamente diverso.

Stiamo discutendo anche la possibilità di ottimizzare l'anonimato quando si combina l'instradamento a cipolla con il multicast. Perciò ha ancora senso fare scelte topologiche per i salti (hop) a cipolla per ridurre la latenza. Se hai un migliaio di nodi da scegliere nella tua città, perché utilizzare una connessione diretta per una chiamata telefonica se puoi avere una rotta a cipolla? Gli sviluppatori di Tor ci vedono una minaccia nel ridurre l'anonimato in questo modo, il quale è ancora soggetto ad approvazione e disapprovazione, ma se l'alternativa è scelta unicamente per comodità, non abbiamo niente da perdere nel preferire una rotta a cipolla topologicamente ottimizzata.

Mixnets: anonimato potenziato per applicazioni con elevata latenza

Abbiamo discusso l'idea di implementare «reti miste» dentro GNUnet, permettendo ad ogni nodo di mescolare internamente i messaggi prima di inoltrarli avanti. Questo sicuramente andrà ad introdurre troppa latenza per certi scopi, ma le necessità di alcuni social network dovrebbero risultare soddisfatte con tale implementazione. In ogni caso, un attaccante non dovrebbe essere in grado di capire la differenza tra una trasmissione ad alta sicurezza ed un singolo salto (hop) di una conversazione banale.

E se abbinassimo Tor a GNUnet?

È probabile che mettere Tor in mezzo ai nodi di GNUnet non sia ben scalabile per le ragioni discusse sopra, ma Tor potrebbe essere ancora utilizzato per nascondere al meglio l'attuale localizzazione di un utente. Tale approccio è stato discusso approfonditamente in una discussione su una mailing list dedicata ai dibattiti su Tor a partire da «Dicembre 2014» fino a «Gennaio 2015». Gli sforzi per aggiungere il GNS e l'instradamento GNUnet nei router di Tor si stanno facendo strada, portando verso nuovi modi di usare Tor come apri-porte in una rete sociale distribuita senza richiedere a ciascuno di installare inizialmente del codice base di GNUnet.

Last Change: 2017-04-07

Top