La criptazione dei dati è un’elaborazione algoritmica a seguito della quale il contenuto di un file diviene illeggibile. Il file tornerà nelle condizioni originarie solo conoscendo un’apposita password (o chiave) di decriptazione. Analizziamo in questa prima parte le caratteristiche principali della criptazione dei dati.
Non occorrono investimenti per difendere i dati informatici. Molte soluzioni, fra cui PGP (Pretty Good Privacy), sono freeware. Ma quanto sono realmente efficaci? Di principio nel mondo informatico non esiste nulla di assolutamente sicuro, ma la criptazione rappresenta senz’altro il meglio attualmente disponibile per proteggere dati e informazioni. La conferma che la criptazione dei dati è una soluzione tutt’altro che trascurabile viene dalle intelligence dei governi occidentali. In Inghilterra una legge specifica obbliga a fornire le chiavi di decriptazione a seguito formale richiesta di un organo inquirente, chi non lo fa rischia un anno di carcere. Negli USA i software criptatori sono stati considerati fino all’anno 2000 I.T.A.R. restricted (International Traffic in Arms Regulations) cioè sono stati equiparati a armi da guerra, con divieto di esportazione. Oggi i software di “strong encryption” possono essere esportati solo se destinati ad utenti finali e purché non siano venduti ai paesi a rischio di terrorismo. La criptazione è anche un ottimo espediente per rendere illeggibili i testi delle email. Sappiamo che le email viaggiano “in chiaro” (sono cioè leggibili) nell’universo di Internet. Tecnicamente sono intercettabili con relativa facilità. E’ l’enorme volume di posta elettronica che rende complesse queste intercettazioni, che però sono possibili e praticabili (prevalentemente con l’ausilio dei providers o degli amministratori di rete) qualora qualcuno sia determinato e concentrato a controllare uno specifico utente.
Sicurezza dei dati
Il tema della sicurezza dei dati (di lavoro o personali) è ormai uno dei punti critici da affrontare in ogni sistema. In alcuni casi è importante proteggere sia l’integrità dei contenuti in uno scambio tra mittente e destinatario sia l’identità stessa del mittente e del destinatario. In altri casi è sufficiente proteggere soltanto la visibilità delle informazioni e dei contenuti. Due sono le politiche che si implementano in un’ottica di sicurezza:
» l’autenticazione identifica con certezza un interlocutore (tipico è il caso di user name e password per l’accesso a siti o a risorse);
» la crittografia mira a trasformare le informazioni per renderle irriconoscibili a chiunque, tranne a chi ha una chiave per poterle interpretare.
Gli hacker (o, con un termine più evocativo, pirati informatici) hanno ideato, e continuano a farlo, numerose tecniche di intrusione nei sistemi. Si possono individuare due grosse famiglie:
» lo sniffing (fiutare) avviene quando i dati vengono ricopiati mentre sono in transito e senza modificarli, in modo che chi li invia e chi li riceve non si accorgano di nulla;
» lo spoofing (raggirare) consiste nel modificare gli indirizzi dei dati in transito, in modo che i dati passino dal pirata senza che mittente e destinatario originario lo rilevino.
Ci si rende conto che in entrambi i casi l’hacker deve essere molto esperto del sistema con cui ha a che fare e della struttura dei dati da intercettare. Non è da escludere, quindi, che molto spesso siano le stesse software house a “monitorare” i propri prodotti per dedurre informazioni sull’utilizzo degli stessi. I produttori di software, infatti, conoscono in partenza le caratteristiche del computer (dato che sono for nite dagli stessi utenti in fase di installazione) e le caratteristiche dei dati (ideate da loro stessi). Casi tipici di sniffing o, ancora peggio, di spoofing sono familiari a tutti i lettori:
» il phishing (pescare) consiste nel “travestimento” dell’hacker in una forma che l’utente conosce o che gli è familiare, in modo da indurlo a fornire informazioni confidenziali o password;
» il pharming (falsare) consiste in falsi siti web, del tutto identici a quelli originali di banche o enti pubblici, dove l’utente – pensando di essere al sicuro – inserisce password o altre informazioni sensibili;
» l’identity theft (furto d’identità) consiste nella sostituzione di una persona o di una società da parte dell’hacker, il quale può fare quello che vuole accreditandosi con un falso nome.
La crittologia (dal greco “nascondere”) è la scienza che studia la crittografia (figura 1), ovvero quell’insieme di tecniche di trasformazione dei messaggi.
In genere si tenta di trasformare ogni lettera dell’alfabeto in un’altra ed è un’attività che risale fino a Giulio Cesare, tanto per capirci. Il processo di ricostruzione è la decifratura o decrittografia. Le moderne tecniche di crittografia si basano su concetti di tipo statistico: nella lingua italiana le lettere obbediscono a probabilità di ricorrenza ben precise. Decifrare un messaggio in cui ogni lettera è stata sostituita con un’altra, quindi, risulta molto semplice per gli attuali calcolatori. Risultano più robusti algoritmi di crittografia che aumentano la ridondanza aggiungendo molti più simboli di quelli che servono e quindi, in pratica, aumentando le possibili combinazioni da provare con un attacco di forza bruta. Un cifrario di questo tipo viene detto monoalfabetico se c’è una sola regola di trasformazione fra l’alfabeto originale e l’alfabeto criptato e, quindi, per ogni lettera criptata c’è un’unica corrispondenza con una sola lettera originale e viceversa. Un cifrario monoalfabetico si costruisce definendo una parola chiave che, sovrapposta all’alfabeto originale, consente di dedurre l’alfabeto criptato per trasposizione in sequenza successiva di tutte le altre sue lettere. Tale tecnica è chiamata Data Encryption Standard (DES), inventata da IBM una trentina di anni fa e ancora valida oggigiorno. In particolare, in questo standard, ogni lettera è codificata su 64 bit, mentre la chiave è codificata su 56 bit. Purtroppo, in alcune condizioni sono le chiavi ad essere il punto debole del DES. In crittografia una chiave è un informazione usata come parametro in un algoritmo crittografico. Le chiavi sono utilizzate in molte applicazioni crittografiche e, secondo il principio di Kerckhoffs, sono l’unico dato che è davvero necessario tenere segreto. La dimensione della chiave, generalmente misurata in bit, dipende dal particolare algoritmo usato. Alcuni algoritmi possono utilizzare chiavi di lunghezze diverse e in questo caso più lunga è la chiave tanto più difficile sarà forzare il messaggio cifrato. È anche vero, però, che all’aumentare della lunghezza della chiave aumenta anche la complessità computazionale nell’eseguire l’algoritmo secondo una legge che può essere lineare, quadrata, cubica o anche peggiore. Nel caso del DES, macchine specializzate sono in grado di esaminare tutte le possibili chiavi e decifrare il messaggio in meno di 24 ore. Per rendere sicuro il DES si sono sviluppate delle evoluzioni come il Triple DES (3DES). Questo algoritmo espande la chiave impedendo per il momento un attacco a forza bruta, sebbene renda l’algoritmo in teoria vulnerabile a degli attacchi che però non sono attuabili nella pratica. Negli ultimi anni è stato sostituito dall’Advanced Encryption Standard (AES), un nuovo algoritmo che elimina molti dei problemi del DES. Il DES è l’archetipo della cifratura a blocchi, un algoritmo che prende in ingresso una stringa di lunghezza fissa di testo in chiaro e la trasforma – con una serie di operazioni complesse – in un’altra stringa di testo cifrato della stessa lunghezza. Nel caso del DES la dimensione del blocco è di 64 bit. Il DES usa inoltre una chiave per modificare la trasformazione in modo che l’operazione di decifratura possa essere effettuata solo conoscendo la chiave stessa. La chiave è lunga 64 bit ma solo 56 di questi sono effettivamente utilizzati dall’algoritmo. Otto bit sono utilizzati solo per il controllo di parità e poi scartati, per questo la lunghezza effettiva è riportata come di 56 bit. Il DES prevede quindi 16 cifrature successive (trasposizioni e sostituzioni di bit). In pratica, il testo chiaro viene suddiviso in blocchi da 64 bit (equivalenti a 8 caratteri); ogni blocco è sottoposto a una trasposizione data in base ad una chiave di 56 bit; si applica quindi per 16 volte una funzione cifrante e alla fine la trasposizione inversa di quella iniziale. Viene definito un sistema simmetrico perchè sia il mittente del messaggio sia il ricevente devono conoscere la stessa chiave segreta. In un ambiente di poliutenza si era parlato di una diffusione della chiave fino a renderla di pubblico dominio; ma poi ci si è chiesti se ne valesse davvero la pena. Se usato singolarmente, il DES può essere un ottimo sistema per inserire files in un disco fisso, nella forma cifrata. Più affidabili sono i cifrari polialfabetici, nei quali le lettere sono codificate usando più regole di trasformazione che, quindi, riportano ad altrettanti alfabeti criptati, tutti diversi. Ciò significa che per ogni lettera originale possono esserci più lettere criptate e, viceversa, ogni lettera criptata ha la sua regola di ricostruzione diversa dalle regole della lettere adiacenti.
Classificazione dei sistemi di crittografia
Solitamente una classificazione è basata discriminando la chiave che si utilizza. Si hanno così sistemi a chiave non riutilizzabile, simmetrici e asimmetrici. I sistemi a chiave non riutilizzabile, o monouso, sono detti One Time Password (OTP): la chiave è memorizzata su una comune chiave USB e viene costruita sostituendo a ogni lettera dell’alfabeto un numero casuale che viene definito una sola volta per ogni trasformazione. La tecnica è senza dubbio indecifrabile, ma vale per un solo messaggio perché essa può essere usata una sola volta. C’è però il problema di difendere la chiave almeno quanto il contenuto dei messaggi. La crittografia si definisce simmetrica quando usa una sola chiave sia per criptare sia per decriptare i messaggi. Essa è anche chiamata crittografia a chiave segreta, perché per la sua importanza la chiave deve essere comunicata dal mittente al destinatario in maniera “segreta”. I sistemi simmetrici più famosi sono il già analizzato DES e l’AES (Advanced Encryption Technology). Esso utilizza una chiave di 128, 192 o 256 bit, che lo rende più affidabile del predecessore DES. La crittografia asimmetrica è anche detta a chiave pubblica (Public Key Infrastructure, PKI) perché usa due chiavi: una chiave di codifica, detta pubblica perché è distribuita a chiunque dal destinatario, il quale è l’unico a possedere l’altra chiave, detta asimmetrica o privata, che serve a riconoscere i contenuti dei messaggi: infatti il destinatario vuole essere l’unico a sapere leggere i messaggi dai mittenti a cui ha fornito la prima chiave. Questo concetto è alla base delle cosiddette firme digitali o certificati digitali, che i produttori leader di software incorporano nei loro prodotti per verificare se sono effettivamente utilizzati da chi li acquista. Naturalmente le due chiavi sono legate matematicamente da una regola di trasformazione che conosce solo il destinatario e, quindi, è assolutamente impossibile per un pirata decifrare un messaggio criptato senza la chiave privata, qualora conoscesse la chiave pubblica. Il metodo più famoso di crittografia asimmetrica è l’RSA, dalle iniziali dei tre ricercatori del MIT (Rivest, Shamir e Adleman) che lo idearono vent’anni fa. Per semplificare il funzionamento, immaginiamo che A debba spedire un messaggio segreto a B. Occorrono i seguenti passaggi:
■ 1-B sceglie due numeri primi molto grandi (per esempio da 300 cifre) e li moltiplica con il suo computer (impiegando meno di un secondo);
■ 2-B invia il numero che ha ottenuto ad A. Chiunque può vedere questo numero;
■ 3- A usa questo numero per crittogra fare il messaggio;
■ 4- A manda il messaggio a B, che chiunque può vedere ma non leggere;
■ 5- B riceve il messaggio e utilizzando i due fattori primi, che solo lui conosceva decifra il messaggio.
A e B hanno impiegato pochi secondi a cifrare e decifrare, ma chiunque avesse intercettato le loro comunicazioni impiegherebbe milioni di anni per scoprire i due fattori primi, con cui si può decifrare il messaggio. In realtà questo sistema non è così semplice e per trasmettere grandi quantità di dati occorre tanto tempo, quindi A e B si scambieranno con questo sistema una chiave segreta (che non occupa molto spazio), che poi useranno per comunicare tra loro usando un sistema a crittografia simmetrica, più semplice, sicuro e veloce. Esistono, quindi, forme di crittografia ibride tra la simmetrica e l’asimmetrica: ad esempio, la struttura è simmetrica, mentre la chiave è criptata in modo asimmetrico.
Possibili soluzione di crittografia
DICA Technologies GmbH offre soluzioni complete per la protezione dei canali di comunicazione (figura 2).
Con la serie BlueCrypt e ScryptGuard sono disponibili apparacchiature per la protezione affidabile delle comunicazioni per voce, dati e videoconferenza per le comunicazioni via E-Mail, ISDN, IP, GSM o reti satellitari. I dispositivi della DICA il processo di criptazione viene applicato esclusivamente ai dati utili. Gli algoritmi di criptazione adattati sono riconosciuti e accettati e vengono applicati in collegamento con il processo per la gestione delle chiavi brevettato da DICA. A parte il processore sicuro Atmel e la memoria sicura fa parte del sistema un generatore sequenziale randomico brevettato. I dispositivi possono essere forniti con un sistema di gestione delle chiavi customizzato e con l’algoritmo proprietario del cliente.
La crittografia è l’ultimo passo nella catena di codifica. Il primo è la codica di sorgente che toglie le informazioni ridondanti dal messaggio, il secondo passo è la codifica di canale che aggiunge ridondanza al messaggio per proteggerlo dagli errori introdotti dal canale. Trovare il giusto equilibrio tra le ridondanze tolte e aggiunte influisce chiaramente sulla velocità trasmissiva del messaggio, e cosi anche la crittografia rientra nel calcolo.
Da pochi giorni Google ha annunciato Adiantum un nuovo cifrario con l’intenzione di portare crittografia robusta anche nei dispositivi più lenti e che non possono utilizzare AES per limiti di prestazioni.
p.s vorrei sottolineare che il “cattivissimo” resta sempre il cracker!
Si infatti una grandiosa idea da parte di Google dettata principalmente dal boom di dispositivi IOT a bassa potenza di calcolo (o basso consumo). Sarà da approfondirne il funzionamento!
Le tecniche per inviare messaggi segreti sono proprio antichissime. L’uomo ha sempre sentito la necessità di proteggere i propri dati e le proprie informazioni, soprattutto durante il loro trasporto. Anche gli Egiziani usavano alcune tecniche, sostituendo ai geroglifici tradizionali quelli “ritoccati”, proprio per non far comprendere il nesso del messaggio a nessuno. Come dice Roberta, tuttavia, il cracker ne sa una più del diavolo.
Nella web economy la comunicazione ha acquisito un ruolo centrale, infatti miliardi di dati, spesso sensibili, sono in circolazione sulla rete. Oggi più che mai il tema della sicurezza dei dati è molto sentito, soprattutto in certi ambiti come quello industriale. Penso che la sicurezza maggiore venga garantita da sistemi già conosciuti e testati.
Da piccolo, da nambino, ricordo che codificavo i miei messaggi “segreti” aggiungendo un’unità alla lettera. Per esempio, la parola “CIAO” veniva nascosta in “DLBP”. Chi riceveva il messaggio doveva eseguira esattamente l’operazione opposta. Ma queste, ovviamente, sono tecniche estremamente elementari che anche un bambino saprebbe risolvere.
Una tecnica migliore è senza dubbio utilizzare lo XOR tra la chiave pubblica e quella privata.
Certo i numeri primi anche in questo caso sono di una importanza rilevante, difficile scoprirne il mistero anche se molti matematici e fisici si cimentano in questo vortice di ricerca. E’ un vortice perché apparentemente sembrano non avere un certo legame funzionale che ne possa definire la base, sembrano sconnessi l’un l’altro quindi non avere una logica matematica da cui ricavarli e questo li rende perfetti in questo ambito. Tuttavia potrebbe restare un uso precario visto l’accanimento nel cercare proprio di scioglierne la misteriosa matassa. Successivamente dovranno trovarsi altri metodi ad esempio basati sulla meccanica quantistica, quindi un pacchetto quantistico di dati la cui informazione rimane nascosta dall’incertezza quantistica dell’imperturbabilità ma tuttavia trasmessa! Numeri primi o informazione quantistica protetta entrambi due basi per la criptazione difficili da gestire, e qui mi fermo…
Interessante articolo. Sapevo della possibilità ma non avevo mai approfondito la questione.
Certamente con la grande quantità di dati presenti in rete la criptazione è diventata un esigenza.
Tra l’altro quanto sono sicuri i dati salvati negli spazi del cloud?
I protocolli di comunicazione , di qualunque tipo essi siano, tendono ad avere incorporati dei meccanismi per la sicurezza, tra cui rientra la crittografia. Certificati e algoritmi crittografici sono ad esempio utilizzati nei più comuni sistemi di trasmissione delle applicazioni IoT. Secure boot è un’altra caratteristica particolarmente importante per i sistemi embedded, essendo in grado di rilevare manomissioni del codice applicativo caricato su flash.