Esercitazione 03 - Plone sitebabaoglu/courses/security10-11/...marchi registrati da PGP Corporation,...

Post on 22-Mar-2021

3 views 0 download

transcript

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