View
4
Download
0
Category
Preview:
Citation preview
ALMA MATER STUDIORUM – UNIVERSITA’ DI BOLOGNA !
Esercitazione 03
Angelo Di Iorio
© Babaoglu 2001-2010 Sicurezza
Sommario
■ Gnu Privacy Guard (GPG) ● Principali funzionalità
■ Descrizione esercitazione ● Scopo ● Interazione con il sistema
© Babaoglu 2001-2010 Sicurezza
Gnu Privacy Guard (GPG)
■ PGP è un programma basato su crittografia simmetrica e asimmetrica, usato per proteggere informazioni digitali ● permette anche firma digitale ed uso di certificati
■ 'PGP', 'Pretty Good Privacy' e 'Pretty Good' sono tutti marchi registrati da PGP Corporation, la software house per cui lavora Phil Zimmermann, autore di PGP
■ Nel 1997 viene lanciato il Working Group IETF che standardizza OpenPGP (RFC 2440 e 4880)
■ GPG è l’implementazione di OpenPGP della Free Software Foundation, rilasciato con licenza GPL
http://www.gnupg.org/
© Babaoglu 2001-2010 Sicurezza
Chiavi GPG (1/2) ■ Comando per generare le chiavi ● gpg --gen-key
■ Che cosa viene richiesto ● Tipo delle chiavi
▴ Default, DSA (firmare) ELG-E (cifrare/decifrare)
● Lunghezza delle chiavi ▴ 1024 per DSA ▴ 2048 per ELG-E
● Informazioni personali ▴ Nome completo ▴ Indirizzo email
● Passphrase ▴ Per proteggere le chiavi private ▴ NON DEVE ESSERE DIMENTICATA
© Babaoglu 2001-2010 Sicurezza
Chiavi GPG (2/2)
■ Due coppie di chiavi: ● DSA (Digital Signature Algorithm)
▴ Cifrario a chiave pubblica , basato sulla difficoltà di calcolo del logaritmo discreto
▴ Usato per le firme digitali
● ELG-E (Elgamal) ▴ Cifrario a chiave pubblica, basato sulla difficoltà di calcolo del logaritmo
discreto ▴ Usato per cifrare e decifrare i messaggi
■ Si parla di chiave primaria (usata per firmare) e di chiavi subordinate
■ Ogni coppia di chiavi ha un suo Key ID
© Babaoglu 2001-2010 Sicurezza
GPG - Keyring locali
■ Pubring.gpg ● Informazioni sulle chiavi pubbliche (anche degli altri)
■ Secring.gpg ● Informazioni sulle (proprie) chiavi segrete
■ Memorizzati sulla propria macchina (di solito nella subdirectory .gnupg/ della home)
■ Lista di tutte le chiavi disponibili ● gpg --list-keys
© Babaoglu 2001-2010 Sicurezza
GPG - Certificato di revoca
■ Comando ● gpg --output revoke.asc --gen-revoke primary key ID
■ A cosa serve ● Per dichiarare che quella chiave non è più utilizzabile
■ Quando lo si genera ● Non appena si crea la chiave
■ Quando lo si rende pubblico ● Nel caso in cui la chiave privata è compromessa ● gpg --import revoke.asc ● gpg --keyserver server --send-keys user ID
© Babaoglu 2001-2010 Sicurezza
GPG - Comunicare le chiavi
■ Via file ● Export
▴ gpg --armor --export --output pubkey.asc Key ID ▴ Consegnare il file al destinatario
● Import ▴ Ottenere il file dal mittente ▴ gpg --import file
■ Via Keyserver ● Export
▴ gpg --keyserver server --send-key User ID
● Import ▴ gpg --keyserver server --recv-key Key ID
© Babaoglu 2001-2010 Sicurezza
GPG - Cifrare e decifrare messaggi
! gpg --encrypt --recipient user ID --output file out file in ● Cifra utilizzando la chiave pubblica dell’utente user ID il
contenuto del file file in, e salva il risultato in file out
! gpg --decrypt --output file out file in ● Decifra utilizzando la chiava privata dell’utente di default il
contenuto del file file in e salva il risultato in file out
© Babaoglu 2001-2010 Sicurezza
GPG - Firmare e verificare messaggi
! gpg --sign --output file out file in ● Firma il contenuto di file in utilizzando la propria chiave privata
(utente di default)
! gpg --verify file in ● Verifica la firma. Risultato “booleano”
! gpg --decrypt --output file out file in ● Verifica la firma, decifra e salva il messaggio originale
© Babaoglu 2001-2010 Sicurezza
GPG - Firmare e cifrare
! gpg --sign --encrypt --recipient user ID --output file out file in ● Cifra e firma il file di input
■ Il comando che si usa solitamente
© Babaoglu 2001-2010 Sicurezza
Esercitazione - Scopo
■ Creare chiavi GPG
■ Decifrare messaggi cifrati (e firmati) con chiavi GPG
© Babaoglu 2001-2010 Sicurezza
Esercitazione - Breve descrizione
■ Creare una chiave GPG (se la avete già potete usare quella – purchè associata ad un indirizzo del dominio cs.unibo.it oppure studio.unibo.it)
■ Uploadare la chiave GPG sul sistema: http://labsicurezza.nws.cs.unibo.it/cgi-bin/esercitazione03/index.php ■ Ricevere via mail (in allegato) la chiave pubblica del
tutor ed un file di testo firmato e cifrato. ■ Decifrare il contenuto del file di testo
© Babaoglu 2001-2010 Sicurezza
Esercitazione – Creazione delle chiavi
■ Tra le sottochiavi deve essere presente una chiave per cifrare ● E.g., ELG-E
© Babaoglu 2001-2010 Sicurezza
Esercitazione - Scambio delle chiavi (1/2)
■ Collegarsi all’interfaccia web ● http://labsicurezza.nws.cs.unibo.it/cgi-bin/esercitazione03/
index.php ■ Riempire la form specificando ● Nome ● Cognome ● Matricola ● Indirizzo mail (del dominio cs.unibo.it oppure studio.unibo.it)
● Chiave pubblica dello studente (in formato “armor”)
© Babaoglu 2001-2010 Sicurezza
Esercitazione – Scambio delle chiavi (2/2) + Messaggio firmato e cifrato
■ Il sistema spedisce automaticamente una mail: ● Dall’indirizzo labsicurezza@cs.unibo.it ● All’indirizzo di posta appena specificato dallo studente ● Subject: [Laboratorio Sicurezza 2010/11: Esercitazione 03]:
Messaggio firmato e cifrato per Cognome Nome Matricola
■ La mail contiene: ● Riassunto dei dati personali dello studente ● Gli allegati necessari a completare l’esercitazione
© Babaoglu 2001-2010 Sicurezza
Esercitazione – Gli allegati della mail
■ Chiave dello studente appena uploadata (che in realtà è superflua)
■ Chiave pubblica GPG del tutor (ASCII-armored)
■ Un file di testo firmato (con la chiave privata GPG del tutor) e cifrato (usando la chiave pubblica GPG dello studente)
© Babaoglu 2001-2010 Sicurezza
Esercitazione - Cosa inserire nel report
■ L’esercitazione si completa decifrando il messaggio
■ Nel report va inserito il messaggio decifrato
(anche se non richiesto vi consiglio di importare la chiave del tutor nel vostro keyring per provare altre funzionalità GPG)
© Babaoglu 2001-2010 Sicurezza
Esercitazione - Nota
■ Il messaggio di posta viene spedito automaticamente dal sistema
■ Se non si riceve il messaggio contattare il tutor all’indirizzo labsicurezza@cs.unibo.it
© Babaoglu 2001-2010 Sicurezza
Riferimenti
■ Gnu Privacy Guard ● http://www.gnupg.org/
■ GPG Handbook ● http://www.gnupg.org/gph/en/manual.html
Recommended