Differenze tra le versioni di "GNU Privacy Guard"
Hal (discussione | contributi) (Creata la pagina copiando senza formattazione gli appunti di Maria Grazia) |
Hal (discussione | contributi) (modificata la formattazione) |
||
Riga 1: | Riga 1: | ||
comunicare in pace - minikit di sopravvivenza | comunicare in pace - minikit di sopravvivenza | ||
− | + | Un veloce aiuto | |
− | man gpg | + | man gpg |
− | |||
− | + | Un rapido promemoria delle opzioni più comuni | |
+ | gpg --help | ||
− | + | '''Generare una chiave''' | |
− | + | Da utente normale: | |
+ | gpg --gen-key | ||
+ | e rispondere alle domande che fa il programma. | ||
− | gpg -- | + | '''Controllare''' che sia stata davvero creata |
+ | gpg --list-keys | ||
− | dove <ID> | + | Fare subito il '''certificato di revoca''' |
+ | gpg --output revoca.asc --gen-revoke <ID> | ||
+ | dove <ID> è dato dalle ultime 8 cifre dell'impronta (fingerprint) della chiave | ||
− | Scambiarsi le chiavi | + | '''Scambiarsi le chiavi''' |
− | Inviare la chiave ad un keyserver | + | '''Inviare''' la chiave ad un keyserver |
− | gpg --keyserver keyserver.linux.it --send-key <ID> | + | gpg --keyserver keyserver.linux.it --send-key <ID> |
− | Importare una chiave da un keyserver | + | '''Importare''' una chiave da un keyserver |
− | + | gpg --keyserver keyserver.linux.it --recv-keys <ID> | |
− | gpg --keyserver keyserver.linux.it --recv-keys<ID> | ||
la chiave viene cercata sul keyserver e importata in /home/utente/.gnupg/pubring.gpg | la chiave viene cercata sul keyserver e importata in /home/utente/.gnupg/pubring.gpg | ||
Riga 36: | Riga 40: | ||
Editare una chiave | Editare una chiave | ||
− | Per fare operazioni | + | Per fare operazioni e modifiche dobbiamo "editare" le chiavi: |
− | + | gpg --edit-key <ID> | |
− | gpg --edit-key <ID> | ||
per convalidarne il nostro uso dobbiamo firmarle | per convalidarne il nostro uso dobbiamo firmarle | ||
− | + | > sign | |
− | > sign | + | e rispondere alle domande |
si possono fare molte altre cose, ad esempio: | si possono fare molte altre cose, ad esempio: | ||
− | + | cambiare i valori di fiducia | |
− | + | > trust | |
− | + | vedere la fingerprint | |
− | + | > fpr | |
− | + | cambiare la data di scadenza | |
− | + | > expire | |
− | + | cambiare la password | |
− | + | > passwd | |
− | + | firmare localmente in modo non esportabile | |
− | + | > lsign | |
− | + | quindi ricordarsi di salvare | |
− | quindi ricordarsi | + | > save |
− | + | oppure | |
− | >save | + | > quit |
− | >quit | ||
Tutte le modifiche da rendere pubbliche vanno inviate ad un keyserver. | Tutte le modifiche da rendere pubbliche vanno inviate ad un keyserver. | ||
− | Revocare una chiave | + | '''Revocare''' una chiave avendo già il certificato di revoca: |
− | avendo già il certificato di revoca: | + | gpg --import revoca.asc |
− | gpg --import | + | gpg --keyserver keyserver.linux.it --send-key <ID> |
− | gpg --keyserver keyserver.linux.it --send-key | ||
− | Rete di fiducia | + | '''Rete di fiducia''' - web of trust |
Una chiave importata può essere firmata con un certo grado di fiducia con firma esportabile. Possiamo rispedirla al proprietario, se lui la importa nel suo portachiavi avrà la propria chiave firmata da noi. Ognuno può quindi aggiungere alla propria chiave le firme dei conoscenti, che hanno firme di altri.... | Una chiave importata può essere firmata con un certo grado di fiducia con firma esportabile. Possiamo rispedirla al proprietario, se lui la importa nel suo portachiavi avrà la propria chiave firmata da noi. Ognuno può quindi aggiungere alla propria chiave le firme dei conoscenti, che hanno firme di altri.... | ||
+ | |||
Vediamo come firmarsi le chiavi, esportarle, importarle | Vediamo come firmarsi le chiavi, esportarle, importarle | ||
− | + | diamo un'occhiata al nostro database | |
+ | gpg --list-keys --with-colons | ||
+ | fornisce tutte le chiavi che abbiamo con molte informazioni | ||
− | gpg --list- | + | gpg --list-ownertrust |
− | fornisce | + | fornisce tutti i valori di fiducia assegnati alle varie chiavi. (Informazioni private) |
− | gpg --list- | + | Controllo firme: |
− | + | gpg --check-sigs | |
+ | gpg --list-sigs | ||
− | |||
− | |||
Importare ed esportare | Importare ed esportare | ||
Abbiamo la nostra chiave, importato e firmato la chiave di <ID>. | Abbiamo la nostra chiave, importato e firmato la chiave di <ID>. | ||
Rimandiamola al proprietario: | Rimandiamola al proprietario: | ||
− | gpg --armor -export -o firma1 | + | gpg --armor -export -o firma1 <ID> |
crea un file di nome firma1 nella directory corrente che contiene la chiave firmata. Spedire al proprietario firma1. | crea un file di nome firma1 nella directory corrente che contiene la chiave firmata. Spedire al proprietario firma1. | ||
Chi riceve la propria chiave firmata da altri può decidere inserirla nel proprio portachiavi, con | Chi riceve la propria chiave firmata da altri può decidere inserirla nel proprio portachiavi, con | ||
− | gpg --import firma1 | + | gpg --import firma1 |
+ | si aggiungono al portachiavi le nuove firme ma anche i nuovi ID che il mittente ha sulla sua chiave, col rispettivo valore di fiducia. Bisogna fare molta attenzione a firmare le chiavi degli altri. | ||
Facciamolo sapere | Facciamolo sapere | ||
Se vogliamo fare un uso pubblico di questa fiducia reciproca possiamo mandare la nostra chiave, contenente la nuova firma, al keyserver: | Se vogliamo fare un uso pubblico di questa fiducia reciproca possiamo mandare la nostra chiave, contenente la nuova firma, al keyserver: | ||
− | gpg --keyserver keyserver.kjsl.com --send-key <ID mia chiave> | + | gpg --keyserver keyserver.kjsl.com --send-key <ID mia chiave> |
Rete di fiducia | Rete di fiducia | ||
Una chiave non è valida solo se è firmata di persona, ma anche se: | Una chiave non è valida solo se è firmata di persona, ma anche se: | ||
− | + | * è firmata da un numero sufficiente di chiavi valide, cioè da almeno una chiave di cui ci si fida pienamente o da tre chiavi con fiducia marginale | |
− | + | * il percorso delle chiavi per risalire alla chiave in questione è al massimo di cinque passi. | |
− | Gestire la rete | + | Gestire la rete di fiducia |
gpg.conf ha due opzioni: | gpg.conf ha due opzioni: | ||
--completes-needed n numero di utilizzatori con fiducia piena che presentano un nuovo utente (default 1) | --completes-needed n numero di utilizzatori con fiducia piena che presentano un nuovo utente (default 1) | ||
Riga 108: | Riga 112: | ||
Questioni pratiche | Questioni pratiche | ||
+ | |||
Come usare la firma nella posta: | Come usare la firma nella posta: | ||
+ | |||
scrivere il testo del messaggio (txt) | scrivere il testo del messaggio (txt) | ||
− | gpg | + | gpg --clearsign titolo |
− | inviare titolo.asc | + | diventa titolo.asc |
+ | |||
+ | inviare titolo.asc in allegato | ||
+ | |||
verificare un messaggio firmato | verificare un messaggio firmato | ||
− | gpg | + | gpg --verify titolo.asc |
+ | |||
+ | '''Visuale''' | ||
− | |||
Esistono vari programmi a interfaccia grafica per kde: | Esistono vari programmi a interfaccia grafica per kde: | ||
− | gpa - gnu private assistant, | + | '''gpa''' - gnu private assistant, '''kgpg''',... |
(Da qua in poi c'è da aggiustare l'html delle formule) | (Da qua in poi c'è da aggiustare l'html delle formule) | ||
− | + | Approfondimenti | |
− | + | ||
− | Questa chiave raccoglie anche le firme delle altre persone che hanno confermato la nostra | + | Viene generata una chiave DSA -digital signature standard- firma con funzioni di hash e algoritmo a chiave pubblica per cifrare il valore di hash. |
+ | (Message Digest 5, Secure Hash Algorithm-1; non invertibili- resistenti alle collisioni) | ||
+ | |||
+ | Questa chiave raccoglie anche le firme delle altre persone che hanno confermato la nostra identità. | ||
+ | |||
+ | Viene anche generata una sottochiave ElGamal per cifrare documenti. | ||
− | + | Diffie-Hellman (tanto per incuriosire un po') | |
− | + | <br> | |
− | + | </big>A e B possono scambiarsi un segreto in rete: A sceglie p | |
− | + | primo, un g<p, pubblica p e g. A sceglie a segreto e calcola g<sup>a</sup> | |
− | A e B possono scambiarsi un segreto in rete: A sceglie p | ||
− | primo, | ||
− | un g<p, pubblica p e g. A sceglie a segreto e calcola g<sup>a</sup> | ||
mod p , lo dice a B. B sceglie b segreto e calcola g<sup>b</sup> | mod p , lo dice a B. B sceglie b segreto e calcola g<sup>b</sup> | ||
Versione delle 10:43, 28 giu 2007
comunicare in pace - minikit di sopravvivenza
Un veloce aiuto
man gpg
Un rapido promemoria delle opzioni più comuni
gpg --help
Generare una chiave
Da utente normale:
gpg --gen-key
e rispondere alle domande che fa il programma.
Controllare che sia stata davvero creata
gpg --list-keys
Fare subito il certificato di revoca
gpg --output revoca.asc --gen-revoke <ID>
dove <ID> è dato dalle ultime 8 cifre dell'impronta (fingerprint) della chiave
Scambiarsi le chiavi
Inviare la chiave ad un keyserver
gpg --keyserver keyserver.linux.it --send-key <ID>
Importare una chiave da un keyserver
gpg --keyserver keyserver.linux.it --recv-keys <ID>
la chiave viene cercata sul keyserver e importata in /home/utente/.gnupg/pubring.gpg
in /home/utente/.gnupg/secring.gpg sono archiviate le chiavi segrete
Esempi di keyserver:
- sks.keyserver.penguin.de
- keyserver.kjsl.com
- keyserver .linux.it
Editare una chiave
Per fare operazioni e modifiche dobbiamo "editare" le chiavi:
gpg --edit-key <ID>
per convalidarne il nostro uso dobbiamo firmarle
> sign
e rispondere alle domande
si possono fare molte altre cose, ad esempio: cambiare i valori di fiducia
> trust
vedere la fingerprint
> fpr
cambiare la data di scadenza
> expire
cambiare la password
> passwd
firmare localmente in modo non esportabile
> lsign
quindi ricordarsi di salvare
> save
oppure
> quit
Tutte le modifiche da rendere pubbliche vanno inviate ad un keyserver.
Revocare una chiave avendo già il certificato di revoca:
gpg --import revoca.asc gpg --keyserver keyserver.linux.it --send-key <ID>
Rete di fiducia - web of trust Una chiave importata può essere firmata con un certo grado di fiducia con firma esportabile. Possiamo rispedirla al proprietario, se lui la importa nel suo portachiavi avrà la propria chiave firmata da noi. Ognuno può quindi aggiungere alla propria chiave le firme dei conoscenti, che hanno firme di altri....
Vediamo come firmarsi le chiavi, esportarle, importarle
diamo un'occhiata al nostro database
gpg --list-keys --with-colons
fornisce tutte le chiavi che abbiamo con molte informazioni
gpg --list-ownertrust
fornisce tutti i valori di fiducia assegnati alle varie chiavi. (Informazioni private)
Controllo firme:
gpg --check-sigs gpg --list-sigs
Importare ed esportare Abbiamo la nostra chiave, importato e firmato la chiave di <ID>.
Rimandiamola al proprietario:
gpg --armor -export -o firma1 <ID>
crea un file di nome firma1 nella directory corrente che contiene la chiave firmata. Spedire al proprietario firma1.
Chi riceve la propria chiave firmata da altri può decidere inserirla nel proprio portachiavi, con
gpg --import firma1
si aggiungono al portachiavi le nuove firme ma anche i nuovi ID che il mittente ha sulla sua chiave, col rispettivo valore di fiducia. Bisogna fare molta attenzione a firmare le chiavi degli altri.
Facciamolo sapere Se vogliamo fare un uso pubblico di questa fiducia reciproca possiamo mandare la nostra chiave, contenente la nuova firma, al keyserver:
gpg --keyserver keyserver.kjsl.com --send-key <ID mia chiave>
Rete di fiducia Una chiave non è valida solo se è firmata di persona, ma anche se:
- è firmata da un numero sufficiente di chiavi valide, cioè da almeno una chiave di cui ci si fida pienamente o da tre chiavi con fiducia marginale
- il percorso delle chiavi per risalire alla chiave in questione è al massimo di cinque passi.
Gestire la rete di fiducia gpg.conf ha due opzioni: --completes-needed n numero di utilizzatori con fiducia piena che presentano un nuovo utente (default 1) --marginals-needed n numero di utilizzatori con fiducia parziale che presentano un nuovo utente (default 3)
Questioni pratiche
Come usare la firma nella posta:
scrivere il testo del messaggio (txt)
gpg --clearsign titolo
diventa titolo.asc
inviare titolo.asc in allegato
verificare un messaggio firmato
gpg --verify titolo.asc
Visuale
Esistono vari programmi a interfaccia grafica per kde: gpa - gnu private assistant, kgpg,...
(Da qua in poi c'è da aggiustare l'html delle formule)
Approfondimenti
Viene generata una chiave DSA -digital signature standard- firma con funzioni di hash e algoritmo a chiave pubblica per cifrare il valore di hash. (Message Digest 5, Secure Hash Algorithm-1; non invertibili- resistenti alle collisioni)
Questa chiave raccoglie anche le firme delle altre persone che hanno confermato la nostra identità.
Viene anche generata una sottochiave ElGamal per cifrare documenti.
Diffie-Hellman (tanto per incuriosire un po')
A e B possono scambiarsi un segreto in rete: A sceglie p
primo, un g<p, pubblica p e g. A sceglie a segreto e calcola ga
mod p , lo dice a B. B sceglie b segreto e calcola gb
mod p , lo dice a A. A calcola (gb)a mod p, B
calcola (ga)b mod p, che forniscono lo stesso
valore, ed è il loro segreto.
Es p=23 g=5 A sceglie 7 57mod 23
(=17); B sceglie 5 55 mod 23 (=20) .
A calcola 207mod 23 (=21), B 175 mod 23
(=21). Il segreto scambiato è 21.
Crittografia a chiave pubblica (e questo è anche peggio, e puramente indicativo)
1978 - R.S.A. dal teorema di Eulero-Fermat:
a k φ (m)+1 = a (modm)
dove φ (m)
è la funzione di Eulero di m
se due numeri s e t sono tali
che st = kφ(m)+1 allora uno
è la chiave privata e uno è la chiave pubblica. Il
sistema funziona scegliendo opportunamente m (prodotto di due primi
'grandi'). La chiave pubblica è (s, m), quella privata (t,
m).
Viene usato un sistema di
crittografia misto (messaggio cifrato con
cifrature simmetriche la cui chiave usata è inviata col
messaggio e cifrata a chiave pubblica).