[hack] Appunti crittografia

Hal hal@linux.it
Mar 16 Dic 2003 01:02:11 CET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1




#Ciao a tutti!
#La forma di questo messaggio puo' sembrarvi strana... E` fatto in modo tale
#che potete sostanzialmente copiarlo e incollarlo in uno script bash...
#Ovvero: le righe che iniziano con diesis "#" sono i commenti, le altre i
#comandi.
#Sono piu' che altro gli appunti che io ho scritto per la mia lezione, vi
#possono servire da memorandum. Se avete altri dubbi potete chiedere qui in
#lista o direttamente a me.


#Conviene lanciare gpg una prima volta, per permettergli di creare le
#directory che usera` in futuro.
gpg --list-keys

#Per creare una chiave
gpg --gen-key
#Standard... DSA ElGamal
#Ok... 1024 (o 2048)
#Per sempre... o uno o due anni...
#Nome e Cognome, o pseudonimo
#Email
#Commento eventuale...(organizzazione, pseudonimo... et alias)
#
#passphrase attenzione! Sceglierla con cura! NON e` recuperabile!!!
#
#random...
#Sulla riga pub.... c'e` l'ID

#Buona norma e` crearsi _subito_ un certificato di revoca:
gpg --gen-revoke KEY-ID
#Si'...
#"0"... nessuna ragione
#"Revoca di emergenza" (o qks di simile) poi una riga vuota (o solo quella)

#verra` stampato sullo schermo il "certificato".
#Conservare cio' che c'e` tra le righe "---BEGIN" e "---END" comprese
#Magari stampandole su un foglietto che terremo con cura. Questo ci
#permettera` di revocare la chiave anche se la perdremo definitivamente.



#Scaricare una chiave dal key-server
gpg --keyserver sks.keyserver.penguin.de --search-keys hal@linux.it
#Oppure, meglio, se sappiamo l'ID
gpg --keyserver sks.keyserver.penguin.de --recv-keys 19C156F3
#Di alcune persone potete scaricare la chiave dal sito, ad esempio la mia:
wget http://linuz.sns.it/~bodrato/ciao00B0.html
#Quindi inserirla tra le chiavi conosciunte
gpg --import ciao00B0.html
#Questa chiave contiene parecchi riferimenti, se volete visualizzarli tutti
gpg --photo-viewer display --show-photos --list-keys bodrato
#che funziona se siete in grafica e avete il comando "display" installato

#Firmare localmente una chiave... (quella di Hal)
gpg --edit-key 19C156F3
#dentro...
#> lsign
#...non conviene, di solito, far scadere la nostra firma...
#In una firma locale l'affidabilita` non ci interessa...
#vogliamo firmare davvero. Per farlo serve sbloccare la nostra chiave
#segreta, con la passphrase
#
#quindi un passo non strettamente necessario (ma essenziale per Kmail)
#> trust
#Qui decidiamo quanto ci fidiamo delle firme fatte con questa chiave
#Il numero puo' essere da 1 a 4 (il 5 ha usi particolari)
#In ogni caso questo dato non verra` esportato! (non rischiamo la figuraccia
#con qualcuno che viene a sapere che non ci fidiamo di lui !-)
#> save

#Firmare ufficialmente una chiave (la mia)
gpg --edit-key c1a000b0
#> sign
#Questa chiave ha molteplici UID, vogliamo firmarli tutti? rispondiamono...
#Se volessimo firmare solo il primo rispondiamo no e lo selezioniamo
#> uid 1
#Quindi di nuovo
#> sign
#Per le firme non locali e` importante non prendere con leggerezza la
#dichiarazione di attenzione! Se non sapete che scrivere, date "0"
#Questa _non_ e` la fiducia che attestiamo alla persona, ma la certezza con
#cui possiamo affermare che questa chiave e` corretta.
#Firmiamo _solo_ se abbiamo _almeno_ ottimi indizi della correttezza del
#legame Chiave/Identita`. Possibilmente perche` abbiamo ricevuto "l'impronta
#digitale" della chiave dal proprietario.
#... poi salviamo i cambiamenti.
#> save
#PS: non si firmano chiavi solo perche' gia` le ha firmate qualcuno di cui
#ci fidiamo...

#Se si firma in modo esportabile una chiave, e` buona norma rispedirla al
#proprietario, la nuova versione contiene una firma in piu'(esempio con la mia)
gpg --armor --export bodrato@gulp.linux.it | mail bodrato@gulp.linux.it
#Sara` poi lui a decidere cosa fare della vostra firma, se tenerla da parte
#o pubblicarla. (la firma e` un indizio del fatto che ci si e` incontrati,
#con tanto di data indicativa) Tra l'altro in questo modo si fa una
#(piccola) verifica dell'indirizzo di posta elettronica, meglio ancora farlo
#con un messaggio cifrato:
gpg -a --export bodrato|gpg -r bodrato -a --encrypt|mail bodrato@gulp.linux.it



#Pubblicare una chiave: spedirla al key-server
gpg --keyserver sks.keyserver.penguin.de --send-key 19C156F3
#Al keyserver si mandano sempre e solo i dati pubblici, quind si possono
#mandare i propri come quelli di qualcun altro. In questo caso stiamo
#mandando la chiave di Hal. (ma si tenga conto di quanto appena detto, il
#proprietario potrebbe non essere contento) Altrimenti si metta l'id della
#propria chiave, che si puo' sempre recuperare con
gpg --list-secret-keys
#che ad esempio nella mia prova fornisce
#sec  1024D/FC70A8EA 2003-06-11 Pseudonimo <Ne@qui.ne.li>
#ssb  1024g/4EA4538C 2003-06-11
#Dove l'ID e` FC70A8EA

#Oppure si puo' pubblicare su un sito o speridla per posta, la parte
#pubblica della chiave e` cio' che esce dal comando:
gnupg --armor --export 19C156F3


#Come firmare un testo
gpg --clearsign testo.txt
#Per firmare serve la nostra chiave segreta, quindi la pass
#Il comando ha prodotto un file testo.txt.asc, che contiene il messaggio
#leggibile e la firma.

#Per verificare la firma
gpg --verify testo.txt.asc
#Che ci dice _quando_ e _con_quale_chiave_ il messaggio e` stato firmato.

#Se proviamo a modificarlo e a ricontrollare la firma
emacs testo.txt.asc
#Fatte modifiche anche piccole (Una maiuscola cambiata in minuscola)
gpg --verify testo.txt.asc
#Ci avverte che la firma NON e` valida.

#Per cifrare un file (qualunque)
gpg --encrypt testo.txt
#Ci chiede quali utenti devono poter leggere il messaggio, glieli diamo uno
#alla volta. Per cifrare servon le chiavi _pubbliche_ dei destinatari!
#Quindi non servono password!
#Crea un file testo.txt.gpg che contiene le informazioni cifrate.
#Attenzione, se non ci mettiamo come uno dei destinatari, non riusciremo
#piu' a leggere il messaggio sebbene lo abbiamo scritto noi!

#...che serviranno invece per decifrare:
gpg testo.txt.gpg
#che ricrea il file con i contenuti originali, oppure
gpg --decrypt testo.txt.gpg
#Che non scrive su disco (pericoloso :-) ma visualizza soltanto il contenuto.


#Ciau, m

#PS: Ovviamente questo messaggio e' firmato dal vero mittente :-)

#PPS: L'indirizzo del sito che volevo consigliarvi e`:
# http://www.gnupg.org/gph/it/index.html


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/3kpYhuDIK41F+n0RAhieAJ9H8Ck/6c+RM+2yw2gthg+VXnUEnQCgkl6O
T7hlHBou8jS+VxUlbhJZ3hk=
=YvCr
-----END PGP SIGNATURE-----




Maggiori informazioni sulla lista golem-hack