Capire la crittografia white-box

Transcript

Capire la crittografia white-box
Capire la crittografia white-box
whitepaper
I sistemi crittografici tradizionali
non sono in grado di offrire una
protezione completa contro tutti
i possibili tipi di aggressione atti
a sfruttare le loro vulnerabilità
intrinseche.
Introduzione
In passato la crittografia permetteva di trasmettere informazioni sensibili (cioè segrete,
riservate o confidenziali) rendendole incomprensibili a chiunque eccetto il destinatario
del messaggio. La crittografia, utilizzata sin da tempi antichissimi, era una tecnica
particolare di sostituzione manuale del testo all’interno di un messaggio per oscurarne il
significato originale. Molti secoli dopo, durante la seconda guerra mondiale, la crittografia
venne ampiamente utilizzata con l’ausilio di macchine cifranti elettromeccaniche (come
la famosa “Enigma machine”). Oggi è ancor più diffusa, prevalentemente sotto forma di
programmi informatici basati su complesse formule matematiche.
La crittografia, come indica il nome stesso, si prefigge di occultare parti di testo a occhi
indiscreti utilizzando vari metodi. In teoria il concetto è semplice, ma i fatti hanno
dimostrato che numerosi fattori e aspetti ambientali possono influire negativamente
sulla robustezza delle chiavi di cifratura. I metodi tradizionali non sono infatti in grado di
fornire soluzioni capaci di resistere a tutti i vari tipi di attacchi degli hacker finalizzati a
individuare le vulnerabilità intrinseche dei sistemi crittografici.
Secondo una citazione del professor Peter G. Neumann, un esperto di sistemi informatici e
affidabilità e sicurezza delle reti, “Se pensate che la crittografia sia la soluzione al vostro
problema vuol dire che non sapete qual è il vostro problema.” 1
Questo documento esamina le tecniche crittografiche tradizionali, concentrandosi in
particolare sull’implementazione della crittografia white-box.
Un esame più approfondito della crittografia
Nelle implementazioni classiche di DRM (Digital Rights Management) gli algoritmi
crittografici sono parte della soluzione di sicurezza e si basano su formule note e
complesse abbinate a una chiave crittografica segreta. Nella maggior parte dei casi, però,
questa soluzione è del tutto inadeguata, dato che le piattaforme su cui molte di queste
applicazioni operano sono esposte al controllo di utenti finali potenzialmente ostili.
In genere si pensa alla crittografia come a un sistema black-box, dove si suppone che
l’aggressore non abbia accesso alla chiave crittografica, possa controllare solo l’input di
cifratura (testo semplice) e abbia accesso al relativo output (il testo cifrato). Per molto
tempo questi presupposti sono stati considerati validi anche per dispositivi hardware
come le smartcard, tuttavia gli attacchi degli hacker sfruttano le informazioni sfuggite alla
scatola nera (ad esempio nel caso delle aggressioni DPA, Differential Power Analysis) per
estrarre le chiavi segrete che questa utilizza.
1. Peter G. Neumann, citazione del New York Times del 20 febbraio 2001.
Capire la crittografia white-box
1
I sistemi di crittografia più
diffusi, ad esempio AES,
non sono stati concepiti
per operare in ambienti
dove è possibile osservarne
l’esecuzione. Infatti, i modelli
crittografici tradizionali
presuppongono che gli
endpoint (PC e token
hardware di protezione) siano
completamente sicuri.
Ciò ha in effetti permesso agli hacker di condurre attacchi di tipo non black-box, di
conseguenza queste implementazioni finiscono per essere più “grigie” che nere. 2
L’esigenza della crittografia white-box
I sistemi di crittografia più diffusi, come ad esempio AES, non sono stati concepiti per
operare in ambienti dove è possibile osservarne l’esecuzione. Infatti, i modelli crittografici
tradizionali presuppongono che gli endpoint, ad esempio i PC e i token hardware di
protezione, siano completamente sicuri. Se questi endpoint si trovano in un ambiente
potenzialmente ostile gli hacker che monitorano l’esecuzione dell’applicazione potrebbero
essere in grado di vedere direttamente le chiavi crittografiche e quindi cercare di estrarre
dalla memoria le chiavi embedded o generate dall’applicazione. Si tratta di un problema
comune nell’applicazione dei diritti DRM per le applicazioni software di PC, decoder IPTV
e altri dispositivi di elaborazione dati. Monitorando attivamente le API crittografiche
standard o i dump della memoria, gli hacker sono in grado di estrarre la chiave o chiavi
utilizzate. Un esempio: in alcuni casi di hacking le chiavi vengono estratte dalla memoria
permettendo così allo strumento BackupHDDDVD di copiare DVD protetti rimuovendo i
DRM dal contenuto media protetto di Windows.
I problemi della crittografia white-box
La cifratura delle informazioni di valore, come ad esempio la licenza e gli altri segreti
commerciali, pone vari problemi quando si opera in un ambiente totalmente trasparente:
• Come cifrare/decifrare i contenuti senza rivelare direttamente parti della chiave e/o
dati?
• Come attuare robusti meccanismi crittografici, pur sapendo che gli hacker possono
osservare e/o modificare il codice durante l’esecuzione?
I diversi modelli di crittografia
La crittografia black-box (tradizionale)
Nei sistemi crittografici tradizionali di tipo black-box si presuppone che l’aggressore
non abbia accesso fisico alla chiave (l’algoritmo su cui si basa il processo di cifratura/
decifratura) né ai sistemi interni, ma che possa soltanto osservare le informazioni e i
comportamenti esterni. Tali informazioni consistono nel testo semplice (input) o cifrato
(output) del sistema, mentre si suppone che l’hacker non abbia alcuna visibilità dei codici
di esecuzione e delle operazioni di crittografia dinamica.
Black Box
testo semplice
Testo cifrato
Chiave
2. Amitabh Saxena, Brecht Wyseur, and Bart Preneel, Towards Security Notions for White-Box Cryptography
Capire la crittografia white-box
2
La crittografia grey-box
Nel modello grey-box si presuppone che l’aggressore abbia accesso fisico parziale alla
chiave, oppure che sia in grado di impossessarsi di informazioni di canale secondarie
fuoriuscite dalla stessa. Gli attacchi basati sull’approccio Side Channel Analysis
(SCA) sfruttano le informazioni sfuggite durante l’implementazione fisica dei sistemi
crittografici, che vengono passivamente desunte dai dati relativi ai tempi di elaborazione,
ai consumi energetici, alle radiazioni elettromagnetiche, ecc. La protezione contro gli
attacchi SCA è importante in quanto si tratta di aggressioni attuabili con facilità e senza
grosse spese. Le informazioni di canale secondario pubblicamente disponibili permettono
agli aggressori di individuare con successo parti della chiave e di conseguenza ne
riducono drasticamente l’efficacia, inficiandone le caratteristiche di protezione generale.3
La crittografia grey-box è infatti un prodotto secondario della tradizionale
implementazione black-box. È stato dimostrato che anche le smartcard, considerate
capaci di fornire una buona protezione di sicurezza, nell’eseguire le operazioni interne
di crittografia in realtà lasciano fuoriuscire informazioni nell’ambiente esterno. Questo
dimostra che anche gli scenari considerati di tipo black-box sono in realtà solo una varietà
di “grigio”.
Gray Box
testo semplice
Testo cifrato
Informazioni di canale secondario
Chiave
Radiazioni elettromagnetiche
Consumo di elettricità
Timpi
Il concetto di crittografia white-box
La crittografia white-box è diversa dai modelli di sicurezza tradizionali sopra descritti in
quanto, a differenza dalle precedenti implementazioni in cui l’aggressore aveva solo la
scatola nera su cui concentrarsi – ovvero l’accesso agli input e agli output e l’algoritmo
crittografico da decifrare – e in cui si presupponeva che la visibilità delle operazioni
interne fosse nulla, i sistemi white-box sono totalmente trasparenti.
Le tecniche di crittografia white-box mirano a proteggere le implementazioni software
degli algoritmi crittografici contro la lettura della chiave anche se l’aggressore ha pieno
controllo della macchina che effettua la cifratura, una caratteristica particolarmente utile
nelle applicazioni DRM.
La crittografia white-box
I sistemi crittografici white-box, diversamente da quelli di tipo tradizionale sopra
descritti, sono in grado di fornire protezione da minacce ben più gravi, anche nel caso in
cui gli hacker abbiano totale visibilità e controllo sull’intera operazione. Gli aggressori
possono osservare liberamente l’esecuzione dinamica del codice (con chiavi crittografiche
inizializzate) e le informazioni sugli algoritmi interni sono completamente visibili e
modificabili. Nonostante la totale trasparenza di questa metodologia, la crittografia
white-box integra la codificazione in modo tale da non rivelare la chiave.
3. S. Chow, P. Eisen, H. Johnson, P.C. van Oorschot, A White-Box DES Implementation for DRM Applications
Capire la crittografia white-box
3
È pertanto chiaro che gli algoritmi creati per i modelli di tipo black-box e grey-box non
offrono una protezione sufficiente nelle operazioni su host non affidabili. Chiaramente gli
hacker non si limitano a cercare di decifrare il codice utilizzando soltanto i mezzi a loro
disposizione negli scenari di tipo black-box e grey-box, ma osservano l’esecuzione quando
viene utilizzata la chiave non protetta, impadronendosene direttamente.
La scelta del modello crittografico più adeguato e sicuro rappresenta pertanto l’unica
difesa contro le minacce esterne, esattamente l’obiettivo che la crittografia white-box si
propone di conseguire.
White Box
testo semplice
φ(n
)
λ=
lcm
φ
od
)
(n
Testo cifrato
m
La metodologia sottostante all’implementazione white-box
Come si può “nascondere” in modo efficace e sicuro la chiave all’interno del codice
di esecuzione se il potenziale aggressore è in grado di monitorare e modificare ogni
istruzione?
A grandi linee, questo obiettivo viene realizzato combinando le proprietà della chiave
segreta con alcuni dati di implementazione specifici basati su operazioni matematiche,
per assicurarsi che queste siano praticamente impossibili da invertire.4
Ad esempio, la robustezza intrinseca dei sistemi RSA è dovuta alla semplice
moltiplicazione di grandi numeri, anche se esprimere il risultato in numeri primi interi è
matematicamente difficile.
In aggiunta, ma altrettanto importante, è il fatto che l’implementazione di un algoritmo
crittografico white-box permette di effettuare soltanto le operazioni di cifratura o
decifratura.
Come già accennato, l’implementazione si basa su un’operazione matematica
estremamente difficile da invertire. Questo permette di creare un sistema che opera in
modo analogo a un modello di chiave pubblica/privata, ma con un livello di performance
molto più simile a quello dei sistemi di cifratura simmetrici standard.
La decifratura può essere effettuata internamente all’applicazione distribuita, ma la
chiave non può essere estratta e la decifratura non può essere invertita per effettuare
l’operazione di cifratura. L’aggressore non ha quindi alcun mezzo per creare i dati
crittografati corretti da decifrare nel valore desiderato.
Questo particolare metodo è particolarmente utile per proteggere le comunicazioni
su canali protetti da un dispositivo hardware, come ad esempio un token hardware
di protezione. L’aggressore non può infatti estrarre la chiave utilizzata dal canale di
comunicazione e per questo motivo non è in grado di decifrare i dati trasmessi su
quel canale né inserire dati nel canale stesso, in quanto non sa come crittografarli
correttamente.
4. Amitabh Saxena, Brecht Wyseur, and Bart Preneel, Towards Security Notions for White-Box Cryptography
Capire la crittografia white-box
4
I problemi di sviluppo
Sebbene all’inizio se ne sia parlato come di un problema, la crittografia white-box
“mischia tutte le carte”, per questo rappresenta un metodo crittografico altamente sicuro
pur operando in un ambiente pienamente trasparente. Anche se del tutto trasparenti,
le operazioni di cifratura e decifratura proteggono i dati sensibili senza rivelare parti
della chiave o delle informazioni stesse. In aggiunta, la crittografia white-box (assieme
ad altre tecniche) consente di eseguire meccanismi di cifratura robusti pur sapendo che
l’esecuzione potrebbe essere osservata da potenziali aggressori.
Una parte integrante delle misure di sicurezza di SafeNet
Il canale di comunicazione sicuro offerto dai prodotti Sentinel di SafeNet permette di
crittografare le comunicazioni tra l’applicazione protetta e il token hardware senza che
queste possano essere riprodotte. A differenza dell’implementazione precedente, il cui
obiettivo consisteva nel nascondere la chiave crittografica, la nuova implementazione
basata sulla crittografia white-box suppone che il potenziale aggressore sia in grado di
risalire all’applicazione protetta e al runtime in cerca della chiave crittografica. Basando lo
sviluppo del nuovo sistema crittografico su questo presupposto, l’algoritmo e le chiavi di
crittografia sono sostituiti da librerie specifiche del fornitore che implementano la stessa
crittografia ma con una chiave embedded nell’algoritmo stesso e non nella memoria,
precludendo di conseguenza la possibilità di estrarla. La generazione delle librerie
specifiche del fornitore viene effettuata sui server di SafeNet implementando vari segreti
commerciali. Inoltre, ciascuna libreria è generata individualmente e offuscata per ciascun
fornitore di software specifico – rendendo così praticamente impossibile l’hacking generico.
Una soluzione autenticamente rivoluzionaria
SafeNet è la prima e unica azienda ad offrire la crittografia white-box come parte
integrante del proprio portafoglio Sentinel di soluzioni per il software licensing. Questa
nuova tecnologia garantisce la protezione costante della chiave crittografica, che non può
più essere decifrata in quanto ne viene rivelata solo una parte per volta. Dal punto di vista
della sicurezza questa soluzione permette di mantenere la chiave nascosta agli hacker, i
quali di conseguenza non sono in grado di ricostruirla durante gli attacchi.
La crittografia white-box è un’altra componente essenziale che permette agli sviluppatori
di proteggere le loro applicazioni da tentativi di reverse engineering, manomissioni e
attacchi automatizzati. La crittografia white-box di SafeNet si integra nel processo di
progettazione del software, consentendo l’embedding di un livello supplementare di
protezione direttamente a livello di codice sorgente. Per questo motivo offre un approccio
modulabile e altamente efficace alla protezione del software.
Conclusioni
La sicurezza complessiva delle applicazioni protette dipende essenzialmente
dall’implementazione della metodologia di protezione, nel senso che un semplice
algoritmo crittografico, per quanto robusto, non offre alcuna sicurezza se non è utilizzato
nel contesto a cui è destinato: per questo motivo il mancato utilizzo di algoritmi whitebox in una configurazione white-box può avere conseguenze letali. La maggior parte
degli attacchi tenta di sfruttare le vulnerabilità del software di protezione e non quelle
degli algoritmi crittografici, ma gli hacker sono capaci di individuare i punti deboli della
crittografica classica in ambiente di PC aperto.
Se ne deduce che la protezione del software deve ricevere un’attenzione specifica
durante tutte le fasi di sviluppo e implementazione, oltre a essere finemente modulata
nel contesto del ciclo di vita del prodotto e dei release delle nuove versioni. Oltre alla
crittografia white-box, esistono altre misure di sicurezza complementari da adottare per
consolidare ulteriormente il modello di protezione complessivo.
La sicurezza ha un prezzo e, di conseguenza, non può mai essere assoluta. È per questo
che si rende necessario determinare accuratamente il livello di sicurezza dettato
dall’applicazione stessa, in altre parole il valore del bene da proteggere e della perdita che
la sottovalutazione dei rischi potrebbe causare.
Capire la crittografia white-box
5
PARTECIPA ALLA DISCUSSIONE
≥ Sentinel Online
safenet-inc.com/sentinel
≥ Twitter
twitter.com/LicensingLive
≥ LinkedIn
http://bit.ly/
LinkedInLicensingLive
≥ YouTube
youtube.com/user/
LicensingLive
≥ LicensingLive
licensinglive.com
BrightTalk
brighttalk.com
Altre pubblicazioni
Per maggiori informazioni e pubblicazioni tecniche dettagliate consultare i link
sottostanti:
1.Nozioni sulla sicurezza della crittografia white-box
http://www.cosic.esat.kuleuven.be/publications/article-1260.pdf
2.Crittografia white-box: dati ufficiali e risultati di (Im)possibilità
http://eprint.iacr.org/2008/273.pdf
3.White-box (software engineering) su Wikipedia
http://en.wikipedia.org/wiki/White_box_(software_engineering)
4.In cosa consiste l’implementazione white-box degli algoritmi crittografici
http://crypto.stackexchange.com/questions/241/what-is-a-white-box-implementation-of-acryptographic-algorithm
5.Protezione dei file eseguibili
http://en.wikipedia.org/wiki/Portable_Executable_Automatic_Protection
Soluzioni SafeNet Sentinel per la monetizzazione del software
Da oltre 25 anni, SafeNet offre ad aziende internazionali di software e tecnologie sistemi
per la gestione del software licensing e delle licenze innovativi e affidabili. Facile da
integrare e da usare, innovativa e ricca di funzioni, la famiglia di soluzioni Sentinel®
per la monetizzazione dei software è studiata per soddisfare i requisiti esclusivi di
gestione, potenziamento e attivazione di licenze di qualsiasi tipo di organizzazione,
indipendentemente dalla loro dimensione, dai requisiti tecnici o dalla struttura
organizzativa.
Solo con SafeNet i clienti possono affrontare tutte le problematiche di anti-pirateria,
protezione della PI, attivazione e gestione delle licenze, aumentando al tempo stesso
i loro ricavi, migliorando le attività interne, mantenendo la posizione competitiva e
potenziando i rapporti con clienti e utenti finali. SafeNet vanta lunghe tradizioni di
successo nell’adattarsi ai nuovi requisiti e nell’introdurre tecnologie nuove per far fronte
all’evoluzione delle condizioni di mercato; i suoi oltre 25.000 clienti in ambito globale
sanno che scegliere Sentinel significa scegliere la libertà di evolvere le loro modalità di
operato oggi, domani e in futuro.
Contatti: Per conoscere tutte le sedi e le informazioni di contatto visitare il sito www.safenet-inc.com
Per restare in contatto con noi: www.safenet-inc.com/connected
©2011 SafeNet, Inc. Tutti i diritti riservati. SafeNet e il logo SafeNet sono marchi registrati di SafeNet. Tutti gli altri nomi di prodotti sono
marchi di fabbrica dei rispettivi proprietari. WP (IT) A4-04.2.12
Capire la crittografia white-box
6