Guida Pratica a PGP(tm)Pretty Good(tm) PrivacyProgramma di Crittografia a Chiave Pubblicaed. 96/2c - pastore@iol.it |
Poichè la corrispondenza per posta elettronica (e-mail) presenta notevoli problemi di sicurezza e riservatezza, la crittografia risponde a queste esigenze che, in alcuni casi, risultano senz'altro indispensabili come ad esempio per l'invio di numeri telefonici, numeri di carte di credito, ordini di acquisto (essere certi che l'ordine arriva da una certa persona e che la quantità di beni acquistati sia veramente quella indicata), organizzare appuntamenti, ecc....
Ritorno all'indice
Ma queste due persone potrebbero trovarsi a notevole distanza tra di loro o addirittura non conoscersi affatto e pertanto, se non esiste un canale sicuro per scambiarsi i codici di cifratura, occorre avvalersi di canali (e-mail, chat, posta convenzionale) attraverso i quali la chiave potrebbe essere intercettata.
PGP risolve il problema essendo un programma di "crittografia a chiave pubblica " che si basa sulla generazione di una coppia di chiavi: una "segreta" e l'altra "pubblica" .
Eliminando la necessità di trasmettere una chiave segreta si riducono praticamente a zero i rischi di frode.
L'utente tiene al sicuro la propria chiave segreta mentre diffonde e rende disponibile la chiave pubblica.
È stato stimato che (nel caso di chiavi a 1024 bit) una rete di un milione di computers impiegherebbe qualcosa come 10^10 anni (un tempo pari all'età dell'Universo) per poter ricavare una chiave privata da una chiave pubblica ... e a quel punto ci sarebbe ancora il problema di ricavare la Pass Phrase segreta.
Una chiave pubblica, quindi, potrebbe non essere sicura solo se non si è certi della sua reale autenticità o appartenenza.
Vedremo in seguito come affrontare il problema della "certificazione" delle chiavi pubbliche.
Riassumendo:
Per esempio:
Per esempio:
Per esempio:
Potete fare una ricerca "exact" utilizzando archie, oppure accedere direttamente ad un sito ftp come, ad esempio, quello del DSI - Università Statale di Milano
o presso il sito ufficiale in Novergia http://www.ifi.uio.no/pgp/
Leggete con attenzione le avvertenze nell'appendice A5 prima di prelevare il file.
Un ottima shell per windows, che consente di utilizzare pgp (dopo averlo installato!) senza digitare alcun comando, è PGP Win Front il cui nome per la ricerca è pwf31.zip oppure la più recente (e voluminosa) versione 32 bit pwf32402.zip .
Potete prelevare la shell andando all'appendice A3 dove troverete anche il file di Paolo Valenti per avere pwf32402 in italiano .Ritorno all'indice
Sappiate che alla parola "pgp" (come vedremo in seguito) possono seguire:
In questo testo, nel descrivere i comandi, useremo le seguenti convenzioni:
<id> = identificativo del nome utente <K_id> = identifica la chiave utente ed è preceduto da 0x (es. 0xM5529F43) (potete utilizzarlo al posto dell'identificativo utente <id>) <infile> = nome del file da cifrare o decifrare <outfile> = nome del file di destinazione <mio_ID> = identificativo del nostro user ID da utilizzare [ ] = tra parentesi quadre i comandi opzionaliRitono all'indice
Ed ecco cosa chiede PGP e cosa dovete fare:
Attenzione: la frase scelta vi verrà richiesta ogni qualvolta dovrete usare la chiave segreta per decodificare un messaggio o per firmare una mail
Ci siamo!
PGP ha generato la coppia di chiavi:
Quest' ultimo è il database di default delle chiavi pubbliche che userete e quindi per il momento, contiene solo la vostra ma con il tempo conterrà anche le chiavi pubbliche di altri utenti e da voi aggiunte.
Ora vi consiglio, al fine di evitare manipolazioni, di "firmare" immediatamente la vostra chiave pubblica con il comando:
<"id"> è l'identificativo d'utente, va posto tra virgolette e può essere ad esempio lo username che avete indicato prima o una parte di esso (es. Poldo senza l'indirizzo e-mail, oppure solo il cognome che avete usato senza il nome) in quanto PGP riconosce anche solo una parte dello username.
Per consentirvi di firmare la chiave pubblica PGP vi chiederà di digitare ..... la pass phrase !
Ritorno all'indice
I keyservers si aggiornano tra di loro quindi basta usarne uno qualsiasi per inserirvi la propria chiave.
Potete usare, ad esempio, quello del Dipartimento di Scienze dell'Informazione dell'Università Statale di Milano.
Le operazioni avvengono automaticamente per e-mail quindi:
Per la cronaca ecco altri comandi accettati dai keyservers:
HELP .............. indovinate voi ;-)
INDEX ............ lista tutte le chiave contenute nel keyserver
GET ................ ricevete tutte le chiavi pubbliche (sigh !!!)
GET [id] .......... ricevete la chiave pubblica di determinato utente
MGET xxxx ..... es. "mget @iol.it>" per ricevere le chiavi pubbliche di utenti Italia Online
Su World Wibe Web potete anche raggiungere il keyserver all'indirizzo:
Ritorno all'indice
Nell'esempio la chiave sarà contenuta nel file ascii "miakey.asc"
Questo file lo potete distribuire e la chiave (con un semplice taglia&incolla) potrà essere inserita nel corpo della mail da inviare al keyserver.
Una breve considerazione sull'opzione "a" che troverete spesso abbinata ad altri comandi:
significa "Ascii Armored", indica a PGP di produrre solo files che contengono caratteri il cui codice decimale è compreso tra 0 e 127 (ascii basso) al fine di renderli riconoscibili e trattabili da qualunque sistema.
Ritorno all'indice
Potete ottenerlo con il comando:
es. pgp -kvc pastor oppure pgp -kvc @iol.it
Ricordate che PGP riconosce anche solo una parte dello user ID e che è indifferente usare lettere minuscole o maiuscole !
Se però vi sono degli spazi, l'ID deve essere sempre digitato tra virgolette (es. pgp -kvc "Pinco Poldo")
Omettendo di indicare lo user ID vi verrano elencati a video i fingerprint di tutte le chiavi contenute nel pubring.
Il fingerprint ha il vantaggio che, essendo facilmente leggibile, può essere diffuso nei messaggi pubblici, sui biglietti da visita, comunicato a mezzo telefono ecc...
Quando vi arriva la chiave pubblica di una persona potete confrontare il fingerprint, da voi già conosciuto, con il fingerprint ottenuto dalla sua chiave: se coincidono è una garanzia di autenticità.
In modo analogo, coloro che hanno ottenuto il vostro fingerprint da varie fonti, potranno verificare l'autenticità della chiave pubblica che gli avete mandato via e-mail o che hanno prelevato da un keyserver.
Ritorno all'indice
apparirà a video una schermata simile a questa (per il momento vi sarà solo la vostra key ID ed il vostro user ID) :
Key ring: 'c:\pgp\pubring.pgp' Type bits/keyID Date User ID pub 1024/FBC321M7 1995/11/11 Pinco Poldo <pinpoldo@iol.it> 1 matching keys found.Invece con il comando pgp -kv <id> (es. pgp -kv Pinco) potete listare un singolo User ID .
Ritorno all'indice
Se ad esempio vi perviene una mail (o un file qualsiasi come questo) contenente una o più chiavi pubbliche che desiderate aggiungere al vostro pubring, basta digitare:
PGP, infatti, considera solo le chiavi contenute nel file ed ignora il resto.
In fondo alla presente guida vi è la mia chiave pubblica, provate ad aggiungerla al vostro pubring: pgp -ka <nomefile>
Quando aggiungete una chiave vi verrà chiesto se volete certificarla: rispondete NO (n) se non siete sicuri al 100% che la chiave non sia stata manipolata da terze persone.
Se "firmate" una chiave fasulla la dichiarate sicura dando false informazioni a chi ne verrà in possesso dopo di voi.
Ipotizziamo che, dopo alcuni giorni, avete la certezza dell'autenticità di una chiave (magari confrontando il fingerprint che vi è stato dettato per telefono) e volete certificarla:
consente di "firmare" la chiave.
Probabilmente chi vi ha inviato la sua chiave potrebbe avere piacere che gliela restituite dopo averla certificata, quindi estraetela con il comando: pgp -kax <id> <outfile>
In modo analogo, per aggiungere al pubring la vostra stessa chiave pubblica certificata da un amico, basterà far leggere a PGP il file che la contiene: pgp -ka <infile> aggiornerà il pubring.
Per rimuovere chiavi pubbliche dal pubring: pgp -kr <id>
Ritorno all'indice
Con il comando pgp -ke <id> potete anche editare alcuni parametri della vostra chiave privata (aggiungere altri userID se ad esempio avete altri indirizzi e-mail oppure cambiare la frase segreta).
Ritorno all'indice
Siete in possesso della sua chiave pubblica?
L'avete aggiunta al vostro pubring?
Perchè (spero l'abbiate ormai capito) lo dovrete cifrare usando la sua
chiave pubblica:
che opzioni abbiamo usato?
Se è la prima volta che codificate un messaggio per quella persona e la sua chiave pubblica non è stata ancora certificata, PGP vi chiederà' se volete davvero usare quella chiave pubblica.
Rispondete SI (Y) altrimenti la codifica non potrà avvenire se prima non certificate quella chiave pubblica utilizzando il comando: pgp -ks <id>
È anche possibile codificare files con la crittografia convenzionale, ad esempio per rendere non leggibili documenti riservati sul proprio computer:
Ritorno all'indice
-s senza l'opzione "e" che abbiamo appena visto, forma il comando per firmare in chiaro.
PGP vi avrà chiesto di digitare la pass phrase per poter utilizzare la vostra chiave segreta.
Come avrete notato non abbiamo indicato nessun user ID: infatti la firma in chiaro si ottiene con la propria chiave privata contenuta nel file secring.pgp
Il destinatario, usando la vostra chiave pubblica in suo possesso, potrà verificare l'identità del mittente e l'integrità della mail.
Dalla versione 2.5 di PGP in avanti, il file config.txt contiene l'opzione "CLEARSIG=on" come default, al fine di abilitare la "firma in chiaro".
Poichè PGP effettua anche una compressione del file codificato, ne consegue che quest'ultimo risulta ugualmente illeggibile.
Per rendere pienamente leggibile il file "firmato in chiaro" è pertanto necessario utilizzare le opzioni "a" (armor) e "t" (text) che ho indicato oppure modificare opportunamento il file config.txt .
Per disabilitare la "firma in chiaro":
È inoltre possibile creare un certificato di firma separato dal messaggio usando il comando
con il quale verrà creato un file con estensione .sig per la verifica del file sorgente.
Ritorno all'indice
Ritorno all'indice
se volete eliminarlo definitivamente occorre fare il "wipe" del file, operazione che anche PGP consente aggiungendo l'opzione " w " (es. pgp -estaw <infile> <id> -o <outfile> ).
Meglio precisare che la distruzione del "file in chiaro" vi mette al sicuro dai tentativi di recupero convenzionali ma non da eventuali procedure sofisticate.
Attenzione inoltre ad eventuali files di backup o temporanei creati dal
word processor.
Ritorno all'indice
il solo comando:
assolve a quanto sopra perchè agisce sia sulla codifica che sulla firma.
Se occorre la verifica della "firma", non è necessario specificare lo user ID poichè viene cercato automaticamente nel pubring.
Quando occorre effettuare la decodifica vi verrà chiesta la frase segreta.
Attenzione: potrete essere certi che il file verificato (e tutti i files in esso contenuti qualora si tratti di un file compresso) non è stato in alcun modo alterato solo se siete sicuri dell'autenticità della chiave pubblica del mittente ! (controllate eventuali certificazioni di altri utenti oppure il fingerprint sui keyservers o nelle mail pubbliche che il mittente scrive) .
Ritorno all'indice
Potrebbe essere successo che:
Quest'ultima ipotesi potrebbe verificarsi anche quando avete preparato il testo con un editor e, dopo averlo firmato in chiaro, avete effettuato il taglia&incolla per importarlo nel corpo del messaggio da spedire con Eudora o altro offline mailer. Poichè Eudora va "a capo" automaticamente e quindi introduce in modo esplicito il carattere di "a capo" alla fine di ogni riga .... ecco che altera il corpo del messaggio il quale non potrà più corrispondere alla "firma" !!!
Il problema è ora facilmente risolvibile con Eudora.
Potete anche provare a creare il messaggio andando manualmente a capo dopo un numero di colonne inferiore a quelle accettate da Eudora nel corpo della mail ma vi consiglio vivamente di utilizzare una interessantissima utility chiamata pgpeudra ora finalmente disponibile anche in versione 32 bit funzionante con Eudora 1.5.4 .
Se preparate il messaggio con un pacchetto formato QWK o simile, oltre ad utilizzare il "trucco" dell' andare a capo manualmente ad ogni riga dell'editor, potete usare un tool come AutoPGP (nome del file: apgp212.zip) che agisce direttamente sul pacchetto QWK e pertanto firma il messaggio dopo che sono stati introdotti i caratteri di "a capo" (word wrap).
Ritorno all'indice
Generare le chiavi pgp -kgAggiungere una chiave pgp -ka
[pubring] Estrarre una chiave pgp -kx[a]
[pubring] Listare il pubring pgp -kv[v] [id] [pubring]
Vedere il fingerprint pgp -kvc [id] [pubring]
Dettagli del pubring pgp -kc [id] [pubring]
Cancellare una chiave pgp -kr
[pubring] Aggiungere un altro userID pgp -ke
[pubring] Editare la pass phrase pgp -ke
[pubring] Firmare una chiave pgp -ks
[-u ] [pubring] Cancellare una "firma" pgp -krs
[pubring] Cifrare pgp -e[t][a][w]
[id2 ..] [-o ] Firmare pgp -s[t][a]
[-u ] [-o ] Cifrare e Firmare pgp -es[t][a][w]
[id2 ..][-u ] [-o ] Cifratura convenzionale pgp -c
Decifrare/verificare firme pgp
[-o ]
[ a ] = ASCII Armored
[ o ] = per indicare il nome del file risultante
[ w ] = per distruggere il testo da cifrare (dopo la codifica)
[ m ] = per vedere i risultati a video e non in un file
Ritorno all'indice
Poichè questa sintetica guida non può avere la pretesa di sostuire il manuale, ne raccomando vivamente la lettura non solo per una maggior completezza della trattazione ma anche per le argomentazioni dei principi di libertà e riservatezza ai quali si è ispirato Philip Zimmermann.
Sempre grazie a marco.giaiotto@rivoli.alpcom.it sono inoltre disponibili i due files language.it e it.hlp (pgp263it.zip) che consentono di avere PGP in lingua italiana (se invece state utilizzando PGP 2.6.2i prelevate pgp262it.zip).
Ecco come usarli:
Ritorno all'indice
Dopo aver scompattato il file pwf31.zip l'installazione avviene da windows (file manager) eseguendo il setup .
Poichè conoscete ormai molti dei comandi essenziali di PGP, vi risulterà facile imparare l'utilizzo di questa shell semplicemente guardando i comandi pgp che compaiono in una apposita finestra.
Se scegliete Pwf32402 potete prelevare italian.lng, il file creato da Paolo Valenti per avere la shell in versione nostrana.
Ritorno all'indice
La versione attuale 1.06 può essere utilizata con Eudora 1.5.4 a 32 bit .
Grazie alla traduzione della cara amica Lilith è disponibile in italiano il
Manuale per l'uso di PgpEudra 0.20 |
Credo possa esservi utile anche con la versione più recente.
Ritorno all'indice
Iniziamo con un avvertimento: non è consentito prelevare le versioni USA di PGP ma solo le versioni internazionali denominate x.x.xi (es. pgp262i o pgp 263ix).
Consiglio quindi di prelevare PGP escusivamente da siti europei in quanto il download di una versione da un sito americano è un reato federale e pertanto, se non effettuato in totale anonimato (cosa impossibile), ritengo possiate essere perseguiti penalmente anche in Italia.
Vi rammento che la perdita della "pass phrase" comporta l'impossibilità di qualsiasi operazione futura con conseguente necessità di generare una nuova chiave ed avvertire (sigh!) tutti coloro che ne hanno una copia.
Qualora non riteniate più affidabile (riservato e segreto) il vostro
secring.pgp e/o la pass phrase, dovrete immediatamente revocare la chiave
pubblica con il comando pgp -kd
PGP 2.6.3i è disponibile per i sistemi :
http://www.ifi.uio.no/pgp/download.shtml
oppure via FTP al sito:
sotto la cui directory pub/pgp si trovano sorgenti e compilati per tutte le piattaforme, la documentazione originale, moduli per altre lingue, FAQ, etc...
Tutte le nuove eventuali versioni di PGP vengono inizialmente caricate nel sito sopra citato.
Ecco invece alcuni keyservers:
http://pgp.ai.mit.edu/~bal/pks-toplev.html (interfaccia al KEYSERVER del MIT)
cloni di questo keyserver sono:
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: 2.6.2i mQCNAzClMukAAAEEANmPwgaLicq8NSTYC6ltwhJNOwY1EgAwctyQeUtuvgmOVUev CjgpRDXJV2/cCnysO9D12Kf7vYU10rjvuROdUoGy8++yUa4DDahjpoklZOWHgV/2 MtZmtshO1ehGrOo4pHaSbIkQuWn0zu2tZ44ox5nXE/S4rQGJRwlgXyf6wlP1AAUR tBhQYXN0b3JlIDxwYXN0b3JlQGlvbC5pdD6JAJUCBRAwqHlt4y1pNWVSn0EBATCe A/sGk3IarEz6QjfjTPEYoKwh9rN7YZWpV/rhKjlT4nzjN7bEkSrCxJWOqyyEbgGP yFNrtbi3309r7//0+tB7EwUEAk1A3g8ocHE/sY6X5H9s/4wGJJK6vbnywpW9KSXN 6czcl3QvwnQKfh8oyzhuVeo7hZW7LqThW8riqifYuMtu6okAlQMFEDClMw0JYF8n +sJT9QEBKHoD/ixuwFbd9Tt/zqf9o7701InIZDA2NOrGS35KwAUPDnnbCY4zSvrA xvCVaTmBsNRnv5Vg0HHbLLQbAl8a24M088nu8to6oHbOFj/bhQO6I3FKSsY9ee1l z9UWoZmhc8C5mdRxBS9CgJYOmpKR5WdblzCHr17TE4978P3YnT++UwHa =VuO1 -----END PGP PUBLIC KEY BLOCK-----per prelevarla: idpast.zip
Ritorno all'indice
Ora che sono giunto alla conclusione di questa "guida" introduttiva all'uso di PGP mi chiedo: perchè l'ho scritta ?
Probabilmente, non essendo un esperto di crittografia e PGP ma bensì un neofita, l'ho scritta nella speranza che chiunque abbia la necessità (o bontà) di leggerla e la pazienza di scrivermi (suggerimenti, critiche, informazioni utili) possa anche in qualche modo aiutarmi ad imparare qualcosa in più o a correggere eventuali errori che ho commesso.
La pretesa non era di scrivere qualcosa di esauriente (molto meglio leggersi le numerose FAQ in merito) ma bensì una guida pratica (e sintetica) comprensibile anche a mio padre, per me grande esempio in moltissime cose della vita ma, haimè, con una idiosincrasia innata anche nei confronti del mouse e della tastiera.
Mi auguro quindi venga letto non solo da chi si avvicina a PGP per la prima volta ma anche (con la dovuta magnanimità) da persone esperte e smaliziate.
Vi invito, ancora una volta, ad inviarmi le vostre considerazioni, informazioni utili, segnalazioni di inesattezze o dimenticanze e quant'altro possa servire a me e agli altri amici che avranno modo di leggere eventuali versioni successive o che mi scriveranno per maggiori chiarimenti.
Ritorno all'indice
/ \__ ( @\___ / O bye by byte da Pastore / (_____/ .... e un "bau" dai suoi aiutanti /_____/ fingerprint: 45 8E 8D 34 3C EE BB 3C 9D 04 E8 92 FB 0A E0 C8
Tito, che ha curato alcune correzioni nell'impaginazione del testo html Marco Giaiotto, per la disponibilità e l'incoraggiamento Stall, sollecito nei preziosi suggerimenti Roby, per il supporto linguistico ;-)