aspetti di sicurezza del crittosistema pretty good privacy (pgp)

Post on 03-Dec-2014

1.191 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Security aspects of Pretty Good Privacy (PGP) cryptosystem

TRANSCRIPT

Università degli Studi di Roma Tre

Facoltà di Ingegneria

Corso di Laurea Magistrale in Ingegneria delle Tecnologie della

Comunicazione e dell‟Informazione

Elementi di Crittografia

PGP Pretty Good Privacy

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è

It's personal. It's private. And it's no one's business but yours.

PGP empowers people to take their privacy into their own hands.There has been a growing social need for it. That's why I wrote it.

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

PGP 1.0

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

Bass-O-Matic

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.

Panoramica sugli algoritmi usati nel software

Algoritmi crittografici in PGP

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

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

Altri algoritmi: DSS e ECC

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 all'ultimo 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 dell'IDEA 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à l'algoritmo 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 un'unica 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 di sessione

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 dal Tampering (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 dal Tampering (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 dal Tampering (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 dal Tampering (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 dal Tampering (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 funzionamento corretto 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 funzionamento corretto 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 chiave privata (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.

L'utilizzo di tale software ha portato l'FBI 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

top related