220 likes | 462 Views
PGP (Pretty Good Privacy) & gnuPG (GNU Privacy Guard). di Nicola Spiniello. Nascono Problemi : Riservatezza : Si vuole avere la garanzia che solo il destinatario legga il messaggio. Autenticazione: Si vuole avere la sicurezza sull’identita’ del mittente. Integrita’:
E N D
PGP(Pretty Good Privacy)&gnuPG(GNU Privacy Guard) di Nicola Spiniello
Nascono Problemi: Riservatezza: Si vuole avere la garanzia che solo il destinatario legga il messaggio. Autenticazione: Si vuole avere la sicurezza sull’identita’ del mittente. Integrita’: Si vuole avere la garanzia che il messaggio non sia stato alterato da terzi. Problema: Posta Elettronica Esigenza Sicura Quotidiana
Soluzione Sistemi Crittografici Come sappiamo: • Per Sistema Crittografico intendiamo un sistema in grado di Cifrare un testo in chiaro (plaintext) e di Decifrare un testo cifrato (ciphertetxt) attraverso l’uso di un algoritmo (metodo di calcolo) e di un chiave (stringa alfanumerica assolutamente segreta) Sistemi Crittografici Simmettrici Assimetrici Ibridi
Sistemi Simmetrici: Si utilizza una sola chiave per Cifrare e Decifrare; Nasce il problema della trasmissione in modo sicuro della chiave; Gli algoritmi piu’ famosi sono: DES (Data Encryption Standard, 1977), 3DES; IDEA (1991); BLOWFISH (1993); RC5 (1994); CAST128 (1997); AES (Advanced Encryption Standard, 2000). Sistemi assimetrici: Si utilizza una coppia di chiavi, una per cifrare (public key) e una per decifrare (private key); Di recente scoperta (W.Diffie, M.Hellmann, Stanford University); Sparisce il problema della trasmissione di chiavi; Lenti se applicati a chiavi di grandi dimensioni; Gli algoritmi piu’ famosi sono: RSA (1977, Ron Rivest, Adi Shamir, Len Adleman); Diffie-Hellman; DSS (1991, FIPS PUB 186); ECC (IEEE P1363, Crittografia delle curve ellittiche); Sistemi Critografici
Sistemi Ibridi • Sono sicuramenti i piu’ efficenti; • Sfruttano i pregi di entrambi: • La sicurezza dei Sistemi Assimmetrici; • La velocità dei Sistemi Simmetrici. • Evitano i difetti: • La lentezza dei Sistemi Assimmetrici; • Il problema della trasmissione della chiave dei Sistemi Simmetrici. • PGP, OpenPGP si basano su un sitema ibrido.
PGP(Pretty Good Privacy) • Pretty Good Privacy è un programma di crittografia realizzato da Philip Zimmermann nel 1991, ed è considerato ormai uno standard per la crittografia dei messaggi di posta elettronica e dei file di dati su computer ma anche per la firma digitale; • Le sue specifiche si trovano pubblicate nell'RFC 2440 ed è quindi diventato uno standard (openPGP); • Utilizza lo schema crittografico a chiave pubblica RSA e la funzione hash non invertibile MD5 per creare una firma elettronica • La crittografia dei messaggi avviene con l’utilizzo di IDEA, considerato crittograficamente molto più forte del più comune DES. • Il problema della distribuzione della chiave privata viene risolto creando ogni volta una chiave casuale di 128 bit (session key) e spedendola crittografata con l'RSA insieme al messaggi crittografato con detta chiave. Entriamo un po’ nel dettaglio:
Come Funziona? (1) • Cifratura / Decifratura: • Il mittente scrive un messaggio e decide di cifrarlo; • Il programma, sfruttando il generatore di numeri casuali interno ed i dati casuali raccolti durante la creazione della chiave dell'utente, genera un numero casuale a 128 bit da utilizzare come chiave di sessione; • La chiave di sessione viene cifrata utilizzando l'algoritmo asimmetrico RSA ed il risultato diviene l'inizio del messaggio da inviare; • Il programma comprime il messaggio originale (ZIP) e lo cifra utilizzando la chiave di sessione applicata all'algoritmo simmetrico IDEA. Poi prende il risultato e lo accoda a quanto sopra, dopo di che invia il tutto al destinatario; • A questo punto il programma ricevente decifra la chiave di sessione utilizzando la chiave privata del destinatario applicata all’RSA; • Con la chiave di sessione, il programma decifra il messaggio ed inverte il processo di compressione.
Come Funziona? (2) • Firma Digitale: • Il mittente crea il messaggio; • Il programma del mittente genera un codice di hash del messaggio utilizzando MD5; • Utilizzando la chiave privata del mittente associata all'RSA viene cifrato l'hash ottenuto al punto precedente; • La firma digitale appena ottenuta viene allegata al messaggio ed il tutto viene inviato; • Il programma del destinatario estrae una copia della firma dal messaggio, decifra il codice hash utilizzando la chiave pubblica del mittente; • Genera un nuovo codice di hash dal messaggio ricevuto; • Confronta il nuovo codice di hash con quello decifrato in precedenza. Se i due coincidono allora il messaggio viene considerato autentico. • Il ruolo della crittografia RSA è quello di permettere al solo possessore della chiave privata di generare la firma, • La funzione hash MD5 assicura al ricevente che non sia possibile generare un altro testo con lo stesso codice hash.
Come Funziona (3) Osservazione: In teoria, si sarebbe potuto utilizzare direttamente l'RSA per cifrare l'intero messaggio. IDEA però è sostanzialmente più veloce di RSA, combinandoli otteniamo contemporaneamente la velocità di IDEA nella crittografia e la soluzione del problema della distribuzione delle chiavi offerta dallo schema asimmetrico di RSA.
Riassumendo Siamo riusciti ad ottenere: • Riservatezza (cifrando i messaggi), • Autenticazione e Integrità (firmando I messaggi). Nascono alcuni problemi: • Come si può ottenere la chiave pubblica di una persona? • Come si può essere realmente certi che una certa chiave appartenga ad una certa persona? Soluzione: • Web Of Trust • ~ ( Certificati Digitali e PKI ) forse in futuro Vediamo.
Web Of Trust • OpenPGP non utilizza i certificati X-509 e le autorità di certificazione CA, ma un proprio modello detto “Web Of Trust” : • Il Web of trust non ha autorità centrali, sono gli stessi utenti a certificare gli altri utenti • Un certificato openPGP può contenere diverse firme mentre l’X-509 contiene solo la firma della CA che lo ha emesso. • La decisione sulla validità di una chiave si basa sulla fiducia che si ha negli utenti che hanno certificato (firmato) quella chiave; • L’idea su cui si basa il web of trust è quella della rete di conoscenze: • Anche se due utenti non si conoscono direttamente si possono fidare se collegabili attraverso un grafo delle conoscenze (in genere breve).
Certificati Digitali & PKI Velocemente: • Un certificato digitale (standard X-509) attesta la relazione tra un soggetto, tramite un insieme appropriato di dati, e una chiave pubblica. • E’ un oggetto pubblico, accessibile da chiunque; • E’ emesso da un’autorità di certificazione che lo firma con la propria chiave privata; • L’infrastruttura di gestione prende il nome di Pubblic Key Infrastructure (PKI);
GnuPG (GNU Privacy Guard) Cosa è? • GnuPG è un'alternativa completa e libera a PGP. Poiché non usa l'algoritmo brevettato IDEA può essere utilizzato senza limitazioni. • I processi di Cifratura/Decifratura e Firma Digitale sono identici a quelli del PGP eccezione fatta per gli algoritmi utilizzati. • GnuPG è Free Software. Può essere usato liberamente, modificato e distribuito sotto i termini della GNU General Public Licence. • Tuttavia, nonostante queste sue caratteristiche, viene diffuso soltanto attraverso siti europei, a causa delle limitazioni all'esportazione poste dal governo degli Stati Uniti.
GnuPG(GNU Privacy Guard) • Caratteristiche: • Sostituto completo di PGP; • Non utilizza algoritmi brevettati; • Coperto da licenza GPL, scritto da zero; • Può essere usato come programma filtro; • Compatibile con le specifiche OpenPGP (RFC 2440) e totalmente implementate; • Più funzionale di PGP e con alcune migliorie in fatto di sicurezza; • Decifra e verifica i messaggi di PGP 5, 6 e 7; • Supporta ElGamal (firma e cifratura), DSA, RSA, AES, 3DES, Blowfish, Twofish, CAST5, MD5, SHA-1, RIPE-MD-160 e TIGER;
GnuPG(GNU Privacy Guard) Aspetto: • GnuPG è uno strumento a linea di comando senza nessun aspetto grafico, • può essere usato direttamente dalla linea di comando, da script di shell o da altri programmi. • La personalizzazione del proprio uso di GnuPG orbita attorno a quattro punti: • la scelta della dimensione della chiave della propria coppia di chiavi pubblica/privata, • la protezione della propria chiave privata, • la scelta delle date di scadenza e dell'uso di sottochiavi e • la gestione della propria rete della fiducia.
Conclusioni: Domanda: Ma lo Standard OpenPGP e’ davvero cosi’ sicuro? Risposta: SI • Gli algoritmi di crittografia sono arrivati ad un livello talmente elevato che ora l'unico modo per entrarci è quello di provare tutti i codici possibili per cercare di decriptare il messaggio. • La sicurezza di ogni algoritmo crittografico dipende dalla dimensione delle chiavi utilizzate. L’OpenPGP permette di utilizzare chiavi RSA di varie dimensioni, tra le quali: • Casual grade:(384 bit) facilmente violabile • Low commercial grade: (512 bit) possibilmente violabile (NSA) ma computazionalmente veloce • High commercial grade: (768 bit) difficilmente violabile, di media velocità • Military grade (1024 bit) ritenuta inviolabile (in genere), lenta Ev. Recenti: (2001/2002) www.enricozumuel.net Vlastimil Klima e Tomas Rosa, due crittologi della Repubblica Ceca hanno descritto un possibile attacco sul formato OpenPGP che comprommetterebbe la sua solidita’.
Alternative all’openPGP? Esiste una alternativa ai sistemi openPGP SI S/MIME
S/MIME(Secure/Multipurpose Internet Mail Extension) • E’ un estensione del MIME che introduce nuove funzionalità in termini di sicurezza; • Anche S/MIME è un standard; • Introduce nuovi tipi di contenuto per i messaggi di posta elettronica, che possono essere utilizzati per inserire firme, certificati, blocchi di dati cifrati; • Utilizza certificati X-509; • E’ implementato nativamente in molti client di posta elettronica(MS Outlook, Mozzilla/Netscape)
OpenPGP vs S/MINME(confronto) • S/MIME e PGP non sono specifiche compatibili fra di loro. • Si parla anche di unificare i due prodotti in uno standard unico • Unica Sostanziale differenza Modello di Fiducia: • OpenPGP: utilizza una gestione "utente-centrica" delle chiavi pubbliche (web of trust); • S/MIME: impiega una struttura gerarchica di certificazione (CA).
Materiale di Approfondimento • Reti di Calcolatori Tannenbaum S. • www.enricozimuel.net • http://utenti.lycos.it/alexfebbo/security.html • http://www.gnupg.org/(it)/index.html.it • http://gnupg.spamsux.net • http://www.pgpi.org/docs • http://pgp.unito.it/doc Grazie.