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

aggiornamento presentazione e approfondimento file sharing

This commit is contained in:
Enrico Fasoli 2015-06-01 09:56:28 +02:00
parent dc421cc2d5
commit 2b46421d96
4 changed files with 56 additions and 22 deletions

View File

@ -1,12 +1,14 @@
# Cloud Storage # Cloud Storage
Con __Cloud Storage__ si intende l'_immagazzinare dei dati in remoto_, utilizzando _un servizio offerto da una terza parte_. Questo sistema presenta molteplici vantaggi: Con __Cloud Storage__ si intende l'_immagazzinare dei dati in remoto_ a scopo di File Sharing, File Hosting o backup personale, utilizzando _un servizio offerto da una terza parte_. Questo sistema presenta molteplici vantaggi:
- i dati sono accessibili da ovunque sia presente una connessione a internet - i dati sono accessibili da ovunque sia presente una connessione a internet
- è possibile dare l'accesso ai dati a qualcuno senza doverli trasferire fisicamente - è possibile dare l'accesso ai dati a qualcuno senza doverli trasferire fisicamente
- non si è limitati dallo spazio disponibile sul proprio dispositivo - non si è limitati dallo spazio disponibile sul proprio dispositivo
- non è necessario sincronizzare le informazioni manualmente tra dispositivi diversi - non è necessario sincronizzare le informazioni manualmente tra dispositivi diversi
Con __File Sharing__ si intende la condivisione di file tra utenti, ad esempio un documento che coinvolge i propri colleghi o amici e parenti. Con __File Hosting__ si intende invece la condivisizone di file tra utenti su larga scala, ad esempio un cortometraggio distribuito liberamente in rete e scaricato da milioni di persone. Spesso i __provider__ che offrono questi servizi (come Dropbox, Google Drive o Mega) offrono entrambe le soluzioni.
I più diffusi servizi di __Cloud Storage__ sono __Google Drive__ e __Dropbox__. I più diffusi servizi di __Cloud Storage__ sono __Google Drive__ e __Dropbox__.
## Vulnerabilità e problemi ## Vulnerabilità e problemi
@ -29,12 +31,32 @@ La maggior parte delle problematiche del __Cloud Storage__ sono derivate da __ce
- funzionano anche in una rete locale non connessa a Internet - funzionano anche in una rete locale non connessa a Internet
- sono limitati solo dalla _potenza di calcolo_ dei dispositivi e dalla _qualità della connessione_ tra loro - sono limitati solo dalla _potenza di calcolo_ dei dispositivi e dalla _qualità della connessione_ tra loro
I più diffusi sistemi di _Cloud Storage_ decentralizzati sono __Bittorrent Sync__ e __Syncthing__. I più diffusi sistemi di _File Sharing_ decentralizzati sono __Bittorrent Sync__ e __Syncthing__, mentre per il _File Hosting_ su larga scala il servizio dominante è __BitTorrent__ seguito da _E-Mule_.
### Bittorrent
BitTorrent è un __protocollo__ di __file hosting__ su larga scala che permette di creare un file chiamato __torrent__ molto leggero (pochi kilobyte) che, tramite un client __BitTorrent__, può essere aperto per contattare gli utenti che possiedono il/i file descritti dal torrent per scaricarli direttamente dai loro computer, senza passare per alcun server se non il __tracker__ necessario per trovare gli indirizzi __IP__ di chi possiede il file.
Il file __.torrent__ contiene semplicemente:
- il nome e la dimensione dei file contenuti
- il/i __tracker__ a cui collegarsi per trovare gli utenti che possiedono i file
Tramite __tracker__, gli utenti pubblicizzano il fatto di possedere i file (o parte dei file) di un determinato __torrent__ in modo da trovare gli interessati e diffondere ulteriormente i file. Questo significa che:
- un __.torrent__ popolare è molto più veloce da scaricare. In gergo viene chiamato __healthy torrent__.
- un __.torrent__ abbandonato è impossibile da scaricare, rendendo persi per sempre i dati contenuti. Questo viene chiamato __dead torrent__. Questo problema non esiste se vengono
In particolare, coloro che hanno il __100%__ dei dati del torrent ma rimangono connessi sono chiamati __Seed__ perchè fanno da __seme__ per la diffusione dei dati, mentre gli altri sono chiamati __peer__. I __leech__, invece, sono coloro che scaricano di dati ma non li redistribuiscono e sono ovviamente nocivi per la vita dei __torrent__.
BitTorrent supporta anche __crittografia__ e __hole punching__ per superare __NAT__ non simmetrici. Utilizza principalmente __UDP__ per le connessioni. A causa della decentralizzazione e della conseguenza difficoltà nel bloccare l'accesso ai file, viene usato spesso dai __pirati informatici__ ma a differenza dall'__opinione popolare__, è usato solo parzialmente dai __pirati__ ed è __illegale__ solo se usato per distribuire materiale protetto da copyright senza permesso.
### Bittorrent Sync ### Bittorrent Sync
__Bittorrent Sync__ (anche detto __BTSync__) è un software proprietario di __Bittorrent Incorporated__ che implementa il __Cloud Storage decentralizzato__. __Bittorrent Sync__ (anche detto __BTSync__) è un software proprietario di __Bittorrent Incorporated__ che implementa il __file sharing decentralizzato__.
Il software è disponibile per __Windows__, __GNU/Linux__, __OSX__, __Android__, __iOS__, __Windows Phone__ e __Kindle Fire__. Il software è disponibile per __Windows__, __GNU/Linux__, __OSX__, __Android__, __iOS__, __Windows Phone__ e __Kindle Fire__.
Differisce da __BitTorrent__ poichè Sync, come si può capire dal nome, permette la _sincronizzazione_ dei dati usando il protocollo BitTorrent, senza limitarsi alla _diffusione_ come le implementazioni standard di quest'ultimo.
Esso è però considerato dalla comunità come una __soluzione parziale__ al problema del Cloud Storage, perchè Bittorrent Sync è una __tecnologia proprietaria, chiusa__ e dunque __potenzialmente inaffidabile__ dal punto di vista __della sicurezza e della privacy__. Esso è però considerato dalla comunità come una __soluzione parziale__ al problema del Cloud Storage, perchè Bittorrent Sync è una __tecnologia proprietaria, chiusa__ e dunque __potenzialmente inaffidabile__ dal punto di vista __della sicurezza e della privacy__.

View File

@ -10,7 +10,7 @@ il protocollo, in breve, definisce che:
- ogni messaggio è __firmato__ con la chiave privata del mittente e __interamente crittografato__ con la chiave pubblica del destinatario. - ogni messaggio è __firmato__ con la chiave privata del mittente e __interamente crittografato__ con la chiave pubblica del destinatario.
- l'unica informazione visibile del messaggio è il __TTL__ che ha lo scopo di evitare il __flooding__ della rete con lo stesso messaggio - l'unica informazione visibile del messaggio è il __TTL__ che ha lo scopo di evitare il __flooding__ della rete con lo stesso messaggio
- i messaggi rimangono nella rete solo per qualche giorno, poi sono persi per sempre se il mittente non decide di reinviare - i messaggi rimangono nella rete solo per qualche giorno, poi sono persi per sempre se il mittente non decide di reinviare
- è necessario completare un __Proof Of Work__ (spiegato nel capitolo Bitcoin di questo documento) per l'invio di un messaggio - è necessario completare un __Proof Of Work__ (illustrato nel capitolo Bitcoin di questo documento) per l'invio di un messaggio
- la rete implementa meccanismi __anti-flooding__ per evitare la saturazione della stessa - la rete implementa meccanismi __anti-flooding__ per evitare la saturazione della stessa
## Come si usa ## Come si usa
@ -34,3 +34,17 @@ Essenzialmente, il protocollo __Bitmessage__ è molto semplice, infatti ogni nod
In realtà, esso descrive procedure di __proof of work__ e __anti flooding__ molto complesse che permettono il corretto funzionamento della rete e il blocco di eventuali attaccanti. In realtà, esso descrive procedure di __proof of work__ e __anti flooding__ molto complesse che permettono il corretto funzionamento della rete e il blocco di eventuali attaccanti.
## Confronto con E-Mail
La maggior parte dei problemi di __PyBitmessage__ derivano dal suo alto livello di sicurezza, che porta però a __bassa accessibilità__ e mancanza di __comodità__ nell'uso del software.
Alcuni dei maggiori problemi di accessibilità del software sono:
- mancanza di __client avanzati__ che invece esistono per le __E-Mail__ (ad esempio Mozilla _Thunderbird_ o Microsoft _Outlook_) e permettono di organizzare in maniera avanzata i messaggi
- impossibilità di un'istanza del software di ricevere messaggi _non destinati ad essa_ (a scopo di _caching_). Anche se in futuro fosse possibile, sarebbero necessarie le __chiavi private__ di accesso dei destinatari
- impossibilità (per ora) di usare __indirizzi arbitrari__ come ad esempio _nome.cognome@azienda.it_, costringendo invece gli utenti ad usare indirizzi auto generati impossibili da memorizzare
- elevato uso di __risorse hardware__ ed elevata __congestione di rete__ causata dal software
- mancanza di __client per tutte le piattaforme__ e di __client web__, questi ultimi perchè non permetterebbero di mantenere la sicurezza.
- non ancora supportato l'uso di __password__ per proteggere le proprie chiavi private.
Finchè non viene trovata soluzione ad almeno _parte_ di questi problemi, BitMessage __non è pronto__ per rimpiazzare le __E-Mail__.

View File

@ -32,14 +32,23 @@ La messaggistica istantanea (spesso arracchita con __VoIP__ (telefonate via Inte
## Soluzioni ## Soluzioni
Risolvere questo problema è molto difficile, poichè un sistema di messaggistica _decentralizzata_ che supporti il __VoIP__ è molto difficile da realizzare. Attualmente in svilppo esistono __Ricochet__ e __Tox__, mentre un'alternativa matura ma non più in evoluzione è __TorChat__. Risolvere questo problema è quasi impossibile, poichè a causa delle caratteristiche richieste, un sistema di messaggistica _decentralizzata_ che supporti il __VoIP__ è molto difficile da realizzare.
__Perchè?__
Innanzi tutto, un sistema di messaggistica istantanea richiede che il destinatario riceva sempre i messaggi a lui inviati e nel caso sia offline i __server__ mantengono i messaggi in memoria in modo da inviarli appena il destinatario si __collega__. Inoltre, i __server__ fungono da _ponte_ per l'invio dei messaggi in modo che sia sempre possibile il trasferimento, infatti __una connessione diretta tra interlocutori presenta una serie di problemi__, tra cui:
- ogni interlocutore deve conoscere l'indirizzo __IP__ di almeno uno dei coinvolti nella conversazione: questo può essere risolto usando un __DHT__ e/o uno o più __tracker__, come fanno gli altri servizi decentralizzati, ad esempio __BitTorrent__ usa entrambe le soluzioni per massimizzare i guadagni.
- se due utenti si trovano entrambi dietro un __NAT__ diverso, si verifica la situazione molto comune chiamata __NAT simmetrico__ che rende quasi impossibile la connessione diretta tra i due. Questo è risolvibile creando una connessione __indiretta__ tra gli interlocutori, passando per altri nodi, oppure incaricando altri nodi di consegnare i messaggi in maniera simile alla soluzione di __Bitmessage__.
- difficoltà di immagazzinare i __metadati__ come, nel caso di conversazione di gruppo, il nome del gruppo o la storia di messaggi o il profilo degli utenti, perchè la mancanza di __server centrali__ rende potenzialmente __inaffidabile__ ogni utente. Questo può essere risolto creando un sistema di metadati distribuito simile alla soluzione di __Freenet__, usando firme digitali e crittografia per definire i permessi di modifica.
- impossibilità di scambiare messaggi se due utenti __non sono online contemporaneamente__. Questo può essere risolto mantenendo una __cache distribuita__ e/o mantenendo in circolo i messaggi nella rete, in maniera simile alla soluzione di BitMessage.
Questi problemi sono quasi tutti risolvibili in qualche modo, ma con enorme difficoltà. Attualmente in svilppo esistono alcuni servizi di messaggistica e/o __VoIP__ sperimentali tra cui __Ricochet__ e __Tox__, mentre un'alternativa matura ma non più in evoluzione è __TorChat__.
### TorChat ### TorChat
TorChat è un servizio di messaggistica anonima nato nel 2007 e non più sviluppato attivamente che offre _decentralizzazione_ e _totale anonimato_ appoggiandosi alla rete __Tor__. TorChat è un servizio di messaggistica anonima nato nel 2007 e non più sviluppato attivamente che offre _decentralizzazione_ e _totale anonimato_ appoggiandosi alla rete __Tor__.
Il software è distribuito online
### Ricochet ### Ricochet
[Ricochet.im](http://ricochet.im) è un _Software Libero_ sviluppato dal gruppo [Invisible.im](http://invisible.im). Si basa sui __Tor Hidden Services__, offre _anonimato_ e _decentralizzazione_ ed è pensato per essere __facilmente utilizzabile__ anche da utenti non esperti, anche se si trova ancora in stato sperimentale. [Ricochet.im](http://ricochet.im) è un _Software Libero_ sviluppato dal gruppo [Invisible.im](http://invisible.im). Si basa sui __Tor Hidden Services__, offre _anonimato_ e _decentralizzazione_ ed è pensato per essere __facilmente utilizzabile__ anche da utenti non esperti, anche se si trova ancora in stato sperimentale.

View File

@ -76,19 +76,6 @@ html
li è completamente <b>libero</b> e <b>aperto</b> li è completamente <b>libero</b> e <b>aperto</b>
li è accessibile grazie a <b>Tor Browser</b> li è accessibile grazie a <b>Tor Browser</b>
section
img.btc(src="http://www.canbike.org/public/images/030114/Bitcoin_Logo_Horizontal_Light-4800px.png")
//img.btclogo(src="http://bitstickers.net/wp-content/uploads/2014/02/btc-mono-ring-orange.jpg")
//img(src="http://media.tumblr.com/tumblr_lmupioyU7M1qznjpp.png")
h3.bullet la prima valuta digitale significativa
ul
li permette di <b>effettuare transazioni libere e anonime</b>
li utilizza una rete <b>decentralizzata</b>
li non dipende da <b>terze parti</b>
li è accessibile e utilizzabile da chiunque
li una singola moneta è arrivata a valere <b>oltre 1000 euro</b>
li tramite <b>exchange</b> permette scambi con valute convenzionali
section section
h2 Bitmessage h2 Bitmessage
h3.bullet un servizio di posta digitale blindato h3.bullet un servizio di posta digitale blindato
@ -96,7 +83,9 @@ html
li rende impossibile <b>origliare</b> messaggi altrui li rende impossibile <b>origliare</b> messaggi altrui
li non permette il <b>tracciamento della sorgente e destinazione</b> dei messaggi li non permette il <b>tracciamento della sorgente e destinazione</b> dei messaggi
li non dipende da <b>terze parti</b>, è <b>decentralizzato</b>, <b>aperto</b> e <b>libero</b> li non dipende da <b>terze parti</b>, è <b>decentralizzato</b>, <b>aperto</b> e <b>libero</b>
li è accessibile e utilizzabile da chiunque li non permette di utilizzare indirizzi arbitrari
li non ancora adatto a <b>utenti meno esperti</b>
li richiede alta potenza di calcolo e consuma molta banda
section section
img.btsync(src="http://hsto.org/getpro/habr/post_images/2d6/d88/412/2d6d88412032ce8765048bc92eb17a94.png") img.btsync(src="http://hsto.org/getpro/habr/post_images/2d6/d88/412/2d6d88412032ce8765048bc92eb17a94.png")
@ -104,10 +93,10 @@ html
h3.bullet servizio di condivisione file decentralizzato h3.bullet servizio di condivisione file decentralizzato
ul ul
li non ha bisogno di <b>server</b> di <b>terze parti</b> li non ha bisogno di <b>server</b> di <b>terze parti</b>
li i file viaggiano direttamente tra un computer e l'altro
li nessuna limitazione di spazio nell'utilizzo li nessuna limitazione di spazio nell'utilizzo
li <b>Syncthing</b> si rivolge agli utenti più esperti ma è <b>libero</b> li <b>Syncthing</b> si rivolge agli utenti più esperti ma è <b>libero</b>
li in alternativa, <b>Bittorrent Sync</b> è un sistema proprietario ma è facilmente utilizzabile li in alternativa, <b>Bittorrent Sync</b> è un sistema proprietario ma è facilmente utilizzabile
li connessioni non sempre <b>affidabili</b>
section section
img.tails(src="https://tails.boum.org/contribute/how/promote/material/logo/tails-logo-flat.svg") img.tails(src="https://tails.boum.org/contribute/how/promote/material/logo/tails-logo-flat.svg")