La crittografia è un modo per nascondere le informazioni affinché i dati privati rimangano tali. Senza crittografia, chiunque potrebbe accedere alle tue comunicazioni. In questo articolo, esamineremo come funziona e alcuni dei diversi tipi di crittografia esistenti.
La spiegazione breve è che la crittografia è un modo per confondere le informazioni in modo che nessuno, eccetto le persone a cui sono destinate, possa accedervi. Questa confusione viene realizzata utilizzando algoritmi matematici che bloccano e sbloccano le informazioni. Ovviamente c’è molto di più, ma prima di arrivare a tutto ciò, partiamo dall’utilizzo della crittografia.
- Perché usare la crittografia?
- Come funziona la crittografia
- Cosa sono gli algoritmi di crittografia?
- Esempi di algoritmi di crittografia
- La crittografia su Proton
Perché usare la crittografia?
Il motivo principale per usare la crittografia è assicurarsi che le informazioni rimangano private, specialmente mentre viaggiano attraverso internet. La maggior parte delle persone incontra la crittografia nella vita quotidiana quando comunica. Ad esempio, app di messaggistica come Signal o Wire (entrambe tra le migliori alternative a WhatsApp) criptano le tue chat.
Un altro buon esempio è l’email, che, senza una forte crittografia, può essere intercettata dalle agenzie governative(nuova finestra). Criptando le tue email, le hai rese illeggibili e quindi inutili per chiunque le intercetti. Un altro esempio è TLS, un protocollo di crittografia che protegge il traffico web. Quando visiti un sito e compare il piccolo simbolo di lucchetto nella barra degli indirizzi, stai utilizzando TLS.
Tuttavia, non è solo la comunicazione a beneficiare della crittografia: se vuoi archiviare file, criptarli può aggiungere un livello di sicurezza. Ad esempio, la nostra app di archiviazione cloud Proton Drive utilizza una crittografia all’avanguardia per mantenere i file al sicuro. Anche se un cybercriminale dovesse violare il servizio, non sarebbe comunque in grado di accedere alle informazioni nei file rubati.
Come funziona la crittografia
Il modo più comune per criptare le informazioni è confondere il testo leggibile, noto come testo in chiaro, in testo cifrato illeggibile utilizzando operazioni matematiche note come algoritmi. Questi algoritmi utilizzano una chiave crittografica, o un insieme di valori matematici condivisi solitamente basati su numeri primi, per criptare un file. Senza la chiave corretta, un file non può essere decifrato.
Approfondiamo nel nostro articolo su testo cifrato, ma pensalo come a un lucchetto sulla tua porta. Chiudi la porta (trasformando il testo semplice in testo cifrato) per limitare l’accesso, e poi qualcuno con la chiave può aprirla (trasformando il testo cifrato in testo semplice) quando ne ha bisogno.
Un esempio basilare è il cosiddetto cifrario di Cesare, che fu utilizzato da Giulio Cesare per proteggere i messaggi. Era una forma avanzata del tipo di crittografia che forse hai imparato a scuola, dove i numeri sono usati al posto delle lettere, quindi 1-2-2-1 potrebbe comporre il nome di un gruppo pop svedese. I Romani presero questo principio, ma poi spostarono il numero. Ad esempio, potevano aggiungere tre, quindi la A sarebbe stata scritta come “4” anziché “1”.
Naturalmente, un cifrario come questo è piuttosto semplice da decifrare, e nei millenni da quando Roma dominava il mondo la crittografia ha fatto grandi progressi. Oggi la crittografia professionale è gestita da algoritmi, formule matematiche complesse che possono crittografare testo semplice e poi decifrare testo cifrato in millisecondi.
Allo stesso tempo, sono evoluti anche diversi tipi di crittografia. Come dicevamo prima, il traffico web non è crittografato allo stesso modo della tua email. Questo dipende da alcuni fattori, come la velocità con cui un messaggio deve essere codificato e decodificato o il livello di sicurezza necessario, tra le altre cose.
Parlando in termini generali, la crittografia è composta da due tipi, simmetrica e asimmetrica, ognuna con i propri punti di forza e di debolezza.
Crittografia simmetrica
La crittografia simmetrica è la più semplice da comprendere. In questo sistema, la chiave che crittografa il testo semplice e quella che decifra il testo cifrato sono le stesse — non diversamente dalla tua porta d’ingresso. In un’era pre-digitale era praticamente scontato che entrambe le parti di una conversazione segreta usassero la stessa chiave; il cifrario di Cesare è un esempio di crittografia simmetrica.
Tuttavia, questo presenta problemi, principalmente il fatto che se un attaccante intercetta sia il messaggio sia la chiave, sarà in grado di leggere il tuo messaggio. Se non puoi assicurarti che il mezzo di invio della chiave sia sicuro, potresti dover usare la crittografia simmetrica in tandem con un altro tipo di crittografia, cioè quella asimmetrica.
Crittografia asimmetrica
Con la crittografia asimmetrica, la chiave che decifra le informazioni è diversa da quella che le crittografa. L’idea alla base della crittografia asimmetrica risiede nelle chiavi utilizzate. Dove la crittografia simmetrica usa una singola chiave segreta conosciuta solo al mittente e al destinatario, la crittografia asimmetrica usa una chiave pubblica per crittografare le informazioni e una privata per decifrarle.
Pubblica in questo caso significa esattamente quello che pensi: chiunque può utilizzare la chiave pubblica (ed è per questo che la vedrai anche chiamata crittografia a chiave pubblica). Solo il destinatario ha la chiave privata.
È come avere uno sportello per le lettere sulla tua porta: chiunque può inserire lettere, ma hai bisogno di una chiave speciale per aprire la cassetta e prenderle. Questo permette a chiunque di inviarti un messaggio, senza la necessità di condividere una chiave in anticipo.
La matematica che rende ciò possibile è la fattorizzazione degli interi, un processo facile da calcolare in una direzione ma difficile nell’altra. Ad esempio, è più semplice per te calcolare 12 x 6 (72) che lavorare a ritroso partendo da 72 per trovare i fattori. Nella crittografia a chiave pubblica, i numeri sono molto più grandi di 6, 12 e 72. Con un intero sufficientemente grande, è praticamente impossibile decifrare i fattori e sbloccare un messaggio criptato se non conosci già il numero segreto (la tua chiave privata).
Poiché funziona in modo così diverso dalla crittografia simmetrica, la crittografia asimmetrica ha un caso d’uso molto specifico, di cui parleremo più avanti. È anche piuttosto più lenta.
Cosa sono gli algoritmi di crittografia?
Quando utilizzi un servizio che cripta i dati, la crittografia è gestita da algoritmi, formule matematiche complesse. Questi si presentano in vari sottotipi, ma le categorie più importanti sono gli algoritmi simmetrici e asimmetrici, che possono essere ulteriormente specificati dalla lunghezza delle chiavi che utilizzano.
Più una chiave è lunga (misurata in bit), più informazioni sono memorizzate e più è difficile da decifrare. In informatica, un bit si riferisce a un singolo valore che può essere 1 o 0 (poiché i computer si basano sul binario).
Una chiave lunga solo un bit sarebbe molto facile da decifrare poiché può essere o 1 o 0. Il numero massimo di tentativi necessari per rompere una chiave di 1 bit è due. Ma la difficoltà cresce esponenzialmente. Una chiave con due bit è due volte più difficile da decifrare poiché ci sono due valori che potrebbero essere 1 o 0, il che significa che il numero massimo di tentativi necessari per risolverla è quattro. Tuttavia, una chiave di tre bit è quattro volte più difficile da decifrare.
Quindi una chiave lunga 128 bit — una lunghezza comune per la crittografia simmetrica — richiederebbe un numero massimo di tentativi pari a 2 elevato alla 128esima potenza, ovvero 340 undecillioni (o 340 con 36 zeri dietro). Decifrare una chiave di quella lunghezza richiederebbe, teoricamente, almeno alcuni miliardi di anni, almeno utilizzando un attacco a forza bruta, che “indovina” una chiave bit per bit.
Praticamente parlando, le chiavi di crittografia simmetrica possono essere lunghe fino a 256 bit, mentre le chiavi asimmetriche possono essere lunghe migliaia di bit. In entrambi i casi, forzarle richiederà molto, molto tempo.
Algoritmi di crittografia simmetrica
Generalmente parlando, algoritmi simmetrici come AES, Twofish, ChaCha20 e altri, codificheranno le informazioni bit per bit (detti cifrari a flusso) o raccoglieranno le informazioni in blocchi (detti cifrari a blocchi, sorprendentemente) di diversi byte e cripteranno questi.
Il vantaggio dell’uso della crittografia simmetrica è che è veloce. Un buon esempio è quando cripti il tuo hard disk, qualcosa che vuoi essere in grado di decifrare rapidamente ogni volta che ne hai bisogno. Poiché la password che decifra la chiave è nella tua testa, non ci sono problemi nell’invio della chiave, neanche.
Algoritmi di crittografia asimmetrica
Gli algoritmi asimmetrici, a differenza di quelli simmetrici, permettono a chiunque di criptare un messaggio con la chiave pubblica. Questo è utile per la comunicazione, come nelle email. Chiunque può inviarti un’email utilizzando Proton Mail senza dover condividere la chiave in anticipo.
Tuttavia, algoritmi di crittografia asimmetrica come RSA o X25519, a differenza degli algoritmi simmetrici, sono molto più lenti perché utilizzano chiavi più lunghe, il che significa che sono più lenti a criptare e decifrare il testo cifrato. Sebbene il ritardo possa essere misurato in millisecondi, questo si accumula quando si tratta di file di grandi dimensioni.
Esempi di algoritmi di crittografia
Ora che hai capito cos’è la crittografia e i diversi tipi esistenti, vediamo alcuni esempi concreti che potresti incontrare quando cerchi un servizio crittografato, come posta elettronica sicura, archiviazione cloud o anche una rete privata virtuale. Per darti un punto di riferimento, abbiamo raccolto questa selezione degli algoritmi di crittografia più comunemente utilizzati.
Algoritmi di crittografia simmetrica
Per cominciare ci sono gli algoritmi simmetrici, apprezzati per la loro velocità e sicurezza. C’è un’enorme varietà tra cui scegliere, ma questi tre sono tra i più importanti.
DES
Per cominciare c’è lo Standard di Crittografia dei Dati (DES), che è principalmente noto poiché oggi non viene più utilizzato. Sviluppato negli anni ’70, disponeva di una chiave a 56 bit che, all’epoca, era altamente avanzata e lo rese lo standard per la crittografia – da qui il nome.
DES ha stabilito diverse tendenze, per questo vale la pena menzionarlo. Una delle più importanti è che è stato uno dei primi algoritmi a crittografare i dati a blocchi. In questo processo, i dati sono suddivisi in blocchi e poi crittografati blocco per blocco, il che significa che crittografa e decrittografa più velocemente, mantenendo comunque la stessa sicurezza. Tuttavia, con lo sviluppo di computer sempre più avanzati, 56 bit non erano più sufficienti e DES è stato abbandonato.
AES
Uno dei successori più importanti del DES è l’AES, ovvero lo Standard di Crittografia Avanzato. È stato adottato dal governo degli Stati Uniti come standard nel 2001 ed è ampiamente utilizzato da varie agenzie e militari – è la crittografia “di livello militare” spesso pubblicizzata nei materiali di marketing.
AES, come il DES, è un cifrario a blocchi, ma i suoi blocchi sono il doppio della dimensione a 128 bit, il che significa che ogni blocco contiene più informazioni. Può anche crittografare un blocco più volte, mescolando il mescolato, per così dire, rendendolo estremamente difficile da decifrare. Le chiavi di AES sono anche molto più lunghe di quelle del DES, con lunghezze di 128, 192 o 256 bit. Tra queste, AES-128 e AES-256 sono le più comuni – Proton utilizza AES-256 come algoritmo simmetrico.
Blowfish
Il cifrario Blowfish è un altro algoritmo sviluppato come successore del DES e condivide alcune caratteristiche, in particolare la dimensione del blocco di 64 bit. Tuttavia, la lunghezza della sua chiave è molto più variabile, consentendo di impostarla da 32 bit fino a 448 bit.
Il problema con Blowfish è che la sua piccola dimensione del blocco lo ha reso teoricamente più vulnerabile. Di conseguenza, il suo progettista ha sviluppato una nuova versione chiamata Twofish, che ha una dimensione del blocco di 128 bit e, come l’AES, limita le chiavi a una dimensione massima di 256 bit. Nella maggior parte dei casi, potresti voler evitare la crittografia Blowfish, anche se Twofish si è dimostrato sicuro fino ad ora.
Algoritmi di crittografia asimmetrica
Gli algoritmi di crittografia asimmetrica sono generalmente un po’ più complicati da spiegare poiché si basano su matematica di livello superiore. Mentre la chiave pubblica è abbastanza semplice da trasmettere, il modo in cui la chiave privata sblocca le informazioni dipende dall’algoritmo.
RSA
Uno degli algoritmi asimmetrici più utilizzati è l’RSA, che prende il nome dalle iniziali dei cognomi delle persone che lo hanno inventato negli anni ’70 (Ron Rivest, Adi Shamir e Leonard Adleman). Viene utilizzato in molteplici applicazioni, dalla posta elettronica sicura ai servizi VPN. Tuttavia, nel tempo si è dimostrato vulnerabile a specifici tipi di attacchi che possono sfruttare i tempi del processo di decrittazione e non è sempre considerato l’algoritmo più sicuro.
Inoltre, poiché RSA e il suo predecessore, Diffie-Helman, si basano sull’utilizzo di numeri sempre più grandi nell’equazione per mantenere la sicurezza, il numero di bit coinvolti nelle chiavi è enorme. Non è raro vedere chiavi RSA di 4096 bit, ad esempio, che rallentano notevolmente il processo di crittografia.
X25519
Un altro tipo di crittografia asimmetrica è la crittografia a curve ellittiche, che noi di Proton utilizziamo. Funziona su principi simili ad altri algoritmi asimmetrici, ma utilizza numeri più piccoli per raggiungere lo stesso livello di sicurezza — leggi questa introduzione(nuova finestra) di Ars Technica per maggiori dettagli sulla matematica.
L’algoritmo specifico che utilizziamo si chiama X25519, che abbiamo scelto per diversi motivi, non ultimo perché è resistente agli attacchi basati sui tempi di esecuzione. Inoltre è anche relativamente veloce, rispetto ad altri algoritmi di crittografia asimmetrica.
La crittografia in Proton
Abbiamo esaminato le basi della crittografia e il suo funzionamento, ma potresti chiederti come funziona per te, utente di Proton (o almeno potenziale tale). La verità è che crittografare un file, una email o persino un’intera connessione internet non è semplice come eseguire un algoritmo e considerarlo completato. Per assicurare che le tue comunicazioni rimangano sicure sono necessari alcuni passaggi aggiuntivi.
Il primo passo è determinare quale tipo di crittografia debba essere utilizzato. Ad esempio, per un file che rimane sul tuo computer, la crittografia simmetrica è sufficiente. Tuttavia, una volta che iniziamo a inviare cose sul web, si ottengono risultati migliori combinando più tipi di crittografia.
In Proton utilizziamo lo standard OpenPGP, che combina un algoritmo simmetrico con uno asimmetrico. Ciò ti offre la flessibilità della crittografia asimmetrica e la velocità di un algoritmo simmetrico. Con Proton Mail, ciò significa che puoi inviare email e allegati crittografati a chiunque rapidamente e in sicurezza.
OpenPGP è così sicuro in parte perché è aperto, il che significa che qualsiasi ricercatore di sicurezza può analizzarlo per assicurarsi che sia sicuro. Come azienda che crede nella trasparenza e nella revisione paritaria scientifica, questo è di vitale importanza. Per maggiori dettagli, leggi il nostro articolo completo su come funziona PGP.
In aggiunta, utilizziamo qualcosa chiamato crittografia end-to-end. Quando invii un messaggio o un file, normalmente verrà crittografato e decrittografato diverse volte durante il transito per assicurarsi che vada dove deve andare. Tuttavia, questo è intrinsecamente meno sicuro, motivo per cui in Proton crittografiamo i file in ogni momento, da un’estremità della trasmissione all’altra — da qui il nome.
Puoi leggere tutti i dettagli nel nostro articolo completo sulla crittografia end-to-end, ma puoi stare tranquillo che, sia che tu stia inviando una email crittografata con Proton Mail o un file tramite Proton Drive a un altro utente Proton, in nessun momento può essere intercettato in uno stato non crittografato.
Questo significa anche che in nessun momento possiamo vedere ciò che stai trasmettendo, a differenza di altri fornitori. Google è un esempio, poiché ispeziona i tuoi file per ottenere informazioni private su di te che l’azienda utilizza per la pubblicità mirata.
Poiché guadagniamo dai sostegni della comunità piuttosto che dagli annunci, la priorità di Proton è la tua sicurezza. È il motivo per cui non abbiamo accesso alle tue password, e perché crittografiamo i tuoi file e dati in ogni momento.
Come azienda fondata da scienziati del CERN con l’esplicito scopo di creare un internet più sicuro e privato, abbiamo preso misure estreme per proteggere i tuoi dati. Qui puoi scoprire alcune delle nostre funzionalità di sicurezza.
Quando ti unisci a noi creando un account Proton gratuito, non stai solo aderendo a un movimento per un internet più privato, ma ti assicuri anche di essere all’avanguardia nella crittografia.