Anda di halaman 1dari 41

Autenticazione: identificare, tramite prova, i partecipanti a una a una transazione di

rete. Basata sulla capacit dei partecipanti di dimostrare che sanno o possiedono
qualcosa.
Controllo degli accessi: Controllare i diritti di ogni partecipante alla comunicazione,
richiede autenticazione
Confidentiality: Garantisce che solo entit autorizzate accedano a informazioni
protette, richiede una qualche forma di autenticazione. Si divide in due casi:
informazioni in transito e informazioni salvate.
Integrity protection: Garantisce che entit non autorizzate non possano modificare
informazioni senza essere scoperte
Non ripudio: Garantisce che unentit che abbia generato un dato non possa negare la
propria azione in un secondo momento
Criptologia = Crittografia + protocolli + criptanalisi
Crittografia: Studia gli algoritmi che trasformano i dati
Protocolli: Regole che permettono agli algoritmi di raggiungere determinati
obiettivi (autenticazione etc..)
Criptanalisi: studia i meccanisimi per circuire gli algoritmi e i protocolli

Schema generico di criptoalgoritmo

K=(k1, k2) keypair


Ek1 cripto algoritmo; biiezione dipendente da k1, tra elementi di m M e c C
Dk2 inverso di Ek1

BLOCK CIPHER:
m stringa di b bit (se il messaggio pi lungo va frammentato)
c stringa di b bit
(k1,k2) stringe di lunghezza fissa (d,e)
Ek1 mapping tra elementi di M [0..2b-1] e elementi di C [0..2b-1] dipendente da k1
IDEALMENTE cambiare un bit di m cambia il valore di ogni bit di c con probabilit 50%

STREAM CIPHER

Caso particolare di block cipher con b piccolo.


E (e D) mantengono uno stato S. loutput dipende quindi da m i, k1 e Si(in funzione di
m, c, tempo etc.)
Non soggetto a analisi di frequenza. A causa dello stato S i anche se lo stesso mi
appare nel messaggio originale, nel messaggio cifrato non corrisponder lo stesso c i.
(nel block cipher stateless invece si).

A parit di altre condizioni, il livello di sicurezza di un BLOCK CIPHER (generico)


dipende dalla lunghezza b del blocco.
Non si pu fare meglio del Perfectly random block cipher (implementa tutte le 2 b!
permutazioni dei 2b valori di M e ne sceglie una tramite k) linformazione ottenuta
osservanto c pari a quella ottenuta osservando una stringa casuale
CRIPTOANALISI
Principio di Kerckhoffs: Lattaccante conosce E,D,C,M e c La sicurezza di un sistema
crittografico poggia tutta sulla keypair k. (purtroppo nella realt a volte lattaccante
conosce anche m)
Un algoritmo si dice fragile (breakable) se un criptoanalista riesce a risalire a m (in
tempi utili), senza conoscere k a priori. Lobiettivo di un crittografo assicurarsi che
alla fine, il miglior attacco allalgoritmo sia una ricerca esaustiva nello spazio delle
chiavi o dei messaggi.
Tipi di attacchi

Solo testo cifrato (conosco c) esempio analisi di frequenza, se sei vulnerabile


a questo sei scarsissimo
Known plaintext (conosco c e m) obiettivo trovare k
Chosen plaintext (attaccante sceglie m) assumo di poter ricavare c dato m

Un buon algoritmo deve essere capace di sostenere almeno questi attacchi, anche se
sembrano impossibili nel tuo contesto.
BASI DI TEORIA DELLINFORMAZIONE
Sia x X, |X|=q, X={xq, x2, , xq} una variabile casuale discreta con probabilit p i.
Definiamo entropia di x:

H ( X )= pi log 2

1
pi

che definisce il grado di causalit di un

datorisultato xi
0 H(m) log2 q 0 quando pi=1 e tutte le altre 0 (no incertezza), 1 quando tutte
hanno la stessa probabilit 1/q (massima incertezza)
Il risultato ideale che H(c) sia il pi vicino possibile a log 2(|C|) indipendentemente da
m

Un algoritmo offre segretezza perfetta c e m sono statisticamente indipendenti


non posso ottenere informazione su m osservando c, lincertezza a posteriori su m non
pu essere pi piccola di quella a priori. H(k) H(m) Segretezza perfetta un
limite superiore, poco pratico da ottenere, a volte inutile.

ALGORITMO PERFETTAMENTE SICURO, ONE TIME PAD (VERNAMs STREAM CIPHER)

Ipotesi: k lungo come m e non pu essere riusato; generatore random perfetto.


Problema: non esiste un canale di comunicazione sicura perfetto, non posso
trasmettere la chiave

BLOCK CIPHERS SIMMETRICI

Stessa chiave k per E e D (oppure due chiavi k1 e k2 ma derivare k2 da k1 molto


facile)
k stringa di l bit
m,c stringhe di b bit
nel caso il messaggio sia pi lungo di b bits si sceglie una delle modalit di operazione
dei block ciphers
ogni bit di c deve dipendere da tutti i bit di k e da tutti i bit di m
deve essere difficile trovare relazione statistica tra m e c senza sapere k (idealmente
statisticamente incorrelate). Cambiare un bit di m deve cambiare tutti i bit di c con
probabilit 0.5 e un cambio di un bit in c deve modificare lm corrispondente in
maniera statisticamente incorrelata rispetto a quale bit stato cambiato.
SUBSTITUTION CIPHER (block cipher di base)
M insieme di stringhe di b bit (|M|=2b)
Ek: MM; k lindice di una delle possibili permutazioni (2 b!) di delle stringhe m M
|K|= 2b!; k lunga l bit, con l = log2(2b!) b2b
Se k scelta in maniera perfectly random random substitution cipher il
miglior block cipher possibile
Ma vulnerabile ad analisi di frequenza(diventa pi difficile aumentando la dimensione
b del blocco), inoltre aumentando b la lunghezza della chiave cresce
esponenzialmente (male, dove la salvo?).
TRANSPOSITION CIPHER (Sottoinsieme dei substitution cipher)
Basati su ridisposizione dei bit di m, richiede uno spazio delle chiavi pi piccolo (posso
trasporre b bits in b! modi, |K|=b! l = log2b!) sempre pi lontani da perfect
secrecy ma si pu lavorare su chiavi di lunghezza accettabile.
Problema preserva il numero di 0 e 1, quindi facile da criptoanalizzare
COMPOSITION CIPHER

Uso il meglio dei due mondi spesso difficile far si che Dk risulti facilmente
derivabile da Ek

PRODUCT CIPHER (idea)

Ogni round un product cipher, per ottenere che il cambiamento di un bit in m causi il
cambiamento di ogni bit di c con probabilit 0.5 abbiamo bisogno di t>1 round.
difficile trovare il giusto valore di t e non sempre facile far si che trovare D k da Ek
sia facile.
DATA ENCRYPTION STANDARD (DES)
Block cipher simmetrico, b=64 bit, l=56 bit (+ 8 di parity check).
Costruito per essere veloce se implementato via HW e scarso via SW.

Sempre fissa non aumenta sicurezza

Deriva 16
sottochiavi, una per

Sempre fissa rende algoritmo facilmente reversibile

Schema DES ad alto livello, La fase iniziale e finale non dipendono dalla chiave. Lo
stesso algoritmo usato sia per Ek che per Dk.

Nello shift di r bit verso sinistra, nei round 1,2,9,16 lo shift di un bit; negli altri di
due.

Ogni S-Box lavora come un substitution cipher su 4 simboli (bit b,c,d,e) con una chiave
a 2 bit (bit a,f).
Dk da Ek
In DES Dk equivale a Ek ma con ordine delle sottochiavi inverso. La permutazione
iniziale di Dk inverte la permutazione finale di Ek
ANALISI DI DES
Propriet di complementazione: lo spazio effettivo di ricerca di un attacco brute-force
solamente 255 invece che 266 Perch Ek(m)=c quindi basta controllare met delle
chiavi 256/2 = 255
DES ha 4 chiavi deboli (Ej=Dj) e 12 chiavi (6 coppie) semi-deboli (E k=Dj)

DES a quasi solo funzioni lineari (algoritmi basati solo su funzioni lineari sono
facilmente attaccabili) tranne che per le S-Boxes La sicurezza deriva tutta da loro
i parametri di progetto delle S-Boxes non sono mai stati pubblicati completamente
cambiare lordine delle S-Boxes riduce il numero di operazioni necessarie al brute-force
a 238 , se generate automaticamente o cambiate anche di un solo bit vanno molto
male!
Lespansione effettuata prima di iniziare la inner function fa si che un bit di R i si
comporti come un indice per due S-Boxes (effetto valanga)

3DES (Ek1 Dk2Ek1) metodo che rende DES sicuro (ma pi lento) al giorno doggi.
b=64 bit; k=k1|k2=112 bit, |K|=2112 se k1=k2 si ha il modo di operare standard di
DES
ALTRI BLOCK CIPHER
International Data Encryption Algorithm (IDEA) b=64bit (ok, ma rischia contro
analisi di frequenza sul testo cifrato fatta da attaccanti seri); l=128bit, sopporta
tecniche avanzate di criptanalisi; implementazioni HW e SW abbastanza efficienti,
brevettato.
Blowfish b=64bit, l [32,448] bit; la sicurezza e velocit dipendono dalla
lunghezza l della chiave. Efficiente in implementazioni SW, meno in quelle HW. Cifrario
giovane. Royalty-free.
Advanced Encryption Standard (AES)
estremamente efficiente sia su HW che su SW.

b=128bit,l={128,192

256bit},

STREAM CIPHERS
Blocchi relativamente piccoli (1-8 bit), E k con stato. esistono modi operativi che
consentono ai block cipher di lavorare come stream cipher.
PSEUDO-RANDOM KEYSTREAM (Sincrono)

Un errore nella decifratura di un blocco(durante la trasmissione) non causa errori nella


decifratura degli altri blocchi lerrore non si propaga
Sorgente e destinazione devono sincronizzare i dati in ingrassi con il processo che
genera zi (lo stream delle chiavi). Perdere o aggiungere un pacchetto causa errore di
decifratura di tutti i pacchetti seguenti. (strategie tipo re inizializzazione periodica
dello stream delle chiavi, marcatori etc.). la maggior parte degli stream cipher
usano h()=XOR.

STREAM CIPHER AUTOSINCRONIZZANTI

Utilizza Inizialitation Vector una serie di blocchi trasmessi in chiaro che inizializzano
il processo di generazione del flusso di chiavi.
autosincronizzante perch la perdita o laggiunta di un singolo blocco cifrato causa
errori solo sui corrispondenti blocchi di plaintext (Decriptati) e su un numero limitato di
blocchi successivi il numero di blocchi corrotti dipende da t
RC4
Uno die pi popolari streamcipher. Sincrono. Usa una chiave con l [1-256]byte per
generare il keystream. (il grado di casualit buono anche con chiavi tipo 0, 1, 000
).
facile da implementare. Si=vettore stato di 258 byte; zi=chiave pseudocasuale da 8
bit; h=h=XOR.
MODI DI OPERAZIONE
Offrono solo confidenzialit. Sono regole che definiscono come un block cipher si
debba comportare con m pi lunghi di b bit.
Electronic Code Book (ECB)

Spezza gli m lunghi in tanti m i grandi il giusto e cripta i singoli mi.


molto semplice e lerrore non si propaga, gli errori affliggono solo il blocco
corrispondente.
Facile montare un attacco di analisi di frequenza sul testo cifrato. Cambiare lordine
dei blocchi o dei bit nei blocchi (attacco attivo). MAI USARE ECB.

Cipher Block Chaining (CBC)

Lerrore non si propaga, lo stesso m i in posizione diverse avr ci corrispondenti diverse


(pi resistente a analisi di frequenza). Pi resistente di ECB a attacchi che cambiano
lordine o il contenuto dei ciphertext.
Vulnerabile a cambiamenti di blocchi (o aggiunta) in modo che che dopo la decifratura
si ottenga un messaggio modificato in modo predicibile.
Importante LIV deve essere diverso se la stessa chiave usata per pi di una
comunicazione.
Output FeedBack (OFB)

OFB converte un block cipher in stream cipher, possibile precomputare il flusso di


chiavi. Un errore nel testo cifrato affligger solo il blocco corrispondente nel testo
decifrato.
sincrono (perdere un pacchetto impossibile decifrare tutto quello dopo)si
utilizzano marcatori per risincronizzazione periodica.
Mai usare lo stesso IV con la stessa chiave altrimenti un attaccante prende i due
ciphertext c e c e li mette in XOR ottenendo lo XOR dei due testi in chiaropoi analisi
di frequenza diventa facile.

Counter (CTR)

Il flusso di chiavi pu essere precomputato indipendentemente da m e da c (adatto per


accesso random).
Attacco attivo: Alice manda ci=mioi a Bob, Trudy riesce a sniffare <ci,mi>, poi
sostituisce ci con ci=ci mi mi= mioimi mi= mioi e Bob dopo legge mi
Stesse considerazioni per analisi di frequenza
HASH FUNCTIONS
Come faccio a sapere che un messaggio che arriva a Bob sia effettivamente mandato
da Alice? Alice manda c=Ek[m|f(m)] con f nota. Bob controlla che dato D k[c]=m|f si
abbia f(m)=f Autenticazione e privacy garantite (non firma e non-ripudio)
Perch non usare crittografia per autenticazione? Crittografare per la privacy, usa un
altro livello per autenticazione flessibilit dellarchitettura.
A volte devo autenticare messaggi in chiaro altra tipologia di algoritmi di
autenticazione
Message Authentication Code (MAC)
Alice e Bob usano la stessa chiave k Alice manda m + MAC=h(m,k) Bob riceve m
e calcola MAC=h(m,k) se MAC=MAC allora Bob sicuro che il messaggio non
stato modificato (integrity protection) e che il messaggio arriva da Alice
(autenticazione).
Attacchi conosco abbastanza di e ricavo la chiave; conosco abbastanza di=hk(mi),
calcolo d=hk(m) senza sapere k; trovo coppia che collide
h? Funzione di Hash, funzione (non invertibile) che mappa un input di lunghezza
arbitraria in una stringa di lunghezza fissa, n bit, lunghezza dellhash d=h(m)
detta fingerprint o message digest
PROPRIET DELLE FUNZIONI DI HASH

Efficienza computazionale: dato m sia semplice calcolare h(m)


Dato un messaggio casuale e un digest d D | (|D|=2n), la probabilit
P[d=h(m)]=2-n
o Cambiare un singolo bit di m cambiare ogni bit di d con probabilit 0.5
Dato d: calcolare m|d=h(m) deve essere computazionalmente infattibile
(Propriet one-way o preimage resistance)
Dati m1 e d1=h(m1), trovare m2m1|h(m2)=h(m1) computazionalmente
infattibile. (resistenza debole alle collisioni o 2nd preimage resistance)

Trovare coppie di messaggi distinti che collidono computazionalmente


infattibile (resistenza forte alle collisioni)

NB: non esiste una funzione matematica che abbia preimage resistance, allora ci basta
che trovare linversa sia un problema NP-COMPLETE.
Un algoritmo che ha preimage resistance & resistenza forte alle collisioni
considerato sicuro
Modification Detection Code (MDC)
Se possiamo garantire lintegrit di d=h(m) possiamo usare d per proteggere
lintegrit di m
Attacchi dato d=h(m), troviamo m che collide; trovare coppia (m,m) che collidono

LIV pu essere un valore predefinito o una funzione di m etc.


Problema Lentezza

MDC: Matyas-Meyer-Oseas

Crea un MDC usando un block cipher

La lunghezza dellhash legata al block size della cifratura, che solitamente pi


corto della lunghezza utile a prevenire birthday attacck facciamo pi round della
criptazione lentezza
Resistenza alle collisioni: 50% di riuscita solo se si cercano pi di 2 n/2 coppie (m,d)
MD5
m=messaggio di lunghezza qualsiasi; n=128bit (lunghezza digest); q=512bit
(lunghezza pre-compressione)
Padding ho bisogno di una stringa multipla di 512bit effettuo il padding del
messaggio con
1|0..0|m mod 264 [codificato con 64bit] ; {0..0} sequenza di 0 lunga (m mod 512)
1 64
La funzione f di compressione lavora su blocchi da 512 bit in 4 passaggi un digest
da 128 bit
Veloce ma insicuro
Secure Hashing Algorithm 1 (SHA-1)
m<264 bit; n=160; q=512

Padding come MD5, senza mod 264


La funzione f di compressione lavora su blocchi da 512 bit in 5 passaggi pi lento di
MD5 ma un po pi sicuro
Esistono SHA-256, SHA-384 e SHA-512
Derivare un MAC da un MDC
Gli approcci intuitivi falliscono

Solo suffisso: d=MACk(m)=MDC(m|k) trovati m,m con MDC(m)=MDC(m)


MACk(m)=MACk(m) perch la chiave usata solo nellultimo passaggio della
funzione di compressione qualcuno ti fa proteggere con quel MAC il
messaggio m e poi manda m
Solo prefisso: d=MACk(m)=MDC(k|m) problema: facile derivare d=MACk(m|
x) dato d=MACk(m), senza conoscere k posso usare d come ri-esimo valore in
ingresso alla funzione di compressione etc. se conosco d posso generare d
validi di qualsiasi messaggio che sia unestensione di m

MD5 PREFIX-SUFFIX MACk(m)=MD5(k|y|m|k), y = padding che porta k a una


lunghezza multipla di 512 bit in maniera da avere un impatto su almeno I primi due
round; stesse performance di MD5 sotto alcune ipotesi losservazione di abbastanza
coppie m,d porta a scoprire k NON USARE
Hash-based MAC (HMAC)
SicuroDa usare! Semplice per derivare MAC da qualsiasi MDC (HMAC-MD5, HMACSHA1 )
HMAC-MDCk(m)=MDC{[k|0] c1|MDC{[(k|0) c2]|m}} gli 0 sono padding che
allungano la chiave a q bit (512 per MD5 e SHA-1), c1 e c2 sono costanti sotto certe
ipotesi sicuro anche basato su MD5 (il miglior attacco diventa il birthday attack ~
25.000 anni)
CRITTOGRAFIA ASIMMETRICA
Idea principale alcuen operazioni matematiche sono semplice da calcolare ma
estremamente computazionalmente impegnative da invertire (n=pq (primi) facile;
dato n trovare p e q difficile)
Sono meno efficienti di quelli simmetrici problema su dispositivi mobili (problema
mitigato da Elliptic Curve Cryptography)

Keypair = pubblica + privata


m,c lunghi b bit; Ek1 una biiezione tra linsieme Me linsieme C [|M|=|C|=2 b], in
funzione di k1 (e anche di k2) Dk2=Ek1-1

Oltre alle propriet degli algoritmi simmetrici necessario che derivare k2 da k1 sia
computazionalmente IMPOSSIBILE (impossibile calcolare chiave privata da chiave
pubblica). Inoltre assicurare lautenticazione della chiave pubblica di massima
importanza

TASSONOMIA DEI PRINCIPALI ALGORITMI ASIMMETRICI

TEORIA DEI NUMERI (dimostrazioni da studiare a parte)


Numeri primi numeri naturali divisibili per 1 o per se stessi
MCD (gcd) MCD(x,y) il pi grande numero naturale che divide sia x che y, senza
resto
Numeri primi relativi x e y sono coprimi MCD(x,y)=1 (e.g 5 e 9, 4 e 15 )
Relazione di congruenza due numeri a e b sono congurenti in modulo n se la loro
differenza un multiplo di n a = b (mod n) k | a-b=kn a (mod n) = b
(mod n) mod n loperazione che restituisce il resto (il pi piccolo numero intero
non negativo che differisce da x di un multiplo di n x=kn+remainder) della divisione
per n. due moduli sono congruenti in modulo n se il resto della loro divisione per n
uguale
[(a modn) + (b modn)] modn = (a+b) modn
[(a modn) * (b modn)] modn = (a*b) modn
NB. a mod c=b a b (mod c)
Inverso moltiplicativo (mod n) x*x-1= 1 mod n, x-1 esiste u,v | x*u + v*n = 1 x1
esiste MCD(x,n) = 1.
Teorema: MCD(x,y)=MCD(x,y mod x) Algoritmo euclideo: calcola il MCD(x,y)
applicando ricorsivamente il teorema. Algoritmo euclideo esteso (tiene traccia di
variabili di stato) rn=unx+vny
Zn insieme dei numeri risultati possibili delloperazione (mod n)
Zn+ insieme dei numeri risultati possibili delloperazione (mod n) che sono coprimi
con n 0 non appartiene a nessun Zn+ perch MCD(0, n) sempre n e quindi non
esistono numeri coprimi con 0!
Zn+ un gruppo abeliano a Zn* a-1 Zn*; Loperazione di gruppo
(moltiplicazione) associativa e commutativa; contiene lelemento identit (1);
chiuso (a,b Zn* ab Zn*) Linsieme ottenuto moltiplicando un elemento di Z n*
per tutti gli elementi di Zn* ancora Zn* permutato
Zn = {0, 1, 2, 3, 4, 5, 6, 7}; Zn* = {1,3,5,7}

TEOREMA DEL RESTO CINESE


k

Sia

N= ni
i=1

con MCD(ni,nj)=1 con i j (ni e nj sono coprimi), la relazione X

{x1,..,xk} t.c X Zn e xi=X mod ni, 1 ik, una biiezione Un qualsiasi numero
(grande) X mod N pu essere rappresentato da un insieme di numeri {x i= X mod ni,
1 ik i} La relazione tra Zn e il prodotto cartesiano Zn1x..xZnk una biiezione
utile perch permette di decomporre la manipolazione di grandi numeri X mod N nella
manipolazione di piccoli numeri xi mod ni (se ni sono coprimi il resto della divisione di X
per N completamente determinato dai resti delle divisioni per gli n i)
di Eulero (Toziente)
(n) |Zn*| Th. Per ogni numero primo n (n) = (n-1) [un numero primo n
coprimo con ogni numero x<n]; |Zn*|=|Zn|-1 [tutti gli elementi coincidono a meno dello
0]; Th. Per ogni n=pq t.c p e q sono primi, allora (n)=(p)(q)=(p-1)(q-1) il
teorema valido anche se p e q sono COPRIMI.
Teorema di EULERO
Per ogni x Zn*, x(n)=1 mod n
Corollario per ogni x Zn* , per ogni k 0, xk(n)+1=x mod n x1 mod (n)=x mod n
Generalizzazione per ogni n=n1n2; n1,n2 primi, per ogni x Zn, per ogni k 0, xk(n)
+1
=x mod n
DIFFIE-HELLMAN
Deriva una chiave temporanea di sessione senza credenziali preesistenti basato
sulla complessit del calcolo dei logaritmi discreti facile calcolare b=ai mod p,
difficile trovare i dati a,b e p

Protocollo debole se p non un numero primo sicuro (p sicuro se (p-1)/2 primo).


Diffie-Hellman deriva una chiave effimera NON autenticata attacco man-in-themiddle
Utilizzabile solo con altri meccanismi che autentichino lo scambio.
Calcolare p e g complesso!

Rivest-Shamir-Adleman (RSA)
Garantisce confidenzialit, firma digitale e setup di chiavi effimere basato sulla
difficolt di fattorizzare in due numeri primi facile calcolare n=pq, difficile trovare p
e q dato n
RSA usato come cifrario risulta essere un block cipher asimmetrico in cui b deve
essere minore di log2n.
Basato sul teorema di eulero!

Confidenzialit se ci=mie mod n cid mod n = mied mod n = mi1 mod (n) mod n = mi
[per th. di Eulero].
m deve essere pi corto di n (2b < n) Kpub={e, pq} Kpriv={d=e-1 mod (n), pq}
mi=(mie mod n)d mod n
=(mieemod(n)) mod n
per proteggere i dati da Bob verso Alice, Alice deve mandare la sua chiave pubblica a
Bob [problema] come fa Bob a autenticare la chiave pubblica di Alice? RSA non
usato per garantire confidenzialit per via del vincolo sulla dimensione del messaggio

Firma Digitale Alice manda a Bob {m, f(MDC(m))} [importante 2nd preimage
resistance] Alice firma MDC(m) con la sua chiave privata e manda tutto a Bob che
pu decriptare il messaggio con la chiave pubblica di di Alice

Setup di chiavi effimere lunico modo pratico per usare RSA per garantire
confidenzialit della chiave effimera. dopo questo scambio posso comunicare con
algoritmi simmetrici (pi efficenti di RSA e posso usare messaggi lunghi quanto voglio)
RSA usato in pratica solo su stringhe piccole ~200bit ( computazionalmente
inefficiente e non pu essere usato se non come CBC o ECB).
RSA sicuro se n il pi grande possibile, lunghezza minima 512/1024 bit ~ 150 cifre
decimali d,e abbastanza grandi si utilizzano espedienti matematici per calcolare
lesponenziazione
Come vengono scelti p e q? scegli un numero grande x a caso, verifica che sia
primo (probabilit=1/lnx)
Problema Teorema piccolo di Fermat: dato x primo, per ogni y y x-1 = 1 mod x
questo teorema verificato con probabilit ~ 10 -13 anche per numeri NON primi e

alcuni valori di y per i numeri di Carmichael (non primi) questo vale per qualsiasi y
TEST NON DETERMINISTICO
La chiave pubblica e pu essere una costante 3, 17 o 65537 (216+1)ho dei
vantaggi nel scegliere e costante, primo e piccolo, vantaggi computazionali.
Se e=3 ho problemi se m < n m3 mod n = m3 calcolo m semplicemente
facendo radice cubica soluzione aggiungo padding; altro problema se Alice
manda lo stesso m a 3 destinatari diversi Trudy li intercetta (m 3 mod n1, m3 mod n2, m3
mod n3) e tramite il th. del resto cinese m3 mod n1n2n3 =m3
Come calcolare Kpub e Kpriv
1.
2.
3.
4.
5.
6.
7.
8.

Scegli e (e.g e=3)


Scegli un numero dispari grande ( 512 bit) y x= 3y+2 (x-1) coprimo con e
Verifica che x sia primo, se fallisci torna a 2
q=x
ripeti 2,3 e trova p
n=pq, (n)=(p-1)(q-1)
Usa lalgoritmo di euclide per trovare d = e -1 mod (n)
Kpub(e, n) e Kpriv(d, n)

Attacchi: fattorizzo n (algoritmi inefficienti), ricerca esaustiva di d (aumento


dimensione di n RSA diventa lento), trovare (n) (complicato come fattorizzarlo),
man-in-the-middle (causato da chiave pubblica non autenticata), smooth numbers
attack
Se m pu assumere valori solo in un insieme piccolo e finito, posso calcolare ogni
possibile testo cifrato con la chiave pubblica e poi compararlo con ci che vedo sulla
rete. soluzione concatenare m con un numero casuale prima della cifratura
Public Key Cryptography Standard (PKCS)
Standard che definisce le regole su come usare RSA come codificare le keypairs,
come codificare una firma, come codificare e fare padding di messaggi piccoli prima di
criptarli o firmarli tutte regole che minimizzano la possibilit di attacchi chiavi di
almeno 1024 bit
PROTOCOLLI CRITTOGRAFICI
Un protocollo criptografico un algoritmo distribuito che gira tra n 2 entit, che
specifica le azioni da intraprendere per raggiungere un obiettivo specifico di sicurezza.
come usare algoritmi crittofrafici per ottenere autenticazione, confidenzialit,
integrity protection
PROTOCOLLI DI AUTENTICAZIONE
Autenticazione del messaggio: prova di origine + protezione di integrit (MAC) o
prova di origine + protezione di integrit + non ripudio (firma digitale) non
devono essere per forza fatte in real time
Autenticazione di entit: identificazione, tramite qualche sorta di prova, delle entit
che partecipano allesecuzione di un protocollo deve essere fatta in tempo reale
Requisito base Autenticazione, deve permettere che A autentichi B, ovvero accerti
lidentit di B tramite delle prove (qualcosa che sa, che possiede o impronte
biometriche)

Deve essere non trasferibile A non deve essere in grado di riusare i dati scambiati
con B durante lesecuzione del protocollo per impersonare B in una comunicazione con
C
Deve essere robusto contro le false identit il protocollo deve minimizzare la
possibilit di C di impersonare B anche quando: C pu vedere un qualsiasi numero di
autenticazioni tra A e B; C pu eseguire un qualsiasi numero di autenticazioni sia con A
che con B o entrambi; Stiano girando pi istanze del protocollo allo stesso momento.
PROTOCOLLI BASATI SU PASSWORD
Comuni perch autenticarsi tramite password conveniente esistono protocolli
password-base forti e deboli
Protocollo debole basato su password la password non cambia frequentemente;
suscettibili a attacchi di dizionario sia online che offline; la password trasmessa o
salvata in chiaro.
Password Authentication Protocol (PAP) [Weak]

A invio A (identit) e la password, io guardo nella tabella lhash e il salt di A. Se


h=MDC(pwd|salt) ricavato dal salt che conosco e dalla password che mi ha mandato
Alice uguale allhash che so appartenere ad Alice e che ho recuperato dalla tabella
insieme al salt allora ho autenticato Alice.
Problemi man-in-the-middle; serve canale sicuro, Io posso fare finta di essere Alice,
attacchi dizionario sulle password nel DB Il sale serve a complicare questo tipo di
attacchi perch h sar diverso anche per pi di un utente con la stessa password.
DeboleNON USARE!

Challenge Handshake Authentication Protocol (CHAP) [Weak]

Alice comunica la sua identit, io cerco la password di chi alice dice di essere e genero
c a random, resitutendolo a Alice. Alice provveder a calcolare r = MD5(user|pwd|c) e
inviandomelo. Io calcolo r=MD5(user|pwd|c) e se coincidono allora ho autenticato
Alice
Problemi Attacchi dizionario su r, DB delle password in chiaro, se c non un buon
random replay attack
NON USARE CHAP!
One-time passwords (Lamports hash) [Semi-Weak]

Alice dice al server che lei; il serve controlla nel DB e trova n e h n di alice e rimanda
ad alice la challenge n.
Alice calcola hn-1=fn-1(pwd) (fn = MDC(MDC(MDC())) n volte) e lo rimanda indietro al
server il server computa hn = f(hn-1) se hn = hn Alice autenticata e il server
salva nel database (hn-1, n-1) quando n=0
Possibilit di usare il salt per evitare attacchi dizionario offline
Propriet di non trasferibilit (limitata) anche se trudy si finge AS, non pu usare le
informazioni che sgama per impersonare Alice per pi di un giro
Problemi man-in-the-middle, autenticazione non mutua

Encrypted Key Exchange (EKE) [Strong]

Idea autenticare uno scambio di Diffie-Hellman tramite password


Calcolo w=MDC(pwd) e uso w come chiace per A = E w(gSa mod p) [Sa random 1Sap;
g=generatore di Zp*] invio Alice (identit), A, g, p. Bob (che deve conoscere la pwd)
calcola w = MCD(pwd), c1= random(), K= g SaSb mod p e B=Ew(gSb mod p, c1) [Sb
random 1Sbp] e invia a Alice Bob (identit), B Alice calcola K=gSaSb mod p e
c2=random() e invia a Bob Ek(c1,c2) Bob decifra Ek(c1,c2) e restituisce a Alice Ek(c2)
(questi passaggi verificano che entrambi abbiano ricavato la chiave corretta)
Propriet Mutua autenticazione, resistenza a attacchi dizionario offline, setup di
chiavi effimere
AUTENTICAZIONE FORTE
Idea base B chiede ad A di trasformate una challange insieme ad un segreto s.
Challenge Nonce (Numero random); Numero sequenziale (c bisogno di stato
costoso); Timestamp (necessit sincronizzazione costoso)
Propriet principale Lautenticazione fatta tramite un segreto s che A non ha
bisogno di svelare durante lesecuzione del protocollo generalmente il segreto s
non una password per resistere a attacchi dizionari pu essere una chiave
condivisa crittograficamente sicura oppure una chiave privata.
La challange e la risposta devono essere variabili nel tempo in maniera da resistere a
attacchi di replay
ISO/IEC 9798-2/4 (challenge-response simmetrico)

Dove salviamo s ? scriverlo, salvarlo su hd, usb etc non sicuro SecurID o
CryptoCalculator

ISO/IEC 9798-3 (challenge-response asimmetrico)

ZERO KNOWLEDGE PROOF PROTOCOLS


Idealmente permettono a B di autenticare che A conosce qualcosa, senza che riveli
qualcosa a B.
B non sapr nulla (0-Knowledge) del segreto di A.
I protocolli challenge-response basati sulla cifratura asimmetrica sono vicini ad avere
questa propriet
ZK introducono la nozione di autenticazione probabilistica ad ogni passaggio
durante lesecuzione del protocollo B sempre pi certo dellidentit di A se
lalgoritmo buono gi dopo pochi step sei molto vicino ad avere probabilit 1 di
autenticare A
Fiat-Shamir [probabilistico]

Th. calcolare la radice quadrata di un numero mod n complesso come fattorizzarlo.


Vedi slide.
Vedi slide attacchi.

SETUP DI CHIAVI EFFIMERE


Le chiavi effimere devono sempre essere esplicitamente autenticate ci sono
garanzie oggettive che solo le parti attive e autenticate le conoscono (possono essere
pi di due parti)
C una forte connessione tra lautenticazione dellentit e quella delle chiavi effimere
generalmente, le chiavi effimere sono derivate,generate o trasportate durante
lesecuzione di un protocollo di autenticazione
Le chiavi effimere durano una sola sessione (a differenza di quelle master che durano
pi di una sessione).
Cambiare spesso le chiavi effimere limita il numero di messaggi che lattacante pu
analizzare nel caso sia scoperta una chiave effimera solo i dati protetti da quella
possono essere analizzati anche dalla stessa chiave master Alice pu derivare
CONTEMPORANEAMENTE chiavi effimere diverse per comunicare con la stessa persona
(o con persone diverse contemporaneamente)
Perfect Forward Secrecy (PFS)
Propriet ideale!
Un protocollo offre PFS se compromettendo la chiave master al tempo t lattaccante
non pu derivare nessuna chiave effimera generata al tempo t-1 --> un protoccolo
offre forward secrecy (non perfect) se compromettere una chiave effimera di
sessione non basta a compromettere le chiavi future e passate
e.g EKE offre PFS se A e B cancellano Sa, Sb, K dopo la fine della sessione; Ogni
meccanismo che trasporta la chiave effimera, criptata con la chiave master NON pu
offrire PFS
NB. Anche se un protocollo offre PFS, una volta scoperta la chiave master tutte le
sessioni future sono compromesse
Importante questi protocolli devono resistere a attacchi a chiave conosciuta Le
chiavi effimere sono usate per cifrare molti pi dati di quelle master e quindi si hanno
pi dati a disposizione per montare attacchi di criptanalisi
Tipologie:
Kt trasportata A,B o Z (AuthServer) generano Kt Kt poi protetta con la
chiave master Efficienza di rete, semplicit NO PFS, difficile proteggersi da
attacchi di replay
Kt derivata A e B si scambiano quantit usate per calcolare K t ogni entit
partecipa alla generazione di Kt possibile PFS, facile avere a che fare con replay
attack complesso e inefficiente

Kt TRASPORTATA

Key Distribution Center (KDC)


La distribuzione tra n copie richiederebbe che ogni nodo conosca n-1 chiavi master
non scalabile KDC
Una chiave master per utente deve essere condivisa tra il nodo e KDC (fidato da tutti)
intermediario per autenticazione e setup della chiave effimera
Approccio scalabile, aggiungere nuovo nodo = salvare una nuova chiave nel KDC; se
un nodo compromesso solo la sua ciave corrispondente nel KDC deve essere
resettata
La sicurezza della rete tutta basata sulla sicurezza del KDC; il KDC un collo di
bottiglia
e.g KERBEROS v5
Certification Authorities (CA)
Protocollo a N parti con chiavi asimmetriche il problema diventa lautenticazione
delle chiavi pubbliche
Il CA il corrispettivo del KDC nel caso di chiavi asimmetriche Il CA un
intermediario tra A e B e certifica lautenticit e lintegrit delle loro chiavi pubbliche
Certificato SCA(KpubA, A), una prova verificata dalla firma di CA che una particolare
chiave pubblica appartenga a una data entit
Ogni parte deve conoscere KpubCA, tutti si devono fidare del CA; CA lavora offline: pi
sicuro e scalabile del KDC

Kt DERIVATA

Entrambe le parti contribuiscono a generare K t si usano nonces per evitare attacchi


di replay mentre i numeri random ra, rb sono usati per calcolare Kt= MDC(ra|rb) Ek
deve garantire confidenzialit e protezione di integrit
Station To Station (STS)

Basato su una versione autenticata di Diffie-Hellman coppie di chiavi


pubblica/privata (possibilmente certificate) sono usate per autenticare Diffie-Hellman
base Kt=gSaSb mod p PFS GARANTITA
Lo scambio delle chiavi criptate con K t assicura che entrambe le parti posseggano la K t
giusta e che chi la ha cogenerata sia lo stesso che ha creato la firma costo
computazionale alto

Autenticazione delle chiavi pubbliche Alice deve avere la Kpub di Bob e Bob quella di
Alice, quando ricevo una chiave pubblica come faccio a sapere che sia effettivamente
la chiave pubblica della persona alla quale io credo che appartenga? non basta la
coppia {Kpriv, Kpub} una terza parte fidata da entrambi deve garantire questa cosa.
Un certificato criptografico CERTID linka un ID (identit) a una chiave pubblica
CERTAlice = {Alice, KpubAlice} garantito da una Certification Authority (CA) tramite la firma
del certificato serve una copia autentica della chiave pubblica dellente
certificante
Public Key Infrastructures (PKI) definiscono protocolli, politiche e meccanismi
necessari per garantire lautenticazione delle chiavi pubbliche

CERTIFICATI X.509

Specifica tutto ci che correlato ai servizi di autenticazione


Nella signature mi dice anche che algoritmo e i parametri usati per creare la firma
Ogni sistema di certificazione deve implementare un meccanismo di revoca dei
certificati due meccanismi: implicito (expiration date) o esplicito(revoca da parte
dellente) quando chiave privata dellente certificato non pi valida, rubata, persa
etc.
Certificate Revocation Lists (CRL)
Ogni CA periodicamente rilascia una CRL contenente Emittente, Ultimo
aggiornamento, Prossimo aggiornamento, lista di numeri seriali dei certificati revocati
e la data in cui sono stati revocati il tutto protetto dalla firma digitale del CA
Come distribuire la KPubCA lo stesso problema per il quale abbiamo avuto bisogno del
CA, autenticare chiavi pubbliche di solito distribuita tramite CERTCA
autocertificazione se il CA un root CA, rilasciato da un altro CA
Architetture dei PKI Monopoli CA singolo globale o CA root singolo con gerarchia di
CA sottostanti
Oligarchia molti CA root allo stesso livello
Oligarchia/Gerarchia molti CA root con delegazione di spazi dei nomi (tipo DNS)
Anarchia ognuno si comporta da CA, i certificati sono generati direttamente
dallutente

La sicurezza di sistemi basati su CA si fonda sulla sicurezza dei meccanismi usati per
distribuire i certificati (che devono assicurare integrit e autenticit) e sulla
protezione della KPrivCA il CA e la sua KPrivCA devono essere tenuti offline e disconnessi
da qualsiasi rete
necessario identificare gli utenti prima di rilasciare certificati prima di rilasciare
CERTA devo accertarmi che chi lo richiede sia A e che K pubA sia effettivamente la chiave
pubblica di A. mancano procedure standard
I certificati sono pubblici e non necessitano di protezione crittografica extra sono
autenticati e la loro integrit garantita dalla firma del CA.
MECCANISMI DI AUTENTICAZIONE SENZA CRITTOGRAFIA
Possono proteggere solamente da attacchi che arrivano da nodi che non sono sul
percorso tra sorgente e destinazione
Problema fondamentale adress spoofing e.g IP, un attaccante manda pacchetti
con indirizzo di sorgente settato come quello di qualcun altro
Transmission Control Protocol (TCP) [Non crypto auth]

Three-Way-Handshake i pacchetti con SYN bit servono per sicnronizzare i SEQ


(sequence numbers) di client e server Se lACK x+1 corretto il server rifiuta la
connessione con un pacchetto RST Solo il client o qualcuno sul percorso clientserver pu mandare ACK corretto il client autenticato dal proprio IP

IP SPOOFING SEQ PREDICTION

Questo attacco funziona con singolo pacchetto perch lattaccante non pu continuare
la comunicazione in modo coerente visto che non pu leggere le risposte vengono
inviate allIP spoofato canale TCP unidirezionale
Se il target avvia la comunicazione senza ulteriori autenticazioni oltre il 3WH lattacco
ha successo MAI USARE TCP per Autenticazione
Domain Name System (DNS) [Non crypto auth]

Challange di 3 parametri mandata col pacchetto (1) [indirizzo destinazione, porta


destinazione, transaction ID Il pacchetto (2) ritenuto valido solo se lindirizzo
sorgente(2)=indirizzo destinazione(1); porta destinazione(2)=porta sorgente(1) e
hanno stesso transaction ID.
Funziona fintanto che cnon ci sono attacci attivi sul percorso tra resolver e NS
autoritativo e il resolver implementato correttamente

Attacchi Off-path a server DNS


Caso di generatori Transaction ID scarsi

I pacchetti (1) e (2) sono usati per capire come funziona il generatore di Transaction ID
e la porta sorgente del resolver. (3) comincia lattacco i pacchetti (6) usano lIP
del NS sotto attacco conoscendo predicendo la Transaction ID. Se i pacchetti (6)
arrivano prima del pacchetto (5) lattacco ha successo e la cache del resolver sar
contaminata (si pu usare un attacco DoS sul NS attaccante per evitare che possa
mandare (5))
SERVIZI DI SICUREZZA SULLE RETI IP
Transport Layer Security (TLS)
Suite di protocolli definiti per offrire sicurezza alle applicazioni, lavora tra TCP (o UDP)
e livello applicazioni garantisce Autenticazione, Protezione di integrit e
Confidenzialit vuole garantire un canale sicuro e autenticato basato su chiavi
effimere derivate da credenziali criptografiche pi lunghe x.509; PSK; Kerberos;
OpenPGP; Secure Remote Passwords (SRP)
Architettura TLS Record protocol: TCP + Sicurezza Handshake protocol: gestisce
tutti i parametri di sicurezza e lautenticazione, introduce il concetto di sessione entro
la quale si possono stabilire pi connessioni (perch derivare le chiavi effimere
costoso) Change CipherSpec: messaggio di 1 bit che segnala la fine del testo in
chiaro dellhandshake Alert: gestisce la segnalazione di errori

TLS HANDSAKE PROTOCOL

Obiettivi Autenticazione di B ad A (opzionalmente anche da A a B), setup di chiavi


effimere di sessione Kms (master secret), come seed per una o pi chiavi di
connessione
NB A=client; B=Server
I messaggi dellHandshake protocol sono trasportati dal TLS Record Protocol
RA, RB numeri random; AuthA = SIGKprivA(hash(previous_messages)); PMS premaster secret, numero random scelto da A; Kms = fPMS(RA, RB) f MAC function
derivada da SHA1 e MD5; hashA/B=gKms({client/server}, messaggi_precedenti) g
unaltra funzione MAC derivata da SHA1 e MD5
A manda una lista di suite di cifratura a sua disposizione e un numero casuale R A B
sceglie una delle suite di cifratura e la comunica ad A insieme a CERT B, RB, e a un id di
sessione sess_id A risponde (eventualmente autenticandosi con un suo certificato
CERTA e AuthA) con il PMS cifrato con la chiave pubblica di B e con un hash criptato con
la Kms (per accertarsi che entrambi abbiano la stessa chiave) B risponde a sua volta
ritornando un hashB criptato con la Kms (per accertarsi che abbiano la stessa chiave)
A questo punto abbiamo instaurato una sessione TLS A autentica B
(eventualmente in entrambe le direzioni) dal fatto che B in grado di decriptare PMS
con la chiave privata associata a CERTB La sessione identificata da (Kms, sess-id)
ora possibile instaurare una o pi connessioni TLS derivando le chiavi effimere
necessarie partendo da Kms. il traffico sar protetto da queste connessioni allinterno
del record protocol. attraverso unespanzione (simile a quella usata per ricavare K ms
da PMS) di chiave sono derivate da Kms 3 coppie di chiavi
Client write MAC (per le funzioni MAC), client write (per la codifica), client IV
(initialization vector) (Kcm, Kc, IVc) [e le rispettive chiavi per il server (Ksm, Ks, IVs)]

Ripresa di una sessione una volta che stata instaurata una sessione, A e B
possono derivane di nuove senza rieseguire lo scambio iniziale ma utilizzando una
copia ancora valida di (sess-id, Kms). per possibile rinegoziare la cipher suite, R A e
RB.
Codifica dei dati

Il TLS record protocol, una volta attiva una sessione, protegge tutti i dati degli utenti e
i messaggi successivi in TLS MAC=HMAC
NB il primo record TLS inviato data una connessione deve usare lIV derivata da K ms,
i record successivi usano come IV gli ultimi byte dei record precedenti (v1.0) o altri
meccanismi (v1.1)
TLS principalmente usato per rendere sicure le connessioni http one way auth; il
client si autentica a livello applicazione
TLS soggetto a attacci di tipo DoS
IPSEC
Implementabile in HW e non necessita modifiche a livello applicazione, richiede
modifiche ai kernel del SO.
Security Association (SA) una SA tra due nodi si riferisce a una connessione
criptograficamente sicura tra i due nodi insieme di algoritmi, parametri e dati
richiesti al fine di mettere in sicurezza la comunicazione tra due nodi (servizi:
autenticazione, protezione di integrita etc.; algoritmi crittografici: 3DES, AES, CBCmode, chiavi, ; Identit dei nodi: Indirizzo IP etc.)
SA in IPSec unidirezionale, per comunicazioni a due vie servono due SA.
Security Parameters Index (SPI) + indirizzo IP = SA verso quel nodo
Architettura IPSec Internet Key Exchange: usato per negoziare le SA di IPSec
Security Policy Database (SPD): Elenco che tiene traccia di quali pacchetti vanno cifrati
e quali no Secuirty Association Database (SAD): contiene le SA e i corrispettivi SPI
IPSec Packet Handling: implementa Encapsulating Secuirty Payload (ESP) e
Authentication Header (AH), applica le policy dettate dallSPD per ogni pacchetto con i
parametri specificati dal SAD
Transport Mode Aggiunta di un Header al pacchetto, massima efficienza, end-to-end

Tunnel Mode Tutto il pacchetto diventa il payload di un altro pacchetto IPSec, meno
efficiente, pu essere implementato su router e firewall senza coinvolgere gli endnodes
ESP confidenzialit, autenticazione, protezione di integrit, non processa lheader IP
esterno. La cifratura dellintero pacchetto nasconde lintero payload ai nodi interni
AH autenticazione, protezione di integrit; protegge lintero pacchetto, compreso
lheader esterno. Problemi con campi mutabili e immutabili, non c cifratura!
IKE v2
Lavora su UDP usa credenziali a lungo termine per autenticare mutuamente A e B,
negoziare gli algoritmi crittografici e tutti i parametri necessari a stabilire una o pi
coppie di SA tra a e B, comprese le chiavi effimere.
IKE garantisce SEMPRE Perfect Forward Secrecy (PFS)
Linitial exchange deriva due SA IKE_SA derivato dalle master keys e CHILD_SA
(chiave effimera) derivato da IKE_SA e usato per proteggere effettivmanete i dati
La derivazione delle SA si basa su Diffie Hellman
[vedi slide]
IKE DoS trudy manda un sacco di messaggi di tipo 1 da molte macchine o
spoofando un sacco di IP. Bob deve instanziare e mantenere un sacco di stati (SPI A, NA
etc.) per ogni connessione Bob finisce la memoria
IPSec implementato su tutti i modem router, su tutti i sistemi operativi moderni sia
server che desktop
AUTENTICAZIONE IN RETI WIRELESS
Le reti wireless hanno caratteristiche tali per cui servono attenzioni speciali laria
pi propensa a attacchi passivi, banda minore e latenza maggiore del cavo per cui
protocolli devo essere pi leggeri; Lautenticazione diventa un argomento di MASSIMA
importanza i meccanismi di sicurezza devono essere veloci ed efficienti per
supportare operazioni real time, inoltre i dispositivi mobili hanno potenza
computazionale limitata
Autenticazione nelle reti GSM
Obiettivi autenticazione a senso unico: la rete autentica lutente. Derivazione di
chiavi effimere. Mantenere segreta lidentit del Mobile System (MS) quando possibile.
Credenziali di autenticazione IMSI (International Mobile Subscriber Identity), Ki
(salvati nella SIM); IMEI (International Mobile Equipment Identity), numero
identificativo del telefono, non della SIM.
La SIM salva anche altri dati e algoritmi per lautenticazione e la sicurezza nelle reti
GSM
A3 Algoritmo di autenticazione; A5 Confidenzialit; A8 generazione delle chiavi
GSM pu controllare lo stato di terminali mobili identificati dallIMEI: white OK; grey
Sotto controllo; black e.g Cell rubato

PROTOCOLLO DI AUTENTICAZIONE GSM

HLR Sa tutti gli IMSI degli utenti


Il messaggio (A) Contiene pi di un Auth.Vector cos MSC/VLR pu fare n
autenticazioni di MS senza ricontattare HLR Auth.Vector Contiene: RAND
challenge, SRES risposta attesa, Kc chiave effimera usata da A5 per
confidenzialit
Con (3) MSC/VLR manda la challenge RAND i al MS che calcola Kc e SRES tramite
algoritmi A3 e A8 dopodich invia RES al MSC/VLR MSC/VLR verifica che RES=SRESi
e autentica il cliente che ha saputo calcolare RES.
GSM un fallimento Security by oscurity fa sempre schifo
I meccanismi criptografici proteggono i dati solo nellaria (a terra dipende tutto dalla
sicurezza della rete di terra). In GSM gli algoritmi usano solo chiavi a 64bit (poco).
Inoltre lautenticazione one-way posso costruire una stazione base GSM finta
(Illegale tipo in tutte le nazioni conosciute e non) ma il problema nasce quando uso le
SIM in altri ambiti tipo 802.11.

AUTENTICAZIONE E SICUREZZA NEL UMTS

Protocollo di mutua autenticazione le parti attive sono il MS, VLR (SGSN per
modalit a commutazione di pacchetto e MSC per modalit a commutazione di
circuito) e HLR/AuC
Obiettivi mutua autenticazione tra MS e rete, setup di chiavi effimere per la
protezione di integrit e confidenzialit (della posizione del MS, dei dati e dell IMSI se
possibile)
Le credenziali del MS sono salvate nella USIM ID (IMSI,TMSI,P-TMSI), credenziali
crittografiche (K precondivisa tra AuC e USIM)
Credenziali dell HLR/AuC K precondivisa
Algoritmi crittografici f1-f5, f8-f9, algoritmi pubblicamente rilasciati e analizzati
prima della standardizzazione

Autenticazione AKA

Il messaggio (1) permette a AuC di identificare il terminale


Il messaggio (2) contieni gli AV, ognuno contenente XRES: risposta attesa, AUTN:
valore che permette a MS di autenticare la rete e infine le chiavi effimere
Il messaggio (3) contiene RAND: la challenge della rete a MS, AUTN la risposta alla
richiesta del MS alla rete di autenticarsi
Il database AuC contiene record IMSI K, SQN, f1-f5 sono algoritmi MAC con K come
parametro segreto

Anda mungkin juga menyukai