I vizi capitali della crittografia

La crittografia è uno strumento estremamente potente: il suo utilizzo consente di preservare la riservatezza delle informazioni, di rilevare eventuali manomissioni dei dati, di certificarne la provenienza. La solidità della teoria crittografica e l’esperienza maturata in decenni dovrebbero garantire un adeguato livello di protezione delle informazioni. Eppure, con sorprendente frequenza, abbiamo notizia di furti di dati riservati -il caso di Hacking Team è uno dei più recenti, di pericolose intrusioni non autorizzate in sistemi critici (basti pensare ai due esperti di sicurezza che hanno preso il controllo di una Jeep Cherokee guidata da un giornalista), o di altre frodi a discapito della sicurezza informatica. Perché la crittografia non è sufficiente ad impedire queste violazioni?

Le ragioni alla base delle compromissioni della sicurezza crittografica sono diverse ma l’esperienza ha individuato tre principali tipologie di errore, i vizi capitali della crittografia:

  1. inventare il proprio algoritmo o protocollo crittografico;
  2. implementare autonomamente un algoritmo o protocollo crittografico noto senza disporre delle necessarie competenze di sicurezza;
  3. non prestare la dovuta attenzione alla configurazione dell’algoritmo o del protocollo utilizzato.

Il tema della crittografia è senza dubbio affascinante e in molti desiderano cimentarsi proponendo soluzioni nuove e rivoluzionarie. Eppure, l’elenco di algoritmi e protocolli crittografici sicuri e di uso comune è relativamente limitato: la pratica indica come solo pochissimi dei nuovi meccanismi crittografici che vengono proposti siano effettivamente in grado garantire elevati livelli di protezione. Inoltre, la validazione di un nuovo modello crittografico richiede anni di studio da parte della comunità degli esperti di settore per certificarne robustezza ed efficacia. Già nel 1999 la violazione dello schema di protezione dei DVD ha dimostrato quanto gli algoritmi ed i protocolli proprietari risultino insicuri rispetto a quelli pubblicati e certificati dalla comunità scientifica. Eppure, questo stesso errore è continuamente ripetuto da numerose aziende e startup nell’illusoria convinzione di essere in grado di garantire elevati livelli di sicurezza ai propri prodotti.

Anche quando ci si avvale di schemi crittografici diffusi e standardizzati, è facile introdurre errori che minano alla base la loro efficacia se si decide di implementarli in modo autonomo. Questa leggerezza è stata commessa alcuni anni fa da da Sony, che ha inserito in PlayStation 3 e PlayStation Portable un’implementazione proprietaria di un noto algoritmo per la firma digitale basato su curve ellittiche (ECDSA). L’implementazione dell’algoritmo era imprecisa: dove si richiedeva di impiegare numeri casuali diversi ogni volta, Sony utilizzava sempre uno stesso valore. Questo errore, apparentemente innocuo, ha reso possibile l’attacco che ha ricostruito la chiave privata utilizzata dall’azienda per firmare i propri prodotti, consentendo così a chiunque di eseguire sulle console Sony qualunque gioco, come se fosse originale.

Infine, anche quando si opera diligentemente avvalendosi di servizi o componenti crittografici diffusi e largamente sperimentati è possibile commettere errori nella loro configurazione o applicazione, compromettendo drasticamente l’affidabilità e la sicurezza delle soluzioni realizzate. Una ricerca condotta sulle applicazioni Android ha evidenziato come nell’88% dei casi le app che si avvalgono della crittografia la utilizzino impropriamente, rendendo così completamente inefficaci le misure di sicurezza che si crede di aver messo in atto. Tra i diversi errori individuati, quello più comune consiste nell’affidare la protezione della riservatezza ad un algoritmo di cifratura impiegato in una particolare modalità (ECB, Electronic CodeBook) che è facilmente attaccabile. Per verificare intuitivamente la fragilità della cifratura in modalità Electronic CodeBook si consideri la figura seguente, che confronta i risultati della cifratura di un’immagine (a sinistra) ottenuti applicando uno stesso cifrario in modalità ECB (al centro) e in una modalità diversa, più robusta (ad esempio CBC, Cipher Block Chaining, a destra).

Critto

Figura 1: confronto tra diverse modalità di cifratura (fonte: Wikipedia, licenza CC BY-SA).

Cosa possono fare le imprese?

Errori di questo tipo non devono sorprendere. Gli sviluppatori difficilmente dispongono delle competenze e della formazione necessari per comprendere compiutamente le caratteristiche dei vari sistemi crittografici e le diverse caratteristiche della loro configurazione. Di conseguenza spesso gli strumenti vengono utilizzati in modo improprio e senza modificare le configurazioni di default, tipicamente inadeguate e quindi pericolose.

Evitare di incorrere nei problemi di cui abbiamo discusso non è complesso. Esistono prassi consolidate e guidate dal buon senso comune che le aziende dovrebbero adottare:

  • prima di tutto, è fondamentale comprendere che l’utilizzo della crittografia, di per sé, non offre nessuna garanzia di sicurezza: è invece necessario verificare che la crittografia sia implementata ed applicata in modo corretto;
  • per questa ragione, qualunque azienda che voglia affrontare seriamente la realizzazione di servizi e applicazioni basate sulla crittografia deve necessariamente reperire competenze verticali specifiche sul mercato professionale, valutando seriamente l’impatto e le implicazioni di eventuali compromissioni dei suoi sistemi per la continuità e la redditività del suo business;
  • infine, perché siano efficaci, tali competenze devono essere impiegate per utilizzare in modo corretto ed appropriato i meccanismi ed i servizi di sicurezza già disponibili, e non per svilupparne nuove implementazioni o, ancora peggio, per realizzare algoritmi o protocolli proprietari.

Facebook Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here