La crittografia, navigare in internet in modo sicuro

Navigare (pagare) sicuri in
internet
Prof. Marco Mezzalama
Politecnico di Torino
Il lato oscuro della tecnologia…..
Scienza, tecnologia e guerra
Il malware
Da maliciuos software, è costituito da tre tipi di
programmi dannosi, che possono anche combinarsi
insieme:
• Virus
• Worm
• Cavalli di troia
La guerra su internet
«Hacker dell’Isis attaccano il Comando Centrale
USA per la sicurezza, clonando la pagina
Facebook» (12 gennaio 2015, ANSA)
La guerra su internet
Stuxnet
Non solo tra militari ma anche tra noi!
Ransomware
CryptoLocker, a ransomware worm that surfaced in
late-2013, had procured an estimated US$3 million
before it was taken down by authorities
I numeri del cybercrime
La crescita del mobile malware
Un nuovo fenomeno
Il numero totale del mobile malware è valutato pari a
150.000, di cui 100.000 prodotti nel solo 2014, ed è
quadruplicato rispetto al 2011.
I canali preferiti sono le apps seguite dagli sms/mms
L’obiettivo principale è sottrarre password, indirizzi, numeri
telefonici ma ultimamente ha raggiunto limiti significativi il
fenomeno dello spyware
Phishing
(la pesca dei creduloni)
Installa subito l’allegato monica,exe
se vuoi chattare con Monica B.
E’ gratis!!!
Autenticazione del sito
(verifica URL)
1.Attenti al nome (www.banca.it.ro)
2.Attenti al protocollo (https)
3.Diffidare (molti link presenti in mail, social
media, icone pubblicitarie sono fraudolenti)
4.Diffidare degli allegati
Canale sicuro
Mi serve il tuo numero
di carta di credito
Il crittanalista……...
…. il secondo mestiere più vecchio
del mondo !
La storia della crittografia
4500 a.C.
Cifrario di Cesare
Leon Battista Alberti
(1404 - 1472)
La storia della crittografia
Alan Turing
(1912 – 1954)
Enigma (1932)
Crittografia
Il contesto applicativo:
 riservatezza
 autenticazione
 scambio chiavi segrete
 firma digitale
Crittografia
Gli algoritmi crittografici possono essere
classificati in tre categorie:
 algoritmi a chiave segreta (alg. simmetrici)
 algoritmi a chiave pubblica (alg. asimmetrici)
 algoritmi di hash (digest, impronta, firma digitale)
Crittografia
 Testo in chiaro (plaintext, T)
 testo cifrato (ciphertext, C)
 coppia di chiavi k1 e k2
 algoritmo di cifratura, E: C = E(T, K1)
 algoritmo di decifratura, D: T = D(C, K2)
 Segretezza:
 algoritmi, E e/o D
 chiavi k1 e/o k2
Crittografia
Mittente
Destinatario
messaggio
messaggio
k1
k2
crittografia(E)
decrittografia(D)
messaggio cifrato
Il frullino crittografico ….
0100111101
100110101
La chiave di selezione del programma
Il frullino crittografico …. simmetrico
0100111101
100110101
0100111101
Crittografia (cifrario di Atbash)
Il libro di Geremia nella Bibbia usa un semplicissimo
cifrario monoalfabetico per cifrare la parola Babele; la prima
lettera dell'alfabeto ebraico (Aleph) viene cifrata con l'ultima
(Taw), la seconda (Beth) viene cifrata con la penultima
(Shin) e così via; da queste quattro lettere è derivato il nome
di Atbash (A con T, B con SH) per questo codice.
Crittografia (cifrario di Cesare)
Attenzione!
Asterix ci ascolta!
Tecniche di sostituzione
A D
B E
C F
…….
W Z
X A
Y B
Z C
Ad ogni lettera si sostituisce quella
che la segue spostata di un numero
fisso di posizioni
C = (lettera + 3)mod26
Chiave segreta
ATTACCO:
DOMANI
DYYDFFR:
GRPDQN
K=3
Tecniche di trasposizione
Testo = MARCO MEZZALAMA.
Algoritmo =prendo due simboli e li inverto con i
successivi (chiave = 2,2)
Testo = MA RC O ME ZZ AL AM A.
Testo cifrato = RCMAMEO ALZZA.AM
Crittografia - DES
 tratta blocchi di dati da 64 bit operando
 trasposizioni (inversione posizione di gruppi di bit)
 sostituzione (EXOR con chiave)
 noto algoritmo (E=D)
 segreto: chiavi k1=k2 e a volte vettore di
inizializzazione
Crittografia - DES
 tratta blocchi di dati da 64 bit operando
 trasposizioni
(inversione posizione di gruppi di bit)
 sostituzione (EXOR con chiave)
 noto algoritmo (E=D)
 segreto: chiavi k1=k2 e a volte vettore di
inizializzazione
Crittografia a chiave segreta
 DES
 Data Encryption Standard
 chiave a 56 bit
 TRIPLO DES
 168 bit chiave
T
DES
Ka
DES
DES
Kb
Kc
C
Lunghezza della chiavi crittografiche
simm.
40
64
128
...
asimm.
256
512
1024
...
bassa sicurezza
alta sicurezza
Principali algoritmi di crittografia simmetrica
Algoritmo
Chiave
Blocco
Base
DES
56 bit
64 bit
Triplo DES
112o168 bit
64 bit
IDEA
128 bit
64 bit
E-mail (PGP)
RC2
8-1024 bit
64 bit
Internet (SSL, S/MIME)
RC4
Ignota
Stream
Internet (SSL, S/MIME)
RC5
1-2048 bit
1-256 bit
WAP
AES
128-256 bit
128 bit
applicazioni
bancarie
Applicazione tipica
Bancaria, networking,
Internet (SSL, S/MIME)
BANCOMAT
Prelievo dalla propria banca
Prelievo da altra banca
BANCOMAT
Sulla tessera magnetica è memorizzato il numero di
conto corrente
Il numero di conto corrente mediante cifratura DES o
3DES viene inviato al modulo crittografico HSM
(Hardware Secure Module) che ricava il PIN e lo
verifica con quello introdotto
Se la verifica è positiva il bancomat viene abilitato
Il DES o 3DES adopera una chiave segreta nota solo al
ATM e HSM
Crittografia e vita comune
Come tener segreto il numero di bancomat
1.Considerare il numero di bancomat: «12543»
2.Scegliere un numero che non dimentichiamo (il
numero civico, la data di nascita,..): «13»
3.Sommare ad ogni cifra del bancomat il numero
noto: «(13+1) (13+2) (13+5) (13+4) (13+3)»
4.Ottenere così la nuova sequenza:
«1415181716»
La nuova sequenza NON è più
segreta!
Distribuzione delle chiavi
chiave
segreta
condivisa
Distribuzione delle chiavi
Come distribuisco
la mia
• out-of-band
• in-band
Crittografia a chiavi asimmetriche
Chiave pubblica/chiave privata
Certificato
Bailey Whitfield 'Whit' Diffie
Martin Edward Hellman
Crittografia a chiavi asimmetriche
RSA
(1977)
River, Shamir, Adelman (MIT)
Il frullino crittografico …. asimmetrico
0100111101
100110101
0100111101
Crittografia a chiave pubblica
 k1  k2
K1 = Kpub = chiave pubblica
K2 = Kpri = chiave privata
 algoritmi asimmetrici
 coppie di chiavi (pubblica e privata)
 ruolo delle chiavi interscambiabile
 alto carico computazionale
Crittografia a chiave pubblica
 si basa sulle funzioni unidirezionali:
 y = f(x)
complessità bassa (P)
 x = f--1(y) complessità molto alta (NP)
 Esempi:
 elevazione potenza: 34 = 3x3x3x3=81
 ma, logaritmo: log3 81 = ?
 Fattorizzazione (scomposizione in fattori primi) di numeri grandi
con fattori grandi (dato un numero intero positivo esiste una
sola sequenza di numeri primi uguale al numero dato)
 Il tutto complicato nell’operare in algebra mod n
Crittografia a chiave pubblica
 usato per distribuire chiavi segrete e per
la firma elettronica
 RSA (Rivest - Shamir - Adleman)
 brevettato da RSA
 DSA (Digital Signature Algoritm)
 standard
 Diffie-Hellman
 scambio chiavi
Ognuno ha la sua coppia di
chiavi asimmetriche…..
Chiave
privata
di marco
Chiave
privata
di giulia
Chiave
pubbliche
di marco
Chiave
pubblica
di giulia
Crittografia a chiavi
asimmetriche
chiave pubblica chiave
privata
La serratura … asimmetrica
Se chiudo con la chiave
apro solo
Se chiudo con la chiave
apro solo
Segretezza (la trasmissione
della carta di credito)
(messaggio da marco a giulia)
testo
testo
lella
Chiavi
pubbliche
di marco
giulia
francy
Chiave
privata
di giulia
Autenticazione (la firma digitale)
(di un messaggio da marco a giulia)
testo
testo
Chiave
privata
di marco
Chiavi
pubbliche
di giulia
lella
marco
francy
Crittografia RSA
 algoritmo ideato da Rivest, Shamir e
Adleman
 utilizza come base il calcolo della
funzione:
f = ck mod n
 la difficoltà di rompere il codice è
paragonabile alla difficoltà di fattorizzare
numeri interi molto grandi (n), prodotto di
numeri primi
 Robustezza: RSA 129 (129 cifre) richiede
4600 MIPS-anni
Crittografia RSA
1. si scelgono a caso due numeri primi, p e q abbastanza
grandi da garantire la sicurezza dell'algoritmo (ad
esempio, il più grande numero RSA, RSA-2048, utilizza due
numeri primi lunghi più di 300 cifre decimali)
2. si calcolano il loro prodotto n = pq , chiamato modulo
(dato che tutta l'aritmetica seguente è modulo n), e il
prodotto f(n) = (p-1)(q-1). Si considera che la
fattorizzazione di n è segreta e solo chi sceglie i due
numeri primi, p e q, la conosce
Crittografia RSA
3. si sceglie poi un numero e (chiamato esponente pubblico),
coprimo (primi tra di loro) e più piccolo di f(n)
4. si calcola il numero d (chiamato esponente privato) tale che
il suo prodotto con e sia congruo ad 1 modulo f(n) ovvero che
e*d = 1 mod(f(n))
La chiave pubblica è (n, e) , mentre la chiave privata è (n, d) . I due numeri
primi p e q possono essere distrutti
La forza dell'algoritmo sta nel fatto che per calcolare d da e o viceversa, non
basta la conoscenza di n, ma serve il numero f(n)=(p-1)(q-1) e che il suo
calcolo richiede tempi molto elevati; infatti fattorizzare in numeri primi
(cioè scomporre un numero nei suoi divisori primi) è un'operazione molto
lenta.
Esempio
1. p=3 e q=11
2. n=p*q=3*11=33 e f(n)=(p-1)(q-1)=2*10=20
3. prendo e=7 , dato che e<20 ed e è coprimo di 20 (non è
necessario che e sia primo)
4. d=3 , infatti ed=7*3=21 =1 mod(20) poiché 21/20=1 con
resto 1
Quindi abbiamo la chiave privata (33,3) e la chiave pubblica
(33,7) (il fatto che d sia uguale a p è puramente casuale)
Prendiamo ora in considerazione il messaggio m = 15 e
cifriamolo per ottenere il messaggio cifrato c , ovviamente
possiamo usare 33 e 7, ma non 3 che fa parte della chiave
privata.
c = m^e mod(n)=15^7 mod(33)=27
E ora decifriamo c = 27 per ottenere m ; qui utilizzeremo 3,
componente essenziale della chiave privata.
m=c^d mod(n)=27^3 mod(33)=15
Quindi alla fine abbiamo decrittato il messaggio.
Crittografia RSA
Kpub = (e, n) = (5,119)
Kpri = (d, n) = (77,119)
Dato un testo T:
C = Te (mod n)
T = Cd (mod n)
La difficoltà crittografica consiste nel ricavare d, noti
e ed n, in pratica
nel fattorizzare n=p*q nei suoi fattori primi
Applicazioni crittografia asimmetrica
Realizzazione canali sicuri
(distribuzione chiavi segrete)
firma digitale
Canale sicuro
Mi serve il tuo numero
di carta di credito
Canale sicuro
1. Kpub
2.
Kpub
Kpri
n. VISA
Firma digitale
Documenti digitali
Contratti digitali
Posta elettronica certificata (pec)
Autenticazione siti web (https)
Certificazione software (app)
Il Bignami digitale
Message digest (hash)
 è un riassunto del messaggio che si vuole
proteggere
 allo scopo si usano algoritmi di hash:
 MD5, genera un digest di 128 bit
 SHA, genera un digest di 160 bit
 RIPEMD 160, genera un digest di 160 bit
messaggio
hash
digest
Lunghezza del digest
 importante per evitare collisioni:
 md1 = H (testo 1)
 md2 = H (testo 2)
 se testo 1 testo 2 si vorrebbe avere md1  md2
 probabilità di collisione:
P ~ 1 / 2Nbit
 occorrono quindi digest con molti bit
(perchè si tratta di eventi statistici)
Message digest o IMPRONTA
Campo applicazione:
 integrità/rivelazione errori
 autenticazione
 firma digitale
Autenticazione
 L’autenticazione dei messaggi deve
provare:
 messaggio provenga dal mittente dichiarato
 il contenuto non sia alterato
 la sequenza sia corretta
 il messaggio sia giunto al destinatario
Integrità
messaggio
messaggio
digest
digest
In fase di ricezione si decifra il messaggio
e lo si confronta
Message digest o IMPRONTA
 Per evitare che il messaggio venga alterato
modificando contestualmente il digest,
questo viene cifrato
messaggio
Digest cifrato
Applicazioni crittografia asimmetrica
firma digitale
FIRMA DIGITALE
•Algoritmo per identità del soggetto
•Algoritmo per il non ripudio
•Algoritmo per la integrità del documento
•Algoritmo crittografia a chiave pubblica
•Algoritmo di hash
• Certificato a chiave pubblica
Firma digitale
Mittente
Destinatario
dati da firmare
dati ricevuti
chiave del
mittente
message digest
message digest
md
Kpri
Kpub
algoritmo
asimmetrico
mdR
mdF = ?
algoritmo
asimmetrico
digital signature
Firma digitale
testo
Firma: f(testo),Kpri(MARCO)
Firma
di A
Controllo integrità del messaggio
NON mi dà garanzia mittente
Il dilemma
1. Dove trovo la Kpub ?
2. Chi mi garantisce
che sia proprio lui?
Certificato a chiave pubblica
 La sola firma con una coppia di chiavi
non mi garantisce la corrispondenza
con un soggetto fisico
marco
Chi è Marco?
Sarà proprio
la firma di Marco ?
Certificato a chiave pubblica
 È necessario un certificato d’autenticità
che garantisca in modo esplicito l’identità
del soggetto (SIGILLO
marco
Riconosco
il timbro?
In God we trust ….
... All Other must submit an X.509
certificate
Certifico che la seguente è
la chiave pubblica di
Mezzalama:
Firmato: il presidente
MATTARELLA
Certificato a chiave pubblica
“Una struttura dati per legare in modo
sicuro una chiave pubblica
ad alcuni attributi
 tipicamente lega una chiave ad un’identità
personale, ma anche informatica
 firmato in modo elettronico dall’emettitore: una
persona fidata o - meglio - l’autorità di
certificazione ( CA )
 con scadenza temporale
 revocabile sia dall’utente sia dall’emettitore
Certificato a chiave pubblica
testo
Consegnate al
messaggero
1000 ducati
d’argento
marco
Firma
di A
Certificato di
marco
Firmato: il re
Firma digitale
testo
Firma: f(testo),Kpri(MARCO)
Certificato:
Firma
di A
certificato
CA
- nome
- Kpub(MARCO)
- CA
Firma digitale
testo
Firma: f(testo),Kpri(MARCO)
Firma
di A
certificato
CA
Certificato:
- nome
- Kpub(MARCO)
- CA
CA
- Firma CA
f(nome,Kpub,CA),Kpri(CA)
certificato X.509v3
 1. versione
....
 2. algorit di firma RSA with MD2, 512
 3. issuer
C = IT, O = Polito, OU=CA
 4. validità
 5. soggetto
 6. chiave pub.
di Marco
 firma digitale
della CA
1/1/96 - 31/12/02
C = IT, O = Polito,
CN = Marco Mezzalama
RSA, 1024, xxx...
impronta (1-6) firmata
con Kpri della CA
Autorità di certificazione
Una autorità accreditata da un insieme di utenti
per creare ed assegnare certificati a chiave pubblica
•Deve gestire una PKI (Public Key
Infrastructure)
•Può essere riconosciuta ufficialmente o de-facto
da una comunità di utenti
•problema: mutuo riconoscimento
Autorità di certificazione
(1) Kpub, Barbara
Certification
Authority
(1) Kpri
(4) cert (Barbara,Kpub)
(2)
(3)
OK
barbara
Registration
Authority