Why do I have to waste my time on cryptography?

Introduzione

  • Andrea Pompili esperto di sicurezza informatica, nel Codemotion Milano 2019 ci ha immerso nel mondo della crittografia. Con parecchie nozioni tecniche, ci ha fatto navigare tra l’evoluzione degli algoritmi alla storia degli attacchi informatici più incisivi. Attacchi che hanno smosso tecnici e matematici alla ricerca di soluzioni innovative per riuscire a far sopravvivere il mondo della sicurezza in ambito informatico. Grazie alla guida di Andrea Pompili, al Codemotion di Milano 2019 si è accesa una bella lampadina su questo spaccato informatico troppo spesso snobbato.

Tesi

  • Solitamente, nelle grandi aziende informatiche, il manager di turno richiede al team di sviluppatori di cifrare tutto. Ma perchè cifrare? Quale criterio deve essere seguito per poter garantire una discreta sicurezza dei dati e della comunicazione? La risposta a queste domande è di sicuro la crittografia. Ma qual è il modo migliore di utilizzarla senza dover essere matematici? La conoscenza sulla struttura degli algoritmi di crittografia e gli attacchi effettuati su di essi, ci guidano nelle scelte più adatte per garantire la sicurezza dei nostri sistemi.

Focus
La storia degli algoritmi di crittografia parte dall’antica Roma.
Già a quel tempo esistevano degli studiosi che analizzavano le comunicazioni e cercavano di decodificarle per riuscire a mantenere un alto grado di sicurezza. Ai nostri giorni la sostanza non cambia e il ciclo per verificare e mantenere sicuro un protocollo di crittografia è:

  • esiste un algoritmo di crittografia
  • è sicuro?
    • matematici cercano prove teoriche per provarne la sicurezza
    • tecnici informatici effettuano delle prove di attacco per poterli bucare
  • gli attacchi solitamente sono più rapidi e precisi nel scovare le vulnerabilità:
    • fix tecnici proposti
    • emergency upgrade
    • si arriva ad un nuovo protocollo e riparte il ciclo di verifica (compreso lo studio matematico)
In informatica esistono degli standard relativamente ai protocolli utilizzati. Lo standard è quasi sempre legato ad una prova scientifica e dimostrazione matematica. Purtroppo nella crittografia la velocità di propagazione delle informazione e l’evoluzione della comunicazione, non permettono di stare al passo standard e protocolli in ambito sicurezza. Un esempio è il protocollo di crittografia RC4 , dalla sua creazione nel 1987 ci sono voluti 20 anni prima che nel 2015 fosse proibito il suo utilizzo all’interno del protocollo TSL. Le cause che hanno portato a questo mostruoso arco di tempo prima della dichiarazione come protocollo insicuro sono:

  • interoperabilità
  • politica (matematica)
  • retrocompatibilità

In questi 20 anni il mondo informatico non è rimasto a guardare, tutt’altro: si sono evolute nuove teorie e nuovi protocolli per garantire la sicurezza. Sono nate delle macro aree relative alla crittografia:

  • Algoritmi asimmetrici
    • RSA
    • TLS 1.3 (RFC 8446)
  • Algoritmi simmetrici
    • RC4: obsoleto
    • AES-CGM: utilizzato per sostituire RC4. Per considerarlo sicuro si dovrà utilizzare una chiave a minimo 128bit e massimo 256bit. In questo modo possiamo essere sicuri che con la potenza di calcolo attuale non sarà possibile decifrare il contenuto criptato.
    • ChaCha20 : potrebbe sostituire AES e RC4 date le sue elevate performance e grado di sicurezza
    • ECB: da non utilizzare
    • CBC: non utilizzare, dal padding utilizzato di può risalire alla chiave
  • Hashing
    • MD5: da non utilizzare se non con delle accortezze
    • SHA-1: vulnerabile, da non utilizzare
    • SHA-2 : algoritmo sicuro se si utilizzano le versioni SHA-512 e SHA-256
    • BLAKE2: al pari di SHA-2
  • Crittografia quantistica (futuro)
      I computer quantistici lavorano in modo diverso rispetto agli attuali. La crittografia quantistica è sicura per definizione! I computer quantistici infatti non sono basati sulle regole di Turing e sulla gestione di bit 0-1, l’informazione viene gestita attraverso la definizione di un bit quantistico. Un algoritmo di crittografia quantistico è Shor’s Factoring Algorithm ( Youtube, Qudev ).

Conclusione

  • In questo speech Andrea Pompili ci ha fornito un’infarinatura generale sulla crittografia, sulla sua importanza nella quotidianità dei nostri progetti informatici. Quanto sia fondamentale restare sempre aggiornati sugli attacchi informatici effettuati sui relativi algoritmi. In questo modo saremo sempre in grado di intervenire tempestivamente sulla modifica (se possibile) di un algoritmo in un progetto esistente oppure saper scegliere un nuovo tipo di algoritmo più performante e sicuro in un nuovo software da implementare. Infatti, la storia ci insegna, che gli standard informatici ci mettono molto tempo prima di riconoscere una vera falla in un protocollo, di conseguenza, senza il continuo aggiornamento potremmo essere vulnerabili.

L’overview sui computer quantistici (assolutamente da approfondire individualmente) ci ha aperto gli occhi su questo fantastico futuro. Gli aneddoti non sono mancati e si è dimostrato che in 88h, un computer quantistico, riesce a rompere una chiave con crittografia RSA. Per effettuare la stessa operazione un computer normale, con l’intera energia del sole e operante allo 0 assoluto, impiegherebbe 1 anno uomo! Infine, come più volte sottolineato, la cosa da scolpire nella mente, da evitare come la peste, da togliere immediatamente da qualsiasi software creato (a meno dei server Windows che non lo permettono) è il mefistofelico RC4!