diff --git a/Bitcoin/anonimato.md b/Bitcoin/anonimato.md index 0f9e589..bd5ae21 100644 --- a/Bitcoin/anonimato.md +++ b/Bitcoin/anonimato.md @@ -6,8 +6,15 @@ I Bitcoin sono infatti molto usati per __pagare servizi o merci illegali__, ma v ## Limitazioni, problemi e vulnerabilità +Gli indirizzi bitcoin sono anonimi per definizione, però __tutti possono vedere tutte le transazioni__ a causa delle regole del protocollo, dunque è difficile nascondere delle transazioni: può essere fatto distribuendo i soldi a indirizzi diversi in piccole transazioni, ma richiede molta preparazione e organizzazione. + ## L'esplosione di popolarità e la nascita dei cloni +Quando il valore di un bitcoin cominciò a salire verso enormi cifre, comparsero numerose varianti del protocollo con diversi gradi di successo (come Dogecoin) ma mai quanto Bitcoin. + ### La caduta di Mt. Gox -### Il mistero delle origini dei Bitcoin \ No newline at end of file +Nello stesso periodo comparsero dei servizi simili alle banche tra cui il colosso __Mt. Gox__, che oltre al normale funzionamento di __Exchange__, gestivano i Bitcoin dei clienti producendo interesse tramite __speculazione__. Mt. Gox e tanti altri fallirono (dichiarando bancarotta) quando il valore di bitcoin iniziò a scendere lentamente per alcuni mesi, causando il panico e il ritiro di enormi somme. + +Nella comunità, molti furono contenti di questo evento perchè i Bitcoin furono originariamente creati anche per liberarsi delle banche e della __centralizzazione__. + diff --git a/Messaggistica/introduzione.md b/Messaggistica/introduzione.md index 4885307..075523d 100644 --- a/Messaggistica/introduzione.md +++ b/Messaggistica/introduzione.md @@ -1,7 +1,35 @@ -# Il problema delle Email +# Messaggistica: problemi e soluzioni + +## Il problema delle E-Mail Il concetto di __E-Mail__ (posta elettronica) è una delle prime applicazioni pratiche di __Internet__ e delle reti di calcolatori in generale. Si basa su protcolli standard, in particolare: - __SMTP__ (Simple Mail Transfer Protocol) per l'invio della posta. - __POP3__ e __IMAP__ per la ricezione e la lettura della posta contenuta in una __casella di posta elettronica__. +Le E-Mail sono però distribuite __in chiaro__, senza __crittografia o firme digitali__, usando __server centralizzati__. Queste caratteristiche rendono le email un sistema __poco sicuro__, __tracciabile__ e __vulnerabile__ soprattutto perchè: + +- ogni messaggio intercettato è _leggibile_ e _alterabile_ +- il sistema è vulnerabile a moltissime tipologie di attacchi +- mittenti e destinatari sono difficilmente identificabili a causa della mancanza di __firme digitali__ + +Questi problemi sono _parzialmente_ risolti usando i protocolli __GPG__ e __S/MIME__ rispettivamente per gestire l'aspetto di _firma_ e _crittografia_ e per integrarlo nelle __E-Mail__ insieme ad _allegati_, _immagini_ e altri documenti multimediali. + +Anche lo _spam_ può essere limitato usando dei filtri anti-spam particolari nel proprio client di posta, resta però il problema che __i messaggi di spam sono scaricati comunque__ rallentando pesantemente la rete. + +### Soluzioni + +Bitmessage è un esempio di servizio _libero_, _sicuro_, _anonimo_ e _decentralizzato_ descritto nella sezione dedicata. + +## Il problema della messaggistica istantanea e del VoIP + +La messaggistica istantanea (spesso arracchita con __VoIP__ (telefonate via Internet) come nel caso di __Skype__ e __WhatsApp__) presenta numerosi problemi, tra cui: + +- profonda centralizzazione +- mancanza di crittografia __end-to-end__ ovvero dal mittente al destinatario, che causa: + - possibilità dei _server centralizzati_ di origliare ogni conversazione e alterare messaggi + - la divulgazione di tutte le conversazioni degli utenti (in caso i _server centralizzati_ vengano compromessi) + +### Soluzioni + +Risolvere questo problema è molto difficile, poichè un sistema di messaggistica _decentralizzata_ che supporti il __VoIP__ è molto difficile da realizzare. Attualmente in svilppo esistono __TorChat__ e __Tox__. diff --git a/Tor/come_si_usa.md b/Tor/come_si_usa.md index af55d2f..25e2c8e 100644 --- a/Tor/come_si_usa.md +++ b/Tor/come_si_usa.md @@ -8,13 +8,17 @@ Tor permette l'instradamento del traffico nella propria rete offrendo all'utente Essendo __Tor__ un software con interfaccia __a riga di comando__, è stata sviluppata l'interfaccia grafica __Vidalia__ che permette di gestire e configurare __Tor__ senza mai modificare manualmente __file di configurazione__ o utilizzare la __riga di comando__. +Questa interfaccia è molto apprezzata dagli utenti meno esperti che necessitano di eseguire applicazioni o servizi attraverso Tor. + +Per chi ha _solo bisogno_ di __navigare il Web attraverso Tor__, è consigliato invece il __Tor Browser__. + ### Tor Browser Il __Tor Browser__ (in precedenza chiamato __Tor Browser Bundle__) è una versione _estesa_ e _modificata_ di __Mozilla Firefox__ che consiste in un __browser web indipendente__ che __naviga esclusivamente tramite Tor__ e contiene una serie di __componenti aggiuntivi utili per proteggere la propria privacy e identità__ __Tor Browser__ è __portatile (dunque non richiede installazione)__ ed è disponibile per __Windows__, __OSX__ e __GNU/Linux__. -Il progetto è nato per __rendere la navigazione tramite Tor semplice e immediata per tutti__ +Il progetto è nato per __rendere la navigazione tramite Tor semplice e immediata per tutti__, e la sua popolarità verifica un ottimo successo. I componenti aggiuntivi inclusi sono: @@ -25,10 +29,10 @@ I componenti aggiuntivi inclusi sono: Per gestire il proprio servizio web nascosto, è sufficiente __una macchina GNU/Linux connessa alla rete Tor__, anche se si trova dietro __firewall o altri sistemi__. -Configurando correttamente __Tor__, è possibile istruirlo a ridirezionare le connessioni in ingresso tramite la sua rete a una certa porta sul proprio dispositivo, creando un canale di comunicazione tra __Tor__ e il __Servizio__. +Configurando correttamente __Tor__, è possibile istruirlo a ridirezionare le connessioni in ingresso tramite la sua rete a una certa porta sul proprio dispositivo, creando un canale di comunicazione tra __Tor__ e il __servizio__. Gestire un servizio anonimo però __non è semplice__ soprattutto per i __problemi di sicurezza__ tra cui: -- __Correlation attack__ se un servizio è accessibile anche senza __Tor__ +- __correlation attack__ se un servizio è accessibile anche senza __Tor__ - errori di configurazione e informazioni inviate per sbaglio nei report di errore del server - __analisi statistiche di uptime__ e confronto - __errori umani__ vari tra cui informazioni chiave sulla segretezza incluse direttamente nel sito diff --git a/Tor/tor.md b/Tor/tor.md index 10d3eaa..265c911 100644 --- a/Tor/tor.md +++ b/Tor/tor.md @@ -12,20 +12,20 @@ Tor è un protocollo e la sua implementazione open source in grado di collegare La rete di Tor usa una topologia a maglia: 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). +![Step 1](https://www.torproject.org/images/htw1.png) + - Alice recupera la lista dei __nodi__ della rete Tor da un __directory server__. - Alice si collega direttamente a uno dei __nodi__ della rete Tor. -![Step 1](https://www.torproject.org/images/htw1.png) +![Step 2](https://www.torproject.org/images/htw2.png) - Il client Tor di Alice sceglie un percorso per raggiungere la destinazione dei dati. - I collegamenti __in verde__ sono __crittografati__ mentre quelli in rosso sono __non necessariamenti protetti__ -![Step 2](https://www.torproject.org/images/htw2.png) - -- Il percorso può cambiare per destinazioni diverse, al fine di rendere ancora più difficile il tracciamento - ![Step 3](https://www.torproject.org/images/htw3.png) +- Il percorso può cambiare in qualsiasi momento al fine di rendere ancora più difficile il tracciamento + ### Perché è sicuro e anonimo Quando un nodo decide di spedire un pacchetto fuori dalla rete: @@ -40,21 +40,29 @@ Inoltre: - 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. -Di conseguenza qualsiasi intercettazione di un pacchetto a metà strada è inutile poichè: +Di conseguenza qualsiasi intercettazione di un pacchetto a metà strada del percorso nella rete Tor è inutile poichè: -- il pacchetto originale si trovava __incapsulato in strati crittografici__ -- il sorgente e il destinatario scritti nel __pacchetto intercettato__ sono quelli delle __due estremità del singolo collegamento tra due nodi__, non quelli dell'originale destinatario e sorgente. -- __solo l'exit node__ sa chi è il vero destinatario del pacchetto. -- __solo il nodo del primo hop__ sa chi è il vero sorgente del pacchetto. +- il pacchetto si trova __incapsulato almeno uno strato crittografico__ +- il sorgente e il destinatario scritti nel __pacchetto intercettato__ sono quelli delle __due estremità del singolo collegamento tra due nodi Tor__, non quelli dell'originale destinatario e sorgente. +- __solo l'exit node__ sa chi è il vero _destinatario_ del pacchetto. +- __solo il nodo del primo hop__ sa chi è il vero _mittente_ del pacchetto. + +__Attenzione__ alle intercettazioni dal _nodo di uscita_ alla _destinazione finale_ del pacchetto: + +- il pacchetto si trova tra __il nodo di uscita__ e la __destinazione finale__ +- il pacchetto __non è più incapsulato nella crittografia di Tor__ +- se il pacchetto __non dispone di ulteriori strati di sicurezza come TLS, OpenSSL o un sistema custom__ allora: + - chiunque può leggere il pacchetto + - il __nodo di uscita__ può _leggere_ ed _alterare_ il pacchetto ## Servizi Nascosti -Tor offre anche la possibilità di __gestire un servizio nascosto__ accessibile __esclusivamente tramite Tor__. Gli __hidden services__ di __Tor__ sono accessibile tramite la rete Tor attraverso il loro __onion address__, un indirizzo che permette ai pacchetti di essere instradati alla corretta destinazione. +Tor offre anche la possibilità di __gestire un servizio nascosto__ accessibile __esclusivamente tramite Tor__. Gli __hidden services__ di __Tor__ sono raggiungibili tramite la rete Tor attraverso il loro __onion address (.onion)__, un indirizzo che permette ai pacchetti di essere instradati alla corretta destinazione. -Un __hidden service__ può essere hostato anche dietro un __NAT__ o un __Firewall__ a patto che la macchina che lo offre sia connessa alla rete __Tor__. +Un __hidden service__ può essere mantenuto anche da dietro un qualsiasi __NAT__, __Firewall__ o sistema di sicurezza a patto che la macchina che lo ospita sia connessa alla rete __Tor__. ### WWW To Onion Gateway -Esistono dei servizi denominati __WWW to Onion gateway__ che permettono agli utenti di accedere ai servizi __.onion__ attraverso una normale navigazione __web__. Essi agiscono da __proxy__ in modo da contattare i servizi attraverso __Tor__ per conto dell'utente. +Esistono dei servizi denominati __WWW to Onion gateway__ che permettono agli utenti di accedere ai servizi __.onion__ attraverso una normale navigazione __web__. Essi agiscono da __proxy web__ in modo da contattare i servizi attraverso __Tor__ per conto dell'utente. -Ovviamente in questo modo l'effetto protettivo di __Tor__ viene annullato e l'utente è completamente tracciabile, però __Tor__ non è necessariamente richiesto sul computer dell'utente. +Ovviamente in questo modo i benefici di __Tor__ vengono annullati e l'utente è completamente tracciabile, in compenso però __Tor__ non è richiesto sul computer dell'utente. diff --git a/web_moderno.md b/web_moderno.md index 43b1c4c..66a75f9 100644 --- a/web_moderno.md +++ b/web_moderno.md @@ -1,23 +1,30 @@ ## Dalle origini al 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. +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_) arricchiti tramite fogli di stile __CSS__ (_Cascading Style Sheet_) ma con l'enorme, rapida evoluzione della rete, il protocollo ha implementato la possibilità di inviare 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.__ +Contemporaneamente, i browser si solo evoluti per permettere 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, i quali vengono eseguiti immediatamente alla loro ricezione__. -Questi script possono inviare numerosi dati riguardo la visita al sito, in particolare: +Questi script possono comunicare ai server remoti numerosi dati riguardo la visita al sito, in particolare: - i click che sono stati fatti -- le sezioni che sono probabilmente state lette +- le sezioni che sono (probabilmente) state lette - le pagine che sono state visitate e per quanto tempo - le righe che sono state copiate +- indirizzo IP, browser usato e sistema operativo con relative versioni -Con l'importanza crescente di un metodo per inviare dati importanti con sicurezza, il protocollo __SSL__ (successivamente sostituito da __TLS__) è stato creato, e con esso lo standard __HTTPs__ che permette di utilizzare __HTTP__ in maniera sicura incapsulando i pacchetti all'interno di pacchetti __SSL__. +Con l'importanza crescente di un metodo per inviare dati importanti con sicurezza, il protocollo __SSL__ (successivamente sostituito da __TLS__) è stato creato, e con esso lo standard __HTTPs__ che permette di utilizzare __HTTP__ in maniera sicura incapsulando il traffico all'interno di pacchetti __SSL__. ## Persistenza -Gli script possono istruire i browser web a salvare delle informazioni o, se presenti, spedirle al server (__cookie__) permettendogli di __riconoscere l'utente anche durante le prossime visite__. +Gli script possono istruire i browser web a salvare delle informazioni o, se presenti, spedirle al server (__cookie__) permettendogli di __riconoscere l'utente anche durante le prossime visite__ con una procedura molto semplice: + +1. il server richiede al client il cookie che gli è stato rilasciato precedentemente dallo stesso server +1. __se il client non ha un cookie__, allora non può essere riconosciuto dal server (per ora) e gli viene assegnato un nuovo cookie + - il server memorizza l'associazione __cookie-utente__ nel proprio database (o nella propria memoria) + - i cookie possono essere __temporanei__ (si cancellano alla chiusura del browser) o __permanenti__ (si cancellano dopo un certo tempo o mai) +1. __se il client ha un cookie__, allora il server può usarlo per riconoscerlo confrontandolo con le associazioni __cookie-utente__ memorizzate Grazie alla persistenza, i server dietro ai più visitati siti web possono profilare gli utenti, analizzando il loro comportamento. @@ -27,10 +34,10 @@ La collaborazione tra i diversi colossi del web tra cui __Facebook, Google, Micr Ci sono numerosi motivi per questa raccolta dati: -- __Pubblicità mirate:__ Google piazza le pubblicità sulle pagine web in base agli interessi dell'utente che andrà a visualizzarle, in modo da ottenere più click e di conseguenza più guadagni +- __Pubblicità mirate:__ Google inserisce le pubblicità sulle pagine web in base agli interessi dell'utente che andrà a visualizzarle, in modo da ottenere più click e di conseguenza più guadagni - __Vendita dei dati:__ i colossi possono vendere dati riguardo, ad esempio, l'interesse degli utenti verso un prodotto piuttosto che un altro -- __Studio del mercato:__ analizzando le mode e le discussioni sociali è possibile analizzare o addirittura prevedere svolte nel mercato di certe categorie o brand di prodotti -- __Correlazioni tra soggetti apparentemente indipendenti__, ad esempio si può scoprire che un utente di Facebook è interessato anche a prodotti Apple, piazzando ulteriori pubblicità mirate +- __Studio del mercato:__ analizzando le mode e le discussioni sociali è possibile in certi casi prevedere svolte nel mercato di certe categorie o brand di prodotti +- __Correlazioni tra soggetti apparentemente indipendenti__, ad esempio si può scoprire che un utente di Facebook è interessato anche a prodotti Apple e creare correlazioni ## Opinione pubblica: privacy e controversie @@ -43,6 +50,17 @@ Una semplice ricerca sul Web riguardo a tutto ciò porta a scoprire l'esistenza - __Ghostery__ e __disconnect.me__ per evitare di immagazzinare __cookie__ inutili per noi ma utili per le corporazioni che tracciano le nostre attività - __AdBlock__ per eliminare o ridurre le pubblicità +__Attenzione:__ _AdBlock_ è un software __Closed Source__, dunque non è possibile sapere esattamente che tipo di operazioni esegua sul proprio dispostivo. E' molto consigliata l'alternativa __uBlock__, che è un _Software Libero_ e _Open Source_. + +### Il problema di Google + +Google è uno dei servizi che raccoglie il maggior numero di dati dai propri utenti. Volendone approfittare, esistono dei servizi che si offrono come alternativa non invasiva, ad esempio: + +- il motore di ricerca __DuckDuckGo__ per evitare l'immensa quantità di dati recuperati da Google ad ogni nostra mossa con il suo motore di ricerca +- __OpenStreetMap__ al posto di __Google Maps__ +- le soluzioni illustrate nel capitolo __"Condividere File Con Sicurezza"__ al posto di Google Drive +- un mail server gestito personalmente in accoppiata con un client mail sicuro al posto di GMail + ### Ghostery Tramite il plugin __Ghostery__, disponibile per tutti i browser web più usati, è possibile: @@ -51,4 +69,6 @@ Tramite il plugin __Ghostery__, disponibile per tutti i browser web più usati, - conoscere le aziende a cui sono destinate tali informazioni - bloccare l'invio delle informazioni di tracciamento -__Per provare tutto ciò__ è infatti sufficiente installare __Ghostery__ e, seguendo le istruzioni su http://ghostery.com/it/, collegarsi a uno o più social network o servizio come Google, LinkedIn, Facebook, notando __immediatamente__ lo scambio di dati di tracciamento tra noi e i server di questi servizi. +__Per provare tutto ciò__ è infatti sufficiente installare __Ghostery__ e, seguendo le istruzioni su [ghostery.com/it](http://ghostery.com/it/), collegarsi a uno o più social network o servizio come Google, LinkedIn, Facebook, notando __immediatamente__ lo scambio di dati di tracciamento tra noi e i server di questi servizi. + +Attenzione però: __Ghostery è un software Closed Source__, dunque non è possibile sapere esattamente che tipo di operazioni esegua