Crittografia e Sicurezza: conoscere le proprie difese

0
crittografia-sicurezza-informatica

Quante volte avete premuto il tasto crittografiainviando un messaggio cifrato da crittografia tramite un’app come WhatsApp o Signal? Oppure avete sentito parlare del famigerato virus CryptoLocker o della sua variante WannaCry, che rendevano interi hard disk irrecuperabili a causa di fortissime chiavi crittografiche…

Dopo i numerosi scandali informatici come quello di Vault 7, il progetto della CIA pubblicato da Wikileaks (e ipoteticamente utilizzato anche per monitorare le elezioni francesi del 2012), diventa naturale chiedersi quanto effettivamente siamo al sicuro.

La crittografia nasce anche per questo: non solo per rendere arduo ad un attaccante il compito di penetrare le vostre difese, ma, nel caso riuscisse, di rendere completamente inutile il suo intento, a causa di tonnellate di byte indecifrabili senza la giusta chiave.

Se stai cercando un posto dove poter scambiare consigli, pareri, opinioni e molto altro sul mondo della crittografia, ti consiglio caldamente di dare un’occhiata al nostro gruppo dedicato.

Indice

chiave crittografica
Fonte: wikipedia – Illustrazione di Abraham von Franckenberg del 1646

L’importanza delle chiavi nella crittografia

Il campo della crittografia si occupa di nascondere dati, camuffandoli e rendendoli apparentemente incomprensibili a chi non ne possiede la chiave di lettura. Quest’ultimo elemento è lo spartiacque tra i due principali tipi di crittografia, quella simmetrica e quella asimmetrica.

La differenza sostanziale giace nel numero di chiavi impiegate: la tipologia simmetrica impiega una sola chiave (chiave privata) per entrambi gli scopi di codifica e successiva decodifica dei dati. Quella asimmetrica, invece, ne genera una coppia, assegnando ad una delle due la prima funzione (chiave pubblica) e all’altra la seconda (chiave privata).

Leggendo per la prima volta questa spiegazione, vi potrebbe sfuggire il motivo di una tale differenziazione, ma è presto chiarito:

Nel primo caso, chi possiede la chiave ha la facoltà di criptare e decriptare a piacimento ogni informazione. Nel secondo caso, tuttavia, diventa possibile dividere le due funzioni, distribuendo la chiave pubblica a chiunque voglia comunicare con noi. Permettendogli così di inviarci dati decifrabili solo da noi stessi, unici possessori della chiave privata.

In tal modo, perfino chi ha utilizzato la chiave pubblica per codificare un messaggio è impossibilitato dal recuperarne il significato originario, non avendo quella privata!

Una delle proprietà fondamentali delle chiavi crittografiche è la lunghezza, ma ne parleremo a breve nella sezione dei passaggi.

Esiste una terza tipologia di sistema crittografico, la crittografia quantistica. Le regole che dettano il suo funzionamento sono derivate dalla meccanica quantistica, una branca particolarmente complessa della fisica che per motivi di esposizione ci limiteremo ad accennare in seguito.

crittografia-quantistico-crittografia


I passaggi della crittografia

I sistemi crittografici garantiscono sicurezza, poiché basati su principi matematici particolarmente difficili da riprodurre senza conoscere la chiave. Vanno ben distinti però gli algoritmi, come l’RSA e l’AES,e i tre passaggi che compongono l’intero sistema crittografico, in cui l’uso stesso degli algoritmi di crittografia è la parte fondamentale.


La generazione della chiave

Il primo passaggio da considerare quando si tratta di crittografia è quello della generazione della chiave, da dare successivamente ‘in pasto’ all’algoritmo che utilizzeremo per criptare o decriptare.

Come menzionato precedentemente, la forza delle chiavi sta nella loro lunghezza, misurata in bit (Cifre del sistema binario che assumono solo i classici valori o 1).
Il motivo consiste nel fatto che i migliori algoritmi di crittografia accettano solo blocchi di byte (8 bit) predefiniti da usare come chiavi.

La generazione di tali chiavi, però, appartiene alle cosiddette funzioni di hashing.
Queste ultime consentono di partire da una stringa di input A per arrivare ad una chiave B della lunghezza voluta, a prescindere dalla lunghezza di A.

Per fare un esempio, inserendo come parametri della funzione di hashing PBKDF2 la stringa ‘miapassword’ ed il salt ‘123456’ (un secondo valore che aumenta l’unicità dell’hash generato), l’hash a 256 bit utilizzabile come chiave sarà 1ad6e464530efbb6431a82c09a712950.

funzione-hash-crittografia

Scambio delle chiavi

Esattamente come la generazione, lo scambio delle chiavi viene eseguito una sola volta, indipendentemente dal fatto che utilizziate un sistema simmetrico o asimmetrico di crittografia.

Nonostante ciò, il suo ruolo resta fondamentale: se qualcuno intercettasse la chiave che vogliamo comunicare al nostro interlocutore, privata o pubblica che sia, potrebbe immediatamente decifrare tutto ciò che diciamo. Oppure, nel caso di una chiave pubblica, sarebbe in grado di comunicare con noi (nota bene, NON decifrare messaggi criptati, ma CREARNE!) fingendosi l’interlocutore che noi crediamo di avere dall’altro lato.

scambio-chiavi

Esistono vari approcci per mitigare le problematiche che sorgono, tra i quali si menziona il protocollo noto come scambio di chiavi Diffie-Hellman, anche se praticamente nessuno di essi è invulnerabile ad attacchi del tipo Man-in-the-middle. Alcune società riconosciute a livello internazionale assegnano certificati di autorità, che legano una persona ad una sola coppia di chiavi pubbliche e private, assicurandone, per l’appunto, l’autorità.

L’unico tipo di crittografia che potrebbe debellare il problema alla radice è quello della precedentemente accennata crittografia quantisticaLa forza di tale sistema farebbe sì che un ipotetico ascoltatore, nel tentativo di modificare il contenuto dei messaggi scambiati, modifichi anche la chiave quantistica necessaria ad entrambi i comunicatori ‘legittimi’, impedendogli la comunicazione corretta e rendendo evidente la sua intrusione.

Applicazione dell’algoritmo

Infine, parliamo dell’applicazione vera e propria. Una volta assodate le due fasi precedenti, siamo in possesso di una chiave (o una coppia, in base al tipo di algoritmo scelto) e siamo riusciti a scambiarla con il diretto interessato. Ma come funziona l’offuscamento dei messaggi?

È arrivato il momento di chiarire meglio il funzionamento della cifratura: sceglieremo soltanto i due già citati AES a 256 bit e RSA, il quale può utilizzare addirittura chiavi fino a 2048 bit.


AES

L’AES è un algoritmo simmetrico di cifratura a blocchiche prende in input i dati da cifrare/decifrare e una chiave, la quale deve necessariamente avere lunghezza 128, 192 o 256 bit.
In aggiunta a ciò, l’AES può essere impostato per agire in una modalità piuttosto che un’altra. Alcune modalità, oltre ad aver bisogno dei dati da cifrare e della chiave, richiedono anche un Initialization Vector, o IV.

La lunghezza di questo parametro è strettamente legata al numero di blocchin cui i dati vengono processati dall’algoritmo. Per spiegarsi meglio, se volessimo criptare/decriptare un messaggio di 256 byte, esso verrebbe trattato a blocchi di 16 byte alla volta (nella maggior parte delle modalità), e quindi dovremmo scegliere obbligatoriamente un IV della stessa lunghezza.

Una volta scanditi i dati, ognuno dei 16 byte viene disposto in una forma a matrice, che viene gradualmente modificata secondo determinati passaggi. Il risultato finale, per la natura dei passaggi applicati, non è ripercorribile all’indietro per tentativi, almeno non in tempi umani, senza avere la chiave.

L’AES-256 è l’algoritmo attualmente utilizzato come standard negli Stati Uniti d’America: molti credono che il motivo per la scelta della variante a 256 bit piuttosto che quelle a 192 o 128 sia dovuto alla scoperta da parte dell’NSA di alcune tecniche per ‘rompere’ gli algoritmi di minor lunghezza: altri, più realisticamente, ipotizzano che dato il rapido incremento nelle capacità di calcolo, la scelta della versione a 256 bit sia semplicemente un prevenire l’eventuale progresso.

RSA

Il secondo algoritmo in questione è l’RSA, di tipo asimmetrico. A parte l’ormai chiara differenza di tipo con l’AES (simmetrico/asimmetrico), una delle sue proprietà peculiari è il principio matematico su cui si appoggia la generazione delle sue chiavi, ovvero la scomposizione di un numero in fattori primi.

Avendo due numeri primi e moltiplicandoli tra di loro si ottiene un numero cosiddetto semiprimo, ovvero divisibile interamente solo e soltanto dai due numeri primi che abbiamo moltiplicato per ottenerlo.

Se trovassimo due numeri primi molto grandi e li moltiplicassimo tra di loro, dunque, conosceremmo soltanto noi il loro valore, mentre al pubblico verrebbe mostrato il solo prodotto, estremamente difficile da scomporre nei due originari, necessari per avere la chiave di lettura.

Tuttavia, se volessimo essere esaustivi in merito ai meccanismi di generazione della chiave e dell’applicazione vera e propria, avremmo l’obbligo di scendere in campi come l’Aritmetica modulare, e non è il nostro intento al momento.

algoritmo


Crittanalisi e altre oscurità

Esattamente come lo Yin e lo Yang, la crittografia e la crittoanalisi si completano a vicenda, definendo la scienza chiamata crittologia.

In quanto, per l’appunto, altra faccia della medaglia, la crittoanalisi si occupa di ricercare, sotto ogni forma, metodi per rompere in qualche modo il funzionamento e il punto di forza degli algoritmi necessari invece a nascondere l’informazione.
L’ottenimento dell’informazione senza il possesso della giusta chiave di lettura diventa, dunque, l’obiettivo da raggiungere.

Tecniche di crittoanalisi

Nel corso del tempo, tra le tante tecniche di crittoanalisi sviluppatesi, se ne possono mettere a fuoco tre principali:

  • Il brute-forcing: consiste nel cercare con tentativi ripetuti ogni possibile combinazione, procedendo finché non si trova la chiave corretta. È inutile quindi spiegarvi quanto sia dispendioso in termini di tempo per chiavi di dimensioni come 2048 bit, ovvero 617 cifre in sistema decimale.
    Con il progredire della tecnologia, però, sono stati inventati processori più potenti, e quindi capaci di maggiori calcoli al secondo: che rappresentino la fine della crittografia?
  • Il man-in-the-middle: ne avevamo accennato in precedenza: questo tipo di attacco consiste nel porsi segretamente tra due persone comunicanti mediante connessione criptata, alterandone il contenuto dei messaggi. Con l’avvento dei sistemi di certificazione, però, i due enti comunicanti possono accertarsi di star parlando effettivamente con il diretto interessato, scambiandosi i reciproci certificati attraverso un cosiddetto canale sicuro.

  • La crittoanalisi differenziale: esattamente come per la precedentemente citata Algoritmica Modulare, non andremo a fondo nel campo dei differenziali. In poche parole, la crittoanalisi differenziale cerca di capire se, dato un messaggio da cifrare, le differenze tra lo stesso in chiaro e quello cifrato siano significative, o possano aiutare a dedurne un pattern non casuale.

chip-processore-crittografia


Crittografia nella vita quotidiana

Fino ad ora ci siamo attenuti alle meccaniche che governano questi sistemi, ma non abbiamo trattato ciò che più spesso tocchiamo con mano: ovvero la moltitudine di applicazioni nella vita di tutti i giorni.

Siamo certificati!

Un consiglio per coloro che ci leggono da Desktop: se cliccate sul piccolo lucchetto a sinistra del link di questo articolo, vi verrà mostrato come, sul nostro sito, la vostra connessione sia protetta…ma vi sarà sicuramente successo su molti altri siti!

Il significato di ciò è da ricercare nel problema citato precedentemente: nessuno può essere sicuro di star comunicando veramente con chi si crede, sul web, e dunque ci si affida a delle Certificate Authority.

Nel nostro caso, Comodo, che ci ha rilasciato un certificato che attesta il nostro possesso di una coppia di chiavi utilizzata per la comunicazione dei vostri dati col nostro dominio.

WhatsApp è sicuro?

La risposta breve è: adeguatamente.

La risposta lunga, invece, ci porterebbe ad analizzare i vari casi di rottura del sistema crittografico. Come l’introduzione tramite una semplice chiamata di un pericoloso spyware, opportunamente patchata dopo poco tempo.

I più paranoici sostengono, però, che il fatto di non essere open-source sia uno svantaggio per il consumatore, in quanto il codice non è trasparente verso chiunque.

whatsapp-crittografia

Delle valide alternative, dunque, esistono, e chi di voi ha particolare interesse nell’argomento avrà sicuramente riconosciuto l’estetica del pulsante che avete visto nell’introduzione di questo articolo.
Si tratta di Signal, app sviluppata dalla OWS, della quale è stato rilasciato anche il codice sorgente.

Molti ritengono quest’ultima la app per eccellenza quando si parla di privacy. l’interfaccia permette una moltitudine di funzionamenti accessori, come l’impostazione di messaggi a scomparsa, oppure proprietà intrinseche come l’assenza di metadati nelle informazioni comunicate.

Potrebbe interessarti anche: