...

Crittografia

by user

on
Category: Documents
22

views

Report

Comments

Transcript

Crittografia
Cap.5, par. 3, pag. 188
Crittografia e crittoanalisi
• Crittografia: tecnica che consente di rendere visibili o utilizzabili le
informazioni solo alle persone a cui sono destinate. Per tutti gli altri
le informazioni devono risultare incomprensibili e inutilizzabili.
• Il messaggio originale viene chiamato “testo in chiaro”.
• La cifratura (o codifica) del messaggio tramite un apposito algoritmo
consente di ottenere un “testo cifrato”.
• Si può riottenere il testo in chiaro tramite la decifrazione (o
decodifica) del testo cifrato.
• Codifica e decodifica si basano su un opportuno algoritmo e su una
chiave di codifica/decodifica.
• Le tecniche di critto-analisi hanno lo scopo di violare le
comunicazioni cifrate. Studiano cioè i metodi per tentare di
decrittare un messaggio cifrato senza conoscere l’algoritmo e/o la
chiave di cifratura.
Crittografia, hashing e firme digitali – F.Urbano
Algoritmi crittografici classici
Si basano essenzialmente su due tecniche:
• Sostituzione
• Trasposizione
Es.1: Cifrario a sostituzione di Cesare
Es.3: Cifrario a trasposizione
Chiave = +3
ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC
Chiave: ariete
Testo in chiaro : NEL MEZZO DEL CAMMIN DI NOSTRA VITA
Testo cifrato:
QHO PHCCR GHO FDPPLQ GL QRVWUD YLWD
MEPEOICINOALEZOONSELNROEPTRIVOVAI
GSZCRAESOOTESARPOHODLLIRONPZACATU
Es. 2: Sostituzione con chiave random
Testo in chiaro:
Chiave:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
YNEPTLSQDVBAKHRCGXUIOZMJWF
MEGLIOESSEREPAZZOPERCONTOPROPRIOA
NZICHESAVIOSECONDOLAVOLONTAALTRUI
Testo in chiaro : MI RITROVAI PER UNA SELVA OSCURA
Testo cifrato:
KD XDIXRZYD CTX OHY UTAZY RUEOXY
Testo cifrato:
Anche in questo caso il sistema può essere
forzato senza grosse difficoltà
In entrambi i casi il sistema può essere violato senza difficoltà in pochi
minuti anche senza l’aiuto di un computer.
Crittografia, hashing e firme digitali – F.Urbano
EVOLUZIONE DELLE TECNICHE CRITTOGRAFICHE
Nel corso dei secoli le tecniche di sostituzione e trasposizione sono
state utilizzate in combinazione e secondo schemi più complessi,
creando dei sistemi più sicuri.
L’ambito principale di applicazione della crittologia (crittografia +
crittoanalisi) è stato fino a pochi decenni fa solo quello militare.
Tecniche evolute sono state adottate dalle principali potenze mondiali
durante la seconda guerra mondiale e durante la guerra fredda.
Con la sviluppo delle reti informatiche a livello mondiale le tecniche
crittografiche hanno assunto un’importanza vitale nell’ambito delle
comunicazioni di dati sulla rete.
Ad esempio, tutte le transazione finanziarie e bancarie non potrebbero
svolgersi in sicurezza senza adeguati e sofisticati sistemi di protezione
dei dati in transito sulla rete.
Crittografia, hashing e firme digitali – F.Urbano
Le moderne tecniche di crittografia possono essere classificate in due categorie:
a) Crittografia a chiave Simmetrica
b) Crittografia a chiave Asimmetrica
a) Chiave simmetrica
• Si utilizza la stessa chiave sia per la cifratura che per la decifratura.
• Tutti i metodi classici usavano il sistema simmetrico. Anche oggi sono in uso
sistemi a chiave simmetrica molto efficaci ed efficienti.
• Il principale inconveniente è la necessità che i due interlocutori si scambino la
chiave.
b) Chiave asimmetrica
• Ogni soggetto coinvolto nella comunicazione deve possedere una doppia
chiave: una pubblica ed una privata. Le due chiavi sono correlate da un
algoritmo matematico.
• Si utilizza una delle due chiavi per la codifica, l’altra per la decodifica
• Si tratta di sistemi che si sono sviluppati a partire dagli anni 70. Si elimina il
problema dello scambio di chiave.
Crittografia, hashing e firme digitali – F.Urbano
Chiave simmetrica
Si usa la stessa chiave sia per cifrare che per decifrare i dati.
Gli attuali algoritmi a chiave simmetrica utilizzano algoritmi molto evoluti ed
efficienti.
Il problema principale è che per poter avviare la comunicazione cifrata i due
utenti (oppure un client ed un server) devono prima decidere la chiave da
utilizzare e devono comunicarla uno all’altro. Se in questa fase la chiave viene
intercettata la successiva trasmissione dei dati non sarà più protetta.
Crittografia, hashing e firme digitali – F.Urbano
Algoritmi e protocolli di Crittografia
a chiave simmetrica
DES
•
•
•
•
•
Data Encryption Standard by IBM 1977
Chiave a 56 bit
Testo in chiaro diviso a blocchi di 64 bit
Uso di sostituzioni e trasposizioni molto complesse
Violato prima volta nel 98. Oggi considerato relativamente insicuro (vulnerabile a
attacchi "brute force" con macchine specializzate in ca. 24h)
Triplo DES (3DES)
•
•
•
•
•
Evoluzione del DES
Usa due chiave a 56 bit = una chiave a 112 bit
Funziona in tre passi successivi
Uso di sostituzioni e trasposizioni molto complesse
Ragionevolmente sicuro (teoricamente vulnerabile, praticamente assai difficile)
Crittografia, hashing e firme digitali – F.Urbano
Algoritmi e protocolli di Crittografia a chiave simmetrica
(segue)
IDEA
• Internation Data Encryption Algorithm
• Chiave a 128 bit
• Testo in chiaro diviso a blocchi di 64 bit
AES
• Advanced Encryption Standard
• 1997 algoritmo vincitore concorso NIST 1997 (National Institute Standards and Technologies.)
• Oggi uno standard USA e internazionale
• Blocchi a 128 bit
• Chiavi a 128, 192, 256 bit
RC4 (Rivest Cipher 4, 1987 by Rivest )
• Non a blocchi ma a caratteri (stream)
• Molto veloce e semplice implementazione
• usato anche in WEP e WPA (reti wireless), SSL
• Chiave lunghezza variabile
• Testo in chiaro diviso a blocchi di 64 bit
• Uso di sostituzioni e trasposizioni molto complesse
Crittografia, hashing e firme digitali – F.Urbano
Chiave asimmetrica
• Ciascun utente possiede una coppia di chiavi, pubblica e privata.
• La chiave pubblica può essere resa nota a tutti, la chiave privata invece deve rimanere
segreta. Non c’è più il problema di dover comunicare una chiave segreta.
Garanzia della segretezza
Se A deve inviare un messaggio riservato a B deve codificare il messaggio
con la chiave pubblica di B.
Esempio: Alice deve inviare messaggio cifrato a Bob
Crittografia, hashing e firme digitali – F.Urbano
Garanzia della segretezza
Bob vuole rispondere con un messaggio cifrato ad Alice
In questo caso Bob utilizza la chiave pubblica di Alice per la cifratura.
Solo Alice potrà decifrare il messaggio perché possiede la corrispondente
chiave privata.
Crittografia, hashing e firme digitali – F.Urbano
Algoritmi e protocolli di Crittografia
a chiave ASIMMETRICA
RSA
•
•
•
•
•
•
•
Rivest Shamir Adleman 1978
Basato su proprietà e teoremi di aritmetica modulare
Sicurezza basata sulla difficoltà di fattorizzazione dei numeri
Sicuro purché le chiavi (numeri) siano molto grandi
Computazionalmente molto impegnativo (lentezza elaborazione)
Utilizzato spesso per scambiarsi una chiave segreta (chiave di sessione)
Utilizzato anche per la firma digitale
Esistono altri algoritmi asimmetrici meno utilizzati.
Esempi di protocolli che usano algoritmi a chiave asimmetrica: PGP, SSH, SSL
Per generare una Sintesi (o Impronta o Message Digest) si utilizzano algoritmi di HASH.
I più usati:
• MD5 by Rivest : produce stringa din 128 bit. Oggi non molto sicuro
• SHA-1 (Secure Hash Algorithm) produce stringa di 160 bit
Crittografia, hashing e firme digitali – F.Urbano
ALGORITMI DI HASHING
 A partire da una qualsiasi blocco di dati un
algoritmo di hashing genera una “impronta”
(o sintesi o digest) di dimensione prestabilita.
DATI
 Funziona come una crittografia a senso
unico: i dati originali vengono codificati ma
non è possibile risalire ai dati di partenza
ALGORITMO DI
HASHING
CARATTERISTICHE DI UN BUON ALGORITMO DI HASHING
•
•
SINTESI
o
IMPRONTA
o
MESSAGE
DIGEST
Dati diversi devono (dovrebbero) generare impronte diverse (la
probabilità deve essere quanto più possibile elevata)
Deve essere pressoché impossibile risalire al documento
originale a partire dall’impronta.
POSSIBILI APPLICAZIONI IN AMBITO DI SISTEMI DI SICUREZZA
•
•
•
Memorizzazione di password criptate
Verifica integrità di un messaggio
Generazione di firme digitali (vedi prossima)
• La dimensione di un digest di solito è 128 bit, ma può anche essere maggiore.
• Algoritmi più noti: MD5, SHA-1. Il secondo è attualmente considerato più sicuro.
Crittografia, hashing e firme digitali – F.Urbano
CERTIFICATO DIGITALE
 Per poter firmare digitalmente un
documento o un messaggio un utente
deve possedere un certificato digitale
 Si può ottenere un certificato da una
Certification Authority o tramite un “web
of trust”
 Il certificato digitale comprende una
coppia di chiavi per crittografia
asimmetrica (chiave pubblica + chiave
privata).
Chiave pubblica: xxx-yyy-zzz
Chiave privata: www-kkk-jjj
Certificato digitale
rilasciato
da: _______________
a: ________________
il: ______
valido fino al _______
Crittografia, hashing e firme digitali – F.Urbano
Possibili usi di un certificato digitale
•
Possibilità di inviare e ricevere posta elettronica firmata digitalmente e/o crittografata (utile
a professionisti, aziende, utenti privati, ecc.). L’utente che riceve un messaggio firmato
digitalmente ha la garanzia che il messaggio è stato effettivamente generato e inviato da
un dato mittente.
•
Possibilità di produrre documenti o programmi certificandone l’autenticità (utile ad es. ai
produttori di software) . L’utente privato che scarica o acquista un software può avere la
garanzia che il software è effettivamente stato prodotto dalla società e non è contraffatto
da altri.
L'uso più comune dei certificati digitali è per l'accesso ai siti web via HTTPs,
ossia HTTP su protocollo sicuro SSL.
Attraverso i certificati possiamo accertarci che il server a cui ci si è connessi è
autentico, cioè è effettivamente quello che dichiara di essere.
Il protocollo SSL prevede che, alla connessione, il server fornisca il proprio
certificato digitale; se il certificato digitale è firmato da un'autorità di certificazione
da noi riconosciuta allora possiamo utilizzare la chiave pubblica presente nello
stesso per avviare una comunicazione sicura.
Crittografia, hashing e firme digitali – F.Urbano
Come funziona la firma digitale?
Generazione firma digitale
(può farla solo il possessore del certificato digitale )
Verifica autenticità (può farla un utente qualsiasi)
Documento autenticato
Documento o
messaggio
originale prodotto
da BOB
Firma digitale
(impronta del doc. crittografata
con chiave privata di Bob)
Documento
Chiave
PUBBLICA
Di BOB
ALGORITMO
DI HASHING
ALGORITMO DI
HASHING
ALGORITMO RSA
IMPRONTA
(MESSAGE DIGEST)
Chiave
PRIVATA
Di BOB
IMPRONTA - 2
IMPRONTA - 1
ALGORITMO DI
CRITTOGRAFIA
ASIMMETRICA
(RSA)
Sì
Impronta del documento,
crittografata con la chiave
privata di BOB
=
FIRMA DIGITALE
IMPRONTA - 1
=
No
IMPRONTA - 2
?
Documento + Firma digitale
=
Documento autenticato
Documento
autentico!
Attenzione!
Documento
contraffatto!
Crittografia, hashing e firme digitali – F.Urbano
Tentativo di contraffazione n. 1
Tentativo di contraffazione n. 2
Jack modifica il documento e vuol far credere che sia un prodotto
originale di BOB. Lascia intatta la firma digitale messa da BOB.
Jack vuole appropriarsi della proprietà del documento di Bob,
facendo credere che lo ha fatto lui. Lascia intatto il documento
originale, ma sostituisce la firma con quella ottenuta usando la
sua chiave privata.
Cosa avviene quando il documento arriva ad un utente qualsiasi e
si fa la verifica di autenticità?
Cosa avviene quando il documento arriva ad un utente qualsiasi e
si fa la verifica di autenticità?
Documento con
firma digitale
Chiave
privata di
Jack
Firma
originale del
documento
di BOB
Chiave
pubblica
di BOB
XXX
Documento
contraffatto
Documento con
firma digitale
Documento
originale
Firma digitale XXX
contraffatta
ALGORITMO DI
HASHING
Algoritmo
RSA
Algoritmo
RSA
XX IMPRONTA - 2
ALGORITMO
DI HASHING
Chiave
pubblica
di BOB
IMPRONTA - 2
IMPRONTA - 1
IMPRONTA - 1 XX
IMPRONTA -1 ≠ IMPRONTA - 2
Attenzione!
Documento
contraffatto!
IMPRONTA -1 ≠ IMPRONTA - 2
Attenzione!
Documento
contraffatto!
Crittografia, hashing e firme digitali – F.Urbano
SSL
Secure Socket Layer
• Protocollo progettato dalla Netscape per realizzare comunicazioni cifrate su
Internet
• Standardizzato in TLS (Transport Layer Security)
• Usa la crittografia a chiave pubblica per lo scambio di una chiave di sessione
• Per lo scambio chiavi pubbliche usa certificati digitali
• Perché un sito sia protetto l'amministratore deve richiedere un certificato a una CA
(Certification Authority) e deve configurare il server in modo da utilizzare un
protocollo di protezione
• SSL funziona come livello intermedio tra Applicazione e Trasporto
• HTTP + SSL  HTTPS
Distribuzione chiavi pubbliche
certificati digitali emessi da una Certification Authority o da un Web of Trust (Es: VeriSign)
• id digitali classe 1: solo email
• classe 2: dati personali
• classe 3: utente deve provare propria identità
Crittografia, hashing e firme digitali – F.Urbano
Fly UP