La crittografia è la base della protezione dei dati ed il modo più importante per garantire che le informazioni non possano essere rubate e lette. Sappiamo che ormai Internet è il mezzo più diffuso per veicolare informazioni ed è evidente quanto spesso si sottovalutano i rischi di un suo uso errato. Per questo emerge sempre di più la necessità di una forma di cifratura. Per questo emerge sempre di più la necessità di una forma di cifratura.
La crittografia, nonostante la sua origine sia molto lontana, è divenuta oggi fattore essenziale nelle telecomunicazioni e nelle applicazioni che necessitano un’elevata protezione dei dati in essi contenuti.
Molti utenti però, ancora oggi, continuano a scambiarsi costantemente informazioni senza sentire il bisogno di proteggere i propri dati sensibili e rischiando di renderli accessibili a chiunque. Questo perchè manca ancora la cultura e la formazione su queste tematiche di sicurezza.
Non dimentichiamoci, infatti, che chiunque può accedere alla rete – anche i malintenzionati – e che le applicazioni sono infatti sempre più vulnerabili (basti pensare a quelle bancarie e fiscali). Per questo motivo da qualche tempo si sta adottando il protocollo HTTPS che, al tradizionale protocollo HTTP (con cui i dati viaggiano sempre in chiaro), aggiunge l’utilizzo di un algoritmo crittografico (TLS) e di un certificato digitale utile a dichiarare l’identità del server remoto e del soggetto che lo gestisce.
Quando si parla di un algoritmo crittografico è fondamentale che esso offra:
autenticazione: processo che permette di attestare l’identità di ciascun partecipante ad una comunicazione;
segretezza: indispensabile fare in modo che nessuno possa leggere un messaggio, fatta eccezione per il destinatario desiderato;
integrità: la protezione da modifiche non autorizzate operate sul messaggio trasmesso (il materiale inviato al destinatario non deve poter essere alterato prima della consegna)
non ripudio: un meccanismo atto a fornire la certezza che chi trasmette un messaggio non possa negare di averlo inviato.
Questi elementi fanno sì che un cybercriminale non compia attacchi come quello di sniffing e spoofing.
Il primo permette di “spiare” il contenuto dei pacchetti dati in transito alla ricerca di informazioni utili; il secondo, mirato agli indirizzi IP, si concretizza nella generazione di pacchetti IP contenenti, come indirizzo IP del mittente, un indirizzo falso che non corrisponde a quello realmente usato dall’aggressore.
La crittografia serve proprio a questo: sia per proteggere i dati trasmessi evitando che possano essere alterati o sottratti da parte di aggressori sia per autenticare un utente.
Che cos’è dunque la crittografia?
Si tratta della conversione dei dati da un formato leggibile in un formato codificato che può essere letto o elaborato solo dopo che è stato decrittato. Solo la persona autorizzata può decriptare i dati e accedere alle informazioni nel formato originale. Ci sono un sacco di metodi per criptare e decriptare i dati, ma la chiave del successo non sta nell’algoritmo. La cosa più importante è mantenere segreta la chiave crittografica (password), o meglio fare in modo che la conoscano solo le persone autorizzate.
La crittografia è la base della protezione dei dati ed è il modo più semplice e importante per garantire che le informazioni di un sistema informatico non possano essere rubate e lette da qualcuno che voglia utilizzarle per scopi malevoli.
Impiegata sia dai singoli utenti che dalle aziende di qualsiasi dimensione, è ampiamente utilizzata su Internet per tutelare le informazioni utente inviate fra il browser e il server e proteggere i dati sensibili dei loro server e database.
Oggi la comunicazione – di qualsiasi genere – ha acquisito un ruolo sempre più centrale nella vita di ognuno di noi; nell’era di internet miliardi di informazioni (anche sensibili) sono in circolazione sulla rete. Per questi motivi si è reso ancor più necessario lo sviluppo di sofisticati sistemi capaci di garantire un elevato livello di confidenzialità di alcuni di questi dati.
La cifratura informatica come la conosciamo oggi, è una materia in costante evoluzione. E proprio per questo suo continuo evolversi, gli esperti consigliano di non affidarsi mai all’ultimo algoritmo crittografico uscito: paradossalmente, infatti, una maggiore sicurezza viene garantita da sistemi già conosciuti e quindi testati pubblicamente (caratteristica che non può ovviamente essere garantita nel caso degli algoritmi più nuovi). Non solo: gli esperti del settore raccomandano anche di attenersi e affidarsi solo alle notizie ufficiali, come quelle rilasciate dal National Institute of Standards and Technology.
La crittografia, dunque, può essere definita un sistema che tramite l’utilizzo di un algoritmo matematico agisce su una sequenza di caratteri, trasformandola. Tale trasformazione si basa sul valore di una chiave segreta, ovvero il parametro dell’algoritmo di cifratura/decifratura. Proprio la segretezza di questa chiave rappresenta il sigillo di sicurezza di ogni sistema crittografico (a questo proposito è interessante la distinzione tra encoding (codifica) e encryption (crittografia), dove la prima serve a facilitare l’immagazzinamento o la trasmissione dei dati, la seconda a mantenere l’informazione segreta).
Al di là dell’ovvio vantaggio di proteggere le informazioni private da furti e violazioni, la crittografia è anche un mezzo per dimostrare che le informazioni sono autentiche e provengono dall’origine dichiarata. Può essere utilizzata per verificare l’origine di un messaggio e confermare che non è stato alterato durante la trasmissione.
Tipi di cifratura
Sulla base della chiave utilizzata, possono essere individuati due tipi di cifratura:
a chiave simmetrica, noto anche come algoritmo a chiave segreta, dove i messaggi sono decodificabili solo dalla persona che conosce la password. Questi schemi crittografici non vengono di norma utilizzati sulla rete Internet perché la password non può ovviamente viaggiare sullo stesso canale (altrimenti potrebbe diventare preda di utenti malintenzionati interessati alla decodifica del messaggio). La password può essere al limite condivisa usando altri canali ma non è certo l’approccio migliore per scambiarsi messaggi con utenti remoti.
a chiave asimmetrica: questo metodo utilizza due chiavi diverse, pubblica (che può essere condivisa con chiunque) e privata (che deve rimanere segreta).
Per cifrare un testo, quindi, con la crittografia asimmetrica basta usare la chiave pubblica del destinatario del messaggio mentre quest’ultimo per la decodifica dovrà essere necessariamente in possesso della sua chiave privata.
Infine, esiste un terzo tipo di crittografia, cosiddetta end-to-end (usata principalmente da WhatsApp, Messenger o Telegram), che permette di proteggere la privacy e le comunicazioni usando doppio paio di chiavi crittografiche necessarie per cifrare e decifrare i messaggi in viaggio da un capo all’altro della comunicazione. Ogni utente, infatti, utilizzerà una chiave pubblica e una chiave privata, legate tra loro in maniera indissolubile. La chiave privata è destinata a rimanere sul dispositivo dei due “comunicanti” e servirà a decrittare i messaggi in arrivo; la chiave pubblica, invece, sarà condivisa con l’interlocutore e sarà utilizzata per crittografare i messaggi in uscita. Questa cifratura permette di rendere innocui tentativi di attacco man in the middle, che puntano proprio a rubare dati e informazioni personali “intercettando” le comunicazioni tra due o più utenti.
Conclusioni
La crittografia, nell’ambito della sicurezza informatica è diventata pertanto (anche grazie all’introduzione del GDPR – General Data Protection Regulation) uno strumento fondamentale per proteggere i dati, archiviati o in transito, da accessi non autorizzati o occhi indiscreti, ma soprattutto è diventata necessaria da divulgazioni accidentali che potrebbero avvenire per inconsapevolezza degli utenti che trattano le informazioni non nel modo corretto, permettendo di conseguenza furti dei dati o altri eventi infausti. In azienda, oltre all’introduzione del protocollo HTTPS, questo sistema di cifratura è stato implementato anche a livello dei file sugli archivi aziendali per lo scambio dei messaggi all’interno dell’universo aziendale, quali ad esempio firma digitale dei messaggi e-mail inviati o chat cifrate.
Solo il comprendere ed implementare in modo corretto i singoli passaggi, come quelli segnalati, mette l’azienda e i suoi preziosissimi asset produttivi (che tipicamente corrispondono a dati archiviati e gestiti) al riparo da buona parte dei rischi informatici in modo semplice da implementare e sicuro da buona parte degli attacchi informatici.
Crittografia simmetrica e asimmetrica
La crittografia asimmetrica evita il problema classico della crittografia simmetrica connesso alla necessità di uno scambio in modo sicuro dell’unica chiave utile alla cifratura/decifratura.
Il meccanismo della crittografia asimmetrica si basa invece sulle seguenti assunzioni:
la chiave privata non è ricavabile dalla chiave pubblica (o almeno non è facilmente ricavabile)
se con una delle due chiavi si cifra (o codifica) un messaggio, allora quest’ultimo sarà decifrato solo con l’altra.
Esempio di corrispondenza elettronica utilizzando un sistema di crittografia asimmetrica
Due degli usi più noti della crittografia asimmetrica sono:
La crittografia a chiave pubblica, in cui un messaggio viene cifrato con la chiave pubblica del destinatario. Se gli algoritmi sono scelti e utilizzati in modo appropriato, i messaggi non possono essere decifrati da nessuno che non possieda la chiave privata corrispondente, che si presume quindi essere il proprietario di tale chiave e quindi la persona associata alla chiave pubblica. Questo può essere utilizzato per garantire la confidenzialità di un messaggio.[1]
La firma digitale, in cui un messaggio viene firmato con la chiave privata del mittente e può essere verificato da chiunque abbia accesso alla chiave pubblica del mittente. Questa verifica dimostra che il mittente ha avuto accesso alla chiave privata e quindi è molto probabile che sia la persona associata alla chiave pubblica. Inoltre, dimostra che la firma è stata preparata per quel preciso messaggio, poiché la verifica fallirà per qualsiasi altro messaggio che si possa concepire senza utilizzare la chiave privata.[2]
In un sistema di crittografia a chiave pubblica, chiunque può cifrare un messaggio usando la chiave pubblica del destinatario, ma tale messaggio può essere decifrato solo con la chiave privata del destinatario. Per fare ciò, deve essere computazionalmente facile per un utente generare una coppia di chiavi pubblica e privata da utilizzare per cifrare e decifrare. La forza di un sistema di crittografia a chiave pubblica si basa sulla difficoltà di determinare la chiave privata corrispondente alla chiave pubblica.
La sicurezza dipende quindi solo dal mantenere la chiave privata segreta, mentre la chiave pubblica può essere pubblicata senza compromettere la sicurezza.
I sistemi di crittografia a chiave pubblica spesso si basano su algoritmi di crittografia basati su problemi matematici che attualmente non ammettono alcuna soluzione particolarmente efficiente, quelli che riguardano la fattorizzazione di un numero intero, il logaritmo discreto e le relazioni delle curve ellittiche. Gli algoritmi a chiave pubblica, a differenza degli algoritmi a chiave simmetrica, non richiedono un canale sicuro per lo scambio iniziale di una (o più) chiavi segrete tra le parti.
A causa del peso computazionale della crittografia asimmetrica, essa di solito è usata solo per piccoli blocchi di dati, in genere il trasferimento di una chiave di cifratura simmetrica (per esempio una chiave di sessione). Questa chiave simmetrica è utilizzata per cifrare messaggi lunghi. La cifratura/decifratura simmetrica è basata su algoritmi semplici ed è molto più veloce. L’autenticazione del messaggio include hashing del messaggio per produrre un “digest” (risultato dell’output dell’algoritmo di hash), e crittografando il digest con la chiave privata per produrre una firma digitale.
Con crittografia simmetrica (o crittografia a chiave privata) si intende una tecnica di cifratura. Rappresenta un metodo semplice per cifrare testo in chiaro dove la chiave di crittazione è la stessa chiave di decrittazione, rendendo l’algoritmo di cifratura molto performante e semplice da implementare. Gli algoritmi a chiave simmetrica sono algoritmi di crittografia che utilizzano le stesse chiavi crittografiche sia per la crittografia del testo in chiaro (plain text) che per la decrittografia del testo cifrato. Le chiavi possono essere identiche, oppure può esserci una semplice trasformazione per passare da una chiave all’altra.[1] Le chiavi, in pratica, rappresentano un segreto condiviso tra due o più parti che può essere utilizzato per mantenere un collegamento privato di informazioni.[2] Il requisito che entrambe le parti abbiano accesso alla chiave segreta è uno dei principali svantaggi della crittografia a chiave simmetrica, rispetto alla crittografia a chiave pubblica (nota anche come crittografia asimmetrica).[3][4] Tuttavia, gli algoritmi di crittografia simmetrica sono di solito migliori per la crittografia di massa. Hanno una dimensione minore della chiave, il che significa meno spazio di archiviazione e una trasmissione più veloce. Per questo motivo, la crittografia a chiave asimmetrica viene spesso utilizzata per scambiare la chiave segreta della crittografia a chiave simmetrica.[5]
La crittografia simmetrica presuppone che le due parti siano già in possesso delle chiavi, richiesta che non rende possibile uno scambio di chiavi con questo genere di algoritmi. Lo scambio avviene attraverso algoritmi a chiave asimmetrica o pubblica, generalmente più complessi sia da implementare che da eseguire, ma che permettono questo scambio in modo sicuro. Dopodiché la comunicazione verrà crittata usando solo algoritmi a chiave simmetrica per garantire una comunicazione sicura, ma veloce.