TIMING ATTACK AD RSA MARCO CALDERINI domenica 15 maggio 2011 IDEA DEL TIMING ATTACK gli algoritmi di crittografia eseguono i calcoli in tempi non costanti time difference d=1001001 l’idea di base è sfruttare queste misurazioni per ottenere informazioni sulla chiave privata domenica 15 maggio 2011 RSA crittosistema a chiave pubblica ideato da Rivest, Shamir e Adleman nel 1978 generare le chiavi pubbliche e le chiavi private ✓ si generano due numeri primi p e q distinti ✓ si calcolano n = pq e φ(n) = (p − 1)(q − 1) ✓ si sceglie e ∈ Zφ(n) tale che M CD(e, φ(n)) = 1 ✓ si calcola d ∈ Zφ(n) tale che de ≡ 1mod(φ(n)) ✓ la chiave pubblica sarà (e, n) e quella privata (d, n) domenica 15 maggio 2011 RSA cifratura C = M mod(n) e M M e mod(n) decifratura M = C d mod(n) = M ed mod(n) C d mod(n) firma S = M mod(n) d domenica 15 maggio 2011 d M M mod(n) M ALGORITMO LEFT-TO-RIGHT algoritmo proposto da Rivest, Shamir e Adleman per svolgere l’esponenziale modulare se il bit è 0 viene calcolato solo il quadrato se il bit è 1 viene calcolato il quadrato e la moltiplicazione domenica 15 maggio 2011 TIMING ATTACK L’attaccante chiede ad Alice di firmare i messaggi M1 , ..., Mk e memorizza i tempi necessari alle firme T1 , ..., Tk L’attaccante ha a disposizione un PC identico a quello di Alice così da poter riprodurre i calcoli dell’algoritmo leftto-right con gli stessi tempi L’attaccante inizia a calcolare i cicli iterativi del FOR, uno alla volta ipotizzando ogni volta il valore del bit dell’esponente domenica 15 maggio 2011 TIMING ATTACK Per cominciare si considera il bit dw−1 M =⇒firmo tempo T� = 1 =⇒ firmo M tempo � ipotesi dw−1 = 0 ipotesi dw−1 calcolo S02 i con i,w−1,0 0 T1 − T�1,w−1,0 .. . Tk − T�k,w−1,0 k � i l’esponente 0 e ottengo il con l’esponente 1 e ottengo il Ti,w−1,1 1 T1 − T�1,w−1,1 .. . Tk − T�k,w−1,1 1 1 2 2 = S1 = (Ti,0 − T 0 ) k − 1 i=1 k−1 Ti − T�i,w−1,0 media differenze scelgo il bit che da la varianza minore domenica 15 maggio 2011 k � i=1 (Ti,1 − T 1 )2 TIMING ATTACK sia ora db un bit generico e dw−1 , ..., db+1 calcolati correttamente ipotesi db = 0 M con l’esponente d =⇒firmo ottengo il tempo T� i w−1 ...db+1 0 e i,b,0 ipotesi db = 1 M con l’esponente d =⇒firmo ottengo il tempo T� i i,b,1 calcolo 2 S0 2 S e 1 scelgo il bit che da la varianza minore domenica 15 maggio 2011 w−1 ...db+1 1e TIMING ATTACK IN DETTAGLIO Il tempo necessario per firmare un messaggio Mi è Ti = ei + w−1 � (si,j + ti,j ) j=0 errori di misurazione tempo di calcolo del quadrato tempo di calcolo del prodotto Il tempo necessario per firmare un messaggio Mi con l’esponente dw−1 ...db+1 h dove h è l’ipotesi per il bit db è T�i,b,h = domenica 15 maggio 2011 � j>b (si,j + ti,j ) + (si,b + � ti,b,h ) candidato per ti,b TIMING ATTACK IN DETTAGLIO se l’ipotesi su db è corretta Ti − T�i,b,h = ei + � (si,j + ti,j ) j<b se l’ipotesi su db è errata Ti − T�i,b,h = ei + � j<b (si,j + ti,j ) + (ti,b − � ti,b,h ) consideriamo le variabili aleatorie T, T�b,h , e, s, t tempo di tempo di della calcolo errori tempo tempo di di calcolo della firma con calcolo calcolo deldel firma esponentequadrato prodotto scelto domenica 15 maggio 2011 TIMING ATTACK IN DETTAGLIO varianza ipotesi corretta � � V ar(T − T�b,h ) = V ar e + s + t j<b j<b dj �=0 = V ar(e) + bV ar(s) + lV ar(t) varianza ipotesi errata numero bit non nulli V ar(T − T�b,h ) = V ar(e) + bV ar(s) + (l + 1)V ar(t) con l’ipotesi errata abbiamo una varianza maggiore di V ar(t) domenica 15 maggio 2011 PROBABILITÀ DI SUCCESSO s − N (µs , σs2 ) e t − N (µt , σt2 ) � j<b s+ � t− j<b dj �= 0 variabile aleatoria relativa colonna corretta 2 N (µ0 , σ0 ) e � j<b s+ � t + t − N (µ0 + j<b dj �= 0 variabile aleatoria relativa colonna errata dove µ0 = bµs + lµt e σ02 = bσs2 + lσt2 domenica 15 maggio 2011 2 µt , σ0 + 2 σt ) PROBABILITÀ DI SUCCESSO Consideriamo ora le k misurazioni del tempo delle firme e indichiamo con X e Y le variabili normali standardardizzate corrette ed errate rispettivamente, possiamo scrivere la tabella (V ar(e) ≈ 0) σ0 X1 + µ0 .. . σ0 Xk + µ0 colonna corretta domenica 15 maggio 2011 (σ0 X1 + µ0 ) + (σt Y1 + µt ) .. . (σ0 Xk + µ0 ) + (σt Yk + µt ) colonna errata PROBABILITÀ DI SUCCESSO poniamo Vi = σ0 Xi + µ0 e Wi = (σ0 Xi + µ0 ) + (σt Yi + µt ) 2 P r(SW > 2 SV ) = Pr = Pr � 1 k−1 � k � i=1 domenica 15 maggio 2011 k � 1 (Wi − W ) > k − 1 i=1 (Wi − W )2 > 2 k � i=1 k � i=1 (Vi − V )2 � (Vi − V ) . 2 � PROBABILITÀ DI SUCCESSO se k è sufficientemente grande V ≈ µ0 2 P r(SW > 2 SV ⇓� ) ≈ Pr = Pr W ≈ µ0 + µt k � (σ0 Xi + σt Yi ) > 2 (σ0 Xi ) 2 i=1 i=1 � k � k � (σ02 Xi2 + σt2 Yi2 + 2σ0 σt Xi Yi ) > i=1 = Pr � k � � (2σ0 σt Xi Yi ) + k � i=1 i=1 = P r 2σ0 domenica 15 maggio 2011 � k � i=1 Xi Yi + σt k � i=1 2 2 (σt Yi ) >0 � Yi2 > 0 � k � i=1 � (σ02 Xi2 ) PROBABILITÀ DI SUCCESSO =⇒ E(XY ) = E(X)E(Y ) = 0 sono standardizzate =⇒ E(X 2 ) = E(Y 2 ) = 1 X e Y sono indipendenti X eY i=1 2 Yi ≈ k � i=1 � E Y � 2 =⇒ = ⇒ k � =k V ar(XY ) = E(X Y ) − E(XY ) 2 2 = E(X Y ) = E(X )E(Y ) = 1 2 k � 2 Xi Yi segue la per il teorema del limite centrale i=1 distribuzione N (0, k) k � i=1 domenica 15 maggio 2011 Yi2si può approssimare con k 2 2 2 PROBABILITÀ DI SUCCESSO sia Z una variabile casuale standardizzata 2 P r(SW σ02 = � � √ � √ � √ σt k σt k 2 > SV ) ≈ P r(2σ0 ( kZ) + σt k > 0) = P r Z > − =Φ σ0 2 σ0 2 bσs2 3 + , supponiamo inoltre l = b 4 √ k 2 2 � P r(SW > SV ) ≈ Φ � � σs b 4 σt + 3 area sottesa dalla curva normale standard lσt2 col decrementare di b e aumentando il numero di messaggi k , aumenta la probabilità di determinare la chiave privata domenica 15 maggio 2011 possibili difese utilizzo di algoritmi con tempi di calcolo costanti non sempre pratico non sono possibili ottimizzazioni utilizzo di algoritmi che aggiungono ritardi casuali over-head non sono possibili ottimizzazioni RSA Blinding domenica 15 maggio 2011 RSA BLINDING si calcola un numero random r � e d S = (r M ) mod(N ) si computa −1 r r si considera l’inverso di , −1 � d r S = M mod(N ) si crea la firma eseguendo il calcolo il tempo impiegato per firmare il messaggio non è più correlato al messaggio in input, quindi non è possibile ottenere informazioni domenica 15 maggio 2011 CONCLUSIONI attacchi come il timing attack ci dicono che, anche se un sistema è matematicamente forte, in pratica, la sicurezza dipende anche dalla modalità di implementazione del sistema. La crittografia non deve essere esaminata in maniera isolata. La progettazione di un sistema sicuro dovrebbe comprendere ogni aspetto, crittografico e non. si presume che un aggressore attacca, sempre, l’anello più debole di un sistema. domenica 15 maggio 2011 FINE GRAZIE domenica 15 maggio 2011