Académique Documents
Professionnel Documents
Culture Documents
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
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
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
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
Uso il meglio dei due mondi spesso difficile far si che Dk risulti facilmente
derivabile da Ek
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.
Deriva 16
sottochiavi, una per
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)
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)
Counter (CTR)
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
MDC: Matyas-Meyer-Oseas
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
Sia
N= ni
i=1
{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
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.
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]
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
Dove salviamo s ? scriverlo, salvarlo su hd, usb etc non sicuro SecurID o
CryptoCalculator
Kt TRASPORTATA
Kt DERIVATA
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
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]
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]
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
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 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