1
0
mirror of https://github.com/fazo96/tesina.git synced 2025-03-12 20:58:39 +01:00

primo commit

This commit is contained in:
Enrico Fasoli 2015-05-04 20:54:27 +02:00
commit a1b647d3cc
6 changed files with 131 additions and 0 deletions

7
README.md Normal file
View File

@ -0,0 +1,7 @@
# L'anonimato sulla rete Internet
Tesina di Enrico Fasoli
5IA, anno scolastico 2014/2015, IIS Galileo Galilei Crema
Work In Progress

5
SUMMARY.md Normal file
View File

@ -0,0 +1,5 @@
# Summary
* [Web Moderno](web_moderno.md)
* [Tor](tor.md)
* [Bitcoin](bitcoin.md)

27
appunti.md Normal file
View File

@ -0,0 +1,27 @@
Idee per la tesina (Enrico Fasoli). Il percorso che ho intenzione di seguire è "Privacy e Anonimato nella rete"
## Privacy e anonimato nella rete
- Funzionamento delle reti, di internet e dei servizi web (Sistemi + Tecnologie)
- Tracciamento di un dispositivo sulla rete internet (Approfondimento)
- Protezione delle informazioni su internet tramite crittografia (Sistemi + Matematica?)
- Come ottenere l'anonimato totale (impedire tracciamento) su internet (Approfondimento)
- Limitazioni dell'anonimato su internet (Approfondimento)
- Servizi web nascosti (Tecnologie + Approfondimento)
- Pagamenti anonimi e sicuri tramite Bitcoin
- E-Mail anonime e sicure tramite BitMessage
## Cosa sono e come funzionano i Bitcoin
- Cosa sono i Bitcoin e cosa permettono di fare
- Come funziona il protocollo bitcoin (Tecnologie + Sistemi)
- Perchè i trasferimenti bitcoin sono anonimi
- Perchè i Bitcoin funzionano
- Bitcoin Mining (Sistemi + Matematica?)
- Limitazioni del protocollo Bitcoin (Tecnologie + Sistemi)
## Bitmessage: il protocollo sicuro e intracciabile per le E-Mail
- Perchè bitmessage
- Cosa è BitMessage e cosa permette di fare
- Analisi del protocollo BitMessage (Sistemi + Tecnologie)

27
bitcoin.md Normal file
View File

@ -0,0 +1,27 @@
# Bitcoin
Bitcoin è una valuta digitale (la prima nella storia ad avere un qualche tipo di valore) e un protocollo per lo scambio della stessa via rete.
## Concetti
Il protocollo Bitcoin consiste in una rete decentralizzata (da ora in poi detta semplicemente __"la rete Bitcoin"__) di nodi che processano le richieste di trasferimento di denaro e da una __blockchain__ ovvero una lista di tutte le transazioni eseguite a partire dall'origine della moneta.
- Una __transazione__ è un trasferimento di denaro: tutte le transazioni vanno validate dalla rete e sono poi aggiunte, se valide, alla __blockchain__.
- Un __portafoglio__ è un contenitore di denaro (__Bitcoins__) identificato dalla sua __chiave pubblica__.
- E' possibile creare liberamente uno o più __portafogli__.
- non è possibile generare infinite monete perchè la rete considera valida una __transazione__ solo se il __portafoglio sorgente__ possiede __sufficienti bitcoin__ per poterli trasferire al __portafoglio destinatario__.
- dalle suddette informazioni possiamo dedurre che __la moneta non esiste come dato in se, ma esiste solo la quantità di bitcoin associati a un portafoglio__, dunque __un portafoglio vuoto è irrilevante per la rete, ma entra a far parte della blockchain se riceve dei bitcoin__.
### La messa in circolo tramite Bitcoin Mining
I bitcoin vengono messi in circolazione tramite __bitcoin mining__, che consiste nel diffondere una __"taglia"__ per la __soluzione di un complesso problema matematico__ in modo che __la rete conceda dei bitcoin come premio a chi lo risolva per primo__. Limitando il numero di problemi matematici e impostando una quantità specifica come premio, viene decisa la quantità di bitcoin totale.
Nel tempo, i Bitcoin hanno acquistato __un valore anche di centinaia di dollari per un singolo Bitcoin__ quindi il __bitcoin mining__ può essere un'attività estremamente __lucrativa__.
## Anonimato
Secondo le regole suddette, __tutti possono sapere quanti soldi ci sono in ogni portafoglio e l'intero elenco di tutte le transazioni della storia__, però __i portafogli sono identificabili esclusivamente tramite la loro chiave pubblica, non conservano informazioni sul proprietario__.
I Bitcoin sono infatti molto usati per __pagare servizi o merci illegali__, ma vengono anche accettati da alcuni legittimi negozi o come donazioni.

49
tor.md Normal file
View File

@ -0,0 +1,49 @@
# Tor
Tor è un software in grado di collegare gli utenti tra di loro in una rete virtuale allo scopo di rendere anonimi gli utenti che navigano il web attraverso di esso.
La rete di Tor è a maglia, e ogni utente connesso consiste in un __nodo anche detto relay__. Un nodo può anche fungere da __nodo di uscita (exit node, exit relay)__, ovvero prende i pacchetti originati da altri nodi e li spedisce al reale destinatario fuori dalla rete Tor (ad esempio un sito web).
A partire dal momento dell'uscita di un pacchetto dalla rete Tor, esso non è più protetto dalla sicurezza della rete ma appare come originato dal __nodo di uscita__ quindi l'identità del __nodo__ mittente è sconosciuta.
Qualsiasi operazione di __backtracking__ ovvero di analisi del percorso del pacchetto è inutile poichè il pacchetto si trovava __incapsulato in pacchetti Tor__ e __ogni nodo conosce solo l'indirizzo IP dei nodi a cui è direttamente collegato e del nodo di uscita__.
## La crittografia di Tor
Quando un nodo decide di spedire un pacchetto fuori dalla rete, calcola la strada necessaria per raggiungere un nodo di uscita, poi prende le __chiavi pubbliche__ di tutti i nodi sulla strada in ordine e __crea un layer (strato) di crittografia per ogni nodo sulla strada verso l'uscita__, effettivamente incapsulando il pacchetto in numerosi strati. Da qui deriva il nome "Tor", che originariamente significava "The Onion Router" (l'instradatore a cipolla).
A ogni __hop__ nella rete, ogni nodo rimuove il proprio strato di crittografia. In questo modo si è certi che il pacchetto originale possa essere letto solo dal __nodo di uscita__ e che il percorso del pacchetto __sia per forza quello stabilito in origine dal mittente__.
## In pratica
Il software Tor presenta una interfaccia _a riga di comando (command line)_ che permette di specificare varie opzioni, anche se la maggior parte di esse vanno specificate nel file di configurazione denominato _torrc_.
Tor permette l'instradamento del traffico nella propria rete offrendo all'utente un __proxy SOCKS__: istruendo le applicazioni di dirigere i propri __socket__ attraverso il __proxy__, il loro traffico passerà per la rete di Tor.
### Vidalia
### Tor Browser
## Bloccare l'accesso a Tor
Un ente potrebbe voler bloccare l'accesso alla rete Tor all'interno della propria infrastruttura per ovvie ragioni di sicurezza. Il miglior metodo è bloccare completamente il traffico destinato __agli indirizzi IP che corrispondo ai nodi Tor pubblici__, bloccando effettivamente l'accesso poichè il software ha bisogno di connettersi ad almeno un nodo direttamente per avere l'accesso alla rete.
Un limite di questo tipo è però facilmente aggirabile tramite l'utilizzo di __bridge node (bridge relay)__, ovvero dei __nodi Tor non pubblici__. __Tor è software libero__, di conseguenza __chiunque può aprire un proprio (bridge) relay__ e __accedere alla rete da luoghi che bloccano i nodi pubblici attraverso di esso__.
Purtroppo __non è possibile bloccare completamente l'accesso a Tor senza applicare enormi, irrealistiche restrizioni all'accesso a internet__.
## Punti deboli
Tor presenta una serie di punti deboli che vanno considerati da ogni utilizzatore del programma:
- Gli __exit node__ possono leggere tutto il traffico di tutti gli utenti tor che li usano agendo effettivamente da __man in the middle__ per la natura stessa del protocollo
- Tor viene convenzionalmente usato per mascherare l'origine del traffico HTTP, però un utente inesperto potrebbe __abilitare vari plugin del browser__ che sono in grado di __comunicare in rete liberamente__ (ad esempio __Adobe Flash__) e dunque finirebbero per __contattare direttamente il destinatario senza passare per Tor__ rendendo potenzialmente vani i tentativi di preservare l'anonimato
- Un sito web potrebbe includere tra i propri script delle subroutine in grado di __ottenere informazioni sul sistema client__ compromettendo l'anonimato
- Un utente potrebbe __lasciare indizi sulla propria identità__ durante la normale navigazione sul web tramite Tor
Queste considerazione non comprendono la possibilità di attacchi mirati al controllo della rete Tor che rischierebbero di compromettere l'anonimato e la privacy di tutti gli utenti.
Inoltre, l'enorme quantità di operazione crittografiche necessarie e di overhead per l'invio dei layer crittografici e dei numerosi hop rende Tor una rete __estremamente lenta__ e __impossibile da controllare__ creando la possibilità di __saturare la rete con dati inutili allo scopo di deterrente per gli utenti di Tor__.
## Servizi Nascosti

16
web_moderno.md Normal file
View File

@ -0,0 +1,16 @@
# La raccolta dati del Web 2.0
Quando __Internet__ è stato creato, il protocollo __HTTP__ (utilizzato per visitare le pagine web) è stato pensato per trasferire dei semplici __ipertesti__ (da qui il nome _Hyper Text Transfer Protocol_) ma con l'enorme, rapida evoluzione del web il protocollo si è evoluto per supportare l'invio di qualsiasi tipo di file.
Contemporaneamente, i browser si solo evoluti per supportare l'esecuzione di __script__ inviati insieme agli ipertesti, __rendendo possibile trasformare una pagina web da un semplice ipertesto a un vero e proprio programma.__
Anche se l'__accesso ai dati del dispositivo da parte degli script è molto limitato__, un sito web è in grado di __allegare uno o più script insieme all'ipertesto che causano l'invio di numerosi dati riguardo la visita al sito dal visitatore al server__.
Inoltre __gli script possono istruire i browser web a salvare delle informazioni o richiederle (cookie)__, __riconoscendo l'utente anche se si collega da una rete diversa__.
La collaborazione tra i diversi colossi del web tra cui __Facebook, Google, Microsoft eccetera__ e la loro __integrazione con la maggior parte dei siti web__ consente a loro di __tracciare ogni attività online di ogni utente che utilizza questi servizi__.
## Perchè?
Ci sono numerosi motivi per questa raccolta dati:
- __Pubblicità mirate:__ google piazza le pubblicità in base agli interessi dell'utente in modo da vendere di più
- __Vendita dei dati:__ i colossi possono vendere dati riguardo, ad esempio, l'interesse degli utenti verso un prodotto
- __Studio del mercato:__ analizzare i dati per comprendere l'andamento del mercato
- __Correlazioni tra soggetti apparentemente indipendenti__, ad esempio tramite questi dati si può scoprire che un utente di Facebook è interessato a prodotti Apple, piazzando ulteriori pubblicità mirate