From 2b46421d96c0a08191f400f88462cb87d06b5845 Mon Sep 17 00:00:00 2001 From: Enrico Fasoli Date: Mon, 1 Jun 2015 09:56:28 +0200 Subject: [PATCH] aggiornamento presentazione e approfondimento file sharing --- FileSharing/file_sharing.md | 28 +++++++++++++++++++++++++--- Messaggistica/bitmessage.md | 16 +++++++++++++++- Messaggistica/introduzione.md | 15 ++++++++++++--- presentazione/src/index.jade | 19 ++++--------------- 4 files changed, 56 insertions(+), 22 deletions(-) diff --git a/FileSharing/file_sharing.md b/FileSharing/file_sharing.md index 273eb62..15909d0 100644 --- a/FileSharing/file_sharing.md +++ b/FileSharing/file_sharing.md @@ -1,12 +1,14 @@ # 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 - è possibile dare l'accesso ai dati a qualcuno senza doverli trasferire fisicamente - non si è limitati dallo spazio disponibile sul proprio dispositivo - 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__. ## 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 - 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__ (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__. +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__. diff --git a/Messaggistica/bitmessage.md b/Messaggistica/bitmessage.md index cd82970..3366642 100644 --- a/Messaggistica/bitmessage.md +++ b/Messaggistica/bitmessage.md @@ -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. - 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 - - è 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 ## 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. +## 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__. diff --git a/Messaggistica/introduzione.md b/Messaggistica/introduzione.md index 34379ad..a55842f 100644 --- a/Messaggistica/introduzione.md +++ b/Messaggistica/introduzione.md @@ -32,14 +32,23 @@ La messaggistica istantanea (spesso arracchita con __VoIP__ (telefonate via Inte ## 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 è 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.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. diff --git a/presentazione/src/index.jade b/presentazione/src/index.jade index 3e593fd..9227b6c 100644 --- a/presentazione/src/index.jade +++ b/presentazione/src/index.jade @@ -76,19 +76,6 @@ html li è completamente libero e aperto li è accessibile grazie a Tor Browser - 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 effettuare transazioni libere e anonime - li utilizza una rete decentralizzata - li non dipende da terze parti - li è accessibile e utilizzabile da chiunque - li una singola moneta è arrivata a valere oltre 1000 euro - li tramite exchange permette scambi con valute convenzionali - section h2 Bitmessage h3.bullet un servizio di posta digitale blindato @@ -96,7 +83,9 @@ html li rende impossibile origliare messaggi altrui li non permette il tracciamento della sorgente e destinazione dei messaggi li non dipende da terze parti, è decentralizzato, aperto e libero - li è accessibile e utilizzabile da chiunque + li non permette di utilizzare indirizzi arbitrari + li non ancora adatto a utenti meno esperti + li richiede alta potenza di calcolo e consuma molta banda section 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 ul li non ha bisogno di server di terze parti - li i file viaggiano direttamente tra un computer e l'altro li nessuna limitazione di spazio nell'utilizzo li Syncthing si rivolge agli utenti più esperti ma è libero li in alternativa, Bittorrent Sync è un sistema proprietario ma è facilmente utilizzabile + li connessioni non sempre affidabili section img.tails(src="https://tails.boum.org/contribute/how/promote/material/logo/tails-logo-flat.svg")