Capire la crittografia white-box

Pagina creata da Riccardo Pellegrino
 
CONTINUA A LEGGERE
Capire la crittografia white-box
                                        whitepaper

I sistemi crittografici tradizionali    Introduzione
   non sono in grado di offrire una     In passato la crittografia permetteva di trasmettere informazioni sensibili (cioè segrete,
protezione completa contro tutti        riservate o confidenziali) rendendole incomprensibili a chiunque eccetto il destinatario
 i possibili tipi di aggressione atti   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
    a sfruttare le loro vulnerabilità
                                        significato originale. Molti secoli dopo, durante la seconda guerra mondiale, la crittografia
                         intrinseche.
                                        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ù    Ciò ha in effetti permesso agli hacker di condurre attacchi di tipo non black-box, di
       diffusi, ad esempio AES,      conseguenza queste implementazioni finiscono per essere più “grigie” che nere. 2
       non sono stati concepiti
                                     L’esigenza della crittografia white-box
        per operare in ambienti
                                     I sistemi di crittografia più diffusi, come ad esempio AES, non sono stati concepiti per
   dove è possibile osservarne       operare in ambienti dove è possibile osservarne l’esecuzione. Infatti, i modelli crittografici
 l’esecuzione. Infatti, i modelli    tradizionali presuppongono che gli endpoint, ad esempio i PC e i token hardware di
        crittografici tradizionali   protezione, siano completamente sicuri. Se questi endpoint si trovano in un ambiente
         presuppongono che gli       potenzialmente ostile gli hacker che monitorano l’esecuzione dell’applicazione potrebbero
           endpoint (PC e token      essere in grado di vedere direttamente le chiavi crittografiche e quindi cercare di estrarre
hardware di protezione) siano        dalla memoria le chiavi embedded o generate dall’applicazione. Si tratta di un problema
         completamente sicuri.       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
                                                              Radiazioni elettromagnetiche
                     Chiave                                   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

                                   φ(n
        testo semplice                 )                           Testo cifrato
                                                        )
                                                  φ   (n
                                   λ=        m od
                                      lcm

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 white-
box 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         Altre pubblicazioni
                                   Per maggiori informazioni e pubblicazioni tecniche dettagliate consultare i link
    ≥ Sentinel Online              sottostanti:
       safenet-inc.com/sentinel
                                      1. Nozioni sulla sicurezza della crittografia white-box
    ≥ Twitter                            http://www.cosic.esat.kuleuven.be/publications/article-1260.pdf
       twitter.com/LicensingLive
                                      2. Crittografia white-box: dati ufficiali e risultati di (Im)possibilità
    ≥ LinkedIn                           http://eprint.iacr.org/2008/273.pdf
       http://bit.ly/
       LinkedInLicensingLive
                                      3. White-box (software engineering) su Wikipedia
                                         http://en.wikipedia.org/wiki/White_box_(software_engineering)
    ≥ YouTube
       youtube.com/user/
       LicensingLive                  4. In cosa consiste l’implementazione white-box degli algoritmi crittografici
                                         http://crypto.stackexchange.com/questions/241/what-is-a-white-box-implementation-of-a-
                                         cryptographic-algorithm
    ≥ LicensingLive
       licensinglive.com
                                      5. Protezione dei file eseguibili
       BrightTalk                        http://en.wikipedia.org/wiki/Portable_Executable_Automatic_Protection
       brighttalk.com
                                   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
Puoi anche leggere