• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Aspetti di sicurezza del crittosistema Pretty Good Privacy (PGP)
 

Aspetti di sicurezza del crittosistema Pretty Good Privacy (PGP)

on

  • 986 views

Security aspects of Pretty Good Privacy (PGP) cryptosystem

Security aspects of Pretty Good Privacy (PGP) cryptosystem

Statistics

Views

Total Views
986
Views on SlideShare
985
Embed Views
1

Actions

Likes
1
Downloads
10
Comments
0

1 Embed 1

https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Aspetti di sicurezza del crittosistema Pretty Good Privacy (PGP) Aspetti di sicurezza del crittosistema Pretty Good Privacy (PGP) Presentation Transcript

    • Università degli Studi di Roma Tre Facoltà di Ingegneria PGP Pretty Good PrivacyCorso di Laurea Magistrale in Ingegneria delle Tecnologie della Comunicazione e dell‟Informazione Elementi di Crittografia Flavio Otello Pierangeli Matteo Ratini Simone Serzanti Marco Allegretti Anno Accademico 2008-2009
    • Cosa è PGP E‟ un pacchetto software che implementa un “crittosistema ibrido”  (De)Cifratura  Firma digitale Può essere integrato in applicazioni di uso comune Key management decentralizzato  No Certification Authority  Si Web of Trust
    • A cosa serve Autenticazione, Confidenzialità  Email  Files/Disk  Files/Disk Wiping (rimozione sicura dei dati a basso costo)  Fonia (PGPfone)  Instant Messaging
    • Chi lo usa Persone qualunque Avvocati / Notai / Manager Forze dell‟ordine Istituti finanziari (regolamentazioni interne/esterne, rapporti con clienti) Ambasciate, organizzazioni umanitarie Ma anche...organizzazioni criminali di ogni genere In generale è usato in Ambienti ad elevata sicurezza
    • La storia di PGP Storia, versioni, problemi legali e aspetti socio-politici di PGP
    • Il contesto Gli strumenti crittografici sono considerati armi USA, 1991. Il Senate Anticrime Bill 266 recita: "It is the sense of Congress that providers of electronic communications services and manufacturers of electronic communications service equipment shall ensure that communications systems permit the government to obtain the plain text contents of voice, data, and other communications when appropriately authorized by law." USA, 1993. L‟NSA propone il “Clipper Chip”
    • La nascita 1991: Philip Zimmermann rilascia la versione 1.0 di PGP
    • I perchè Its personal. Its private. And its no ones business but yours. PGP empowers people to take their privacy into their own hands.There has been a growing social need for it. Thats why I wrote it.
    • PGP 1.0 RSA per lo scambio della chiave simmetrica Cifratore a blocco Bass-O-Matic (inventato da Zimmermann) per la cifratura simmetrica MD4 per la firma digitale LZH algoritmo di compressione adattivo
    • Bass-O-Matic Cifratore a blocco inventato da Zimmermann per la cifratura simmetrica  Dal noto sketch di Dan Aykroyd in Saturday Night Live Show Opera su blocchi di 256 bytes. Chiave da 8 a 2048 bit Da 1 a 3 round : XOR, Permutazione, Raking, Sostituzione Il 4 bit permette di selezionare due keyschedule che producono 8 tavole di permutazione: PRNG o Bass-O-Matic : alcune chiavi sono più sicure!
    • Bass-O-Matic Lo spazio delle chiavi non è uniforme: alcune chiavi sono più sicure Durante una pausa pranzo alla confereza CRYPTO del 1991 Eli Biham riscontra una vulnerabilità alla crittoanalisi differenziale e un errore concettuale nell‟algoritmo (l‟ultimo bit di ogni byte non veniva cifrato) Sostituito con IDEA
    • Diffusione e Esportazione Negli Stati Uniti era vietato esportare strumenti crittografici con chiave di lunghezza superiore a 40 bit Distribuito come “US only” nel 1991 su Peacenet diffuso grazie alla collaborazione di Kelly Goen PGP risiede su tantissime BBS, gruppi USENET, siti FTP negli Stati Uniti… Disponibile anche in Europa, Giappone e Australia Dal 1993 al 1996 Philip Zimmermann e Kelly Goen sono indagati dalla dogana statunitense e dal Grand jury per violazione dell‟ITAR (International Traffic in Arms Regulations)
    • PGP 2.x Bass-O-Matic viene rimpiazzato da IDEA MD5 rimpiazza MD4 PGP 2.5 incompatibile con le versioni precedenti a causa del brevetto RSA PGP 2.6.2 permette l‟uso di interfacce grafiche di terze parti  Possibili vulnerabilità MIT PGP 2.6.2 (USA), PGP 2.6.3g (Versione US Guerrilla, Chiave RSA 4096 bit), PGP 2.6.3i (Versione Internazionale)
    • PGP 2.x: Problemi legali (1) Coinvolti sviluppatori svizzeri, neo zelandesi e statunitensi Rilasciata ad Amsterdam per superare le limitazioni sull‟export RSA utilizzabile solo negli USA su concessione di RSA Data Security L‟utilizzo di IDEA ha meno vincoli
    • PGP 2.x: Problemi legali (2) Nascita di due fork indipendenti  Versione US (Brevetto RSA) distribuita dal MIT  Versione Internazionale PGP-i da utilizzare e sviluppare fuori dagli USA (Stale Ytterborg) Zimmermann indagato per irregolarità sulle licenze Viene scagionato nel 1999
    • PGP 2.x: Problemi legali (3) Sostituzione di librerie RSA con RSAREF  Rimane vincolo sull‟esportabilità MIT-Press pubblica in tutto il mondo libri con il codice sorgente completo di PGP, con carattere compatibile con software OCR
    • PGP 3.0 Sviluppato durante il processo Nuova struttura per i certificati Chiavi distinte per firma e cifratura Introduzione di CAST-128 Introduzione di algoritmi DSA e ElGamal (non coperti da brevetti)
    • PGP 4.0 Nel 1996 Zimmermann viene scagionato dal primo procedimento legale e fonda PGP Inc. Fusione con Viacrypt: PGP 4.0  In realtà PGP 4.0, sviluppato in parallelo a PGP 3.0, è l‟evoluzione di PGP 2.0 PGP 3.0 cambia nome: PGP 5.0 (Maggio 1997) Opposizione di RSADSI : Unencumbered PGP
    • PGP 5.0 Introduce le chiavi Diffie Hellman e l‟algoritmo SHA-1 per l‟hash Nuove funzioni: firewall, IDS, IPsec, VPN (PGP Security Suite) Utenti complessivamente delusi  Licenza “free for non commercial use”  Codice sorgente visualizzabile ma non distribuibile  Backdoor?
    • Backdoor in PGP Philip Zimmerman rilascia una intervista in cui dichiara di aver ricevuto pressioni per l‟inserimento di backdoor e per il non rilascio del codice sorgente Giorni dopo i toni cambiano ma ormai l‟ipotesi di complotto è stata lanciata
    • Backdoor in PGP  Il codice sorgente è stato analizzato (almeno nelle versioni Open Source) dai più importanti esperti, che non hanno trovato nulla.  Gli algoritmi usati sono ben conosciuti e non presentano vulnerabilità.  Perché Zimmermann disse che era presente una backdoor? Rimane ad oggi un mistero.
    • PGP diventa commerciale Giugno 1997: nasce lo standard IETF OpenPGP RFC 2440 Dicembre 1997: Network Associates Inc. acquisisce PGP Inc. NAI esporta legalmente il software
    • PGP 6.0 Chiavi di dimensione minima 1024 bit D-H/DSS/RSA Integra PGP Disk Viene introdotta la funzionalità VPN  In PGP 6.0 Commerciale  In PGP 6.5.3 Freeware
    • Network Associates Inc. - NAI Philip Zimmerman lascia la NAI NAI mette in vendita la divisione PGP per mancanza di profitti (Ottobre 2001) La comunità è allarmata e incuriosita Febbraio 2002 la NAI abbandona il progetto PGP
    • PGP CKT di Imad Faiad (1) Il giovane Imad Faiad continua lo sviluppo di PGP nella versione 6.5.8-CKT (Cyber Knights Templar) PGP-CKT è ora compatibile con Windows XP Vengono implementate feature aggiuntive  chiavi da 16k bit  Reintroduzione di pgp-disk  Plugin per Outlook Express, Eudora, Netscape  Risolve il bug del plugin VPN
    • PGP CKT di Imad Faiad (2) 11 Luglio 2001: “From: Imad R. Faiad matic@cyberia.net.lb Newsgroups: comp.security.pgp.tech “And please do not mentioned the ckt builds again, because it is no more.” Senza spiegazioni Imad Faiad elimina ogni file, incluso il sito  Denuncia della PGP Corporation!  Pressioni governative?  Impossibilità di controllo sulle release? Rimane oggi il mirror contenente l‟abbandonware (con le release fino alla 6.5.8ckt09-b3): ftp://ftp.zedz.net/pub/crypto/pgp/
    • Ultime release by PGP Corp. Agosto 2002 : ex membri di PGP Inc. fondano PGP Corp. PGP 7.2 per MacOS 9 PGP 8.1 upgrade della v6.5.8 CKT (2004)  funzione email non utilizzabile senza licenza  plug-in VPN non incluso  funzionalità PGP Disk sostituita da PGP Whole-Disk PGP Desktop 9.0 (2005)  forte automatizzazione del processo di cifratura  nuova interfaccia per le email  grandi dimensioni dell‟applicativo
    • Quadro Sinottico
    • Aspetti socio-politici Importanza sociale e politica del crittosistema PGP:  Supporto ad Organizzazioni Umanitarie e a Utenti privati sparsi in aree oppresse da regimi autoritari o nelle zone di guerra.  Potenziale minaccia alla Sicurezza Nazionale
    • Testimonianze: zone di guerra Sono un nuovo utente di PGP, sistema del quale sono venuto a conoscenza grazie a mio fratello F. di 24 anni, che faceva parte del KLA, gruppo per la liberazione del Kosovo tra l’inverno del 1998 e la primavera del 1999. In quel periodo mio fratello era di stanza in una regione segreta a sud del Kosovo che aveva resistito agli assalti dell’esercito Serbo e che restò operativa per il fronte di liberazione fino all’assalto aereo operato dalla NATO. Telefoni, fax e e-mail erano controllati dal governo Serbo grazie ad un sistema di tracciamento Inglese che veniva attivato da un certo set di parole. In questo contesto grazie a PGP e a dei laptop economici collegati ad internet mediante connessioni cellulari fu possibile comunicare in modo sicuro con il mondo esterno e salvare migliaia di vite umane.
    • Testimonianze: regimi autoritari Caro Phil. Faccio parte di una rete di organizzazioni no- profit impegnata per i diritti umani nei Balcani. I nostri uffici sono stati spesso oggetto di incursioni e perquisizioni da parte della polizia in cerca di prove di spionaggio o attività sovversive: le nostre mail sono regolarmente spiate mentre la nostra sede Rumena è costantemente sotto controllo. A Zagabria lo scorso anno la polizia ha sequestrato i nostri pc nella speranza di raccogliere informazioni sull’identità delle persone che ci avevano segnalato abusi dei diritti umani nel loro paese. Senza PGP non saremmo in grado di svolgere le nostre funzioni e di preservare l’anonimato dei cittadini che si rivolgono a noi: l’aver trascorso 13 giorni in carcere per non aver rilevato le pass-phrases del nostro sistema PGP è un prezzo che ho pagato volentieri per la tutela dei cittadini.
    • Algoritmi crittografici in PGP Panoramica sugli algoritmi usati nel software
    • Algoritmi di base Gli algoritmi usasi in PGP rientrano nelle categorie:  Cifratura simmetrica (a chiave segreta)  Cifratura asimmetrica (a chiave pubblica)  Funzioni di HASH  Algoritmi di compressione In particolare, essi sono rispettivamente:  3DES/AES/IDEA/CAST  RSA  MD4/MD5/SHA-1  LZH o ZIP
    • Algoritmi a chiave privata (1) Detti anche algoritmi di cifratura convenzionale  primi ad essere usati Operano secondo la struttura di Feistel, eseguendo permutazioni e sostituzioni iterate sul messaggio in chiaro. Caratterizzati da:  Tipo di operazioni effettuate (Shannon, Communication Theory of Secrecy Systems, 1949)  Spazio delle chiavi (numero di chiavi possibili)  Elaborazione testo in chiaro (blocchi vs flusso)
    • Algoritmi a chiave privata (2) La robustezza della cifratura non deve dipendere dalla segretezza dell’algoritmo bensì dalla segretezza della chiave usata. (Kerckhoffs, La cryptographie militaire, Journal des sciences militaires, 1883)
    • Algoritmi a chiave privata (3)
    • Algoritmi a chiave pubblica (1) Introdotti nel 1976 da Diffie e Hellman; vengono considerati come uno dei più grandi passi avanti nel campo della cifratura in migliaia di anni. Due chiavi  pubblica e privata, sempre le stesse per ogni sessione relativa al destinatario  Rimozione del vincolo di sicurezza nello scambio delle chiavi.
    • Algoritmi a chiave pubblica (2) Applicazioni principali in cui vengono impiegate le coppie di chiavi:  Cifratura/decifratura  Firma digitale  Scambio di chiavi (di sessione) Gli algoritmi principali sono:  RSA  Diffie-Hellman (solo per scambio di chiavi)  DSS (Digital Standard Signature) (solo firma)  ElGamal
    • Altri algoritmi: DSS e ECC Algoritmo DSS (1991, rev. 1993,1996)  Implementa algoritmo di firma DSA (Digital Signature Algorithm)  Fa uso di SHA-1 Algoritmo ECC (Elliptic-Curve Cryptography)  Stesso livello di sicurezza di RSA con chiavi di meno bit  carico di elaborazione ridotto  Basato sul costrutto matematico della curva ellittica
    • Algoritmi di Hash (1) Producono un digest di lunghezza fissa a partire da un messaggio di lunghezza variabile. Devono rispettare alcune proprietà  Unidirezionalità  Resistenza alle collisioni debole  Resistenza alle collisioni forte  funzione hash forte  protezione da attacchi “Birthday”  Effetto valanga
    • Algoritmi di Hash (2) Gli algoritmi principali sono:  MD4 e MD5 How to Break MD5 and Other Hash Functions, Wang and Yu, rilevate collisioni in circa 15 minuti!  SHA-1 Finding Collisions in the Full SHA-1, Wang, Yin, and Yu, collisioni con meno di 2^69 operazioni di hash Applicazioni principali:  Firma digitale  Autenticazione
    • Approfondimento: IDEA (1) IDEA (International Data Encryption Algorithm)  nato nel 1991 sotto il nome di IPES (Improved Proposed Encryption Standard) per sostituire il DES Electronic Frontier Foundation, “DES challenge III broken in record 22 hours," January 1999  progettato da due famosi ricercatori nell‟Università ETH Zurich in Svizzera: Xuejia Lai e James Massey.  brevettato in diverse Nazioni ma liberamente utilizzabile in software di tipo non commerciale  Implementato in PGP dopo la scoperta delle vulnerabilità del Bass-O-Matic
    • Approfondimento: IDEA (2) Chiavi di 128 bit (il DES usava 56 bit) Blocchi di 64 bit (come il DES), suddivisi nell‟elaborazione in sottoblocchi di 16 bit Innovazione fondamentale: uso di operazioni da 3 diversi gruppi algebrici  OR esclusivo  Addizione modulo 2^16  Moltiplicazione modulo (2^16)+1
    • Approfondimento: IDEA (3) Ogni sottoblocco subisce 8 round in cui sono coinvolte 52 sottochiavi diverse a 16 bit ottenute dalla chiave a 128 bit. Le sottochiavi sono generate in questo modo:  La chiave a 128 bit è divisa in 8 blocchi di 16 bit che costituiscono le prime 8 sottochiavi  Le cifre della chiave a 128 bit sono spostate di 25 bit a sinistra in modo da generare una nuova combinazione, il cui raggruppamento a 16 bit fornisce le prossime 8 sottochiavi  Si ripete il secondo passo fino a generarne 52
    • Approfondimento: IDEA (4) Durante gli 8 round, il secondo e il terzo blocco si scambiano di posto mentre allultimo passo i 4 sottoblocchi vengono concatenati per produrre un blocco di testo cifrato a 64 bit. Ultimo half-round
    • Approfondimento: IDEA (5) Miglior attacco conosciuto (2007):  Eseguito con metodi di crittoanalisi differenziale  Versione ridotta dellIDEA con soli 6 cicli di cifratura  Ha richiesto 2^64-2^52 testi in chiaro (chosen plaintext). IDEA NXT (2005, conosciuto anche come FOX):  Chiavi di qualunque lunghezza fino a 256 bit  Blocchi dati lunghi anche 128 bit  Rimane stessa struttura dello schema Lai-Massey
    • Approfondimento: CAST (1) Creato nel 1996 da Carlisle Adams e Stafford Tavares  Nome in codice CAST-128 (o CAST5)  Migliorato nel 1998 in CAST-256 (o CAST6) Uno dei candidati per l‟AES Il nome CAST sarebbe un acronimo formato dalle iniziali degli autori  Secondo Bruce Schneier: “Il nome CAST dovrebbe evocare immagini di casualità"
    • Approfondimento: CAST (2) Il CAST-128 è una rete di Feistel con un numero di passaggi variabile da 12 a 16. Caratteristiche:  Dimensione del blocco di 64 bit  Lunghezza della chiave variabile da 40 a 128 bit con incrementi di 8 bit in realtà lalgoritmo esegue il riempimento della chiave se questa è più corta di 128 bit (padding)
    • Approfondimento: CAST (3) I 16 passaggi sono attuati solo quando la chiave è più lunga di 80 bit: sotto tale soglia, sono effettuati solo 12 passaggi. Il CAST-128 utilizza delle S-box di grandi dimensioni (8×32 bit) e le seguenti operazioni:  addizioni modulari  sottrazioni modulari  operazioni di X-OR
    • Approfondimento: CAST (4) I passaggi sono costituiti da 3 gruppi di operazioni: la differenza fra di essi è minima e consiste in ununica operazione (addizione, sottrazione o XOR) Anche se esiste un brevetto sulla struttura della famiglia di cifrari CAST, il CAST-128 è utilizzabile liberamente sia per usi commerciali che non.  Utilizzabile più liberamente rispetto a IDEA!
    • Funzionamento del PGP Funzionamento interno del software
    • Pgp come Crittosistema PGP è un crittosistema ibrido in quanto incorpora in sé algoritmi crittografici, una procedura di gestione delle chiavi e un‟insieme di protocolli di sicurezza. Caratteristiche degli algoritmi supportati, (es: lunghezza delle chiavi) variabili con la specifica versione di PGP utilizzata.
    • Compressione Compressione del plaintext  riduzione delle ridondanze statistiche nelle occorrenze dei singoli caratteri. Migliora  efficacia contro crittoanalisi di tipo statistico. Algoritmo ZIP freeware di Gailly, Adler e Wales, veloce e con ottimi tassi di compressione.
    • Generazione della chiave disessione Creazione della chiave di sessione  chiave di tipo simmetrico ad utilizzo singolo, generata randomicamente. Meccanismi di generazione random  da un Seed basato sull‟orario, sui movimenti del mouse e sulla pressione dei tasti sulla tastiera. Seed nuovo per ogni sessione e protetto per evitare che l‟attaccante possa derivare la chiave.
    • Cifratura simmetrica (1) Il messaggio viene cifrato con la chiave di sessione mediante l‟algoritmo di cifratura simmetrica  IDEA il più usato, ma anche CAST o Triple-Des. CAST e IDEA risultano più veloci del Triple-Des, ma per applicazioni di posta elettronica (principale applicazione del PGP) la velocità non si è dimostrata un aspetto critico.
    • Cifratura simmetrica (2) Ad ogni modo tutti e tre gli algoritmi operano su blocchi di plaintext/chipertext da 64bit. CAST e IDEA hanno chiavi della grandezza di 128bit mentre il Triple-Des usa chiavi di lunghezza 168bit. Tutti questi algoritmi sono utilizzabili sia in chiper feedback (CFB) che in chiper block chaining (CBC). PGP li usa in CFB a 64bit.
    • Cifratura asimmetrica (1) La chiave di sessione è a sua volta cifrata con RSA usando la chiave pubblica del destinatario. Il mittente invia la coppia  [messaggio cifrato(IDEA); chiave cifrata(RSA)] In decifratura il destinatario usa la propria chiave privata per ottenere (RSA) la chiave di sessione necessaria a decifrare (IDEA) il ciphertext e riottenere il plaintext.
    • Cifratura asimmetrica (2) La sicurezza di questo sistema è basata sul fatto che è computazionalmente impossibile ricavare la chiave privata a partire da quella pubblica. L‟uso ibrido dei due sistemi di cifratura unisce la praticità della crittografia a chiave pubblica con la velocità di quella a chiave privata  le operazioni eseguite con la chiave privata sono circa 1000 volte più veloci di quelle relative all‟uso delle chiavi pubbliche.
    • Graficamente: la Cifratura
    • Graficamente: la Decifratura
    • Firma Digitale (1) La firma digitale viene apposta sul messaggio in due passi:  Algoritmo di Hash sul messaggio mediante MD5 o SHA-1  Cifratura con la chiave privata del mittente Il ricevente è in possesso della chiave pubblica del mittente ed è pertanto in grado di autenticare il messaggio applicandola alla firma e confrontando il risultato col calcolo dell‟Hash effettuabile sul messaggio ricevuto.
    • Firma Digitale (2) In caso di:  Falsificazione della firma  Manomissione del messaggio originale Il confronto avrà esito negativo. Tale meccanismo è perciò in grado di assicurare l‟autenticazione del mittente, l‟integrità del messaggio ed il non ripudio dell‟invio del messaggio.
    • Nel Software Le chiavi relative all‟utente sono conservate in forma cifrata. Il PGP alloca le chiavi in due file distinti sull‟hard disk: uno per le chiavi pubbliche e l‟altro per quelle private  questi files sono detti keyrings. Tutte queste operazioni sono completamente trasparenti all‟utente, il quale si limita ad usare le funzioni presenti nel programma PGP.
    • Certificati Digitali (1) Per stabilire con sicurezza l‟appartenenza di una chiave al suo presunto proprietario. Generalmente il certificato comprende:  Chiave pubblica  Una o più firme digitali  ID utente La firma digitale serve ad indicare che il certificato sia legato proprio alla sua chiave pubblica, con cui è possibile infatti autenticare la firma.
    • Certificati Digitali (2) I certificati sono usati nello scambio di chiavi pubbliche, per assegnare inequivocabilmente la proprietà della chiave allo specifico soggetto. Nel PGP la distribuzione delle chiavi è essenzialmente per via diretta, e si basa su un meccanismo di Trust (fiducia) che determina il grado di attendibilità del certificato e quindi della paternità della chiave.
    • Certificati Digitali (3) Oltre allo scambio per via diretta il PGP prevede, Certificate Servers (depositi pubblici in rete) o infrastrutture più complesse come le Public Keys Infrastructure (PKI). Tali infrastrutture sono legate a delle Autorità di Certificazione autorizzate a rilasciare legalmente, revocare, depositare, recuperare, firmare certificati ad utenti (es: X.509).
    • Certificati Digitali (4) Nel caso specifico del PGP il certificato comprende:  Chiave pubblica del possessore del certificato e l‟algoritmo asimmetrico usato: RSA,DH o DSA  User ID e foto del possessore  Una o più firme digitali  Periodo di validità del certificato  Algoritmo simmetrico utilizzato: IDEA, CAST o TRIPLE-DES
    • Certificati Digitali (5) Esistono tre diverse modalità per stabilire quanta fiducia si può riporre nel certificato (ottenuto in uno dei tre modi già visti):  Diretta  Gerarchica  A ragnatela Il modello diretto prevede la conoscenza diretta della persona, ed un grado di fiducia conseguentemente alto.
    • Certificati Digitali (6) Nella gerarchica una persona è garantita da un suo superiore, fino a formare un albero:
    • Certificati Digitali (7) In questa struttura ad albero è possibile validare un certificato “foglia” risalendo tutta la catena di fiducia dei certificatori, fino ad arrivare ad un certificato “radice” direttamente validato da un autorità riconosciuta (es: la Certification Authority della Public Key Infrastructure). Nella struttura a ragnatela si ha la composizione delle due tecniche.
    • Certificati Digitali (8) Nella ragnatela viene instaurato un processo di fiducia reciproca noto come Web of trust in cui ogni utente agisce come autorità di certificazione convalidando o meno le chiavi. L‟informazione di fiducia in un determinato certificato, viene a formarsi cumulativamente dalla fiducia assegnata a tale certificato da individui in cui si ripone a sua volta un determinato livello di fiducia.
    • Certificati Digitali (9) Nel proprio portachiavi per ogni chiave l‟utente ha infatti due indicatori. Il primo indica se la chiave è ritenuta valida o meno secondo l‟informazione di fiducia cumulativa ottenuta dalla Web fo Trust, secondo i livelli: valida, marginalmente valida e invalida.
    • Certificati Digitali (10) Il secondo rappresenta invece il livello di fiducia assegnato direttamente dall‟utente alla chiave stessa, in base ai livelli di affidamento: completo, marginale o nessuno. E‟ questo il caso in cui, nonostante l‟informazione della Web of Trust, un utente è libero di impostare come completamente affidabile la chiave ricevuta da un utente in cui ripone completa fiducia, ad esempio un‟amico che si conosce di persona.
    • Riassumendo PGP permette di ottenere autenticazione e/o riservatezza dei propri messaggi Analizziamole nel dettaglio:
    • Trasmissione e ricezione Visualizziamo infine lo schema esaustivo (in forma algoritmica) dei passaggi effettuati in fase di trasmissione e di ricezione di un messaggio da parte di PGP:
    • Vulnerabilità Possibili attacchi e metodi per proteggersi
    • Protezione delle chiavi dalTampering (1) Nei sistemi a chiave pubblica la protezione della chiave privata è ben più semplice rispetto alla protezione della chiave di sessione del sistema a chiave simmetrica. Non c‟è più bisogno del canale sicuro per lo scambio delle chiavi infatti. Bisogna fare però attenzione all‟autenticazione ed alla protezione contro il tampering.
    • Protezione delle chiavi dalTampering (2) Se A vuole mandare un messaggio a B, come può B essere sicuro che sia stato inviato proprio da A e non da qualcuno che si spacci per esso? La chiave di B infatti è pubblica e può essere utilizzata da chiunque per cifrare il messaggio. C‟è bisogno di un meccanismo di autenticazione da parte del mittente (es:firma digitale).
    • Protezione delle chiavi dal Tampering (3) A sua volta A come fa a sapere che il messaggio sarà decifrato da B e non da un terzo individuo C che abbia diffuso (nel key server) la sua chiave pubblica spacciandosi per B ed eventualmente sostituendo tale chiave anche nel sistema di B? (Tampering: manomissione) Nel caso non riesca a manomettere il sistema di B, l‟eventuale attaccante C potrà comunque intercettare e ri-cifrare con la chiave pubblica di B ed inviare il messaggio ad esso.
    • Protezione delle chiavi dalTampering (4) Si necessita quindi di un meccanismo di mutua autenticazione che vada oltre la sicurezza introdotta dal meccanismo chiave pubblica/privata. Infatti se anche il problema dell‟autenticazione di A si è visto risolversi facilmente tramite il meccanismo della firma digitale, questi non è in grado di prevenire eventuali manomissioni sul legame di appartenenza user A-chiave.
    • Protezione delle chiavi dalTampering (5) La semplice autenticazione dell‟user fornita dalla cifratura/decifratura mediante la sua chiave privata, non è sicura infatti nel caso che il key server ed il sistema dell‟utente siano stati manomessi. Bisogna quindi accertarsi della reale identità del user ID cui è associata la chiave pubblica e questo è più difficile se non è direttamente il nostro interlocutore a fornirci la chiave.
    • Protezione delle chiavi dalTampering (6) Una soluzione al problema, potrebbe essere risolto da un ente garante D, che potrebbe garantire la chiave pubblica di A e di B utilizzando la propria chiave privata. In questo modo un eventuale attacco di C, richiederebbe la conoscenza della chiave privata di D  l‟attacco in tal modo si rende notevolmente più complesso.
    • Protezione delle chiavi dal Tampering (7) Il ruolo di D può essere assunto in via più estesa da un autorità certificatrice (più o meno decentralizzata) che sia in grado di assegnare un determinato livello di Trust alla coppia user-chiave, mediante uno dei sistemi già citati. Una modalità come quella della PKI + CA è appropriata se applicata da un ente governativo o organizzazioni controllate in maniera centralizzata, mentre se la struttura è più decentralizzata sarà preferibile una modalità di tipo Web of Trust.
    • Zimmerman e il funzionamentocorretto della web of trust (1) Per rendere efficace il sistema di web of trust, Zimmerman consiglia:  Non importa quanto sia alta la tentazione, non dovrai mai riporre fiducia in una chiave che non sia ottenuta in modo diretto da una persona di fiducia o firmata da qualcuno in cui si abbia fiducia.  Se ti verrà chiesto di firmare una chiave di cui non conosci esplicitamente il corretto legame user- chiave, non farlo mai!  La tua firma è la tua promessa.  La tua firma è la tua credibilità.
    • Zimmerman e il funzionamentocorretto della web of trust (2)  La tua firma non dovrà mai attestare l‟integrità (morale, ecc..) di un individuo ma esclusivamente l‟autenticità della sua chiave.  Tieni sempre nel tuo keyring firme attestatrici dalla massima varietà di individui diversi: sarà cosi maggiore la probabilità che le persone ripongano fiducia in almeno uno di tali Introducers, rendendo la tua chiave affidabile per un maggior numero di persone.  Tieni la copia di backup della tua chiave privata e della tua chiave pubblica attestata in memorie protette da scrittura.
    • Vulnerabilità (1) Un messaggio cifrato con PGP richiederebbe per la rottura (a forza bruta) della cifratura un tempo pari a 12 milioni di volte l‟età dell‟universo avendo a disposizione la potenza di calcolo di tutti i personal computer del mondo (260 milioni). William Crowell, Deputy Director NSA, intervento al Senato USA 20 Marzo 1997 In verità nessun sistema è impenetrabile anche il PGP quindi può essere aggirato.
    • Vulnerabilità (2) Per valutare bene i criteri di sicurezza per ogni generico sistema, è opportuno interrogarsi sul valore che il messaggio da attaccare può avere per l‟attaccante ed il costo computazionale dell‟attacco. Un attacco sarà ben riuscito solamente se l‟informazione ottenuta sarà ancora ritenuta utile: riuscire ad ottenere già dopo qualche decina d‟anni il plaintext di una e-mail cifrata in PGP, probabilmente non avrà più molta utilità.
    • Passphrase (1) Per questo ci concentriamo su attacchi differenti, più “veloci” di quello a forza bruta. L‟attacco più semplice cui si può pensare riguarda la perdita della passphrase: la conoscenza della passphrase permette, una volta effettuato l‟accesso al sistema dell‟utente, di ottenere la sua private key  l‟utilizzo di una passphrase connessa ad aspetti della vita privata può essere un elemento di vulnerabilità.
    • Passphrase (2) E‟ sconsigliato l‟impiego di passphrase costituite da un‟unica parola data l‟esistenza di applicazioni in grado di provare tutte le parole presenti in un dato dizionario (Dictionary o Brute-Force attack). Esistono inoltre applicazioni in grado di provare l‟inserimento di un certo numero di citazioni famose delle quali pertanto è sconsigliato l‟impiego.
    • Passphrase (3) L‟impiego di caratteri numerici o altri simboli è generalmente consigliato a patto di non rendere la memorizzazione troppo complessa  scordando la passphrase si dovrebbe infatti ricreare da capo la coppia chiave pubblica/privata, riazzerando da capo tutto il meccanismo di Trust della certificazione! L’obiettivo è l’impiego di una passphrase facile da ricordare ma difficile da indovinare.
    • Compromissione della chiaveprivata (1) In caso di compromissione della chiave privata, l‟attaccante sarà in grado di eseguire firme sui certificati desiderati, aumentandone il livello di Trust e, nel caso di certificati fasulli, ciò andrà a minare la reputazione del proprietario della chiave. Naturalmente sarà anche possibile da parte dell‟attaccante, decrittare tutti messaggi inviati al proprietario della chiave, compromettendone la confidenzialità.
    • Compromissione della chiave privata (2) E‟ perciò necessario proteggere con tutti gli accorgimenti necessari la chiave privata, ad esempio utilizzando il meccanismo di passphrase appena visto. La chiave privata andrebbe inoltre mantenuta memorizzata su un computer su cui si abbia l‟accesso fisico diretto, per evitare intrusioni in eventuali linee da remoto. Non memorizzare però la passhprase nello stesso pc! Sarebbe come “lasciare la chiave di casa sotto lo zerbino”.
    • Compromissione della chiave privata (3) Ovviamente nel caso si riuscisse a memorizzare correttamente, l‟ideale sarebbe conservare la passphrase solamente nella propria mente. Ma cosa fare se, nonostante ciò, non si riesce ad evitare la compromissione della chiave privata? Sicuramente il meccanismo di Trust decentralizzato ha i suoi pregi ma in questo caso ne emergono anche i suoi difetti.
    • Compromissione della chiave privata (4) Non esiste infatti un meccanismo centralizzato che elenchi pubblicamente a tutti la lista delle chiavi private compromesse. L‟unico modo è quindi quello di diffondere il più velocemente ed ampiamente possibile la notizia della compromissione della chiave, inviando il Certificato di Revoca che è possibile creare tramite il comando Revoke di PGP  questo tipo di certificato è utilizzato per avvertire di non utilizzare più la chiave pubblica dell‟utente.
    • Compromissione della chiave privata (5) Dopodichè sarà necessario creare una nuova coppia chiave privata/pubblica dato che il software PGP degli utenti che hanno ricevuto il certificato di revoca, eviterà in ogni caso il riuso (anche accidentale) del keyring compromesso. Per velocizzare quest‟operazione PGP prevede l‟invio del certificato di revoca con allegata direttamente la nuova coppia di chiavi appena creata.
    • Compromissione della chiave privata (6) Chiaramente la stessa procedura dovrà essere seguita in caso di smarrimento della chiave privata o della passphrase. In entrambi i casi la chiave privata è inaccessibile. Ma allora come è possibile revocare la chiave privata se per farlo, cioè per ottenere il certificato di revoca, è necessario utilizzare proprio la chiave privata?
    • Compromissione della chiave privata (7) In tal caso si può procedere in due modi:  Designare precedentemente una persona di fiducia come “revocatore” (Designated Revoker) per la propria chiave. Sarà lui, grazie ai privilegi precedentemente concessigli, a poter revocare la chiave compromessa ottenendo il certificato di revoca.  Se ciò non è stato fatto o non è possibile, l‟unica maniera rimasta è quella di avvertire personalmente tutti coloro che abbiano firmato il certificato della chiave, chiedendo loro di ritirare la firma. In tal modo la chiave non avrà più un livello di trust sufficiente (non verrà perciò più utilizzata)  ciò ne indicherà infatti la possibile compromissione.
    • Disk recovering (1) Un ulteriore potenziale problema di sicurezza è causato dalla modalità con cui la maggior parte dei sistemi operativi cancellano i files. Quando un file viene cifrato e se ne cancella la versione in chiaro, il sistema operativo non opera una cancellazione fisica del file ma contrassegna le celle dell‟hard disk in cui il dato è memorizzato come “cancellate”.
    • Disk recovering (2) Un eventuale attaccante con accesso alla memoria fisica del pc è in grado di recuperare il plaintext mediante l‟impiego di apposite applicazioni di disk recovering. L‟unico modo per cancellare completamente queste informazione è quello di sovrascriverle: è possibile fare ciò mediante dei tools implementati in PGP, come il Secure Wipe ed il Freespace Wipe.
    • Swap File Area I Sistemi operativi odierni si basano su memorie virtuali che permettono l‟esecuzione di programmi di grandi dimensioni usando una porzione dell‟hard disk (swap file area) per depositare porzioni del software non in esecuzione. Tale processo non è sotto il diretto controllo dell‟utente con conseguente memorizzazione a sua insaputa di dati quali chiavi, passphrase e plaintext decifrati.
    • PGPdisk Un modo per ovviare a ciò è l‟azzeramento della memoria virtuale utilizzabile dal sistema, ma ciò causa un notevole rallentamento nell‟utilizzo dei software. La soluzione migliore è utilizzare PGPdisk, presente nel PGP dalla versione 6.0.1, ed implementato per Windows  PGPdisk permette di cifrare il proprio hard disk. L‟hard disk potrà perciò essere usato solo se in possesso della passphrase.
    • Tempest Attack Rilevazione da remoto di segnali elettromagnetici emessi dallo schermo del calcolatore  “Tempest attack” rende visibili i dati visualizzati sullo schermo del calcolatore attaccato. E‟ effettuabile anche su schermi LCD a basse emissioni; la principale fonte di radiazione elettromagnetica analizzabile in tal caso è la scheda grafica.
    • Secure Viewer – Sniffing PGP nelle versioni 6.0 e seguenti implementa la funzionalità Secure Viewer che consiste nell‟impiego di font a bassa emissione elettromagnetica; ciò però protegge solamente dall‟analisi della radiazione emessa dallo schermo (che rappresenta comunque di gran lunga il pericolo maggiore) limitandola. Un‟altra vulnerabilità è rappresentata dall‟analisi del traffico, che permette all‟attaccante di visualizzare mittente e destinatario del messaggio, oltre che la data e l‟orario di invio.
    • Vulnerabilità indirette (1) Possono presentarsi anche vulnerabilità di tipo indiretto, legate al sistema su cui il PGP viene usato. Virus, spyware, backdoor e cavalli di troia possono compromettere l‟utilizzo sicuro del software. L‟utilizzo del pc da parte di altri utenti invece, può compromettere la confidenzialità e l‟integrità dei dati e delle chiavi.
    • Vulnerabilità indirette (2) Esempio di debolezza causata da spyware: in almeno un caso è stato riportato come l„FBI, avendo ottenuto un mandato che lo consentiva, era stata in grado di installare un keylogger (un tipo di spyware) sul computer di un sospettato. Lutilizzo di tale software ha portato lFBI a scoprire anche la passphrase PGP del sospettato e, quindi, ad ottenere accesso a tutti i file ed e-mail protetti che lo incriminavano.
    • Vulnerabilità di terze parti Anche l‟utilizzo del PGP per la comunicazione sicura tramite e-mail può presentare specifiche debolezze. In particolare l‟eventuale utilizzo di plugin legati ai client di posta, non previsti nella progettazione del PGP e perciò distribuiti da terzi, possono rappresentare un anello debole nell‟utilizzo del software.
    • Conclusioni Domande plausibili e relative risposte
    • Domande e risposte: PGP ha dei bug?  Già nelle prime versioni erano presenti dei bug, alcuni di essi sono stati scoperti (e corretti), altri possono essere ancora presenti ma non ancora scoperti.  Attualmente non esistono debolezze semplici da sfruttare: l‟esperienza accumulata finora porta a pensare solo a situazioni molto particolari, non semplici da creare.
    • Domande e risposte: Esempio di possibile situazione particolare, attacco known plaintext:  A invia a B un messaggio crittato che C intercetta. C non può leggere il messaggio, cosi invia a B un messaggio creato ad hoc. B decritta il messaggio di C ed ottiene una sequenza senza senso.  Ora se B reinvia il messaggio decrittato a C. Esso è (o meglio potrebbe essere) in grado di recuperare il messaggio originale di A sfruttando una complessa analisi matematica (crittanalisi) del messaggio reinviato da B.
    • Domande e risposte: Ma questa è solo un ipotesi teorica, si pensa che un anche attacco del genere nella pratica sia irrealizzabile per la grande complessità! Ed inoltre anche una semplice compressione del messaggio originale (un discostamento dalla situazione ideale che si potrebbe verificare facilmente) aumenterebbe enormemente la già grande complessità dell‟attacco.
    • Domande e risposte: Qual è la versione migliore di PGP?  Le prime versioni non avevano funzioni come la cifratura dell‟hard disk e quella di wiping.  Le versioni precedenti alla 2.0 usano il Bass-O-Matic, rimpiazzato poi da IDEA.  Le versioni precedenti la 5.0 usano MD4 o MD5, rimpiazzato poi da SHA-1.  Dalla versione 6.5.8 (CKT – Cyber Knight Templars) in poi il codice sorgente non è più pubblico.
    • Grazie dell’attenzione