Cifratura dei dati. Storia, tecniche e interazione con la legislazione vigente – Parte II

David Scaffaro – 20 Aprile 2021

Cifratura dei dati. Storia, tecniche e interazione con la legislazione vigente – Parte II

Riepilogo parte I

Nella prima parte, abbiamo approfondito il significato della crittografia ed accennato ad alcuni sistemi di cifratura utlizzati in passato. Abbiamo visto anche l’evoluzione e il miglioramento delle performance degli stessi, di come un semplice sistema, come il cifrario di Cesare, si sia modificato nel cifrario di Vigenère e successivamente nel cifrario di Vernam, divenendo un sistema indecifrabile. 

Cifratura simmetrica e asimmetrica

Una suddivisione fondamentale nella cifratura moderna è quella tra cifratura simmetrica e cifratura asimmetrica.

La cifratura simmetrica indica che la chiave di cifratura è unica ed ha il doppio scopo di cifrare e di decifrare, ovvero è a conoscenza sia di colui che trasmette, sia di colui che riceve.

Quindi, assume fondamentale importanza la sicurezza il canale di trasmissione della chiave, il quale, oltre a dover essere sicuro, deve essere diverso da quello su cui transita il messaggio, o i dati, da decifrare.

Con la cifratura simmetrica, il trasmittente (T) che deve inviare un messaggio cifrato (C) al ricevente (R), applicherà una chiave (K), utilizzando un algoritmo (A), al messaggio in chiaro (M).

Il ricevente (R), una volta in possesso del messaggio cifrato (C), utilizzarà la medesima chiave (K) e, tramite l’algoritmo (A), sarà in grado di decifrare il messaggio cifrato (C).

Nella cifratura asimmetrica le cose si complicano e il processo diventa più complesso.

Infatti, questo, si basa sul concetto di chiave pubblica e chiave privata, ovvero si supera il problema della condivisione delle chiavi, azzerando il rischio che queste vengano intercettate su un canale poco sicuro, ma si adottano due chiavi.

La doppia chiave (“coppia di chiavi”) fa si che quella pubblica serva per criptare, mentre quella privata serva per decriptare.

In questo caso il trasmittente (T) invia il messaggio cifrato (C) tramite la chiave pubblica (KPU) utilizzando un algoritmo (A). 

Il ricevente utilizzerà una chiave privata (KPR) che, tramite l’algoritmo (A), sarà in grado di decifrare il messaggio cifrato (C) e a renderlo in chiaro (M).

Algoritmi di cifratura

Di seguito alcuni dei principali algoritmi.

AES

L’Advanced Encryption Standard, sviluppato nel 1998 da da Joan Daemen e Vincent Rijmen è un tipo di criptazione standard. 

L’algoritmo AES può supportare qualsiasi combinazione di dati (128 bit) e la dimensione delle chiavi può essere di 128, 192 e 256 bit. L’algoritmo viene indicato, quindi, come AES-128, AES-192 e AES-256, a seconda della lunghezza della chiave.

Le chiavi di 192 o 256 bit sono usate per criptare dati e informazioni estremamente riservati o di alta segretezza, in quanto questo tipo di criptazione è considerato altamente sicuro.

DES

Svilulppato da IBM negli anno 70 del secolo scorso, è ormai considerato inaffidabile.

TWOFISH

Twofish è considerato tra i più veloci standard di cifratura. Si tratta di un algoritmo gratuito e questo ne determina un’alta popolarità e diffusione. Le chiavi usate in questo algoritmo hanno una lunghezza massima di 256 bit ed è necessaria una sola chiave.

BLOWFISH

Blowfish è ampiamente utilizzato su molte piattaforme di e-commerce. Si tratta di un algoritmo estremamente veloce ed efficace ed è ritenuto impossibile da violare. Questo è un algoritmo di pubblico dominio.

RSA

RSA è un algoritmo di cifratura asimmetrica, quindi con chiave pubblica e chiave privata.

Si considera assolutamente sicuro se le chiavi sono lunghe almeno 2048 bit.

Rispetto agli algoritmi simmetrici, a parità di grado di robustezza, RSA è notevolmente più lento, sia in codifica che in decodifica, in quanto per raggiungere un pari livello di sicurezza con un algoritmo simmetrico occorrono chiavi molto più lunghe.

Crittanalisi

La crittanalisi è l’insieme di metodi e tecniche utilizzate per decifrare un messaggio cifrato.

Questi alcuni dei metodi:

Attacco a Dizionario.

In questo tipo di attacco vengono provate delle password più o meno comuni, facenti parte di una determinata lista (dizionario).

Maggiore è l’ampiezza del “Dizionario”, maggiori, in linea teorica, sono le chances di riuscita. In linea teorica, poichè il secondo aspetto da valutare, oltre all’ampiezza del contenuto del “Dizionario”, è la qualità stessa del contenuto. 

Attacco a forza bruta.

A differenza dell’attacco a Dizionario, il metodo a forza bruta verifica tutte le combinazioni possibili di password.

Questo metodo, per ragioni computazionali, è efficace con password di ridotte dimensioni.

Attacco tramite l’analisi delle frequenze.

Ogni lingua ha la caratteristica di presentare più frequentemente ripetizioni di determinate lettere, ovvero alcune lettere si ripetono con una maggior frequenza rispetto ad altre.

L’analisi del testo, permette, così, di individuare la corrispondenza tra le lettere del testo cifrato e le lettere del testo in chiaro.

Password

Caso 1. Password con solo numeri.

Se ipotizziamo l’utilizzo del set 0-9, e individuiamo una lunghezza di 4 caratteri, avremo che 

C = A^n = 10^4 = 10.000 combinazioni.

Caso 2. Password con solo caratteri alfabetici (minuscoli o maiuscoli).

Se prendiamo in considerazione l’alfabeto latino con 26 caratteri, avremo che nella formula presa in considerazione, A = 26; quindi 26^4 combinazioni possibili (456.976 combinazioni)

Caso 3. Password con solo caratteri alfabetici (minuscoli e maiuscoli).

Se, considerando le lettere dell’alfabeto latino, prendessimo in considerazione di utilizzare sia lettere minuscole che maiuscole, lecombinazioni crescerebbero di molto, infatti abbiamo A = 52, ovvero 7.311.616 combinazioni.

Caso 4. Password con solo caratteri alfanumerici (minuscoli o maiuscoli).

Introducendo i numeri e abbinandoli alle lettere, solo minuscole o solo maiuscole, abbiamo A = 36, quindi 1.679.616 combinazioni.

Caso 5. Password con solo caratteri alfanumerici (minuscoli e maiuscoli).

Nel caso in cui i numeri sia abbinati a lettere, che possano essere indistintamente minuscole o maiuscole, abbiamo A = 62, ovvero 14.776.336 combinazioni

Caso 6. Password con caratteri alfanumerici + speciali.

In quest’ultimo caso, il numero delle combinazioni sale ulteriormente. Se stimiamo ulteriori 20 caratteri speciali (!,*,?,^, etc.), raggiungeremo A = 82 e ben 45.212.176 combinazioni.

Password robusta.

Una password può considerarsi robusta, quando nel su citato “Caso 6” (caratteri alfanumerici) la lunghezza è di almeno 16 caratteri.

Esempio: v3y4dkwBrtNu2!nd

In questo caso le combinazioni raggiungono il considerevole numero di 4,1785119 * 10^30 (oltre 4 quintilioni di combinazioni !).

Se definiamo che un determinato hardware abbia la capacità di ricercare 1.000.000 di password al secondo, riuscirebbe a verificare tutte le combinazioni di una password come quella in esempio in oltre 4 * 10^24 secondi, ovvero in circa 1,32 * 10^17 anni, ovvero 132 milioni di miliardi di anni !

Consigli spiccioli.

  • Usare password con almeno 16 caratteri alfanumerici e speciali, maggiormente resistenti ad attacchi del tipo “forza bruta”.
  • Non usare password ricorrenti
  • Non usare nomi comuni, maggiormente soggetti ad “attacco a dizionario”
  • Non usare la stessa password per più account

Quante possibilità ?

Avendo un solo tentativo, è più facile centrare il 6 al superenalotto (622.614.630 combinazioni) che trovare una password come questa: x4!Eh (82^5 = 3.707.398.432 combinazioni)

Avendo un solo tentativo, è (era) più facile centrare il 13 al totocalcio (1.594.323 combinazioni) che trovare una password come questa: h2v3 (36^4 = 1.679.616 combinazioni)

Il problema principale è che l’attaccante della password non ha un solo tentativo.

Chiaramente, tutto ciò, vale, banalmente, anche per la vostra password della email !

Considerazioni parte II

In questa parte abbiamo evidenziato le differenze tra la cifratura simmetrica e quella asimmetrica e le caratteristiche di alcuni algoritmi di cifratura.

Sono state esposte, successivamente, alcune tecniche di crittanalisi, volte a decifrare i testi cifrati.

Infine, si è parlato, evidenziandolo in modo analitico e con esempi pratici, dell’importanza della robustezza di una chiave o password e di come la complessità di queste ultime può rappresentare una buona difesa dagli attacchi esterni, almeno per quanto riguarda l’impegno a livello computazionale dell’attaccante che, se troppo esoso in termini di risorse, può risultare un efficace deterrente e portare alla rinuncia dell’attacco.

Nella prossima puntata

Nella terza parte analizzeremo le interazioni e gli impatti nei confronti della legislazione vigente.

Vedremo aspetti relativi alla sicurezza e integrità dei dati e delle informazioni, oltre alle necessità di cifratura o pseudonimizzazzione che interessano diverse categorie aziendali.

Scopri il nostro online store

Accedi allo store Whynery, registrati per acquistare e profila la tua identità sensoriale.

I commenti sono chiusi.