1
0
mirror of https://github.com/fazo96/tesina.git synced 2025-01-10 11:34:20 +01:00
tesina/Web/soluzioni.md
Enrico Fasoli 10a056ba43 correzioni
2015-06-09 16:42:48 +02:00

59 lines
4.8 KiB
Markdown

# Soluzioni ai problemi del Web
Dopo aver definito le caratteristiche _problematiche_ del moderno _World Wide Web_, vediamo le loro possibili soluzioni.
## Navigazione
Riassumento, i problemi del navigare il web sono il __tracciamento__, l'__analisi comportamentale__ e le __pubblicità mirate__: vediamo ora come risolverli.
### Ad Blocker
Un __Ad Blocker__ è un software in grado di nascondere le pubblicità sulle pagine web visitate. Gli __Ad Blocker__ più avanzati sono in grado di:
- nascondere gli elementi della pagina dedicati alle pubblicità;
- evitare l'esecuzione di __script__ o memorizzazione di __cookie__ non necessari per la fruizione dei contenuti della pagina, principalmente quelli dedicati alle pubblicità o alla raccolta dati;
Gli __Ad Blocker__ più conosciuti sono __AdBlock__ e __AdBlock Plus__, entrambi però sono __Closed Source__ e generalmente considerati meno affidabili dell'alternativa __uBlock__, che si presenta come una soluzione più moderna, performante e completamente __Open Source__.
### Ghostery
Tramite il plugin __Ghostery__, disponibile per tutti i browser web più usati, è possibile:
- vedere le informazioni di tracciamento che vengono inviate ai server dei vari siti web che utilizziamo
- 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 [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, la qualità della sua efficacia, e eventuali __backdoor__ presenti o __raccolte dati__ effettuate dal software.
## Servizi
Per i servizi come __File Sharing__, __Messaggistica__ e __Cloud Storage__ le soluzioni devono preferibilmente essere:
- __Open Source__ per permettere la revisione del codice da parte degli utenti e degli esperti di sicurezza,
- __decentralizzate__ o, alternativamente, permettere il __self-hosting__,
- sicure utilizzando __crittografia__ e __firme digitali__,
- configurabili e adattabili a diverse situazioni e casi d'uso,
- rispettare la __privacy__ e consentire l'__anonimato__, limitando i dati immagazzinati o evitandone completamente la raccolta.
### Self-Hosting
Il __self-hosting__ è una caratteristica di un __servizio__ che gli permette di creare diverse __istanze personalizzate__ gestite internamente da un'organizzazione o un privato. Questa caratteristica è associata ai servizi __liberi ma non decentralizzabili__ come ad esempio un __DBMS__.
### Decentralizzazione
La __decentralizzazione__ è una caratteristica di un __servizio__ che gli permette di non dipendere da un singolo __server__ o un'insieme di pochi server, consentendogli di funzionare semplicemente con una rete di __client__ collegati tra loro. Spesso, per far si che i client scoprano i rispettivi _indirizzi IP_ permettendogli di connettersi, è comunque necessario un server di tipo __tracker__.
Un __tracker__ differisce da un classico server perchè agisce semplicemente da punto di incontro per i client, permettendogli di avvisare della propria esistenza e quindi di conoscersi. Le informazioni scambiate tra i client non passano mai direttamente dal __tracker__. Usando un servizio decentralizzato (come __Syncthing__) è spesso possibile scegliere quale o quali tracker utilizzare o di non utilizzarne alcuni ma tentare direttamente la connessione ad alcuni indirizzi IP oppure di gestire il proprio tracker privato.
Una __Distributed Hash Table__ è una tecnologia che permette di avere un __key-value store__ (tabella a due colonne) condivisa dai nodi di una rete decentralizzata. Un key-value store contiene dati in formato _coppia-valore_: questo permette di accedere al valore determinato da una cerca chiave.
Per capire meglio, possiamo immaginare un __key-value store__ come una tabella a due colonne dove per ogni riga la prima colonna è la _chiave_, ovvero l'identificativo del dato mentre la seconda contiene il dato stesso.
- Nelle reti distribuite viene spesso usato per associare l'__indirizzo IP__ di un utente con il suo profilo, indirizzo, chiave pubblica o altro
- in caso di __BitTorrent__, ad esempio, per ogni _torrent_ (che agisce da chiave) il valore è una lista di _indirizzi IP_ di clients che posseggono quel torrent
- La __DHT__, come da definizione, non è offerta da un server ma è distribuita nella rete di _clients_.
La conbinazione tra __DHT__ e __Trackers__ affidabili rende stabile un servizio decentralizzato, permettendo ai nodi di collegarsi tra loro in maniera efficiente.