GPG Gnu Privacy Guard

Da GolemWiki.
Versione del 28 giu 2007 alle 10:23 di Hal (discussione | contributi) (Creata la pagina copiando senza formattazione gli appunti di Maria Grazia)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

comunicare in pace - minikit di sopravvivenza

Generare una chiave man gpg gpg --help

Da utente normale: gpg --gen-key e rispondere alle domande che fa il programma.

Controllare: gpg --list-keys

Fare subito il certificato di revoca

gpg --output revoca.asc --gen-revoke <ID>

dove <ID> = "ultime 8 cifre dell'impronta 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 sulle chiavi dobbiamo editarle:

gpg --edit-key <ID>

per convalidarne il nostro uso dobbiamo firmarle

> sign e rispondere;

si possono fare molte altre cose, ad esempio:

>trust cambiare i valori di fiducia

>fpr vedere la fingerprint

>expire cambiare la data di scadenza

>passwd cambiare la password

>lsign firmare localmente in modo non esportabile

quindi ricordarsi...

>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 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

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 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; 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).