Crittografia: introduzione di base alle tecnologie che tengono internet al sicuro

Chiavi pubbliche e private, le connessioni SSL/TSL e le Certification Authority, per arrivare alla blockchain e alle criptovalute: quali sono i principi di base che tengono insieme la sicurezza in rete

La crittografia diventa sempre più importante nelle nostre vite. Ogni volta che si accede a un’applicazione o si invia un’e-mail, ci si affida a un’ingegnosa infrastruttura crittografica che discende in gran parte da scoperte degli anni ’70.

Oltre agli sviluppatori software specializzati e i programmatori, chiunque abbia a che fare con applicazioni digitali che prevedono la crittografia – cioè oggi praticamente tutte quelle che richiedono un collegamento – può trarre beneficio dalla comprensione di come funzioni la cifratura dei dati, specialmente in un’epoca in cui criptovalute e criptoinvestimenti sono sempre più diffusi.

Tutti noi usiamo la crittografia nella nostra vita quotidiana, che lo sappiamo o no.

Cos’è la crittografia e come funziona

La crittografia è la pratica di rendere sicure le comunicazioni. Questo si ottiene usando una varietà di tecniche, protocolli e algoritmi per impedire alle parti indesiderate di visualizzare o alterare i dati privati.

La disciplina della crittografia viene di solito distinta in quattro aspetti:

  1. Riservatezza: i dati non vengono esposti a parti non volute
  2. Integrità: i dati non possono essere manipolati o distrutti
  3. Autenticazione: le parti sono in grado di verificare in modo affidabile l’identità dell’altro.
  4. Non ripudio: la comunicazione può essere confermata e non negata successivamente dai partecipanti.

Cifratura a chiavi simmetriche

Prima dell’avvento dei computer, la crittografia si basava sull’uso di cifrari. Un cifrario è una mappa che permette di passare da un testo leggibile (testo in chiaro o cleartext) a un testo incomprensibile (testo cifrato o cyphertext) e viceversa. Per esempio, un cifrario semplice sarebbe quello di aggiungere quattro a ogni lettera del testo (quindi A diventa E). La decodifica poi comporterebbe semplicemente la sottrazione di quattro da ogni lettera. Questi processi sono chiamati cifratura e decifratura.

key

Spostare le lettere di quattro posti nell’alfabeto è un metodo molto ovvio e non sicuro. Più sicuro è creare una mappa complessa che richiede una chiave per la traduzione. Tale chiave deve essere distribuita a tutte le parti partecipanti, e ciò comporta problemi logistici e di sicurezza. Chi entra in possesso della chiave una volta, può decifrare tutte le comunicazioni successive.

A volte chiamata anche chiave segreta, la crittografia simmetrica è ampiamente utilizzata per mantenere riservati i dati locali. Poiché lo stesso utente in genere codifica e decodifica i dati protetti, la condivisione della chiave non è un problema. Sono sistemi a chiave segreta per esempio la cifratura del disco Bitlocker su Windows o quella di Apple FileVault per i Mac, ma esistono anche molti software per cifrare una cartella o un intero disco.

Leggi anche: Come tenere al sicuro i dati in azienda

Funzioni unidirezionali

Con l’avvento dei computer e i relativi progressi nella matematica, i metodi crittografici sono diventate più complessi. Sono sorte molte nuove tecniche, ma tra le più importanti c’è quella nota come funzioni unidirezionali (che includono gli hash che generano stringhe di lunghezza fissa strettamente correlate al testo originale, di qualsiasi lunghezza sia). Le funzioni unidirezionali sono considerate una primitiva crittografica. Come suggerisce il nome, una funzione unidirezionale funziona in una sola direzione.

Un uso comune per le funzioni unidirezionali, e un buon modo per capirle, è l’hashing delle password quando sono memorizzate nel database di un servizio (per esempio, in Java e in JavaScript). Quanto l’utente sceglie una password, la inserisce come testo in chiaro in una casella di testo (per esempio, pippo123) e l’algoritmo a senso unico la trasforma in una stringa dall’aspetto casuale (XFcbe2d3bh0sa), che viene memorizzata nel database del sito. Sebbene sia possibile ricavare l’hash dalla password in chiaro (pippo123), non è possibile fare il percorso inverso, perché sono tantissime le combinazioni teoriche che possono generare lo stesso hash.

Non c’è alcun metodo conosciuto (utilizzando i sistemi informatici attuali) per invertire efficacemente il processo. Anche se un attaccante avesse accesso al database, le password rimangono quindi sicure.

Uno dei vantaggi degli algoritmi di hashing è che sono leggeri da elaborare, anche per file di grande dimensione. Per questo motivo vengono spesso utilizzati nella distribuzione di software critici per la sicurezza, come per esempio i sistemi operativi. In pochi secondi è possibile verificare che un’intera distribuzione Linux scaricata da internet sia effettivamente conforme all’originale distribuito dal sito ufficiale, su cui viene pubblicato anche l’hash, e che quindi non sia stata modificata intenzionalmente o per un errore nel download.   

È interessante notare che anche se gli attaccanti hanno pieno accesso alla logica dell’algoritmo (per esempio, ecco il sorgente di BCrypt), non sono generalmente in grado di invertire la funzione. Detto questo, l’hashing unidirezionale non è perfetto ed esistono diverse tecniche per craccarli (come le tabelle Rainbow).

Le moderne librerie di hashing includono la capacità di aumentare la difficoltà dell’hash permettendogli di resistere agli attacchi aumentando la potenza di calcolo necessaria a rompere il codice) e di introdurre un Salt nell’algoritmo (un codice univoco che assicura che gli hash di input identici siano comunque diversi). Finché il codice Salt è tenuto segreto, le password hashate con esso sono fondamentalmente inattaccabili.

Per una comprensione maggiore della teoria dietro l’hashing unidirezionale, date un’occhiata a questa risposta su Stack Overflow.

Funzioni pseudo-casuali

Insieme alle funzioni unidirezionali, gli algoritmi per la generazione di numeri casuali sono considerati “primitivi” crittografici, cioè, elementi fondamentali necessari per rendere sicure le comunicazioni. Perché? Semplicemente, qualsiasi sistema di comunicazione segreto dipende da valori che sono noti alla parte che deve tenere sicure le informazioni e sconosciuti agli altri. Per essere efficace, una chiave deve essere difficile da indovinare. L’ideale è quindi una sequenza di caratteri completamente casuale, che dipende dalla possibilità del software di generare un numero casuale.

Sebbene tutti i linguaggi di programmazione dispongano di funzioni per la generazione di un numero casuale, nella realtà dei fatti questi numeri sono meno casuali di quando dovrebbero. Solitamente, si utilizza un numero di “semina” iniziale (seed) e, applicando calcoli matematici, viene generato un numero (pseudo) casuale della lunghezza desiderata.

Il problema è che la maggior parte dei seed, come l’estrazione di un valore dall’orologio del sistema, sono solo “più o meno” casuali. Se un hacker sa come vengono generati i numeri, potrebbe escogitare attacchi basati sulla probabilità che il numero pseudo-casuale rientri in un certo intervallo.

A volte viene richiesto un intervento umano per generare il seed: per esempio, digitare caratteri a caso sulla tastiera oppure muovere il mouse per un minuto. Gli esseri umani, però, sono notoriamente inaffidabili nel fornire input davvero casuali.

Sono stati sviluppati mezzi più sicuri per generare numeri casuali per sventare gli attacchi con numeri casuali. La maggior parte delle librerie di crittografia includono strutture per questi generatori.

Chiavi asimmetriche

Forse lo sviluppo più ingegnoso e influente nella crittografia moderna è l’utilizzo di una coppia di chiavi asimmetriche, chiamata anche coppia di chiavi “pubblica e privata”. L’idea di base è che vengono generate due chiavi, una per cifrare e una per decifrare.

Questa innovazione è stata sperimentata alla fine degli anni ’70 da due programmatori e un matematico, che hanno dato le loro iniziali all’innovativo sistema di crittografia che hanno inventato: RSA, da Rivest, Shamir e Adleman.

L’RSA e altri sistemi a chiave asimmetrica prendono l’idea della funzione unidirezionale e le fanno fare un grande passo avanti, creando due chiavi che lavorano in modo asimmetrico. La prima chiave, di cifratura, può essere distribuita apertamente in pubblico, mentre la chiave di decifratura viene mantenuta segreta.

crittografia-chiave-pubblica

La matematica alla base di questo sistema non è semplice, e per un certo periodo i ricercatori coinvolti hanno avuto seri dubbi sul fatto che fosse possibile applicarla. Oggi la crittografia a chiave pubblica-privata è alla base di gran parte della moderna infrastruttura di sicurezza di internet, compresa la sicurezza del “livello di trasporto” utilizzata da SSL/TLS, le firme digitali e le criptovalute come Bitcoin.

È importante notare che le chiavi asimmetriche non creano sistemi impossibili da craccare, ma finché la chiave privata viene tenuta riservata, è praticamente impossibile violare la crittografia. Ci sono diversi exploit in circolazione (tra cui attacchi ai numeri casuali, attacchi temporali e altri), ma la sicurezza dei meccanismi a chiavi asimmetriche si basa principalmente su quanto tempo sarebbe necessario per invertire il processo di fattorizzazione dei numeri coinvolti.

Questo potrebbe non sembrare molto sicuro, ma per citare l’articolo di Brett Slatkin sulla matematica della crittografia a chiave pubblica, “anche usando soluzioni fantasiose sul computer più veloce della Terra, si impiegherebbe un tempo lungo fino alla fine dell’universo” per decifrare la moderna crittografia asimmetrica. Questo, almeno, fino a un’applicazione pratica ed efficace del calcolo quantistico, che renderebbe il cracking della crittografia tipo RSA un problema risolvibile in un tempo limitato, possibilità non necessariamente lontana, per cui si sta già ragionando su tecniche in grado di resistere agli attacchi alla crittografia basati sul quantum computing.

Nelle applicazioni attuali, le chiavi asimmetriche sono spesso utilizzate come handshake iniziale per stabilire un canale sicuro per lo scambio di chiavi simmetriche, meno onerose per le risorse di calcolo. Questo è ciò che accade quando il vostro browser sta “negoziando una chiave TLS” nel collegarsi a un sito https. Poiché le chiavi simmetriche sono in pratica molto più veloci, il server e il client si verificano a vicenda tramite le chiavi asimmetriche, poi si consegnano le rispettive chiavi simmetriche per utilizzarle in ulteriori comunicazioni. Questa comunicazione è quindi al sicuro da intercettazioni o manipolazioni anche su canali non riservati.

Infrastruttura a chiave pubblica

Un altro importante inconveniente della crittografia asimmetrica è che tipicamente richiede un’autorità centralizzata di fiducia. Questo perché il problema di verificare che qualcuno sia chi dice di essere non si limita solo a dimostrare che qualcuno possiede una chiave privata (qualcosa che la crittografia asimmetrica può fare da sola). Invece, per garantire che (per esempio) il certificato SSL/TLS di un server web non sia solo tecnicamente valido, ma anche autentico (rappresenta veramente l’organizzazione che dichiara di essere), si deve fare riferimento a un’autorità centrale che può validare ulteriori certificati.

Questo crea opportunità per gli hacker, poiché qualsiasi violazione nella gerarchia delle chiavi di convalida compromette tutte le chiavi sottostanti. Anche se tali violazioni ogni tanto accadono, gran parte di internet si basa su questo sistema. L’intero sistema è noto come infrastruttura a chiave pubblica (PKI). Una parte fidata che emette certificati è un’autorità di certificazione (CA, Certification Authority).

Un’alternativa alla PKI è Pretty Good Privacy (PGP), in cui gli utenti si fidano l’uno dell’altro su una base di relazioni peer-to-peer, invece di fare affidamento su un’autorità centralizzata (anche qui si usano chiavi asimmetriche per scambiare chiavi simmetriche). PGP è comunemente usato per cifrare la posta elettronica e per verificare che i download non siano stati manomessi.

L’uso più sofisticato delle chiavi asimmetriche e della crittografia in generale si trova nei sistemi blockchain, il cui esempio di applicazione più famoso sono i Bitcoin. Eliminando la necessità di un’autorità centralizzata e spostando la convalida delle transazioni firmate crittograficamente sull’intera rete, una blockchain apre le possibilità per nuovi tipi di sistemi costruiti su uno strato, distribuito ma sicuro, in cima all’infrastruttura di internet. Al momento, stiamo solo grattando la superficie delle applicazioni offerte da questa tecnologia.

Le blockchain e i sistemi costruiti su di esse sono strutture crittografiche essenziali. Le coppie di chiavi sono usate per firmare le transazioni, e gli hashish crittografici sono usati per convalidare gli anelli della catena.

Questo è stato un tour vorticoso dell’attuale panorama crittografico. Anche se sotto a ogni punto trattato ci sono temi molto complessi da approfondire, comprendere i principi di base è sempre più prezioso per tutti noi, programmatori e non.

CIE, al via una campagna del Governo per promuovere l’utilizzo

CIE, al via una campagna del Governo per promuovere l’utilizzo

"Vogliamo promuovere l’uso dell'identità digitale garantita dallo Stato che, attraverso l’app CieID, offre il massimo livello di sicurezza (livello 3) nell’accesso ai servizi online”, ha spiegato il Sottosegretario Alessio Butti  »

Francesco Destri // 20.03.2024
Apple blinda iMessage con il protocollo post-quantistico PQ3

Apple blinda iMessage con il protocollo post-quantistico PQ3

Con il prossimo aggiornamento dei sistemi operativi di, le conversazioni in iMessage saranno protette da un nuovo protocollo crittografico post-quantistico denominato PQ3.  »

Francesco Destri // 04.03.2024
Bitlocker violato in meno di un minuto con un Raspberry Pi Pico

Bitlocker violato in meno di un minuto con un Raspberry Pi Pico

Un video su YouTube mostra come sia possibile utilizzare un Raspberry Pi Pico per accedere a un laptop protetto da BitLocker in meno di un minuto, a condizione però di avere accesso fisico al dispositivo.  »

Francesco Destri // 08.02.2024
I deepfake generati dall’IA mettono in crisi le soluzioni di sicurezza biometrica

I deepfake generati dall’IA mettono in crisi le soluzioni di sicurezza biometrica

Gartner prevede che entro il 2026 il 30% delle imprese considererà inaffidabili le soluzioni di verifica dell'identità e di autenticazione isolate a causa dei deepfake generati dall'IA.  »

Francesco Destri // 01.02.2024
Actalis e Tucows insieme per la rivendita internazionale dei certificati SSL

Actalis e Tucows insieme per la rivendita internazionale dei certificati SSL

La collaborazione con Tucows segna un importante passo nella strategia di internazionalizzazione di Actalis, che mira a espandere e consolidare la commercializzazione dei certificati SSL oltre i confini europei.  »

Francesco Destri // 30.01.2024
Sicurezza, TIM presenta il primo microprocessore crittografico italiano

Sicurezza, TIM presenta il primo microprocessore crittografico italiano

Progettato da Telsy, società del Gruppo TIM, il nuovo microchip assicurerà la protezione di sistemi ICT che gestiscono dati sensibili o confidenziali  »

Patrizia Godi // 18.12.2023
Stop alle liste di password in Excel: Garante Privacy e ACN dettano linee guida per gestirle

Stop alle liste di password in Excel: Garante Privacy e ACN dettano linee guida per gestirle

L’Agenzia per la cybersicurezza nazionale e il Garante per la protezione dei dati personali hanno messo a punto specifiche linee guida per la conservazione delle password con indicazioni sulle misure tecniche da adottare.  »

Francesco Destri // 18.12.2023
Come aggiungere l’autenticazione a due fattori alle proprie app a basso costo

Come aggiungere l’autenticazione a due fattori alle proprie app a basso costo

Infobip Authenticate è una soluzione che garantisce che i codici OTP per l'autenticazione a due fattori vengano sempre recapitati in modo tempestivo e affidabile.  »

Google rende le passkey l’autenticazione di default su tutti i servizi… e Microsoft le spinge su Windows

Google rende le passkey l’autenticazione di default su tutti i servizi… e Microsoft le spinge su Windows

Se Google ha iniziato a offrire le passkey come opzione predefinita negli account Google personali, anche Microsoft è sempre più convinta di questo metodo di autenticazione.  »

Francesco Destri // 11.10.2023
Passkey: cosa sono e come funzionano le eredi delle password

Passkey: cosa sono e come funzionano le eredi delle password

Le passkey sono un'alternativa più semplice e sicura alle password con le quali si può accedere ad app e siti web con un sensore biometrico, un PIN o una sequenza, evitando così di dover ricordare e gestire le password.  »

Francesco Destri // 07.07.2023
Google introduce le passkey per gli account su tutte le principali piattaforme

Google introduce le passkey per gli account su tutte le principali piattaforme

Le passkey per gli account Google sono disponibili da oggi, con gli amministratori di Google Workspace che potranno presto abilitarle per i loro utenti finali.  »

La funzione cloud 2FA di Google Authenticator comporta dei rischi nascosti

La funzione cloud 2FA di Google Authenticator comporta dei rischi nascosti

Google ha aggiornato Authenticator con il supporto per i backup sincronizzati con il cloud, ma sono già emersi rischi per la sicurezza a cui è bene fare attenzione.  »

Password a rischio… e questa volta c’entra l’intelligenza artificiale

Password a rischio… e questa volta c’entra l’intelligenza artificiale

Ecco come l'intelligenza artificiale sta accelerando la capacità di decifrare rapidamente le password deboli e diventando quindi una minaccia sempre più tangibile per la sicurezza.  »

I sistemi di autenticazione basati su password sono sempre meno sicuri

I sistemi di autenticazione basati su password sono sempre meno sicuri

Secondo un nuovo studio di Vanson Bourne, il 60% delle aziende colpite da un cyberattacco legato all'autenticazione negli ultimi 12 mesi concorda sul fatto che avrebbero potuto evitarlo con un sistema senza password.   »

CrowdStrike Global Threat Report 2023: ecco gli obiettivi dei nuovi attacchi

CrowdStrike Global Threat Report 2023: ecco gli obiettivi dei nuovi attacchi

Gli attacchi alla sicurezza informatica hanno ormai uno scopo chiaro: ottenere denaro. Questo ha fatto nascere una struttura criminale altamente organizzata, al cui interno ogni componente ha un incarico preciso. Il report di CrowdStrike fotografa la situazione attuale, indicando le tecniche più usate...  »

Patrizia Godi // 28.02.2023
Crittografia RSA “rotta” con un computer quantistico: ma è vero?

Crittografia RSA “rotta” con un computer quantistico: ma è vero?

Sembrerebbe sgonfiatasi in poche ore la notizia, mal riportata dalla stampa, della rottura di RSA-2048 usando computer quantistici già disponibili da parte di un team cinese. La questione però non è affatto chiusa, e il metodo può essere perfezionato.   »

Leo Sorge // 10.01.2023
Il 2023 di Apple sarà anche nel segno della sicurezza

Il 2023 di Apple sarà anche nel segno della sicurezza

Con la decisione di introdurre nuovi potenti strumenti di protezione dei dati per iMessage e di consentire agli utenti di crittografare più informazioni in iCloud, Apple ha posto le basi per la sicurezza come la grande tendenza tecnologica del 2023.   »

La biometria è ancora meno accurata di quanto pensassimo

La biometria è ancora meno accurata di quanto pensassimo

La biometria dovrebbe essere un pilastro fondamentale dell'autenticazione moderna. Sfortunatamente, per una vasta gamma di ragioni, molte implementazioni biometriche sono estremamente imprecise.  »

Pagina 1 di 4
Condividi