aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElena ``of Valhalla'' Grandi <elena.valhalla@gmail.com>2012-01-15 22:15:34 +0100
committerElena ``of Valhalla'' Grandi <valhalla@trueelena.org>2012-07-30 10:20:04 +0200
commit1ffa8a54a44bb95ced425b06403e2422a05c1ce8 (patch)
treed71c241142a32ddba55fbce32acd18b34b4627c7
parentf5418376c4f90316c3e426b7b5ec299f05e50870 (diff)
crittografia: versione iniziale
-rw-r--r--guides/crittografia/00-info.rst9
-rw-r--r--guides/crittografia/01-intro.rst34
-rw-r--r--guides/crittografia/02-asimmetrica.rst90
-rw-r--r--guides/crittografia/04-gpg.rst57
-rw-r--r--guides/crittografia/05-otr.rst35
-rw-r--r--guides/crittografia/06-approfondire.rst32
6 files changed, 257 insertions, 0 deletions
diff --git a/guides/crittografia/00-info.rst b/guides/crittografia/00-info.rst
new file mode 100644
index 0000000..aa352af
--- /dev/null
+++ b/guides/crittografia/00-info.rst
@@ -0,0 +1,9 @@
+===============================
+Crittografia per tutti i giorni
+===============================
+
+:Author: Elena \`\`of Valhalla'' Grandi
+:Copyright: Copyright (c) 2011 Elena Grandi
+:Abstract: Questa miniguida affronta il tema della riservatezza
+ delle comunicazioni online.
+
diff --git a/guides/crittografia/01-intro.rst b/guides/crittografia/01-intro.rst
new file mode 100644
index 0000000..53beb63
--- /dev/null
+++ b/guides/crittografia/01-intro.rst
@@ -0,0 +1,34 @@
+Fino all'avvento dell'informatica di massa, la crittografia era
+un'esigenza di nicchia, utile a governi, eserciti e grandi aziende,
+ma non alla portata della gente comune, le cui esigenze di
+comunicazione riservata erano generalmente soddisfatte da una
+semplice busta chiusa.
+Non tutti sanno che nelle comunicazioni digitali non si ha questa
+possibilità: la maggior parte dei messaggi trasmessi via internet
+viaggia in un formato leggibile da chiunque e ad esempio chi gestisce
+le infrastrutture è tecnicamente in grado di sbirciare i messaggi
+senza che nessuno se ne accorga, come un postino poteva leggere
+quanto scritto su una cartolina postale.
+D'altro canto, gli stessi strumenti informatici che consentono
+la trasmissione dei messaggi permettono anche di applicare in
+tempo reale tecniche di crittografia forte che pochi decenni
+fa richiedevano apparati costosi e specializzati.
+
+La maggior parte di noi fa già uso di crittografia forte,
+magari senza saperlo: serve a proteggere le comunicazioni
+nel protocollo https usato per i siti web sicuri di banche,
+commercio elettronico e tanto altro.
+Usando programmi non molto più complicati da usare dei browser
+è possibile dare la stessa riservatezza ad altri tipi di comunicazioni
+online come email ed instant messaging, senza doversi accontentare
+di raccontare i propri fatti sull'equivalente di una cartolina.
+
+Questa guida è un'introduzione sufficiente per
+difendersi ad esempio da vicini smanettoni o sysadmin curiosi;
+nel caso ci si debba proteggere da governi, grosse associazioni
+criminali o addiritura dal Complotto Globale sarà ovviamente
+il caso di approfondire altrove gli argomenti trattati.
+Molti degli strumenti da usare saranno gli stessi, ma in quel
+caso si dovrà essere molto più rigorosi nel loro uso, e sarà
+utile una maggiore consapevolezza sulle problematiche correlate.
+
diff --git a/guides/crittografia/02-asimmetrica.rst b/guides/crittografia/02-asimmetrica.rst
new file mode 100644
index 0000000..bc37789
--- /dev/null
+++ b/guides/crittografia/02-asimmetrica.rst
@@ -0,0 +1,90 @@
+Crittografia asimmetrica
+------------------------
+
+Ogni metodo di crittografia moderno consiste in un algoritmo
+da applicare al messaggio che si vuole crittare usando come
+parametro una chiave, ovvero un numero o dei caratteri;
+il metodo è considerato abbastanza sicuro se conoscendo l'algoritmo
+e il messaggio codificato, ma non la chiave, non è possibile
+risalire al messaggio originario in un tempo abbastanza breve perché
+le informazioni in esso contenute siano utili o interessanti.
+
+La crittografia tradizionale richiede l'esistenza di una chiave
+segreta nota sia al mittente che al destinatario del messaggio:
+il trasferimento di questa chiave deve avvenire su canali sicuri
+e comporta difficoltà logistiche significative, specie quando
+le persone coinvolte non possono vedersi frequentemente di persona.
+
+Per ovviare a tale problema, sono stati sviluppati degli algoritmi
+di crittografia asimmetrica, nel quale esiste una coppia di chiavi
+legate tra loro da una relazione matematica che fa sì che
+un messaggio codificato con una delle due chiavi possa
+essere decodificato esclusivamente conoscendo l'altra chiave.
+Una delle due chiavi è detta chiave privata, e deve essere custodita
+in modo sicuro, mentre l'altra è detta chiave pubblica e può
+essere distribuita senza alcun rischio.
+
+La maggior parte della crittografia usata su internet fa uso
+di uno di questi algoritmi, sia per la loro maggiore praticità
+che per la capacità aggiuntiva di garantire l'identità del mittente.
+
+Crittare
+^^^^^^^^
+
+L'invio di un messaggio crittato con chiave pubblica può essere
+visualizzato con un esempio pratico.
+Alice vuole inviare a Bob
+un messaggio, ma sospetta che il postino sbirci nelle buste;
+Alice può allora chiedere a Bob di inviarle un lucchetto aperto
+(la chiave pubblica) di cui solo lui ha la chiave (chiave privata).
+Quando Alice riceve il lucchetto lo usa per chiudere una cassetta
+in cui ha messo il messaggio; da quel punto in poi solo Bob
+può aprire la cassetta, che può essere così spedita senza rischi.
+
+Con la crittografia asimmetrica via internet la procedura è simile:
+Alice cerca su internet la chiave pubblica di Bob, si assicura
+che sia veramente sua, codifica il messaggio e sa che solo Bob,
+con la sua chiave privata potrà leggerlo; se Bob vuole rispondere dovrà
+fare la stessa cosa con la chiave pubblica di Alice.
+
+Firmare
+^^^^^^^
+
+La firma dei messaggi sfrutta le proprietà delle chiavi al contrario:
+un messaggio codificato con una chiave privata di Alice può essere
+letto da chiunque abbia la sua chiave pubblica, ma non può essere
+stato scritto da nessun'altro.
+
+Alice può quindi mandare a Bob un messaggio in chiaro accompagnato
+dallo stesso messaggio crittato con la sua chiave privata: se
+Bob ha dei dubbi sull'identita` del mittente può decodificare il
+messaggio con la chiave pubblica di Alice e controllare che i due
+messaggi siano identici.
+
+Certificate Autority e Web of Trust
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Il sistema di crittografia asimmetrica è stato pensato per evitare
+che le persone debbiano incontrarsi continuamente di persona per
+scambiarsi delle chiavi segrete, ma rimane un problema: come
+accertarsi che una chiave pubblica appartenga veramente alla
+persona a cui crediamo appartenga?
+
+Una soluzione a questo problema è data dalle *certificate autority*, CA,
+degli enti che verificano l'identità di chi ha generato una
+chiave, la firmano con la loro chiave privata e in questo modo
+certificano l'appartenenza della chiave generata ad un proprietario.
+Questo sistema è usato ad esempio per le connessioni web sicure,
+ma ha il limite di dipendere da una gerarchia rigida e nella quale
+riuscire a violare la sicurezza di una CA rischia di compromettere
+tutto il sistema.
+
+Un'altra soluzione è quella della *web of trust* in cui non esistono
+autorità centrali, ma ogni utente verifica le chiavi della sua
+cerchia di conoscenti, eventualmente facendosene garante nei
+confronti di chi decide di fidarsi delle sue verifiche.
+Questo è l'approccio usato ad esempio da gpg, usato nella comunità
+del software libero per firma e crittografia di email, ma anche
+per la firma dei rilasci di software, ed ha il vantaggio di
+essere scalabile a comunità di dimensioni disparate.
+
diff --git a/guides/crittografia/04-gpg.rst b/guides/crittografia/04-gpg.rst
new file mode 100644
index 0000000..bfc1e80
--- /dev/null
+++ b/guides/crittografia/04-gpg.rst
@@ -0,0 +1,57 @@
+GPG
+---
+
+Il sistema di crittografia più diffuso nel mondo del software
+libero è OpenPGP, ed in particolare la sua implementazione libera
+GNU Privacy Guard, abbreviato GnuPG o GPG.
+
+Oltre ad essere adatto alla crittografia e/o firma di comunicazioni
+digitali da scambiare ad esempio via email, è lo strumento usato per la
+firma dei rilasci di software libero ed internamente dai
+gestori di pacchetti delle distribuzioni GNU/Linux per
+la verifica di quanto installato.
+La corretta identificazione dei proprietari delle chiavi gpg
+è affidata ad una Web of Trust, popolata anche tramite
+keysigning party che si tengono in occasione degli incontri
+della comunità del software libero.
+
+Sebbene per motivi di efficienza usi internamente anche degli
+algoritmi di crittografia simmetrica, all'utente appare come
+un sistema a chiave asimmetrica.
+Usando gpg o uno dei suoi front-end grafici si genera una
+coppia di chiavi pubblica e privata; per le normali esigenze
+si potranno accettare i default di tutte le scelte proposte,
+ma è fondamentale usare una passphrase sicura, non una semplice
+parola, ma una combinazione di più parole, in modo da avere
+una lunghezza significativa, difficile da indovinare ma facile da ricordare.
+
+Una volta generata la coppia di chiavi si può iniziare ad usare
+gpg, ma prima è meglio prendere alcune precauzioni: innanzitutto
+generare un certificato di revoca, da usare in caso di
+smarrimento o compromessione della chiave, quindi fare una
+copia della chiave privata e del certificato di revoca
+e custodirle in un luogo sicuro.
+
+A questo punto è possibile inviare la propria chiave pubblica
+ad uno dei keyserver usati dalla comunità del software
+libero e degli utenti gpg, così da facilitarne la reperibilità.
+Infine, si può impostare il proprio client di posta
+per firmare automaticamente i messaggi inviati e per
+verificare le firme presenti sui messaggi ricevuti.
+
+Per entrare nella Web of Trust sarà necessario incontrare di persona
+altri utenti gpg, verificare reciprocamente l'identità
+controllando anche un documento ufficiale (carta d'identità,
+passaporto, patente...) e scambiarsi i fingerprint delle
+rispettive chiavi.
+In un secondo tempo, dal proprio computer, si potranno scaricare
+le chiavi da un keyserver, controllare la corrispondenza
+dei fingerprint e quindi firmare le chiavi altrui con la propria,
+in modo da testimoniare la loro appartenenza alla persona incontrata.
+In questa fase è anche possibile impostare un grado di fiducia
+nelle firme apposte da un certo utente a chiavi altrui,
+scegliendo se accettarle indiscriminatamente (sconsigliato),
+se accettarle purché corroborate da altre testimonianze concordanti
+o se ignorarle (ad esempio nel caso di persone propense
+a firmare qualunque chiave senza le opportune verifiche).
+
diff --git a/guides/crittografia/05-otr.rst b/guides/crittografia/05-otr.rst
new file mode 100644
index 0000000..1d244b9
--- /dev/null
+++ b/guides/crittografia/05-otr.rst
@@ -0,0 +1,35 @@
+OTR
+---
+
+Off The Record è un protocollo pensato per offrire riservatezza
+alle comunicazioni della messaggistica istantanea.
+Il modello tradizionale a cui si ispira non è, come GPG, quello
+della lettera firmata in busta chiusa, ma quello della
+conversazione in una stanza privata, in cui poter parlare
+liberamente senza essere ascoltati da estranei e senza
+lasciare tracce permanenti ed ufficiali di quanto detto.
+
+Per raggiungere tale obiettivo OTR usa chiavi temporanee, generate
+al bisogno e non riutilizzate per conversazioni successive;
+in questo modo se anche una chiave viene compromessa le
+conversazioni passate non sono a rischio.
+Dal punto di vista dell'identificazione, OTR garantisce che
+i partecipanti alla conversazione non cambino, ma i messaggi
+non vengono firmati, e alla fine della conversazione non
+rimangono prove che possano attribuire quanto detto ad un partecipante.
+
+Sia i messaggi veri e propri che le comunicazioni tra due client
+per iniziare la conversazione OTR sono inviati come normale testo,
+in modo da poter usare OTR su qualunque sistema di chat,
+compresi ad esempio Jabber (e Google Talk), MSN, AIM e molti altri.
+
+OTR è supportato nativamente da alcuni client di messaggistica
+multiprotocollo, ed esistono plugin per altri client di maggior
+diffusione come Pidgin, Kopete o Miranda.
+
+La maggior parte dei client permettono di impostare delle preferenze
+di riservatezza con ogni singolo contatto, facendo scegliere
+se essere protetti da OTR in ogni comunicazione in cui sia possibile
+farlo, o se attivare esplicitamente la crittografia con un
+apposito comando.
+
diff --git a/guides/crittografia/06-approfondire.rst b/guides/crittografia/06-approfondire.rst
new file mode 100644
index 0000000..939daaf
--- /dev/null
+++ b/guides/crittografia/06-approfondire.rst
@@ -0,0 +1,32 @@
+Per approfondire
+----------------
+
+In questa guida si sono volutamente evitati gli aspetti tecnici
+e matematici della crittografia; delle buone spiegazioni si possono
+trovare sulle pagine della wikipedia inglese, a partire dall'articolo
+dedicato alla `crittografia
+asimmetrica <http://en.wikipedia.org/wiki/Public-key_cryptography>`_
+
+Per quello che riguarda i programmi da usare, innanzitutto
+si segnala `GnuPG <http://www.gnupg.org/>`_, alcuni frontend
+al quale sono segnalati sull'articolo di
+`wikipedia su GnuPG <http://en.wikipedia.org/wiki/GNU_Privacy_Guard>`_,
+così come sono elencati alcuni client di posta che lo supportino
+direttamente o tramite plugin.
+
+Anche per quello che riguarda la crittografia della messaggistica
+istantanea un buon punto di partenza è su wikipedia inglese alla
+voce `Off-the-Record
+Messaging <http://en.wikipedia.org/wiki/Off-the-Record_Messaging>`_
+comprendente anche un elenco di client con tale supporto.
+
+L'articolo `OpenPGP Best Practices
+<https://we.riseup.net/riseuplabs+paow/openpgp-best-practices>`_
+fornisce un elenco di criteri utili per la scelta delle opzioni
+della propria chiave.
+
+Ulteriori informazioni utili si trovano sulla pagina di
+`documentazione sul sito GnuPG <http://www.gnupg.org/documentation/>`_,
+dove è possibile trovare sia guide tecniche che materiale
+teorico, anche tradotti in italiano.
+